SQL(관계형 DB)
- 행(레코드)과 열(속성)로 구성되는 테이블 간의 관계를 사용하여 데이터를 저장하고 관리
- 스키마를 사용하여 데이터 구조를 정의
- MySQL, PostgreSQL 등
장점
- 스키마를 사용해 데이터 무결성 보장(정확성, 일관성, 유효성 유지)
- 복잡한 조인과 쿼리 처리 가능
단점
- 스키마의 변경, 유연한 데이터 모델링이 어려움
- 대체로 수직적 확장(단일 서버 성능 향상)만 가능, 수평적 확장(데이터 분산)은 힘듦
NoSQL
- 키-값 스토어(Key-Value Store):
- <key, value> 쌍으로 데이터를 저장
- 데이터 캐싱, 일시적인 속성 추적(장바구니 등), 대용량 객체(이미지, 오디오 등) 저장에 사용
- 예시: Redis, Amazon DynamoDB
- 문서형(Document Store):
- 문서(json, xml 등) 형태로 데이터를 저장
- 별도의 스키마 없이 데이터 관리
- 유연성과 확장성이 높음
- 예시: MongoDB
- 컬럼 패밀리(Column Family):
- RDB와 같이 행(Column)과 열(Row)을 사용해서 스키마를 정의
- 여러개의 Column을 Column Family 묶어 관리 가능(미리 정의되지 않아 원하는 시점에 가능)
- 대용량 데이터, 읽기와 쓰기 성능, 고가용성을 위해 설계
- 주요 예시: Apache Cassandra, HBase, ScyllaDB
- 그래프(Graph):
- 노드(Node)와 엣지(Edge)로 데이터 저장
- 복잡한 관계를 표현하고 분석하는 데 적합, 네트워크 분석이나 소셜 네트워크에서 많이 사용
- 주요 예시: Neo4j
'DB' 카테고리의 다른 글
SQL injection (1) | 2024.02.26 |
---|---|
트랜잭션(Transaction) (2) | 2024.02.24 |
인덱스(Index) (2) | 2024.02.24 |
정규화(Normalization) (2) | 2024.02.24 |
DB Key, JOIN (0) | 2024.02.15 |