[Other] SQL vs NoSQL

Byron·2021년 8월 17일
0

Other

목록 보기
10/13

SQL

Structured Query Language
관계형 데이터베이스 관리 시스템(RDBMS)의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어를 뜻한다. DB를 구성하는 테이블 간의 관계가 명확한 것이 특징이다.
수직적 확장성
머신을 좀 더 좋은 것으로 업그레이드 해서 DB 서버의 성능을 업그레이드 시키는 것
(CPU, 메모리 업그레이드 등)

  • 장점

    강한 스키마. 명확하게 정의된 스키마로 데이터 무결성 보장
  • 단점

    데이터 스키마를 사전에 계획해야 하며 나중에 수정이 힘들어 데이터 구조가 덜 유연함
    관계가 복잡해지면 많은 쿼리 또한 복잡해질 수 있음
  • 어떤 목적으로 사용하기 좋은가?

    관계를 맺고 있는 데이터가 자주 변경되는 애플리케이션의 경우
    변경될 여지가 없고, 명확한 스키마가 사용자와 데이터에게 중요한 경우(금융거래 등)

NoSQL

Not Only SQL or Not SQL
비관계형 DB라고 생각하면 된다. 전통적인 관계형 데이터베이스보다 덜 제한적인 모델을 이용하는 데이터의 저장 및 검색을 위한 매커니즘을 뜻한다.
수평적 확장성
(서버 갯수만 늘리면 DB가 분산되어 Scale이 더 늘어나며, 응답 속도도 어느정도 보장이 되는 것)

  • 장점

    자유로운 스키마. 정해진 스키마가 없어서 유연함.
    언제든지 저장된 데이터를 조정하고 새로운 필드를 추가할 수 있음
    애플리케이션이 필요로 하는 형식으로 데이터가 저장되며 빠른 속도로 데이터 처리가 가능
  • 단점

    유연성이 뛰어나므로 데이터 구조가 불확실해 질 수 있음.
    데이터가 여러 컬렉션에 중복되어 있기 때문에 수정 시 모든 컬렉션에서 수행해야 함
    (SQL에서는 중복 데이터가 없으므로 한번만 수행이 가능)
  • 어떤 목적으로 사용하기 좋은가?

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

References

https://ko.wikipedia.org/wiki/SQL
https://www.youtube.com/watch?v=Q_9cFgzZr8Q
https://www.youtube.com/watch?v=CjsVx9sARDU
https://gyoogle.dev/blog/computer-science/data-base/SQL%20&%20NOSQL.html

profile
step by step

0개의 댓글