Dev.GA

NoSQL이란 무엇인가? 본문

Dev.Database/MongoDB

NoSQL이란 무엇인가?

Dev.GA 2018. 3. 14. 11:26

NoSQL이란 무엇인가?



MongoDB에 대한 학습을 시작하기전 NoSQL에 대하여 먼저 다루고 넘어가자.

MySQL이나 Oracle을 사용/공부하면서 관계형 데이터베이스(RDBMS)에 대하여 아무것도 모르고 사용하지는 않지 않은가?


그래서 NoSQL에 대해 간단히 그리고 지속적인 학습이 선행되어야 할 것 같다.


 NoSQL의 등장배경


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



 NoSQL이란?


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

기존의 RDBMS는 테이블형식의 row와 column 형태로 데이터가 저장되며 foriegn key를 이용하여 테이블, 데이터간의 관계를 정의하며

join을 통해 데이터를 조회할 수 있다.

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



 NoSQL의 종류


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


  • Key-Value Store

key와 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 등이 있다.



 NoSQL의 특징


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



※ 포스팅에 대해 잘못된 부분, 정보가 있으면 댓글로 알려주기시 바랍니다.




'Dev.Database > MongoDB' 카테고리의 다른 글

[MongoDB] MongoDB 소개 및 설치하기  (0) 2018.03.19
Comments