현재 빅데이터 시장에서 주로 사용하고 있는 데이터베이스(Database) NoSQL 계통의 데이터베이스입니다. H베이스(Hbase), 카산드라(Cassandra), 몽고DB(MongoDB), 레디스(Redis) 등이 여기에 속합니다빅데이터 등장 후에 대용량 데이터 처리 방식을 놓고 관계형 데이터베이스(RDB, Relational Database) 처리 도구로 써 왔던 SQL로 데이터 처리를 계속할 지아니면 데이터의 분산 처리가 가능한 NoSQL을 선택할 지는 지금까지도 데이터베이스 관리자(DBA)나 웹서비스 개발자들에게는 고민거리가 아닐 수 없습니다.

 

RDBMS은 비정형 데이터의 처리가 필요 없던 시절에는 최적의 기술로 인정을 받았습니다시간이 흐르고 사진동영상소셜네트워크서비스(SNS) 등과 같은 비정형 데이터의 출현으로 인하여 DB 관리 시스템에 변화가 생기기 시작합니다.

 

개발자들은 자연스럽게 비정형 데이터를 쉽게 처리하고 저장할 수 있는 NoSQL로 눈을 돌리기 시작했습니다. NoSQL은 ‘Not Only SQL’ 로서 우리말로 해석하자면 “SQL 뿐만 아니라” 이며정해진 틀이 잡혀 있는 SQL에서 벗어나 분산 아키텍처의 확장성유연성 등을 장점으로 내세우며 데이터 분산 처리 시 필요한 기술로 자리잡기 시작했습니다.

 

많은 종류의 NoSQL 데이터베이스가 존재하는 이유로는 부루어의 정리(Brewer’s Theorem)로 알려진 ‘CAP’ 정리를 들수가 있습니다. CAP 정리는 일관성(Consistency), 가용성(Availability), 파티션 수용성(Partition Tolerance) 이라는 세가지 요소들 중에서 모두 만족하기는 힘들고 최대 두 가지 사항에 대해서 만족하면 된다는 이론입니다이 때문에  NoSQL 데이터베이스가 많이 존재하는 것입니다


 CAP(Consistency, Availability, Partition tolerance) 정리

 

CAP 정리또는 브루어의 정리(Brewer’s Theorem)은 아래와 같은 세가지 조건을 모두 만족하는 분산 컴퓨터 시스템이 존재하지 않음을 증명한 정리입니다.

 

일관성(Consistency) : 모든 노드가 같은 순간에 같은 데이터를 볼수 있습니다(조회)

가용성(Availability) : 항상 데이터는 수정이 가능해야 합니다(쓰기)

파티션 수용성(Partition tolerance) : 메시지 전달이 실패하거나 시스템 일부가 망가져도 시스템이 계속 동작할 수 있습니다(확장)

 

아래와 같이 두가지 조건을 만족하는 분산 컴퓨터 시스템이 존재할 수 있습니다.

 

CA : 분할내성(Partition tolerance)을 포기하는 형태로 RDBMS 구조를 말합니다언제든 수정이 가능하며반영 결과를 즉시 조회할 수 있습니다.

CP : 가용성(Availability)을 포기하는 형태로 쓰기보다는 조회와 확장성을 중요시하는 시스템에 유용합니다. (포털 뉴스)

AP : 일관성(Consistency)을 포기하는 형태로 조회보다는 쓰기와 확장성에 중요시하는 시스템에 유용합니다. (트윗채팅로그등)

 

 

[ NoSQL 데이터베이스 선정 기준 ]

 

NoSQL은 뛰어난 확장성을 가지고 있는 반면에 스카마 변경이 불가능해 데이터에 문제가 발생하면 감지하는게 쉽지가 않고 처리속도에서도 문제가 발생하였습니다여기에 SQL과 같이 정해진 언어가 없는데다가 도큐먼트 스토리지 기반으로 되어 있어서 레코드를 개발해 본인이 직접 넣어야 하는 식이다 보니 개발자들로부터 다루기 어렵다라는 말이 나오기 시작합니다.

 

이러한 배경으로 현재는 기존의 SQL 기반의 RDB 장점을 수용하고확장성과 유연성등 NoSQL의 장점을 가미한 NewSQL이 등장하게 된 것입니다.

+ Recent posts