정의
버클리 DB(Berkeley DB)는 트랜잭션을 지원하는 임베디드형 키‑값(key‑value) 데이터베이스 관리 시스템이다. 응용 프로그램에 라이브러리 형태로 제공되어 별도의 데이터베이스 서버를 운영하지 않고도 로컬 파일에 데이터를 저장·검색할 수 있다.
개요
버클리 DB는 1991년 미국 캘리포니아 대학교 버클리(University of California, Berkeley)의 컴퓨터 과학 연구팀에 의해 처음 개발되었으며, 이후 Oracle Corporation이 인수하여 현재는 Oracle이 유지·배포한다. C 언어 API를 기본으로 제공하지만, Java, Perl, Python, PHP 등 다양한 언어용 바인딩도 제공한다. 주요 제품 라인으로는 순수 C 라이브러리 형태의 Berkeley DB, Java 전용인 Berkeley DB Java Edition, XML 데이터를 관리하는 Berkeley DB XML 등이 있다.
버클리 DB는 다음과 같은 사용 사례에 적합하다.
- 임베디드 시스템 및 모바일 기기 등 제한된 자원 환경
- 고성능 캐시, 세션 저장소, 로그 수집 등 대용량 키‑값 저장소
- 트랜잭션이 필요한 애플리케이션(ACID 보장)
어원/유래
- 버클리: 개발이 시작된 미국 캘리포니아 대학교 버클리(University of California, Berkeley) 캠퍼스명을 한글 표기한 것이다.
- DB: “Database”(데이터베이스)의 앞 글자를 따온 약어이다.
따라서 ‘버클리 DB’라는 명칭은 “버클리 대학에서 개발된 데이터베이스”라는 의미에서 유래한다.
특징
| 구분 | 내용 |
|---|---|
| 임베디드형 | 별도의 서버 프로세스 없이 응용 프로그램에 라이브러리로 통합 |
| 키‑값 저장 | 문자열, 바이트 배열, 정수 등 다양한 데이터 타입을 키와 값으로 저장 |
| 트랜잭션 | ACID(Atomicity, Consistency, Isolation, Durability)를 지원하는 복수 단계 커밋/롤백 |
| 동시성 | 다중 스레드·다중 프로세스 환경에서 다중 잠금(Multiversion Concurrency Control) 제공 |
| 복제·고가용성 | 고가용성을 위한 복제 기능(Replication) 및 클러스터링 옵션 제공 (Oracle Berkeley DB Enterprise) |
| 다양한 API | C, C++, Java, Perl, Python, Ruby, PHP 등 다수 언어 바인딩 제공 |
| 스토리지 옵션 | 메모리 기반, 디스크 기반, 하이브리드 등 여러 스토리지 모드 지원 |
| 라이선스 | 오픈소스(SSL)와 상용 라이선스 두 가지 형태 제공 |
관련 항목
- SQLite – 파일 기반 경량 관계형 데이터베이스
- Berkeley DB Java Edition – 순수 Java 구현 임베디드 키‑값 데이터베이스
- Berkeley DB XML – XML 문서 저장·검색을 위한 확장판
- Oracle NoSQL Database – Oracle이 제공하는 분산형 NoSQL 솔루션(버클리 DB 기반)
- LevelDB, RocksDB – Google, Facebook이 개발한 키‑값 저장소로 버클리 DB와 유사한 용도에서 사용
※ 본 항목은 공개된 자료와 공식 문서를 바탕으로 작성되었으며, 최신 버전 및 상세 사양은 공식 웹사이트를 참고한다.