您的位置: 首页 > 技术文档 > 网络编程 > GraphDatabase在关系数据库中的实现
异步编程与响应式框架 回到列表 享受Android应用程序的Java技术盛宴
 GraphDatabase在关系数据库中的实现

作者:runner.mei 时间: 2010-09-15 文档类型:转载 来自:博客园

第 1 页 GraphDatabase在关系数据库中的实现 [1]
第 2 页 GraphDatabase在关系数据库中的实现 [2]
第 3 页 GraphDatabase在关系数据库中的实现 [3]
第 4 页 GraphDatabase在关系数据库中的实现 [4]
第 5 页 GraphDatabase在关系数据库中的实现 [5]
第 6 页 GraphDatabase在关系数据库中的实现 [6]
第 7 页 GraphDatabase在关系数据库中的实现 [7]
第 8 页 GraphDatabase在关系数据库中的实现 [8]

1.前言

而另一方面程序员期望的面向对象型数据库,却还远不成熟,迟迟未能出现一件像样的产品,原因各种各样,但最大的问题可能是难度太大,其实面向对象型数据库差不多伴随面向对象语言的发展,在很早就已经出现了.但它有太多的晦涩和局限之处,有兴趣大家可以去研究一下,但是它在第二轮数据库大战中输给了关系数据库

传统的关系型数据库作为数据存储的首选工具地位在短期内无法撼动。以这种数据库为基础发展起来的工具非常之多,历史也非常久远。而且关系数据库也尝试加入一些面向对象的特性,如音频、图像等新数据类型、自定义数据类型以及重载运算符等等。而Postgresql在面向对象方面更进一步,加入了如继承等特性, 一般称之为ORDBMS。

在RDBMS的使用者也从另一面方尝试解决RDBMS与应用之间的一些模式映射匹配问题,近几年出现了ORM技术,为RDBMS与面向对象语言之间减少了一些隔壑,虽然并没有从根本上解决问题,但作了一些很好的尝试,也获得了广泛的应用.但使用ORM技术,通过 Hibernate(或其他 ORM 工具)访问RDBMS,映射问题也无法彻底解决,它们只会转移到配置文件。而且,有以下问题。

1. 如果您想要创建一个分层良好的继承模型,将它映射到表或一组表无疑会是失败之举。若用违背常规形式的方式来换取查询的性能,就会将 DBA 与开发人员在某种程度上对立起来。面向对象中的继承也不能过于频繁的使用,而且不易于使用.例如你不可能让所有的实体类继承于同一个类.

2. 关系不作为实体出现, 实体之间的关系简化为依赖这一种.无法为实体之间的关系建立一个分层良好的继承模型,而有时关系很重要,如网络故障分析中网络对象之间的关系显得至关重要.

与此同时,还出现了一些专用某个领域的数据库如CMDB和GeoDatabase。像CMDB,它将实体之间的关系提高到了与实体同等的地位,并提供了一个图查询的方法。可惜它并没有作为一个通用的数据库出现,它甚至不是真的作为一个数据库存在,而只是对CMDB用户来说像一个数据库而已.

我在网络中找到一种与CMDB很类似的数据库,名为GraphDatabase,其中的代表是Neo4j,可惜它不是免费的。而只能用于java语言。更为重要的是它们都是自已实现了一个存储系统,不能与RDBMS共存,可实际情况中,RDBMS是主流我们根本不可能抛弃它,因此我想基于RDBMS开发一个GraphDatabase数据库。它作为一个RMDBS的前端运行。

2.设想

我设想的GraphDatabase数据库并不想做成万能的,仅仅处理已有的RDBMS+ORM遇到的一些问题,在此我对这个数据库做了一些设想:

1. 很好的支持继承,让面向对象语言更方便的映射。但它并不是面向对象数据库。

2. 将关系提升至与实体同等的地位,并提供完整的图查询操作。

3. 鉴于RDBMS的垄断地位,它应该能与RDBMS良好的集成,基于它开发,也就是说本数据库的数据模型能够简单地映射到RDBMS,它们之间有一个简单的映射机制。

4. 数据库中的信息主要通过如下3个基本的构建块表示:

a) 条目(Item, 又叫做vertex)——从概念上来说,这类似于对象实例,拥有唯一的ID,并包含0个或多个以上的属性组(attributeGroup)。

b) 关系(relationship,又叫做edge)——它连接了两个Item,此外还具有方向和类型(RelationshipType),它实际上是条目(Item)的一个子类。

c) 属性组(attributeGroup) ——它是一组 key/Value对的集合。Item与Relationship都有零到多个attributeGroup。

鉴于第3个需求,我们必须基于RDBMS 上来开发,做一个数据库的前端,它可以嵌入在其他应用程序中,也可以独立运行。

出处:博客园
责任编辑:bluehearts

上一页 下一页 GraphDatabase在关系数据库中的实现 [2]

◎进入论坛网络编程版块参加讨论

热门搜索:CSS Fireworks 设计比赛 网页制作 web标准 用户体验 UE photoshop Dreamweaver Studio8 Flash 手绘 CG
站点最新 站点最新列表
周大福“敬•自然”设计大赛开启
国际体验设计大会7月将在京举行
中国国防科技信息中心标志征集
云计算如何让安全问题可控
云计算是多数企业唯一拥抱互联网的机会
阿里行云
云手机年终巨献,送礼标配299起
阿里巴巴CTO王坚的"云和互联网观"
1499元买真八核 云OS双蛋大促
首届COCO桌面手机主题设计大赛
栏目最新 栏目最新列表
浅谈JavaScript编程语言的编码规范
如何在illustrator中绘制台历
Ps简单绘制一个可爱的铅笔图标
数据同步算法研究
用ps作简单的作品展示页面
CSS定位机制之一:普通流
25个最佳最闪亮的Eclipse开发项目
Illustrator中制作针线缝制文字效果
Photoshop制作印刷凹凸字体
VS2010中创建自定义SQL Rule
>> 分页 首页 前页 后页 尾页 页次:1/81个记录/页 转到 页 共8个记录 分享按钮

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
网站可用性测试及优化指南
《写给大家看的色彩书1》
《跟我去香港》
众妙之门—网站UI 设计之道
《Flex 4.0 RIA开发宝典》
《赢在设计》
犀利开发—jQuery内核详解与实践
作品集 更多内容

杂⑦杂⑧ Gold NORMANA V2