RDB와 NoSQL의 차이

진조던·2022년 7월 23일

Database

목록 보기
2/3

Database, DBMS, SQL

Database: 컴퓨터 시스템에 저장된 구조화된 데이터의 체계적인 집합

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

SQL: 관계형 데이터베이스 시스템의 데이터를 관리하게 위해 설계된 특수 목적의 프로그래밍 언어


RDB

관계형 데이터 모델을 기초로 모든 데이터를 2차원 테이블 형태로 표현. 테이블이 다른 테이블과 관계를 맺고 모여있는 데이터베이스. 이 때 테이블 간의 관계를 나타내기 위해 외래키를 사용. 정해진 스키마에 따라 데이터를 저장.

장점

  • RDB는 정해진 스키마에 따라 데이터를 저장하므로 데이터 구조를 명확하게 보장
  • 각 데이터를 중복 없이 저장

단점

  • 테이블끼리 관계를 맺고 있기 때문에 큰 시스템에서 복잡한 쿼리(많은 JOIN)가 만들어질 가능성이 있다.
  • 성능 향상을 위해서 서버의 성능을 향상(scale up) 시켜야 한다. 즉, 비용이 기하급수적으로 늘어날 수 있다.
  • 정해진 스키마에 따라 데이터를 저장하므로 데이터가 유연하게 관리되기 어렵다. 즉, 스키마가 변경될 경우 번거롭다.

예시

  • MySQL, ORACLE, PostgreSQL, MariaDB, SQLite 등

NoSQL

Not Only SQL은 테이블 간의 관계를 저장하지 않는 데이터베이스. 즉, 관계형이 아닌 다른 데이터 모델을 구성한다.

  • Key-Value Database(redis)
  • Document Database(mongoDB)
  • Graph Database(neo4j)
  • Wide-column Database(cassandra)

장점

  • 스키마가 없기 때문에 자유로운 데이터 구조를 가질 수 있다. 또한 데이터가 유연하게 관리될 수 있다. 즉, 언제든지 데이터를 조정하거나 새로운 필드를 추가할 수 있다.
  • 성능 향상을 위해서 서버를 추가하거나 확장(scale out, horizontal scaling)시킬 수 있다. 물론 scale up도 가능하다.
  • 데이터 분산이 용이하다.

단점

  • 데이터 중복이 발생할 수 있다.
    * 중복된 데이터가 변경될 경우 수정을 모든 컬렉션에서 수행해야한다.
  • 스키마가 없기 때문에 데이터 구조가 명확하게 보장되지 않는다.

어떤 것을 선택할까 ?

  • RDBMS는 데이터 구조가 명확하고 변경될 여지가 없을 때. 즉, 명확한 스키마가 중요한 경우.

  • NoSQL은 정확한 데이터 구조를 알 수 없고 데이터가 변경/확장 될 수 있는 경우에 사용. 서버의 확장을 고려할 경우에도 사용.

0개의 댓글