NoSQL (Not only SQL)
- 비 관계형 데이터베이스
: 보다 덜 제한적인 형태의 데이터베이스
- 데이터 저장 방식
: Key-Value Store
: Wide Column Store
: Document Store
: Graph Database
- 특징
: 많은 양의 데이터를 효율적으로 처리할 수 있음
: 데이터의 분산 처리와 빠른 쓰기에 적합
: 강한 데이터의 안정성
: 특정 서버에 장애 발생시 데이터의 유실 및 서비스 중지가 없는 형태
Key-Value Store (Key-Value Database)
- 키를 고유 식별자로 하여 키와 값의 쌍으로 된 집합으로 데이터를 저장하는 방식
: 단순한 객체에서 복잡합 집합체까지 키와 값으로 활용
- 특징
: 단순성
ㆍ고유의 키를 통해 값을 가져오는 방식
ㆍ값에 대한 타입 제한이 없어 원하는 형태의 데이터 입력 가능
ㆍ값의 일부를 검색하거나 조인을 통한 복잡한 연산 불가
: 빠른 처리 속도
ㆍ단순성을 통한 빠른 연산
ㆍ메모리에서 데이터를 관리하는 방식 (캐시메모리 활용)
ㆍ주로 쇼핑몰의 장바구니 기능에서 활용
: 확장성
ㆍ부하 조절을 위해 필요한 만큼의 서버 증감 가능
- 한계
: 값을 기준으로 하는 검색의 어려움
: 범위 질의에 대한 기능 미지원 (보조 인덱스를 사용한 보완 필요)
: 활용성 있는 질의언어가 없음
- DBMS
: Redis
: Memcached
: Dynamo
: Oracle NoSQL
: Coherence
Wide Column Store (Wide Column Database)
- 행마다 키와 값을 저장할 때마다 각기 다른 스키마를 가지는 구조
: key에 따라 다른 구조의 스키마를 가짐
- 특징
: 대량의 데이터 압축에 용이
: 뛰어난 분산처리와 집계처리(sum, count, avg 등)
: 빠른 쿼리 동작 속도
: 뛰어난 확장성
- DBMS
: Cassandra
: HBase
: Google Big Table
: Vertica
Document Store (Document Database)
- XML, JSON, BSON과 같은 계층적 트리 데이터 파일을 기반으로한 데이터베이스
: 여러개의 테이블을 하나의 Document내에 모아놓은 구조
: 컬럼과 스키마가 없음
: key는 배열이 될 수 있으며 배열의 값으로 document 포함 가능
- 특징
: 한번의 조회로 필요한 모든 데이터 접근 가능
: Hadoop과 Spark와의 통합 지원
ㆍ강력한 집계기능 사용
: 저장과 검색이 매우 빠름
: 조인과 트랜잭션을 지원하지 않으며 제약조건에 대한 처리도 미지원
: 문서를 기본 저장단위로 사용하면서 내장 문서와 배열을 이용하여 복잡한 계층 구조를 하나의 레코드로 표현
- DBMS
: MongoDB
: CouchBase
: Azure Cosmos DB
: Mark Logic
: Orient DB
Graph Database
- 데이터를 노드로 표현하여 노드 사이의 관계를 엣지로 표현하는 방식
: 데이터 (Node / Vertex), 묶음 (Label), 관계 (Edge)
: 저장소 / 그래프 프로세싱 엔진 / 질의언어로 구성
- 특징
: 데이터 간의 관계 중심의 표현 및 처리
: 유연하고 유지 보수가 용이함
: 소셜 네트워크, 네트워크 다이어그램 등에서 활용
- DBMS
: Neo4j
: Blazegraph
: OrientDB
: AgensGraph
Refference
'Database > Database' 카테고리의 다른 글
데이터베이스에서 사용되는 자료구조들 (0) | 2023.04.30 |
---|---|
데이터베이스 설계 능력을 기르는 방법 (0) | 2023.04.30 |
[백엔드 개발자 로드맵 2020] DATABASE - CAP 이론 (Consistency, Availability, Partition tolerance) (0) | 2021.02.07 |
[백엔드 개발자 로드맵 2020] DATABASE - Sharding (0) | 2021.02.07 |
[백엔드 개발자 로드맵 2020] DATABASE - 리플리케이션 (Replication)과 클러스터링(Clustering) (0) | 2021.02.07 |