버클리 DB

정의
버클리 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와 유사한 용도에서 사용

※ 본 항목은 공개된 자료와 공식 문서를 바탕으로 작성되었으며, 최신 버전 및 상세 사양은 공식 웹사이트를 참고한다.

둘러보기

더 찾아볼 만한 주제