NoSQL은 전통적인 관계형 데이터베이스와 달리 유연한 데이터 저장 모델을 가지며, 저장 및 검색에 특화된 형태의 데이터 저장 모델입니다.
특징
- 데이터간 관계를 정의하지 않음
- 관계를 정의하지 않기 때문에 Join이 안됨
- 대용량 데이터 저장 가능
- 트랜잭션을 제공하지 않고, 단순한 모델을 사용하여 대량의 데이터 저장 가능
- 분산형 구조
- 고성능 머신으로 데이터를 처리하지 않고, 범용 장비를 클러스터로 묶어서 데이터를 처리하여 스케일 아웃, 장애복구 등에 용이함
- 스키마가 없음
- 데이터가 정해진 형태로 들어가는 것이 아니라 다양한 형태로 입력할 수 있음
- 로그 데이터, 비디오, 이미지 형태의 데이터도 저장 가능
CAP 이론
- NoSQL은 분산구조이기 때문에 분산 컴퓨팅 환경의 CAP특징을 가지고, 이중에서 두 가지만 만족할 수 있으면 됨
- Consistency: 일관성
- 분산 노드 중 어디에 접근해도 데이터의 값은 동일해야 함
- Availability: 가용성
- 모든 요청에 응답을 해야 함
- Partition tolerance: 분할내성
- 노드에 장애가 생겨도 동작 가능
- Consistency: 일관성
NoSQL 분류
- Key-Value Store
- Key와 Value의 쌍으로 데이터가 저장되는 가장 단순한 형태의 솔루션
- Dynamo, Redis
- Document
- JSON, XML과 같은 Document 형태로 데이터를 저장
- 트리형 구조로 데이터를 저장, 검색에 효과적
- MongoDB, CoughDB
- Column
- Key-Value 에서 발전된 형태
- 하나의 키에 여러개의 칼럼으로 데이터를 저장
- HBase, Cassandra, ScyllaDB
- Graph
- 데이터를 그래프로 표현
- 노드와 엣지로 관계를 표현
- Neo4J, OreientDB 등의 제품이 있습니다.
반응형
'개념' 카테고리의 다른 글
[개념] 유니코드 인코딩 UTF와 BOM (0) | 2019.09.17 |
---|---|
[개념] 한글 문자 인코딩 (0) | 2019.09.17 |
[개념] 메모리 누수(Memory Leak) 현상 (0) | 2019.07.02 |
[개념] 오브젝트 스토리지(Object Storage) (0) | 2019.05.08 |
[개념] 프로그래밍에서 보일러플레이트(boilerplate)의 뜻 (0) | 2019.02.27 |