IT/Database

Database - SQL vs noSQL

Huitopia 2021. 11. 29. 00:09
728x90

SQL vs noSQL 

SQL의 핵심적 특징

  1. 데이터는 정해진 데이터 스키마에 따라 테이블에 저장된다.
    • 데이터는 테이블 레코드로 저장되는데, 각 테이블마다 명확하게 정의된 구조가 있다.
    • 해당 구조는 필드의 이름과 데이터의 유형으로 정의된다.
    • 즉, 스키마를 준수하지 않은 레코드는 테이블에 추가할 수 없음
  2. 데이터는 관계를 통해 여러 테이블에 분산된다.
    • 데이터의 중복을 피하기 위해 '관계'를 이용
    • 하나의 테이블에서 중복 없이 하나의 데이터만을 관리하기 때문에 다른 테이블에서 부정확한 데이터를 다룰 위험이 적음

noSQL의 핵심적 특징

  1. '스키마'와 '관계'가 없다.
    • 다른 구조의 데이터를 같은 '컬렉션'에 추가 가능
    • 여러 테이블에 나누어 담지 않고, 관련 데이터를 동일한 '컬렉션'에 넣는다.
  2. 데이터가 중복되어 서로 영향을 줄 위험 있음
    • 자주 변경되지 않는 데이터일 때 noSQL을 사용하면 상당히 효율적이다.

 

SQL noSQL
명확하게 정의된 스키마, 데이터 무결성 보장 스키마가 없어 유연하나 데이터가 여러 컬렉션에 중복되어 있기 때문에 수정 시 모든 컬렉션에서 수행해야함
관계는 각 데이터를 중복없이 한 번만 저장 데이터 중복을 계속 업데이트 해야함
관계를 맺고 있어서 조인문이 많은 복잡한 쿼리 생성됨 언제든지 저장된 데이터를 조장하고 새로운 필드 추가 가능
대체로 수직적 확장 가능 수직 및 수평 확장 가능 
관계를 맺고 있는 데이터가 자주 변경되는 애플리케이션의 경우 읽기를 자주 하지만, 데이터 변경은 자주 없는 경우
변경될 여지가 없고, 명확한 스키마가 사용자와 데이터에게 중요한 경우 정확한 데이터 구조를 알 수 없거나 변경/확장 될 수 있는 경우

 

 

 

참고링크

 

SQL과 NOSQL의 차이 | 👨🏻‍💻 Tech Interview

SQL과 NOSQL의 차이 웹 앱을 개발할 때, 데이터베이스를 선택할 때 고민하게 된다. 보통 Spring에서 개발할 때는 MySQL을, Node.js에서는 MongoDB를 주로 사용했을 것이다. 하지만 그냥 단순히 프레임워크

gyoogle.dev

 

728x90