본문 바로가기

IT-백엔드

SQL과 NoSQL 차이점 1

NoSQL에 대해서 먼저 애기를 해보겠습니다. NoSQL의 뜻은 Not only SQL 혹은 Not SQL입니다. 그런가 NoSQL 뜻이 한가지 종류의 DB만을 뜻하지 않습니다. NoSQL은 거대한 DB의 그룹들입니다.

SQL DB들을 살펴보면, MySQL, PostgreSQL, SQLite등이 있습니다. 몰론 각각 조금씩 다른 부분이 있긴 하겠지만 결국에 핵심은 SQL이라는 점에서 같습니다. 하지만 반대로 NoSQL에서는 서로 넘나 각기 다른 종류들이 존재합니다.

오늘은 NoSQL의 3가지 종류들을 이야기해보겠습니다.

첫번째는 Document DB이고 두번째는 Key Value DB이며 마지막으로는 GraphDB입니다.

 

DocumentDB

첫번째 DocumentDB의 가장 큰 예시는 mongoDB입니다. mongoDB는 documentDB에서 가장 유명합니다. 이것은 데이터를 json document 형태로 저장합니다. 그래서 documentDB는 너가 원하는 어떤 종류의 어떤 모양의 데이터든 저장할 수 있습니다.

알다시피 SQL에서는 데이터의 구조가 꽤나 엄격합니다. 그러나 mongoDB에서는 원하는 무슨 형태든 저장이 가능하고 또한 데이터가 같은 모양일 필요가 없습니다.

 

CassandraDB

key valueDB에서는

첫번째는 CassandraDB 그리고 두번째는 DynamoDB입니다.

 

CasandraDB는 column wide database로 유명하기도합니다. 여기서 핵심은 Casandra는 읽고, 쓰기가, 매우 빠릅니다. Casandra는 매우 많은 수의 아이템을 1초만에 사용할 수 있습니다. 그래서 애플이 Casandra를 이용해서 10페타바이트의 데이터를 저장하고있고, 넷플릭스, 인스타그램, 우버 같은 회사들도 쓰고 있습니다.

이런 회사들은 엄청 많은 양의 데이터를 빠르게 저장해야합니다. 혹은 검색엔진처럼 많은 양의 데이터를 빠르게 읽어야한다면 그럴 때 Casandra가 빛을 발합니다.

 

요번에는 또 다른 key valueDB중에서 dynamo DB에 대해서 말해보겠습니다. Dynamo DB는 서버리스, 분산된 key valueDB로써 아마존이 만들었습니다. 이것은 엄청나게 많이 써야하고 많이 읽어야할 때 사용됩니다.

 

 

 

GraphDB

y

마지막으로는 GraphDB에 대해서 이야기해보겠습니다. 이건 column이나 document가 필요 없을 때, 그러나 각 노드 사이 관계를 알아야할 때 사용합니다.

무슨 말이냐 예를 들자면 너가 소셜 네트워크를 만든다면, 페이스북 같은 걸 만든다면 graphDB가 필요할 것입니다. 페이스북은 Tao라는 그들만의 DB를 만들었는데, 그리고 Tao가 바로 graphDB입니다. 여기서는 document, column을 저장하는 것이 아니라, 각각의 entity를 저장하고 이른 관계망으로 연결합니다. 예를 들자면 유저 1이 사진 1을 좋아요 누르고 유저 1은 유저 2의 친구이고 유저1이 사진1이 공유하고 등등 이러한 정보는 graphDB에서 다른 데이터베이스보다 더 잘 저장될 수 있어.

 

 

 

요번 블로그는 노마드 코더라는 유튜버가 https://www.youtube.com/watch?v=Q_9cFgzZr8Q 올린 영상을 참고해서 적었습니다.