SQL vs NoSQL

·2023년 1월 19일
0

데이터베이스를 배우다보면 SQL과 NoSQL이란 종류가 있다는 것을 알게될 것이다. 이 포스트에서는 SQL과 NoSQL는 무엇이고 어떤 차이가 있는지, 어떤 데이터베이스를 사용해야하는지 알아본다.

SQL이란?

사실 SQL(Structured Query Language, 구조화 질의어)은 RDBMS(관계형 데이터베이스 관리 시스템)을 관리하기 위해 사용하는 언어이다. RDBMS는 SQL 데이터베이스 또는 SQL이라고도 불린다. 앞으로 이 글에서도 SQL을 관계형 데이터베이스라고 생각하면 된다.
SQL은 스키마대로 데이터를 넣어야 하기 때문에 정형화가 잘되있고, 데이터가 저장된 테이블들은 다른 테이블들과 연결되어 있다. 관계형 데이터베이스는 빠른 데이터 저장 및 복구를 제공하고 대량의 데이터와 복잡한 요청을 처리할 수 있다.

NoSQL이란?

NoSQL은 말그대로 SQL이 아닌 모든 데이터베이스를 말하며, 여기에는 Document Database, Key-value Database, Wide-colum Stores, Graph Database등이 있다.
NoSQL은 미리 정해지지 않은 유형의 데이터를 저장할 수 있으므로 유연성이 좋다.

SQL vs NoSQL

데이터베이스 구조

  • SQL은 행과 테이블에 데이터를 저장하고, 고유 식별자를 사용하여 다양한 테이블의 정보를 연결한다.

  • NoSQL은 데이터를 행과 테이블에 저장하지 않고 네가지 유형의 구조로 데이터를 저장하고, 그 유형은 데이터 베이스 종류마다 차이가 있다.

    1. Document Database: 문서를 사용하여 JSON, BSON등을 비롯한 표준 형식으로 데이터를 저장한다.

    2. Key - Value Database: 데이터를 Key - Value 쌍의 그룹으로 저장한다.

    3. Wide - Colum Stores: 행이 아닌 거의 무한한 열로 그룹화된 셀에 데이터를 저장한다.

    4. Graph Database: 데이터를 노드와 관계로 저장한다.

확장성

  • 일반적으로 SQL은 수직으로 확장할 수 있다. 즉 더 많은 CPU, RAM 과 SSD를 추가하여 더 큰 서버로 이주하여 부하를 줄여줄 수 있다.
  • NoSQL은 수평으로 확장할 수 있다. 즉 추가 서버나 노드를 추가하여 부하를 줄여줄 수 있다

스키마

  • SQL은 데이터를 정의하고 조작하기 위해 구조화된 스키마가 필요하다. 스키마를 작성하기 위해서는 미리 데이터 구조를 정의해야 되므로 상당한 사전 준비가 필요하고, 데이터 구조를 변경해야 하는 경우에는 전체 시스팀이 중단될 수 있다

  • NoSQL은 구조화되지 않은 데이터에 대한 동적 스키마가 있으므로 다양한 방식으로 데이터를 저장한다.

결론

SQL을 사용하는 경우

SQL은 데이터가 서로 연관이 있을 때 좋은 선택입니다. 또한, 효율적이고 호완성이 좋습니다.
관계형 데이터베이스를 사용하면 대량의 정보를 쉽게 처리하고, 필요에 따라 확장하고, 데이터에 유연하게 엑세스 할 수 있습니다. 또한 데이터 무결성을 평가하는데 가장 적합니다.
Uber, Netflix 등 대형 기술 회사는 SQL를 사용합니다.

NoSQL을 사용하는 경우

NoSQL은 데이터의 빠른 가용성이 중요할 때 좋은 선택이 됩니다. 예를 들어 회사가 확장하여 데이터 구조가 바뀌거나, 데이터의 종류가 방대해 데이터 구조를 정할 수 없는 경우입니다.
NoSQL은 많은 양 또는 계속 변화하는 데이터 즉 대량의 비정형 데이터를 다를 때에 적합니다.
또한 확장성이 가장 중요한 이점인데, SQL과 달리 수평적 확장이 가능하게 때문에 여러 서버로 분산하여 방대한 양의 데이터를 처리할 수 있습니다.
광범위한 데이터를 다루는 Google, Netflix는 NoSQL를 사용합니다.


출처 및 인용
SQL vs. NoSQL Databases: What's the Difference?
SQL vs NoSQL: 5 Critical Differences
Difference between SQL and NoSQL

profile
...

0개의 댓글