코딩마을방범대

RDBMS와 NoSQL의 차이점 본문

🎃 기타/상식 ❗

RDBMS와 NoSQL의 차이점

신짱구 5세 2023. 8. 29. 17:35

 

 

Database란 컴퓨터 시스템에 전자 방식으로 저장된 구조화된 정보 또는 데이터의 체계적인 집합을 의미한다.

 

DBMS(DataBase Management System)란 사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성해 주고 데이터베이스를 관리해 주는 소프트웨어를 말한다.

 

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

 

 

 


 

 

RDBMS (Relational DataBase Management System)

 

RRelational의 약자로 RDBMS는 관계형 데이터베이스 관리 시스템을 의미한다.

RDB는 관계형 데이터 모델을 기초로 두고 모든 데이터를 2차원 테이블 형태로 표현하는 데이터베이스이다.

관계형 데이터베이스(RDMBS)에서는 이러한 관계를 나타내기 위해 외래 키(foreign key)라는 것을 사용한다.

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

 

 

 


 

 

NoSQL (Not Only SQL)

 

RDBMS와는 달리 테이블 간 관계를 정의하지 않는다. (Join이 불가능하다)

데이터 일관성은 포기하되 여러 대에 데이터를 분산하여 저장하는, 수평적 확장성(Scale-out)을 쉽게 할 수 있다는 장점을 가지고 있다.

 

Key-Value Database Key와 Value의 쌍으로 저장됨
(값은 어떠한 형태의 데이터라도 담을 수 있음)
Document Database Key와 Document의 형태로 저장됨
(값이 계층적인 형태인 도큐먼트로 저장됨)
Wide Column Database 이 모델은 키에서 필드를 결정
(키는 Row(키 값)와 Column-family, Column-name을 가짐)
Graph Database Node와 Edge, Property와 함께 그래프 구조를 사용하여 데이터를 저장

 

 

 

 


 

 

 

 

 

 

RDBMS와 NoSQL의 장단점

 

  RDBMS NoSQL
장점 - 스키마에 따라 데이터를 저장하여야 하므로 명확한 데이터 구조를 보장
- 관계는 각 데이터를 중복없이 한 번만 저장할 수 있음
- 스키마가 없기 때문에 유연하며 자유로운 데이터 구조를 가질 수 있음
- 데이터 분산이 용이하며 성능 향상을 위한 Saclue-up 뿐만이 아닌 Scale-out 또한 가능
단점 - 테이블 간 관계를 맺고 있어 시스템이 커질 경우 JOIN문이 많은 복잡한 쿼리가 만들어질 수 있음
- 성능 향상을 위해서는 서버의 성능을 향상 시켜야하는 Scale-up만을 지원 (비용이 기하급수적으로 늘어날 수 있음)
- 스키마로 인해 데이터가 유연하지 못함
- 데이터 중복이 발생할 수 있으며 중복된 데이터가 변경 될 경우 수정을 모든 컬렉션에서 수행을 해야함
- 스키마가 존재하지 않기에 명확한 데이터 구조를 보장하지 않으며 데이터 구조 결정가 어려울 수 있음

 

RDBMS는 데이터 구조가 명확하며 변경 될 여지가 없으며 명확한 스키마가 중요한 경우 사용하는 것이 좋다.

또한 중복된 데이터가 없어(데이터 무결성) 변경이 용이하기 때문에 관계를 맺고 있는 데이터가 자주 변경이 이루어지는 시스템에 적합하다.

 

NoSQL은 정확한 데이터 구조를 알 수 없고 데이터가 변경/확장이 될 수 있는 경우에 사용하는 것이 좋다.

또한 단점에서도 명확하듯이 데이터 중복이 발생할 수 있으며 중복된 데이터가 변경될 시에는 모든 컬렉션에서 수정을 해야 한다.

이러한 특징들을 기반으로 Update가 많이 이루어지지 않는 시스템이 좋으며 또한 Scale-out이 가능하다는 장점을 활용해 막대한 데이터를 저장해야 해서 Database를 Scale-Out를 해야 되는 시스템에 적합하다.

 

 

 

 

 


참고사이트

[Database] RDBMS와 NoSQL의 차이점

 

 

 

SMALL

'🎃 기타 > 상식 ❗' 카테고리의 다른 글

[윈도우] 사진 텍스트 추출하기  (0) 2023.11.23
Radius란?  (0) 2023.08.31
LDAP이란  (0) 2023.08.29
컨테이너와 Docker란?  (0) 2023.08.29
Base64 인코딩이란?  (0) 2023.08.02