본문 바로가기
Database

SQL? 아니면 NoSQL?

by doongjun 2020. 10. 13.

데이트베이스에서 가장 공통적으로 사용되고 있는 관계형 모델, SQL은 구조화된 쿼리 언어(Structured Query Language)를 사용한다. 하지만 최근에는 문서 기반과 키값 데이터베이스를 사용하기 시작했는데 이러한 데이터베이스를 NoSQL이라고 한다.

 

NoSQL이 한가지 종류의 DB만을 뜻하지 않는다. 거대한 DB들의 그룹이다.

예를 들어 ‘아파트’ vs ‘아파트가 아닌 집’ 같은 논리가 적용된다. 

SQL DB들의 종류를 살펴보면 MySQL, SQLite, PostgreSQL 등이 있고 No SQL은 더욱 다양한 DB종류들이 있다.

 

이 글에서는 NoSQL의 세가지 카테고리에 대해 알아보려 한다.

 

(1) Document DB

 

 

가장 큰 예시로는 mongoDB가 있다. 이 것은 데이터를 json document 형태로 저장한다. 보통의 SQL처럼 행과 열이 존재하는 것이 아니라 어떤 종류의 어떤 모양의 데이터든 저장할 수 있다.

 

(2) key valueDB

 

 

key valueDB 의 두가지 예시로 CassandraDB와 DynamoDB가 있다.  CassandraDB는 column wide database의 유형으로 읽고 쓰기가 엄청 빠르다. 많은 수의 아이템들을 1초만에 쓸 수 있을 정도로 빠르다. 검색엔진처럼 많은 양의 데이터를 빠르게 읽어야 한다면 CassandraDB가 필요하다. DynamoDB는 서버리스, 분산된 key valueDB로서 아마존에서 만들었다. DynamoDB도 마찬가지로 빠르게, 많은 양을 써야하고 읽어야할 때 필요하다. DocumentDB와 비교했을 때 단점으로는 어떤 종류의 DB를 얻을 수 있는지 제한적이다. 

 

(3) GraphDB

 

 

GraphDB는 column이나 document가 필요없을 때, 하지만 각 노드 사이의 관계를 알아야 할때 필요하다. 여기서는 column과 document를사용하는 것이아니라 각각의 entity를 저장하고 이를 관계망으로 연결한다.

GraphDB의 예로는 neo4j가 있는데 소셜 네트워크를 만들 때 유용할 것이다.

'Database' 카테고리의 다른 글

[Oracle] 오라클 뷰(View) 알아보기  (0) 2021.12.01

댓글