Notice
Recent Posts
Recent Comments
Link
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Tags more
Archives
Today
Total
관리 메뉴

ultra_dev

RDB와 NOSQL 본문

Computer Science

RDB와 NOSQL

ultra_dev 2023. 4. 6. 14:59

 

RDB

:관계형 데이터베이스

사전에 엄격하게 정의된 DB schema를 요구하는 table 기반 데이터를 구조

 

행과 열을 가지는 표 형식 데이터를 저장하는 형태의 데이터 베이스

SQL을 써서 조작

 

즉, 모든 데이터를 2차원 테이블 형태로 표현

 

장점 

  • 스키마에 맞춰 데이터를 관리하기 때문에 데이터의 정합성을 보장할 수 있다.

단점

  • 시스템이 커질 수록 쿼리가 복잡해지고 성능이 저하되며 Scale-out이 어렵다(Scale-up만 가능)

ex) MySQL, PostgreSQL, 오라클

 

NoSQL

:비관계형 데이터베이스

table 형식이 아닌 비정형 데이터를 저장할 수 있도록 지원

SQL을 사용하지 않으며 MongoDB, redis가 대표적

 

RDBMS와 반대로 데이터간의 관계를 정의하지 않고, 스키마가 없어 좀 더 자유롭게 데이터를 관리할 수 있으며, 컬렉션이라는 형태로 데이터를 관리.

 

장점

  • 키마 없이 Key-Value 형태로 데이터를 관리해 자유롭게 데이터를 관리할 수 있다.
  • 데이터 분산이 용이하여 성능 향상을 위한 scale-up 뿐만아닌 scale-out 또한 가능하다.

단점 

  • 데이터 중복이 발생할 수 있고, 중복된 데이터가 변경될 경우 수정을 모든 컬렉션에서 수행해야 한다.
  • 스키마가 존재하지 않기에 명확한 데이터 구조를 보장하지 않아 데이터 구조 결정이 어려울 수 있다.

 


RDB는 엄격한 schema로 인해 데이터 중복이 없기 때문에 데이터 update가 많을 때 유리

 

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

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

 

NoSQL은 데이터 중복으로 인해 update 시 모든 컬렉션에서 수정이 필요하기 때문에 update가 적고 조회가 많을 경우 유리

 

정확한 데이터 구조를 알 수 없고 데이터가 변경/확장될 수 있는 경우 사용하는 것이 좋다. 또한 단점에서도 명확하듯, 데이터 중복이 발생할 수 있으며 중복된 데이터가 변경될 시, 모든 컬렉션에서 수정해야 하기 때문에 Update가 많이 이루어지지 않는 시스템에 좋다. Scale-out이 가능하다는 장점을 활용해 막대한 데이터를 저장해야해서 DB를 Scale-out해야 하는 시스템에 적합하다.

 

출처 : https://hyuuny.tistory.com/158

 

Comments