[DB] SQL vs NOSQL

찬들이·2022년 10월 4일
0

컴퓨터공학

목록 보기
30/34

SQL

SQL은 RDBMS에서 데이터를 저장,수정,삭제 및 검색을 할 수 있고, 관계형 데이터베이스이다.

  • 관계형 데이터베이스의 특징
    • 데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다.
    • 데이터는 관계를 통해 여러 테이블에 분산된다.
  • 관계형 데이터베이스는 테이블마다 명확하게 정의된 구조가 있다.
  • 구조를 준수하지 않는 레코드는 테이블에 추가할 수 없다.(중복방지)

NOSQL

SQL의 정 반대로 비관계형 데이터베이스이다.

  • SQL의 레코드를 문서라고 부른다.
  • SQL과 다르게 테이블마다 명확하게 정의된 구조가 없어서, 다른 구조의 데이터를 같은 컬렉션에 추가가 가능하다.
  • SQL과 다르게 테이블에 나누어 담는 것이 아니라, 컬렉션에 담는다.

SQL vs NOSQL

대표적인 SQL에는 MYSQL이 있고, NOSQL에는 MongoDB가 있다.
SQL은 고나계를 맺고 있는 데이터가 자주 변경되거나, 명확한 스키마가 사용자와 데이터에 중요한 경우 사용하고, NOSQL은 정확한 데이터 구조를 알 수 없거나, 변경/확장 될 수 있는 경우나 데이터베이스를 수평으로 확장해야하는 경우에 사용된다.

SQL 장점

  • 명확하게 정의된 스키마, 데이터 무결성 보장

  • 관계는 각 데이터를 중복없이 한 번만 저장

    SQL 단점

  • 덜 유연하다. 데이터 스키마를 사전에 계획하고 알려야 한다.

  • 관계를 맺고 있어서 조인문이 많은 복잡한 쿼리가 만들어질 수 있다.

  • 대체로 수직적 확장만 가능하다.

    NOSQL 장점

  • 스키마가 없어서 유연하다. 언제든 저장된 데이터를 조정하고 새로운 필드 추가가 가능하다.

  • 데이터는 어플리케이션이 필요로 하는 형식으로 저장된다. 데이터 읽어오는 속도가 빨라짐

  • 수직 및 수평 확장이 가능해서 어플리케이션이 발생시키는 모든 읽기/쓰기 요청 처리가 가능하다.

    NOSQL 단점

  • 유연성으로 인해 데이터 구조 결정을 미루게 될 수 있다.

  • 데이터 중복을 계속 업데이트 해야한다.

  • 데이터가 여러 컬렉션에 중복되어 있기 때문에 수정 시 모든 컬렉션에서 수행해야 한다.

profile
Junior-Backend-Developer

0개의 댓글