关于使用Oracle Berkeley DB作为空间数据库的引擎,可以参考如下资料:
* 使用基于Key/Value 接口的场合,可以考虑Berkeley DB C版本或者Berkeley DB Java 版的产品。可以参考美国University of Virginia的叫做PRIDE的学术论文:http://www.cs.virginia.edu/~stankovic/psfiles/pride.pdf
* 使用Oracle Berkeley DB SQL产品中的R*Tree功能,具体可以参考:http://www.bdbchina.com/2010/04/bdb11gr2的r-tree功能/
更多反馈,欢迎留言。
1 背景
R-Tree是一种和BTree类似的数据结构,支持高维数据的快速检索,被广泛应用于各种空间数据中。R-Tree的一个典型的应用是从许多空间对象的信息中找出用户关心的那个。如给定一座城市各个建筑物的经纬度坐标并存储于R-Tree中,用户可以通过“查找当前位置向西五公里内的所有餐厅”,“查找会展中心方圆一公里内的所有汽车站”等方式来查询自己感兴趣的某些特定建筑。
前文我们介绍了如何编译Berkeley DB SQL(DBSQL)库并放到Android平台上使用。现在我们来介绍另一种更为彻底的使用方式。依本方法编译得到的BDB库将完全替换Android的SQLite库,我们称其为drop-in模式。在这种模式下,Android平台上所有的应用程序(包括我们自己编译的应用程序)都将链接到DBSQL库以获取更高的存储和并发性能。
本文将展示如何在Ubuntu Linux x32平台上使用完整的Android源代码来编译构建我们的全新Android系统镜像,而Android源代码包中包含了交叉编译器,因此我们不需要事先安装NDK。
阅读全文…
Berkeley DB(BDB)从新发布的版本11gR2开始支持SQL。BDB在性能上的优势详见博文”Oracle Berkeley DB 支持SQL啦”以及更多关于Oracle Berkeley DB SQL的报道。本文将介绍如何在Android上开发平台上编译并运行BDB 11gR2 SQL库(以下简称DBSQL)。
本文介绍在Linux平台上如何编译得到适用于Android的DBSQL库,依本文方法编译得到的BDB库将和Android自带的SQLite库并存,我们称其为side-by-side(并存)模式。在这种模式下,Android平台上已有的应用程序还是基于原始的SQLite库,而我们自己编译的应用程序则链接到DBSQL库以获取更高的存储和并发性能。
阅读全文…
Oracle Berkeley DB将于2010年3月底发布最新版本Oracle Berkeley DB 11g release 2,具体版本号为 11.2.5.0.xx (xx代表具体的patch版本号)。
除了对原有Oracle Berkeley DB的功能进行了一定的改进和增强(比如提升了数据压缩功能、性能优化、C/C++中系统资源自动管理功能等等),本次发布的版本中最引人瞩目的变化是我们引入了一个有用的新特性——Oracle Berkeley DB SQL,简称DBSQL (纠正:将原BDBSQL纠正为DBSQL)。这是自Berkeley DB诞生20多年来第一次支持SQL接口。这无论是对开源社区,还是对嵌入式数据库行业来说,都将是一件喜事。在此也感谢整个Oracle Berkeley DB 研发团队的努力工作和大家的不断支持。
新的版本,新增的SQL接口,值得期待。
阅读全文...
Oracle Berkeley DB 11g release 2即将发布,更多的用户可能会关心其SQL接口的一些具体衡量指标,包括性能、并发性、可扩展性以及客户反馈(包括开源社区和合作伙伴等)。下面是我目前收集到的信息,希望能对大家有用。
内部测试数据(总的指标,包括Berkeley DB以及SQL):
- 性能:
- 约以万计(10s of thousands)的Insert/Update/Delete每秒;
- 约以十万计(100s of thousands)的Select每秒;
- 约比native SQLite快3倍;
- 有些极端测试比SQLite慢,但在一个数量级别。
- 并发性
- 细粒度的锁(Page level locking),保证了更好的并行读/写;
- TPC-B测试显示,多线程的情形下(比单线程)快6-8倍;
- 支持数据库运行中的进行数据压缩(database online compact)。
- 可扩展性
- 单个数据库支持TB级别的数据量;
- 支持多节点集群。
- 数据同步
- 可以通过Oracle Mobile Server 10.3向企业端的大型Oracle数据库进行同步;
- Xcsdasd 的同步客户端。
- SQL功能集
- SQLite3 API, SQL92标准;
- ODBC,JDBC标准;
- 支持Full-Text Search 和R*Tree (Spatial,空间数据库)。
- 运行平台
- Windows Mobile, 2000, XP, 7
- Andriod
- VxWorks
- Linux, Solaris, HP/UX and virtually any *nix variant
注意:由于测试不具有代表性和平台环境等差异,这些指标仅供大家参考。
阅读全文…
数据可视化概述
这些年来,随着大量数据的产生,数据可视化(data visualization)广泛应用于科研、军事、金融、医疗等等领域。我们的生活也到处可见数据可视化的例子。比如,股票软件上显示的K线图,调查结果的柱状图、曲线图,人口分布的密度图等等等等。
那么,什么是数据可视化呢?根据维基百科的解释:Data visualization is the study of the visual representation of data, meaning “information which has been abstracted in some schematic form, including attributes or variables for the units of information”。简单来说,数据可视化就是用更加直观更加生动易懂的图形图像表现某种特定的数据集合。
这篇文章将简单介绍如何轻松利用BDB Java Edition (JE)和prefuse实现自己的数据可视化应用。
可视化工具和数据库的选择
首先我们选择prefuse作为数据可视化工具。prefuse是一个轻量级的用于可视化任意数据集(visualize the data)的java类库,它提供了多种数据可视化模式,比如柱状图、树图、饼图等等。它的优点是简单易用、可视化功能齐全。
但仅仅有可视化工具是不够的,还需要什么呢?当然还必须有存储数据的数据库。可以打个比方,数据是一栋房子,数据可视化就是我们要给房子做装修,让它更好看,那么数据库就是地基。没有地基,何来房子,更不用说装修了。那么,我们选择什么样的数据库呢。既然prefuse是java类库,而我们JE的特点是纯Java实现,性能高,footprint小等等,那么,JE绝对是一个很好的选择。
好了,现在就让我们看看JE + prefuse的威力吧。 阅读全文…
首先祝各位访客新年快乐,虎年富贵吉祥!
Oracle Berkeley DB在LinkedIn.com上的新建了一个群,供全球的相关人士(包括工程师、产品经理、客户等)共同讨论Berkeley DB的话题和业界动态。群地址:http://www.linkedin.com/groups?gid=2131985. 欢迎加入!
Oracle Berkeley DB 中国研发团队
Google 推出Android平台一年多以来,Android已经成为最受欢迎的手机操作系统之一(另外几个成熟的手机操作平台包括Symbian, iPhone/MacOS, Windows Mobile等)。目前,已经至少有12款手机使用Android平台,并且据报道将会有更多的手机采用Android平台。
Android平台内置的存储数据库(或者说存储引擎)是SQLite。但由于SQLite其自身的一些缺陷,比如非Java语言、并发读写性能不 佳、技术支持困难等等,所以我们的用户倾向于Berkeley DB。我在这里向大家推荐Berkeley DB Java Edition(简称BDB JE)。我们可以把BDB JE的优势(它除了是存Java语言实现外,还有很高的存储性能和良好的并发性支持、Oracle的开发及技术支持团队等等)充分运用到Android 平台上。众所周知,Android平台是类Java语言的,所以,BDB JE对Android平台的开发者而言是一款利器。
以下将手把手教你将BDB JE快速配置到Android平台上(本文,我们用Android在PC机上的模拟器 (avd) 作为实例平台)。
阅读全文…
众所周知,Berkeley DB是开源的,个人用户可以下载做学习、试用。但实际上,Berkeley DB是Oracle的一个产品,也是要收费的。
英文好的同学,可以读一下我们的授权申明:http://www.oracle.com/technology/software/products/berkeley-db/htdocs/licensing.html。
英文不好的同学,我在此可以稍作解释(强调:我的观点仅作参考,Oracle公司拥有最终解释权):
1. Berkeley DB产品家族三大产品(BDB,BDB-JE和BDB-XML)都是采取双license的授权模式,即开源(免费使用)和商用(付费使用)两种模式。
2. 衡量两种授权模式的一个主要区别是 – “redistribute”,意即你是否将自己的应用程序(在你的应用中使用了BDB)发布给第三方,如客户,机构,附属机构,母公司,合作者,中间商,第三方的非营利组织等。
3. 举例子来说:
- 如果是个人用户做学习研究之用,可以选择开源授权,免费;
- 如果是个人用户在BDB上做一些应用,如果你的应用是开源发布的,可以选择开源授权(但要符合BSD、GPL等开源条款);如果是闭源,需要选择商业授权;
- 如果是在公司的商用项目使用,需要选择商业授权,即付费;
如果大家再有问题,或者不确定,欢迎留言。版权保护,也是保护到每个IT从业人员。
—
附件: Oracle官方网站给出TimesTen和Berkeley DB 产品家族在美国市场参考价格(见下图)。

Berkeley DB 价格清单
关于Oracle产品的价格清单,请浏览官方网址: http://www.oracle.com/corporate/pricing/pricelists.html.
注意: 价格仅作参考,Oracle公司拥有最终解释权。
最近评论