SQL vs NoSQL

해연·2023년 6월 13일
0

데이터베이스

목록 보기
8/14

SQL

  • 관계형 데이터베이스 관리 시스템
  • 고정되거나 정적이거나 미리 정의된 스키마를 갖고 있다.
  • 스키마를 준수하지 않은 레코드는 테이블 추가가 불가능하다.
  • 테이블 형식으로 데이터를 표시하여 테이블 기반 데이터베이스로 알려져있다.
  • 수직적 확장
  • 데이터를 정의하고 조작하기 위한 "구조화 된 쿼리언어"
  • 복잡한 쿼리에 적합하지만 계층적 데이터 저장에 대해서는 적합하지 않다.
  • 각 데이터가 중복없이 저장된다.
  • 예) MySQL, Oracle, PostgreSQL 등

NoSQL

  • 비관계형 분산형 데이터베이스
  • 동적 스키마이기 때문에 언제든지 저장된 데이터를 조정하고 새로운 필드 추가가 가능하다.
  • Key-value, documents, graph
  • 수평적 확장
  • SQL 쿼리만큼 강력하지 않기 때문에 복잡한 쿼리에 좋지 않다.
  • 비정형 쿼리 / 데이터베이스마다 다르다.
  • 계층형 데이터스토리지에 적합하다.
  • Join 개념이 존재하지 않는다.
  • 데이터 읽는 속도가 빨라진다.
  • 예) MongoDB, BigTable 등

확장

  • 수직적 확장 : 단순히 데이터베이스 서버 성능 향상 (CPU 업그레이드)
  • 수평적 확장 : 더 많은 서버 추가, 데이터베이스가 전체적으로 분산

SQL 데이터베이스 사용이 더 좋을 때

  • 관계를 맺고 있는 데이터가 자주 변경되는 경우
    • NoSQL에서는 여러 컬렉션을 모두 수정해야된다.
  • 변경될 여지가 없거나 명확한 스키마가 사용자와 데이터에게 중요한 경우

NoSQL 데이터베이스 사용이 더 좋을 때

  • 정확한 데이터 구조를 알 수 없거나 변경/확장 될 수 있는 경우
  • 읽기를 자주하고 데이터 변경이 자주 있지 않은 경우
  • 데이터베이스를 수평으로 확장해야 하는 경우(막대한 양의 데이터를 다뤄야 하는 경우)

출처
https://gyoogle.dev/blog/computer-science/data-base/SQL%20&%20NOSQL.html
https://www.javatpoint.com/sql-vs-nosql

profile
물음표를 느낌표로 바꾸며 성장하는 예비 백엔드 개발자입니다.

0개의 댓글