본문 바로가기
DB

[데이터베이스] 관계형RDB 와 비관계형NOSQL 종류,특징,차이점

by dev또리 2023. 9. 10.
728x90

1. RDB

 

(Relational Database) 관계형 데이터베이스

 

사용 예 : Oracle,MySQL,PostgreSQL 등

특징

  1. 2차원 데이터로 표현된다. (행/열) (데이터 저장 모델:table)
  2. 상호관련성을 가진 테이블의 집합으로 구성된다.
  3. 테이블 사이의 관계를 외래키로 나타낸다.
  4. 스키마 변경이 어렵다. (엄격한 데이터 구조)
  5. 비용이 큰 Vertical Scalable (수직적 확장)이 주로 사용되고, Horizontal scale(수평적 확장)은 어렵다.
  6. 사용 요금이 비싸다.
  7. SQL을 사용해 데이터를 질의한다.
  8. 데이터 update가 잦은 시스템에 사용한다.
  9. ACID 성질을 갖는다. ( ACID(원자성 Atomicity, 일관성 Consistency, 고립성 Isolation, 지속성 Durability)는 데이터베이스 트랜잭션의 성질을 나타낸다.)

 

 

 

2. NoSQL

 

Non-SQL 이라고도 하고, Not only SQL 의 약자라고도 한다.

관계형이 아닌 데이터 모델을 총칭하고,

도큐먼트 모델 / 키-값 모델 / 그래프 모델 / 와이드 컬럼 모델 등 다양한 데이터 모델이 있다.

 

사용 예: MongoDB,DynamoDB 등

 

특징

  1. 다양한 방식으로 데이터를 표현한다. (도큐먼트(몽고DB,아랑고DB),그래프(Neo4j,ArangoDB,Gremlin),키/값(빠르게 데이터에 접근할 수 있음 대표 예:redis),와이드컬럼 모델이 있다.)
  2. 테이블(혹은 컬렉션이나 또 다른 명칭) 사이에 딱히 명시된 제약이나 규칙이 없다.
  3. 데이터 중복 발생 가능의 단점이 있다.
  4. 스키마가 고정적이지 않고 매우 유연하다.
  5. Horizontal Scale(수평적 확장)이 쉽다.
  6. 비용이 저렴하고, 오픈소스도 많다.
  7. 연산이 빠르고 빅데이터 & 실시간 연산에 적합하다.
  8. Update가 자주 이뤄지지 않고 데이터 양이 매우 많은 경우에 사용 적합하다.
  9. ACID, Transaction을 지원하지 않는다.

 

 

 

RDB의 사용?

  • RDB는 데이터 구조가 명확하여 변경될 여지가 없는 경우, 또 데이터 중복이 없으므로 데이터 update가 잦은 시스템에서 사용하면 좋다.
  • RDB 중 하나인 MySQL은 보통 관계형으로 잘 정리될 수 있는 고객 데이터나 결제 데이터 등을 다룰 때 사용한다.

 

NoSQL의 사용?

  • NoSQL은 정확한 데이터 구조가 정해지지 않은 경우, 데이터 update가 자주 이루어지지 않고, 조회가 많은 경우, 또 scale-out이 가능하므로 데이터 양이 매우 많은 경우에 사용하면 좋다.
  • NoSQL 중 하나인 MongoDB는 최종적으로 사용할 데이터를 넣어두는 용도로 많이 쓰며 안정적이다.
728x90

'DB' 카테고리의 다른 글

[MYSQL] SQL 기본 문법 정리 SELECT,FROM,WHERE  (0) 2023.12.20
[HeidiSQL] HeidiSql 이란?  (0) 2023.07.31

댓글