.NET 에서 사용 가능한 Embedded DB 모음

오픈소스 DB 찾느라 해맸다. 그것도 임베디드 가능한 놈으로.


VistaDB은 완전 상용이니 쓸 맛이 안났고, SQLCE 4는 쿼리 제한이 너무 많아 사용이 꺼렸다.


그래서 결국 찾았다. 이제 오늘 그것을 알려 주겠다. 닷넷 개발자들이어. 다시 일어서서 기술을 찬양하라!


 


1. RavenDB


순수 .NET 100%로 만든 문서 기반(Document) DB. 임베디드


라이센스 : GPL (상업적 이용이 어려운 아쉬움이 있음. RavenDB 포함 안하거나 재배포 안하는 상용이라면 상관없지만.)


사이트 : http://ravendb.net/


이미 외국에서 유명세 타고있는 임베디드 DB. DB 암호화 및 압축 또한 지원된다. (근데 내장 암호화는 비용 발생)


아, 물론 이걸로 서버 돌려서 쓸 수 있도록 API도 제공하며, 그냥 임베디드로 써도 된다. 서버 돌려서 쓰면 다른 언어에서도 쓸 수 있다.


메모리 DB도 지원하여 테스트하기에 적당.


 


2. BerkeleyDB


C로 만들었으며 Java 및 .NET 등 일부 언어 API 지원. 키값(Key-Value) 형식의 DB


라이센스 : Sleepycat 라이센스 (오라클은 자사에서 공개한 오픈소스 솔루션들을 절대 상용으로 쓰는건 용납하지 않음.)


사이트 : http://www.oracle.com/technetwork/products/berkeleydb/overview/index.html


굳이 말 안해도 되겠다. 자바나 C에서 유명한 녀석이니까. 닷넷 API도 제공한다.


이거 쓰고싶으면 먼저 컴파일해야 하는 귀차니즘이 있다. 그다음은 잘 쓰면 된다.


 


3. ScimoreDB


C++로 만들고 .NET/JAVA API 제공. SQL DB


라이센스 : 프리웨어(?) (비상업이던 상업적이든 쓰는건 상관없으나 소스는 따로 판매)


사이트 : http://www.scimore.com/


SQLCE의 대안은 일단 되긴 된다. 페이징 쿼리 제공하고 MSSQL의 재귀쿼리 등을 제공하니..


일단 이녀석 SQL 기반이 MSSQL 에 쓰는 T-SQL 기반이다.


근데.. 텍스트 취합은 + 연산자 쓰면 안되고 MySQL 처럼 CONCAT 함수 써야 한다. 등등 조금 불편한 점이 있긴 있지만,


SQLCE보단 낫긴 해도 MSSQL의 대안이라고 생각한다면 큰 오산.


 


4. FireBirdDB


C++로 만들고 유명한 여러 언어 API 드라이버 제공. 물론 .NET도 포함. SQL DB다.


라이센스 : IPL/IDPL (생소하지만 한마디로 표현하자면… 맘대로 쓰셈.)


사이트 : http://www.firebirdsql.org/


지금 실무 소규모 환경용에 쓰고 있는 녀석이다. P/SQL 기반이라 오라클DB 좀 만져봤다면 어렵지 않게 접근할 수 있다.


원래 이녀석은 서버-클라이언트 기반 SQL Server-Client 인데, 임베디드도 제공한다. 쪼끔 제한사항이 있긴 해도 지장은 없다.


임베디드 DB 치고는 참 다양한기능을 제공한다. 프로시저까지도 제공하니. 단, 사용자 정의 함수는 오라클의 자바나, MSSQL의 어셈블리같은 개념인데, C++이나 델파이 API로 제공하니 조금 다가가기는 어려울 것이다. 그러니 프로시저 사용을 생활하하는게 좋다.


여태까지 소개한 DB는 한글 문서나 커뮤니티가 없으나, 다행히도 이거는 한국 커뮤니티인 볼랜드포럼에서 도움을 받을 수 있다.


게다가 구글 검색으로 한글 블로그에서 소개된 firebird와 .net 연동 글을 볼 수 있다.


 


결론 : Firebird DB를 씁시다. 문서 기반 NoSQL DB는 Raven DB도 좋습니다.


주의 : C/C++ 에서 만든 DB는 서버에서 비트수 따지니 개발환경 구성시 비트수는 잘 따질 것.

composite / 2013년 5월 20일 / 미분류
태그:, , , ,

답글 남기기

Your email address will not be published / Required fields are marked *