본문 바로가기
반응형

DataBase24

[NoSQL] 기본 개념 정리 분산 데이터베이스가 가지는 속성 NoSQL은 일반적으로 서버를 여러대로 운영하는 분산시스템을 도입하므로 분산 데이터베이스에 속한다. 물론 단일 서버로 운영할 수도 있지만, NoSQL이 가지는 장점을 활용하기 위해서는 여러 대로 운영하는 것이 좋다고 한다. 가용성과 확장성 측면에서도 분산시스템 구성이 바람직하다. NoSQL에서는 응답시간, 일관성, 지속성의 균형을 위해 결과적 일관성(Eventual consistency)을 구현한다. * 지속성 (Durability) : 긴 시간 동안 올바른 데이터 복사본을 유지하는 속성 결과적 일관성이란, 서버가 여러 대인 분산시스템에서 데이터를 조회했을 때 특정 서버는 변경 된 데이터가 조회되고 일부는 변경되지 않은 상태로 조회될 수 있다. 그 때 데이터의 일관성을 위.. 2018. 11. 28.
Commons DBCP 설정값 알아보기 SpringFramework에서 Mysql-connector를 사용하여 DB를 연결하고 있다. apache.commons.dbcp.BasicDataSource Bean을 만들어서 설정값을 지정하는 데 각각의 설정값의 의미를 알아두면 좋을 듯 하여 정리한다. 아.. 물론 문제가 있어서 공부하다보니 정리하게 되었다고 한다. ^_ㅠ Commons DBCP 설정값 알아보기 우선 현재 사용하고있는 Commons DBCP는, DB 연결을 위해 apache에서 제공하는 프로젝트의 한 종류다. DB 연결에 사용되는 Connection Pool을 만들어 관리 및 공유할 수 있게 해주는 역할을 한다. Common DBCP 1.x 관련 설정 값은 아래와 같다. Property Name Value 비고 (Default) dr.. 2018. 8. 6.
DB 전체에서 특정 필드를 찾아야 할 때 필드 길이를 전체적으로 수정할 일이 생겼다. 인터페이스하는 쪽에서는 정보 주체가 전달하는 대로 데이터 타입을 맞춰야하므로 전체적인 수정이 필요해졌다... ㅠ_ㅠ 어디서부터 어떻게 손을 대야 하나 고민이 되니까 전체 DB에서 특정 필드를 찾기 위한 쿼리를 날려보도록 하자. 원래 귀찮은 사람이 조금이라도 일을 덜하기 위해서 방법을 찾는다고 하던데 딱 그 격이다. SELECT TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME, COLUMN_TYPE FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = '원하는 DB 스키마 입력' AND COLUMN_NAME LIKE '%원하는 검색어 입력%' 나의 경우는 이름 필드가 변경될거라 NAME을 기준으로 검색.. 2017. 11. 29.
SELECT JOIN 문을 이용한 UPDATE QUERY 기존 테이블에 신규 필드가 추가되면서 해당 필드에 특정 값을 입력해줘야 하는 일이 생겼다. 그 값이라는 것 마저도 기존 데이터를 이용해서 할 수 있는 확정된 기준이 없고 요청자가 row 별로 원하는 데이터를 엑셀로 넘겨줘서 이를 이용해야 했다. 엑셀 데이터를 입력하는 일 마저도 난감했지만 여차저차 프로그램을 짜고 임시테이블에 데이터를 밀어넣어서, 이 임시 테이블을 맵핑해서 원하는 테이블의 필드값을 update 해야 했다. 이에 사용했던 쿼리문을 정리해보고자 한다. SELECT JOIN 문을 이용한 UPDATE QUERY dev.mysql.com 에서 제공하는 UPDATE Syntax 를 간략하게 표현하면 우리가 자주 사용하는 일반적인 UPDATE Query 문이 나온다. UPDATE table_refer.. 2017. 3. 30.
ORACLE에서 LONG 열에만 입력할 수 있다고 할 때는? 프로그램을 다루면서 Oracle DB에 데이터를 넣을 때.... ORA-01461: LONG 값은 LONG 열에만 입력할 수 있습니다 라는 오류를 만났다면, 첫 번째로 의심해야 하는 내용은 VARCHAR2(4000)으로 잡혀있는 컬럼에 그 이상의 값이 들어간 것! 그리고 두 번째로 의심해야 될 내용은 CLOB에 들어가는 데이터가 CLOB의 형태로 들어가지 않는다는 것. 처음에 저 오류를 마주했을 때는 데이터 타입이 VARCHAR2(4000)으로 잡혀있었나? 하며 DB 구조를 살펴보니 CLOB이라고 너무나도 당연하게 써 있는 것에 조금 벙쩌있었져 ㅠ_ㅠ CLOB이면서 왜 데이터를 받지를 못하니... Editor를 사용하여 HTML 태그가 들어간다거나 정~~~말 긴 글을 입력하게 되는 경우 이런 오류를 본 .. 2013. 2. 4.
계층형 메뉴 트리 정렬하기 엄청나게 오랜만에 포스팅을 작성하니 감회가 새롭네요 ㅠ_ㅠ 그것도 2012년을 하루 남기고! 오늘은 계층형 메뉴 트리를 정렬하는 쿼리에 대해 소개합니다.이에 앞서 메뉴 트리 테이블의 구조를 보여드리면 다음과 같습니다. 컬럼명 설명 MENU_CODE 메뉴가 가지는 고유의 일련번호 (PK) MENU_TITLE 메뉴 이름 MENU_URL 메뉴를 눌렀을 때 연결되는 URL 주소값 MENU_PARENT ★ 메뉴의 부모 값 (계층 구조를 이루게 하는 요소) ★ MENU_SEQ 메뉴 정렬 순서 MENU_LEVEL 메뉴 계층구조의 깊이 (값이 클수록 하위 메뉴) MENU_VISIBLE 메뉴 사용여부 (이 컬럼은 없어도 무관합니다) 위의 컬럼을 가지고 있다는 전제하에 어떤 식으로 계층형 메뉴 트리를 정렬하는 지 설명드리.. 2012. 12. 31.
DML(Data Manipulation Language) - INSERT 사용에 대해서 데이터베이스를 사용할 때 가장 많이 사용하게 되는 DML 문에 대해서 하나씩 정리해보려고 합니다. 우선 가장 기본적으로 테이블에 데이터가 있어야 뭐든 가능하므로 데이터를 입력하는 INSERT 구문에 대해서 알아봅시다! •INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY ] [IGNORE] [INTO] tbl_name [(col_name, …)] VALUES ({expr | DEFAULT}, …), (…),… [ ON DUPLICATE KEY UPDATE col_name = expr, …. ] •INSERT [LOW_PRIORITY | DELAYED | HIGH_PRIORITY ] [IGNORE] [INTO] tbl_name SET col_name={expr | DEFAU.. 2011. 7. 7.
MySQL Storage Engine의 양대산맥! MyISAM vs InnoDB MySQL의 Storage Engine에는 위에 보시는 그림처럼 여러가지가 존재합니다. 그 중 제일 많이 사용하는 두 가지가 바로, MyISAM과 InnoDB인데요~ 오늘은 이 두 가지를 비교 분석하는 포스팅을 해볼까 합니다. 먼저 MyISAM과 InnoDB가 무엇인지와 각각의 특징을 알아봅시다. 1. MyISAM MyISAM은 ISAM(Indexed Sequential Access Method) 의 단점을 보완하기 위해 나온 업그레이드 버젼으로, 이 엔진은 비-트랜젝션-세이프(non-transactional-safe) 테이블을 관리합니다. MyISAM은 후에 소개하는 InnoDB에 비하여 별다른 기능이 없으므로 데이터 모델 디자인이 단순하다는 것이 장점입니다. 따라서 전체적으로 속도가 InnoDB 보다.. 2011. 3. 31.
JDBC와 ODBC의 차이점에 대해서 JDBC와 ODBC. 둘 다 들어보신적이 있으신가요? 저는 Java만 배워서인지 JDBC라는 용어만 들어본 적이 있었답니다. 그래서 JDBC, ODBC란 무엇인지? 와 그 둘의 차이점에 대해서 알아보도록 하겠습니다~ 먼저 익숙한 JDBC부터! 1) JDBC (Java Database Connectivity) Java에서 DB에 접근하여 데이터 조회, 삽입, 수정, 삭제를 가능케하는 것을 말합니다. 다시말해 Java가 Database를 사용할 수 있도록 연결해주는 응용프로그램 인터페이스인 Java API 입니다. 이 응용프로그램 인터페이스는 데이터베이스 관리 시스템에 넘겨질 SQL 형태의 데이터베이스 접근요구 문장을, 각 시스템에 맞도록 바꾸는 역할을 합니다. API는 동적으로 올바른 Java 패키지를 로.. 2011. 3. 30.
WHERE 절의 IN 사용법! WHERE 절은 아주 유용한 절입니다. 그만큼 알아둘 내용도 매우매우 많죠. 이번에는 IN 의 사용법에 대해 알아봅시다. WHERE 절의 IN 사용법! 1) WHERE 일치하길 원하는 컬럼명 IN (조건1, 조건2, 조건3 ....) WHERE 뒤에 써준 컬럼과 IN 뒤로 나열한 조건들 중 일치하는 row를 가져오게 됩니다. 여기서 나열한 조건들은 OR조건으로 검색하게 됩니다. 조건1 이거나, 조건2 이거나, 조건3 이거나 .... 조건에 일치하는 모든 내용을 가져오게 되죠. 2) WHERE 일치하지 않길 원하는 컬럼명 NOT IN (조건1, 조건2, 조건3 .....) WHERE 다음에 써주는 컬럼명이 일치하지 않길 원하는 컬럼명 인 것을 보시면 아시겠죠! 이번 내용은 앞의 1번 내용과 반대되는 내용이.. 2011. 2. 8.
반응형