데이터베이스

RDB(관계형 데이터베이스) NoSQL(비관계형 데이터베이스) 비교

binaryyoung 2023. 2. 3. 15:25

RDB(관계형 데이터베이스)

특징

  • 관계형 데이터베이스는 여러 컬럼을 가지는 레코드를 하나의 테이블에 한다.
  • 정규화를 통해 여러 테이블에 데이터를 분산하여 저장한다.

장점

  • 데이터의 무결성을 보장한다.
  • 중복이 적은 데이터에 대해 인덱스를 통해 빠른 정렬이 가능하다.

단점

  • 초기에 생성한 스키마를 나중에 수정하기 어렵다. 
  • 데이터베이스 모델링이 완료되어야 이후 개발작업 수행이 가능하다.
  • JOIN을 통해 복잡한 쿼리를 만들어야 하는 경우가 생기고 인덱스가 있어도 인덱스가 잡힌 열에 카디널리티가 낮다면 조회 성능이 낮다.

 

NoSQL(비관계형 데이터베이스)

특징

  • 테이블을 나눌 필요없이 동일한 컬렉션에 데이터를 저장한다.
  • 정규화를 통해 여러 테이블에 데이터를 분산하여 저장한다.

장점

  • 대용량 데이터 처리를 하는데 효율적이다.
  • 관계형 데이터베이스에 비해 쓰기와 읽기 성능이 빠르다.
  • 데이터 모델링이 유연하고 복잡한 데이터 구조를 표현할 수 있다.

단점

  • 유연함으로 인해 데이터 구조 결정이 어렵다.
  • NoSQL 마다 다른 언어로 인해 이식성이 낮다.

 

RDB vs NoSQL

RDB를 사용하는 경우

  • 관계를 맺고 있는 데이터가 자주 변경된다.
  • 무결성이 보장되는 데이터 구조가 중요하다.

NoSQL을 사용하는 경우

  • 정확한 데이터 구조를 알 수 없거나, 확장 가능성이 있는 경우
  • 읽기 작업이 빈번하지만, 데이터를 자주 변경할 필요가 없는 경우(ex, 세션 정보)
  • 대용량 데이터 작업 및 수평적 확장이 필요한 경우 (ex, 검색 로그 처리)