정의
- Apache CouchDB, NoSQL
- Cluster Of Unreliable Commodity Hardware의 약어로, 문서 기반 데이터베이스이다.
- Document NoSQL 데이터베이스 구조를 갖추고 있으며 아파치 프로젝트 중에서 유일하게 얼랭으로 구현되어 있다.
- 여기서 얼랭(Erlang)이란 범용 병렬 프로그래밍 언어
- NOSQL CAP 이론 중 AP에 해당한다(가용성+분산 혀용)
특징
- 관계형 데이터베이스와 달리 테이블에 데이터와 관계를 저장하지 않는다. 대신에 각 데이터베이스는 독립된 도큐먼트들의 모음집이 된다.
- 다중 버전 동시성 제어(MVCC)의 형태를 구현하므로 쓰기 중에 데이터베이스 파일을 잠그지 않는다. 충돌은 애플리케이션이 해결하도록 내버려 둔다.
- SQL 대신 Json을 사용하여 데이터를 저장하고, 자바스크립트를 쿼리 언어로 사용하며 API를 위해 HTTP 사용한다.
- HTTP/REST 프로토콜을 사용함으로 별도의 드라이버가 필요 없고 인터넷에 연결이 되어 있으면 HTTP를 이용하여 CouchDB를 사용한다. 단 HTTP REST만 지원한다.
- Map-Reduce 쿼리 지원을 통해서 새로운 대용량 웹 문서 처리의 가능성을 보여주지만, 쿼리 속도가 느리다.
- Map-Reduce View: 비정형 데이터를 처리하기 위해서 자바스크립트 함수를 이용하는데 여기서 자바 스크립트 함수를 보라고 하는데 Map-Reduce 모델을 사용한다.
- 멀티 마스터 복제(multi-master replication)이며 여러 머신들로 하여금 스케일 할 수 있게 함으로써 고성능 시스템을 구축할 수 있게 한다.
- CouchDB의 복제 기능은 단방향, 양방향 복제, 1:N, M:N 또한 필터나 Rule 기반의 복제도 가능하다.
- 다른 데이터베이스들처럼 ACID 속성을 갖고 있다.
- ACID: 원자성, 일관성, 고립성, 지속성
참고
https://ko.wikipedia.org/wiki/%EC%B9%B4%EC%9A%B0%EC%B9%98DB
https://ryufree.tistory.com/215
https://hub.docker.com/_/couchdb?tab=description&page=1&ordering=last_updated docker에서 CouchDB 사용하기
설치가이드
https://www.joinc.co.kr/w/Site/cloud/BigData/CouchDB/Tutorial
'OS > Database' 카테고리의 다른 글
[DBMS] NoSQL 특징 및 종류 (1731) | 2022.01.17 |
---|---|
[DBMS] Couchbase Database 기본지식 및 설치방법 (1655) | 2022.01.17 |
[DBMS] PostgreSQL 정의 및 설치방법, 보안관점 (1715) | 2021.11.25 |
[DBMS] Redis 정의 및 설치방법, 보안관점 (423) | 2021.11.10 |
[DBMS] Oracle 정의 및 특징 (426) | 2021.06.15 |