NoSQL..

정말 잘 몰라서..정의부터 찾아보았다.

정말 간단히 말하자면 NoSQL이란 빅데이터를 처리하기 위한 분산 데이터 저장소의 통칭 정도로 이해하면 된다고 한다.

관계형 데이터인 RDBMS 와 달리 비관계형 데이터저장소로, 테이블스키마가 고정되지 않고, 테이블 간 조인 등을 지원하지 않는다.

대용량 웹 서비스를 위하여 만들어진 데이터 저장소

관계형 데이터 모델을 지양하며 대량의 분산된 데이터를 저장하고 조회하는데 특화된 저장소

스키마 없이 사용 가능하거나 느슨한 스키마를 제공하는 저장소

NoSQL은 분산형 구조를 띠고 있기 때문에 분산 시스템의 특징을 그대로 반영하는데,

그 특성 중의 하나가 CAP 이론이다. 분산 컴퓨팅 환경은 Consistency, Availability, Partitioning 세 가지 특징을 가지고 있으며,

이중 두 가지만 만족할 수 있다는 이론이다. NoSQL은 대부분 이 CAP 이론을 따르고 있다

Consistency(일관성) : 동시성, 동일성이라고도 하며, 다중 클라이언트에서 같은 시간에 조회하는 데이터는 항상 동일한 데이터임을 보증하는 것 즉, 어떤 값이 바뀌면 바뀌기 전의 데이터가 노출되면 안된다는 의미이다. 일관성은 RDBMS에서 지원하는 가장 기본적인 기능이나 NoSQL에서는  빠른 분산 처리를 위해 일관성을 희생하기도 한다.

Availability(가용성) : 모든 클라이언트의 읽기와 쓰기 요청에 대하여 항상 응답이 가능해야 함을 보증하는 것. NoSQL은 클러스터 내에서 몇 개의 노드가 망가지더라도 다른 노드가 값을 가지고 있어 클라이언트 요청에 대한 응답을 반드시 할 수가 있다.

Partition Tolerance(분할 허용성) : 클러스터링 노드 간에 통신하는 네트워크가 장애를 겪더라도 정상적으로 서비스를 수행할 수 있는 기능이다.


CAP중 두가지만 지원하는게 아니라 두가지를 지원하기 위해 한가지를 희생하는 것

CAP 이론으로 나눈 NoSQL

CA : RDBMSs, 애스터 데이터, 그린플럼, 버티카

CP : 빅테이블, 하이퍼테이블, HBASE, MongoDB, 테라스토어, 스칼라리스, 버클리DB, 맴캐시DB, 레디스

AP : 다이나모DB, 카산드라, 볼드모트, 도쿄캐비닛, KAI, 심플DB, CouchDB, 리악