IT 이야기/데이터베이스

버클리 DB에 대한 간단한 소개

필넷 2010. 9. 3. 00:26
반응형

업무적인 요건때문에 요즘 버클리 DB를 이것 저것 살피고 있다.
버클리 DB에 관한 서적이 거의 없는 관계로 구글과 오라클 사이트에서 영문 자료들을 살펴보고 있는데, 정말 관심이 가고 흥미를 끄는 DB 이다.

우선 버클리 DB는 우리가 알고 있는 디스크 기반의 관계형 데이터베이스가 아니다. 메모리 기반의 데이터베이스 라이브러리 형태이다. 즉, 데이터베이스 서버가 아닌 프로세스내의 메모리 영역으로 매핑되는 라이브러리 형태이다. 따라서 임베디드 어플리케이션에서 많이 사용되고 있다.

유닉스와 윈도우 환경을 지원하고 C, C++, JAVA, TCL, C# 등의 다양한 API를 제공하고 있다. 또한 순수 JAVA로 작성된 Berkeley DB Java Edition도 별도로 있다.

설치도 어렵지 않다. 윈도우 2008서버에서 Java Edition과 AIX 유닉스에서 Berkeley DB 11gR2를 설치했는데 특별히 어려운 부분은 없다. 단지 Berkeley DB 11gR2에서 Java API를 사용하려면 버클리 DB를 설치하고 '--enable-java' 옵션으로 컴파일해야 한다.[각주:1]

환경에 따른 예제도 제공하고 있기때문에 자바 프로그래밍에 능숙한 사용자라면 버클리 DB를 이용하는데 큰 어려움이 없다.

버클리 DB는 3가지 형식의 Data Store를 제공하고 있다. 싱글 쓰레드(프로세스)에 대해서만 read/write를 지원하는 DS(Data Store), Locking mechanism 을 제공하는 CDS(Concurrent Data Store), 트랜잭션의 기본 성질인 ACID(Atomicity, Consistency, Isolation, Durability) 를 지원하는 TDS(Transaction Data Store)이다. 또한 디스크I/O를 동기(Sync)/비동기(Async) 모드로 설정할 수도 있으며 HA 시스템을 위한 분산 트랜잭션(Distributed Transaction) 및 복제(Replication)도 가능하다.

최근 JAVA API 위주로 보면서 CDS와 TDS에 대해 업무 적용 가능성을 테스트하고 있는데, 업무의 특성에 따라 잘 활용만 한다면 괜찮은 DB 솔루션인 듯 싶다. 무엇보다 오픈소스 기반이기 때문에 Oracle이나 MS SQL Server보다 비용 측면에서 상당한 이점이 있다.

  1. Berkeley DB는 바이너리 형태로 제공되는 것이 아니라 각자의 시스템에 소스를 복사한 뒤 컴파일해서 사용해야 한다. [본문으로]
반응형