-(Key-Value) 및 문서 데이터베이스는 행(row)에 초점을 맞춥니다이 말은 하나 또는 그 이상의 조건에 일치하는 완벽한 데이터를 검색하는 최적화된 환경을 제공해 줍니다그러나 때때로 프로그램은 열에서 데이터를 검색할 필요가 있습니다컬럼 패밀리는 개념적으로 열의 집합체이고 각 열은 키-값의 쌍으로 구성되어 있습니다.

 

컬럼 패밀리 데이터베이스에서 열은 컬렉션(Column Collection) 구조를 가지며 하나의 행은 많은 열을 포함할 수 있습니다컬럼 패밀리의 유연성은 프로그램에게 관계형 데이터베이스에서도 지원하는 복잡한 쿼리와 데이터 분석을 수행할 수 있는 능력을 제공해 줍니다


컬렉션(Collection)

 

[프로그램]

컬렉션이란 데이터를 배열 형태로 보관할 수 있으며 메모리가 동적으로 확장 가능하기 때문에 생성삭제수정검색 등의 기능을 쉽게 제어할 수 있습니다사용하는 자료 구조는 링크드 리스트(Linked List), 해쉬(Hash), 스택(Stack), (Queue)등과 같은 알고리즘이 있습니다.

 

[데이터베이스]

컬렉션이란 여러 객체를 묶어서 관리하는 비정형 데이터 저장소입니다컬렉션은 데이터베이스의 테이블과 같은 개념이지만 스키마가 정해져 있지 않아서 같은 이름의 필드에 다양한 타입의 값을 저장할 수 있습니다.


컬럼 패밀리 데이터베이스는 방대한 양의 데이터를 저장하도록 설계되어 같은 시간에 데이터를 매우 빠르게 접근할 수 있습니다잘 설계된 컬럼 패밀리 데이터베이스는 본질적으로 매우 빠르고 확장성이 뛰어납니다.

 

 

컬럼 패밀리란?

이름에서 알수 있듯이 컬럼 패밀리는 NoSQL 데이터베이스로부터 컬럼 패밀리 데이터베이스를 구분짓는 특징입니다컬럼 패밀리는 단순히 테이블에서 데이터를 보유한 컬럼의 집합입니다.. 컬럼 패밀리는 개념적으로 행과 열의 집합으로 구성되어 있는 관계형 데이터베이스의 테이블과 비슷합니다그러나 관계형 데이터베이스의 테이블과는 달리 컬럼 패밀리에서의 열은 정의된 스키마를 엄격하게 준수할 필요가 없습니다.

 

예를 들어컬럼 패밀리 데이터베이스에 고객의 이름을 포함할 경우에 아래의 그림과 같이 컬럼 패밀리를 만들수 있습니다이 컬럼 패밀리는 제목(title)과 고객 이름으로 구성되어 있습니다이 그림에서 고객은 유일키(Unique key)CustomerID를 사용하여 데이터를 식별할 수 있습니다.

 

 

그러나 각 열에서 정의한 고객 데이터의 구조는 서로 다를 수가 있습니다아래의 그림에서 정의한 ‘MiddleName’ 의 경우 상황에 따라서 존재할 수도 있고없을 수도 있습니다상황에 따라서 특정한 열이 작업에 필요 하지 않을 경우에는 쉽게 작업 대상에서 제외하면 됩니다이 접근법은 관계형 데이터베이스의 테이블에 비해서 매우 효율적으로 데이터를 저장할 수 있습니다.


고객 정보를 보유한 컬럼 패밀리 ]

 

 

어떤 경우에는 열(column) 영역에서 정해진 이름을 사용하는 것보다 가변적으로 변하는 이름을 사용할 수도 있습니다예를 들어 아래의 그림은 고객이 보유한 주식을 모니터링하는 금융 기관의 주식 포트폴리오 관리 시스템에서 특정 부분을 컬럼 패밀리로 만들어서 보여주고 있습니다. 


주식 시세 기호를 기초로 한 이름의 컬럼 패밀리 ]

 

 

고객을 위한 포트폴리오는 상장 기업에 대한 채권과 주식을 포함할 수 있습니다포트폴리오 컬럼 패밀리는 열(column) 에서 데이터의 구조를 키-값 형태로 저장할 수 있습니다여기서 키에 해당하는 것은 주식의 이름이며값으로는 보유한 주식의 수로 표시할 수 있습니다고객이 새로운 주식를 구입한 경우 이름이 다른 주식이 목록에 추가될 수 있습니다대부분의 컬럼 패밀리 데이터베이스는 컬럼의 값으로 스칼라 타입(Scalar type)을 지원합니다


 스칼라 타입 (Scalar Type)

 

데이터형으로 여러 값 사이에 순서가 존재하는 것, PASCAL에서 도입된 데이터형의 개념이며가장 단순하고 기본적인 형인 논리형정수형실수형 및 문자형을 포함하며 Ada의 데이터형인 실수형과 이산형(discrete type)을 포함한다.


'빅데이터 > No SQL' 카테고리의 다른 글

2014년 NoSQL 순위  (0) 2017.08.03
레디스(Redis, Remote Dictionary Server)  (0) 2017.08.03
문서 저장소(Document Store)  (0) 2017.08.03
키-밸류 스토어(Key-value store)  (0) 2017.08.03
그래프(Graph) 데이터베이스  (0) 2017.08.03

+ Recent posts