ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DB - NOSQL
    CS/DB 2021. 2. 12. 19:47

    NOSQL


    SQL

    • 관계형 데이터베이스 에서 사용되며 '구조화 된 쿼리 언어(Structured Query Language)'의 약자이다. 

    • RDBMS(관계형 데이터베이스 관리 시스템)에서 데이터를 저장, 수정, 삭제 및 검색할 수 있다.
    • 데이터는 정해진 데이터 스키마를 따라 테이블에 저장되고 관계를 통해 연결된 여러개의 테이블에 분산된다.
    • 장점: 데이터의 무결성을 보장한다. 각 데이터를 중복 없이 한번만 저장한다.
    • 단점: 데이터 스키마를 나중에 수정하기가 번거롭거나 불가능 할 수 있다. JOIN문이 많은 복잡한 쿼리가 만들어질 수 있어 성능에 문제가 생길 수 있다. 

     

    NOSQL

    • 스키마가 없고 관계가 없는 비 관계형 데이터베이스를 말한다.

    • 레코드를 문서(documents)라고 부른다.
    • 다른 구조의 데이터를 같은 컬렉션(= SQL에서의 테이블)에 추가할 수 있다.
    • 관련 데이터를 동일한 컬렉션에 넣기 때문에 조인할 필요가 없어 조인이라는 개념이 존재하지 않는다.
    • 장점: 스키마가 없어 유연하게 데이터를 저장할 수 있다. 데이터를 원하는 형식으로 저장할 수 있어 읽어오는 속도가 빠르다.
    • 단점: 데이터가 여러 컬렉션에 중복되어 있기 때문에 수정을 해야하는 경우 모든 컬랙션에서 수행해야 한다.

     

    SQL? NOSQL?

    • SQL은 데이터가 자주 변경되는 환경에서는 여러 컬렉션을 수정해야 하는 NOSQL에 비해 SQL이 더 적절하다.
    • 명확한 스키마가 중요한 환경에서는 SQL이 더 적절하다.
    • 정확한 데이터 구조를 알 수 없거나 변경/확장 될 가능성이 있는 경우 NOSQL이 적절하다.
    • 읽기는 자주 처리하지만, 자주 변경되지 않는 경우 NOSQL이 적절하다.
    • DB를 수평으로 확장해야 하는 경우(막대한 양의 데이터를 다뤄야 하는 경우) NOSQL이 적절하다.

     

    reference

    siyoon210.tistory.com/130

    velog.io/@hygoogi/%EA%B8%B0%EC%88%A0-%EB%A9%B4%EC%A0%91-%EC%A7%88%EB%AC%B8-%EB%AA%A8%EC%9D%8C#%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%B2%A0%EC%9D%B4%EC%8A%A4

    github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Database#%EA%B5%90%EC%B0%A9%EC%83%81%ED%83%9C

    'CS > DB' 카테고리의 다른 글

    DB - KEY  (0) 2021.02.12
    DB - 파티셔닝과 샤딩  (0) 2021.02.12
    DB - 스키마  (0) 2021.02.12
    DB - ORM  (0) 2021.02.11
    DB - 정규화  (0) 2021.02.11

    댓글

Designed by Tistory.