[TIL][Database][2024-01-05] RDBMS 와 NoSQL

2024. 1. 6. 03:02TIL/Database

 

 

기술면접 대비 질문들을 훑어보던 중..

'NoSQL과 RDBMS의 특징과 차이점에 대해 장단점을 들어 설명하시오' 라는 질문을 마주하게 되었다.

정신없고 타이트한 부트캠프 과정 중 분명히 배웠던 부분인데 가물가물하다.

 

이런 게 한두 개가 아니라는 게 문제..

 

따라서 이번 기회에 다시 공부하고 정리를 해보려고 한다.

한 번에 익히지 못한다면 익힐 때까지 공부해야지.

 

 

 

 

RDBMS 란?

 

Relational Database Management System, 즉 관계형 데이터베이스 관리 시스템이다.

관계형 데이터베이스를 생성하고 수정 및 삭제 관리할 수 있는 소프트웨어라고 정리할 수 있겠다.

RDBMS에서는 관계를 나타내기 위해 외래 키(foreign key)를 사용하고,

테이블 간의 관계에서 외래 키를 이용해 테이블 간 join이 가능하다는 게 가장 큰 특징이다.

 

 

 

RDBMS의 특징

 

  • 반드시 Schema 규격에 맞춰야 한다.
  • SQL(Structured Query Language)라는 정교한 query를 통해 데이터를 다룬다.

 

 

 

RDBMS의 장단점

 

  • 장점
    1. 반드시 Schema 규격에 따라 데이터를 저장해야 하므로 데이터의 정확성을 보장한다.
    2. 관계는 각 데이터를 중복없이 한 번만 저장할 수 있기 때문에 데이터의 일관성과 무결성을 보장한다.
    3. 데이터의 분류, 정렬, 탐색 속도가 비교적 빠르다.
  • 단점
    1. 확장이 어려울 수 있다.(수직 확장만 가능)
    2. 반드시 Schema 규격에 맞춰야 하므로 유연하지 못하다.
    3. 성능을 향상시키기 위해서는 장비가 좋아야 한다는 특징이 있어 비용이 증가한다.

 

 

 

 

NoSQL (Not Only SQL)

 

NoSQL에서는 테이블 간 관계를 정의하지 않는다.

RDBMS의 한계를 극복하기 위해 개발된 다양한 형태의 데이터베이스이다.

따라서 대용량 데이터를 처리하는 성능이 뛰어나고 수평 확장에 의해 서버 확장이 용이하다.

또한 비규격화를 통해 key-value형태의 값 등도 저장 가능하다는 특징이 있다.

 

 

 

NoSQL의 장단점

 

  • 장점
    1. 스키마가 없기 때문에 유연하고 자유로운 데이터 구조를 가질 수 있다.
    2. 데이터의 분산이 용이하고 수직 확장뿐만이 아닌 수평 확장이 가능하다
  • 단점
    1. 데이터의 중복이 발생할 수 있다.
    2. 스키마가 없기 때문에 데이터의 정확성을 보장받기 힘들다.
    3. key-value형태의 데이터의 경우 key값에 대한 입, 출력만 지원한다.