SQL vs NoSQL

weffa·2022년 4월 3일
0

SQL

SQL(Structured Query Language)은 관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 프로그래밍 언어이다.

관계형 데이터베이스

키(key)와 값(value)들의 간단한 관계를 테이블화 시킨 매우 간단한 원칙의 전산정보 데이터베이스이다.

특징

  • 데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다.
    - 스키마를 준수하지 않은 레코드는 테이블에 추가할 수 없다.

  • 데이터는 관계를 통해 여러 테이블에 분산된다.
    - 하나의 테이블에서 중복없이 하나의 데이터만을 관리하기 때문에 다른 테이블에서 부정확한 데이터를 다룰 위험이 없어진다.

NoSQL

NoSQL데이터베이스는 non SQL 또는 Not only SQL로 불리는 관계형 데이터베이스 이외의 형식으로 데이터를 저장하는 데이터베이스이다.

비관계형 데이터베이스

관계형 데이터베이스 이외의 데이터 베이스로 대표적으로 Key–value store, Document store, Graph 데이터 모델로 나눌 수 있다.

특징

  • 스키마가 없다
    - 다른 구조의 데이터를 같은 컬렉션에 추가할 수 있다.

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

  • 관계를 맺고 있는 데이터가 자주 변경되는 애플리케이션의 경우
    - NoSQL에서는 여러 컬렉션을 모두 수정해야 하기 때문에 비효율적
  • 변경될 여지가 없고, 명확한 스키마가 사용자와 데이터에게 중요한 경우

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

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

참고
SQL과 NOSQL의 차이

0개의 댓글