RDBMS와 NoSQL의 차이

level·2023년 8월 16일

TIL

목록 보기
76/95

https://khj93.tistory.com/entry/Database-RDBMS%EC%99%80-NOSQL-%EC%B0%A8%EC%9D%B4%EC%A0%90

Databse: 컴퓨터시스템에 전자 방식으로 저장된 구조화된 정보 또는 데이터의 체계적인 집합

DBMS: 사용자와 데이터베이스 사이에서 사용자의 요구에따라 정보를 생성해주고 데이터베이스를 관리해주는 소프트웨어

SQL: 관계형 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이며 관계형 데이터베이스 관리 시스템에서의 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안됨

RDBMS:
관계형 데이터베이스 관리 시스템
테이블이 다른 테이블들과 관계를 맺고 모여있는 집합체
외래키 사용
테이블간의 관계에서 외래키를 이용한 테이블간 JOIN이 가능하다는 것이 가장 큰 특징

NoSQL:
RDB형태의 관계형 데이터베이스가 아닌 다른 형태의 데이터 저장기술
테이블간 관계를 정의하지 않음

RDBMS

  • 장점
    - 정해진 스키마에 다라 데이터를 저장하므로 명확한 데이터 구조를 보장
    • 데이터를 중복없이 한번만 저장
  • 단점
    - 테이블간 관계를 맺고있어 시스템이 커질 경우 JOIN문이 많은 복잡한 쿼리를 가질 수 있음.
    • 성능 향상을 위해선 서버의 성능을 향상시켜야하는 scale-up만을 지원해 비용이 기하급수적으로 늘어날 수 있음
    • 스키마로 인해 데이터가 유연하지 못해 후에 스키마가 변경될 경우 번거롭고 어려움

NoSQL

  • 장점
    - 스키마가 없으므로 유연하며 자유로운 데이터 구조를 가짐. 언제든 저장된 데이터를 조정하고 새로운 필드를 추가할 수 있음
    • 데이터 분산이 용이하며 성능향상을 위한 scale-up 뿐만 아닌 scale-out도 가능
  • 단점
    - 데이터 중복이 발생할 수 있으며 중복된 데이터가 변경될 경우 수정을 모든 컬렉션에서 수행해야 함
    • 스키마가 존재하지 않아 명확한 데이터 구조를 보장하지 않으며 데이터 구조 결정이 어려울 수 있음

RDBMS는 데이터 구조가 명확하며 변경될 여지가 없으며 명확한 스키마가 중요한 경우 사용.
중복된 데이터가 없어 변경이 용이해 관계를 맺고 있는 데이터가 자주 변경이 이뤄지는 시스템에 적합.

NoSQL는 정확한 데이터 구조를 알 수 없고 데이터가 변경/확장이 될 수 있는 경우에 사용하는 것이 좋음. 데이터 중복이 발생할 수 있으며 중복된 데이터가 변경될 시 모든 컬렉션을 수정해야하므로 update가 많이 이뤄지지 않는 시스템이 좋으며 막대한 데이터를 저장해야 해 database를 scale-out해야 하는 시스템에 적합.

1개의 댓글

comment-user-thumbnail
2023년 8월 16일

좋은 정보 얻어갑니다, 감사합니다.

답글 달기