출처) https://gangnam-americano.tistory.com/30

 

■ NoSQL 이란?

NoSQL이란 Not Only SQL의 약자로 기존 관계형 데이터베이스(RDBMS)와는 다른형태의 데이터 저장기술을 의미한다.

기존의 RDBMS는 테이블형식의 row와 column 형태로 데이터가 저장되며 foriegn key를 이용하여 테이블, 데이터간의 관계를 정의하며 join을 통해 데이터를 조회할 수 있다.

NoSQL은 기존의 정적인 구조의 RDBMS보다 융통성있는 형태의 데이터 구조를 사용하고 있으며, 분산 저장 환경에 용이하여 데이터 저장 및 검색(scan) 작업에 있어 뛰어난 성능을 보인다. 단순한 데이터 검색에 용이한 key/value 형태는 응답속도나 처리효율에 큰 강점을 지니고 있어 빅데이터 환경에 특화되어 있다고 볼 수 있다.

NoSQL은 이러한 RDBMS와는 다른 형태의 저장 구조를 가지며, 크게 4가지 특성에 따라 NoSQL을 분류할 수 있다.

 

■ NoSQL의 종류

저장되는 데이터 구조에 따라 NoSQL은 다음과 같이 분류된다.

 

Key-Value Store

ey와 value로 이뤄진 간단한 데이터 구조로, 다른 형태 구조의 NoSQL이라도 기본적으로 대부분의 NoSQL에서는 key/value의 개념을 가진다. 기본적인 형태로 value에 String, Integer, List, Hash 등의 기본 자료형이 해당된다. 이러한 데이터 구조는 속도가 빠르며, 분산저장 환경에 용이하여 key에 대한 엑세스 속도는 빠르지만 검색(scan)에는 취약한 특징이있다.

 

대표적인 DB에는 Redis, Memcached 등이 있다.

 

Wide Column Store

Column Oriented Database 혹은 Column Family Oriented Database라고 불리는데, 일반적인 key/value의 형태의 데이터 구조에서 하나의 key에 하나의 value만 저장하는 단점을 극복하기 위해 value에 해당하는 값을 여러개의 Column형태로 저장하며 이 묶음을 Column Family라고 한다. 데이터마다 다른 스키마를 가질 수 있으며 이 점은 Document Store와 비슷하다고 볼 수도 있다. 또한 이러한 Column Oriented형태는 우리가 많이 사용하는 RDBMS와 많이 유사한 형태이다.

 

대표적인 DB에는 HBase, Cassandra 등이 있다.

 

Document Store

Document형태로 데이터가 저장되는데 여기서 말하는 Document는 JSON, XML등을 말하며 Column Oriented와 같이 스키마가 유동적인 것이 특징이다. 

 

대표적인 DB로는 MongoDB, CouchDB 등이 있다.

 

- Graph DB

데이터를 노드(node)간의 관계로 표현한 Database를 말한다.

 

대표적인 DB로는 Neo4j, OrientedDB 등이 있다.

 

'IT 용어 정리' 카테고리의 다른 글

DAO 와 DTO 란?  (0) 2019.09.26
MyBatis 란?  (0) 2019.09.26
node.js 란 무엇인가  (0) 2019.09.14
spring MVC 와 DispatcherServlet 의 정의  (0) 2019.09.14
front end와 back end의 정의  (0) 2019.09.13

+ Recent posts