본문 바로가기
개발자 기술 면접/데이터베이스

[DB] RDBMS와 NoSQL의 차이

by se-black 2023. 12. 30.
RDBMS는 정해진 스키마가 존재하고, 데이터 테이블 간의 정보가 서로 관계성을 가지고 있는 것이 특징입니다.
또한 2차원의 행(row) 렬(column)로 테이블을 표현하는 데이터베이스입니다.
NoSQL(ex. MongoDB, Redis)은 정해진 스키마가 없다는 것이 RDBMS와의 가장 큰 차이입니다.
NoSQL은 정해진 스키마가 없어 데이터 구조 변화가 자유롭고 데이터 분산이 용이합니다. 하지만 데이터 중복이 발생하거나 데이터 변경 시에 연산이 오래 걸린다는 단점이 있습니다.

 

RDBMS(Relational DataBase Management System, 관계형 데이터베이스 관리 시스템)
  • 장점
    • 정해진 스키마에 따라 데이터를 저장해야하므로 명확한 데이터 구조를 보장받을 수 있습니다.
    • 각 테이블 간의 관계를 정의해야 하므로, 데이터의 중복이 발생하지 않습니다.
  • 단점
    • 테이블 간 관계가 정의되어 있으므로 시스템이 커질 경우, JOIN문이 많은 복잡한 퀴리가 만들어질 수 있습니다.
    • 성능 향상의 방법으로 Scale-up(기존 서버의 용량 추가)만을 지원하므로, 처리 비용이 큽니다.
    • 정해진 스키마로 인해 데이터가 유연하지 못합니다. 스키마가 변경될 경우 번거롭기 때문에, 스키마가 자주 바뀌지 않는 서비스에 사용합니다.

 

NoSQL(Not Only SQL, 비관계형 데이터베이스 관리 시스템 )
  • 장점
    • 스키마가 없기 때문에 데이터 구조가 유연하고, 자유롭게 필드를 추가할 수 있습니다.
    • 성능 향상의 방법으로 Scale-up(기존 서버의 용량 추가) / Scale-out(기존 서버와 동일한 서버를 여러 대 추가하여 부하를 분산하는 방법) 모두 사용 가능합니다.
  • 단점
    • 스키마가 존재하지 않아서, 데이터의 일관성이 존재하지 않습니다.
    • 데이터 중복이 발생할 수 있으며, 이 데이터가 변경될 경우 모든 컬렉션에서 update 해야하는 번거로움이 있습니다.

 

Cf) 스키마
데이터베이스의 구조(개체, 속성, 관계)와 제약조건에 관한 전반적인 명세를 기술한 것입니다.
즉, 개체의 특성을 나타내는 속성(Attribute)과 속성들의 집합으로 이루어진 개체(Entity), 개체 사이에 존재하는 관계(Relation)에 대한 정의와 이들이 유지해야 할 제약조건을 기술한 것입니다.
  • 개체(Entity)
    • 데이터로 표현하려고 하는 객체(여러 속성들로 구성).
    • ex) 학생, 과목
  • 속성(Attribute)
    • 개체가 갖는 속성.
    • ex) 홍길동, 이순신, 수학, 영어
  • 관계(Relation)
    • 개체와 개체 사이의 연관성.
    • ex) 학생과 과목 간의 "수강"이라는 관계를 가진다.
728x90