db

데이터 저장을 위한 구조적 형태

C/H 2016. 7. 25. 08:30

Key Value ( KV )

NoSQL에서 사용되는 가장 단순한 저장 형태로 각 키에 대응되는 값들은 임의의 길이를 갖는 바이너리 데이터로만 간주된다.
데이터 저장소는 각 값이 내부적으로 어떤 구조를 갖고 있는지에 대해서는 일절 관여하지 않는다.
그러므로 애플리케이션에서 JSON, ProtocolBuffer, Thrift, Avro같은 전용 포멧 등을 사용하여 테이터를 추가로 인코딩/디코딩 해야 한다.


Key-data

각 값마다 특정 자료구조에 대응되는 타입을 지정할 수 있게 해 준다.
대표적으로 Redis의 경우 정수, 문자열, 리스트, 집합, 정렬된 집합같은 타입을 사용 할 수 있다.
get/set/delete 기능 외에 각 데이터 타입별 전용 기능들이 함께 제공된다. ( 숫자 : +, - )


Key-Document

각 키에 대응되는 값으로 JSON 같은 구조화된 문서를 사용한다.
이런 포멧에서는 재귀적로 구성된 리스트 및 딕션너리 등을 사용할 수 있다.
MongoDB는 키스페이스를 컬렉션으로 분할함으로써 키 충돌을 방지하지만, CouchDB, Riak는 개발자가 키를 관리해야 한다.


BigTable Column Family

HBase와 Cassandra는 구글의 BigTable의 데이터 모델을 기반으로 사용하고 있다.
이 모델은 각 키마다 Row가 하나씩 대응되고, 각 Row는 하나 이상의 컬럼 패밀리 ( Column Family, CF )들이 포함된다.
각 패밀리 내에서 다시 각 Row별로 다수의 컬럼에 대한 값들을 가질 수 있다.


Graph

그래프는 컴퓨터 공학의 근본적 자료구조 중 하나지만, 관계형 데이터 모델이나 키 위주의 데이터 모델로 표현하기 적합하지 않다.
HyperGraph, Neo4J는 그래프 데이터 저장에 특화된 대표적은 NoSQL시스템이다.


반응형

'db' 카테고리의 다른 글

Install Mongodb for windows scoop  (0) 2019.02.01
Install Postgresql for windows scoop  (0) 2019.01.31
초보자를위한 SQL 인젝션 비디오 자습서 8  (0) 2014.10.08
오라클 트리거  (0) 2012.01.04
TOAD 단축키  (0) 2011.04.14