728x90
1. RDB
(Relational Database) 관계형 데이터베이스
사용 예 : Oracle,MySQL,PostgreSQL 등
특징
- 2차원 데이터로 표현된다. (행/열) (데이터 저장 모델:table)
- 상호관련성을 가진 테이블의 집합으로 구성된다.
- 테이블 사이의 관계를 외래키로 나타낸다.
- 스키마 변경이 어렵다. (엄격한 데이터 구조)
- 비용이 큰 Vertical Scalable (수직적 확장)이 주로 사용되고, Horizontal scale(수평적 확장)은 어렵다.
- 사용 요금이 비싸다.
- SQL을 사용해 데이터를 질의한다.
- 데이터 update가 잦은 시스템에 사용한다.
- ACID 성질을 갖는다. ( ACID(원자성 Atomicity, 일관성 Consistency, 고립성 Isolation, 지속성 Durability)는 데이터베이스 트랜잭션의 성질을 나타낸다.)
2. NoSQL
Non-SQL 이라고도 하고, Not only SQL 의 약자라고도 한다.
관계형이 아닌 데이터 모델을 총칭하고,
도큐먼트 모델 / 키-값 모델 / 그래프 모델 / 와이드 컬럼 모델 등 다양한 데이터 모델이 있다.
사용 예: MongoDB,DynamoDB 등
특징
- 다양한 방식으로 데이터를 표현한다. (도큐먼트(몽고DB,아랑고DB),그래프(Neo4j,ArangoDB,Gremlin),키/값(빠르게 데이터에 접근할 수 있음 대표 예:redis),와이드컬럼 모델이 있다.)
- 테이블(혹은 컬렉션이나 또 다른 명칭) 사이에 딱히 명시된 제약이나 규칙이 없다.
- 데이터 중복 발생 가능의 단점이 있다.
- 스키마가 고정적이지 않고 매우 유연하다.
- Horizontal Scale(수평적 확장)이 쉽다.
- 비용이 저렴하고, 오픈소스도 많다.
- 연산이 빠르고 빅데이터 & 실시간 연산에 적합하다.
- Update가 자주 이뤄지지 않고 데이터 양이 매우 많은 경우에 사용 적합하다.
- 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 |
댓글