前言
众所周知,Berkeley DB 产品家族(包括了 C语言版,Java版和XML数据库)是一套高效率的,可扩展的嵌入式数据库引擎。此处,所谓数据库引擎是指它提供了除SQL处理层以外的所有关系数据库的功能(如事务性(ACID)支持,数据存储,数据恢复等)。那么,您不禁要问,为什么Berkeley DB产品不提供对SQL的支持呢?答案很简单,它可以嵌入到您的应用代码中,在应用代码的地址空间运行,从而达到高效率。
到底有多高效?
在我自己的DELL OptiPlex 745 台式机上(Intel(R) Core(TM)2 CPU 6400, 2G memory, running Ubuntu 7.04 Server x86_64),用自己写的一个单线程的例子程序在9秒内读取了100万条记录,22秒内插入100万的记录。
从关系表的角度看,我插入数据的行定义,大致如下:
f0 INT PRIMARY KEY,
f1 STRING PRIMARY KEY,
id LONG,
one STRING,
two DOUBLE,
three STRING,
zip INT,
city STRING,
state STRING
在Berkeley DB Java 版中的定义如下:
阅读全文…
本文通过分析Berkeley DB自带的示例程序来详细阐述了使用Berkeley Db基本功能的方法。这之后还将有更多这类文章,我认为通过学习好的例子和已有代码来学习使用berkeley db是很有效的。
阅读全文…
今天偶尔翻出了大一时候使用的谭浩强《C语言程序设计习题集和上机指导》,发现里面的代码格式真的不敢恭维。原来我们就是看着这些书本来学习成长过来的,当然,他的《c语言程序设计》我觉得还很不错的,大一的时候,就是这本书带领我进入了程序设计的世界。这里我想强调的是,在学习编程的过程中,如果能阅读一些高质量的代码,那将是非常有益的。而高质量代码的一个最基本的特征,就是有非常规范的代码格式。 阅读全文…
Berkeley DB Java版直接持久层基础
概览
Berkeley DB Java 版是一套纯Java语言实现的嵌入式数据库。它提供的事务存储引擎不仅显著的减少了对象持久化开销,而且保持了对象-关系映射(ORM)解决方案的灵活性,速度和扩展性。Berkeley DB Java版3.0引入了直接持久层(DPL),旨在提供和与企业 Java Bean 3.0 (EJB3) 持久性相同好处:对象持久化时,不需要将对象转换成关系表。
更多请参见我在OTN上完整的中文翻译:http://www.oracle.com/technology/global/cn/products/berkeley-db/pdf/bdb-je-persistence-api-basics.pdf
英文原文:http://www.oracle.com/database/docs/BDB-JE-DPL-Basics-Whitepaper.pdf
Berkeley DB Java版简介
起源
加州大学伯克利分校的BSD 4.3及以前的所有版本包含了专属于AT&T Unix代码,而当时从AT&T获得源码许可证是非常地昂贵。为了不受许可证的支配,当时BSD的开发者Keith Bostic提议,BSD系统中应该有更多的非AT&T部分,以Net/1的协议发布。随后,在1991年,Keith Bostic和Margo Seltzer 以及 Mike Olson一起着手开发了Berkeley DB以替换当时的Unix下经典的数据库引擎ndbm(New Database Manager, http://en.wikipedia.org/wiki/Ndbm)。这之后Berkeley DB迅速流行起来,并促成了Sleepycat Software公司(在2006年2月时,Sleepycat Software被甲骨文收购)。 时间进入到2004年,随着Java语言的大行其道以及其对多线程机制的良好支持,Berkeley DB的开发者们为Java开源社区带来一味大餐,这便是今天的Oracle Berkeley DB Java版(下文简称为 JE)。 阅读全文…
最近评论