메뉴 건너뛰기

2016.03.27 01:17

NO-SQL(not only SQL)

(*.106.188.101) 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

가 크게 작게 위로 아래로 댓글로 가기
Extra Form

NO-SQL은 not only sql 의 약어이다. 기본적으로 데이터 베이스는 계층형 -> 네트워크형 -> 관계형 으로 발전해 왔으며, 최근 대용량 데이터 처리가 이슈되면서 아래와 같은 관계형 데이터 베이스의 장단점의 보완 및 활용하고자 no-sql 에 대한 관심이 높아지고 있다.

관계형 데이터 베이스의 장점

- 데이터의 일관성을 보증할 수 있다. (트랜잭션)
- 정규화를 전제로 하고 있기 때문에 갱신 시의 비용이 적게 든다.
- 조인이나 복잡한 검색조건으로 검색이 가능하다.
- 참고 자료나 노하우가 많이 있다. (검증되고 성숙된 기술) 

관계형 데이터 베이스의 단점  

- 대량의 데이터 입력 처리 시 성능 이슈
- 갱신이 발생한 테이블의 인덱스 생성이나 스키마 변경에 대한 처리 이슈
- 컬럼을 확실히 정의하기 어려운 경우에 대한 처리 이슈
- 단순히 빨리 결과를 조회하고자 할때의 성능 이슈

<참고> 

* 일반적으로 데이터 베이스 저장소의 처리 성능을 확장하기 위한 노력은 2가지로 분류될수 있다.
  
스케일업과 스케일다운이다.

스케일업 방식
사용중인 서버 자체를 고성능으로 바꿔서 처리능력을 향상시키는 방법
-> 상당히 많은 비용이 발생하지만, 소스에 대한 변경이 없다

스케일다운 방식

저가의 여러 장비를 사용하여 처리 능력을 향상 시킴.
-> 저가의 비용으로도 원하는 성능을 확보할 수 있지만, 소스 수정이 필요하다.
-> NO-SQL 에서 제공하는 방식

NO-SQL 데이터베이스

조인 연산이 불가능하며, 각 데이터가 독립적으로 설계 되어 있어 데이터를 여러 서버에 분산하여 작업 하는 방식.
데이터를 여러 서버에 분산하는 것을 통하여 각 서버에서 처리하는 데이터의 양이 줄고 따라서 대량의 데이터의 입출력이 있어도 처리가 쉬워진다.

* 일반적으로 관계형 데이터 베이스의 경우에는 고가의 장비를 마스터-슬래이브 혹은 액티브-스탠바이 형태로 구성하여 서비스하고 있는 경우가 많으나, NO-SQL 에서 이야기 하는 구성은 이런 구성이 아닌 10대 혹은 100대 정도의 저가의 서버들을 클러스터링 혹은 샤팅 등의 방법으로 데이터를 쪼개서 나누어 처리하는 방식을 말한다. 

NO-SQL 데이터베이스 종류

NO-SQL 서버는 특징에 따라 3가지로 분류 될수 있다.

1. 키-값 형 스토어

- MEMCACHED
- REDIS

2. 문서형 데이터 베이스

문서형이라 함은 여러가지 형태의 값들을 모아놓은 논리적 구조라고 표현할 수 있겠다.
- MONGODB

3, 컬럼형 데이터 베이스

관계형 테이터 베이스가 ROW 단위로 데이터를 관리 하였다면, ROW 가 아닌 컬럼 단위로 관리하는 데이터 베이스를 말한다.
- HBASE
- CASSANDRA