技术开发 频道

Java开发者调查:最受欢迎的图形数据库

  2. Infinite Graph (Objectivity Inc.出品)

  InfiniteGraph 是一款由Objectivity公司推出的图形类数据库,该公司还推出过一款同名的对象类数据库。免费许可版本只能支持最高100万节点及边线总数。InfiniteGraph需要作为服务项目加以安装,这与以MySQL为代表的传统数据库颇为相似。InfiniteGraph借鉴了Objectivity/DB中的面向对象概念,因此其中的每一个节点及边线都算作一个对象。尤其是:

  ·所有节点类都将扩展BaseVertex基本类;

  ·所有边线类都将扩展BaseEdge基本类。

  在 http://wiki.infinitegraph.com/w/index.php?title=Tutorial:_Hello_Graph!中所显示的展示页面中,假设人是一个节点类、而会议算作为边线类。以下是将一条边线加入到两个节点之间的代码:

  Person john = new Person("John", "Hello ");

  helloGraphDB.addVertex(john);

  Person dana
= new Person("Dana", "Database!");

  helloGraphDB.addVertex(dana);

  Meeting meeting1
= new Meeting("NY", "Graph");

 

图形数据库:Infinite Graph
▲图三

  InfiniteGraph还提供了一套可视化工具用以查看数据。由上述代码所生成的边线将如图三所示呈现出可视化效果。相比Neo4J在图一中所展现的图形模型,InfiniteGraph能够支持同时具备多种不同类别/类的节点。请注意,Neo4J中的键-值对能够对应InfiniteGraph类中的成员变量。

  缺点:

  ·作为服务项目进行安装本身没什么问题,但配置过程完全可以更简单些。

  ·由于节点与边线都能成为用户的定义对象,因此在灵活性得到保证的情况下,作者怀疑当其处理庞大的图形结构时,性能方面将受到严重影响。请大家记住,NoSQL数据库一直以来所赢得的广泛关注都建立在其始终傲人的性能表现上。

  3. DEX (Sparsity Technologies出品)

  DEX一直被形容为一款具备高性能及优秀可扩展性的图形类数据库,这对于NoSQL应用程序来说无疑拥有相当强的吸引力。其个人评估版本最多可支持100万个节点。目前最新的版本是4.2,同时支持Java及.Net编程。请注意,旧的4.1版本只支持Java,且无法与新版本相兼容。直到文章截止之日(2011年11月24日),4.2版本的说明文档仍不完备,而且很难在网上找到新版本的使用指导。

图形数据库:Infinite Graph和DEX
▲图四

  图四展示的是DEX的架构,这也解释了为什么DEX能够达成如此优异的性能表现。本地C++ DEX核心正是关键所在。在此活动页面中,DEX项目团队演示了以其为基础的数款令人兴奋的应用程序:

  ·书目探索: DEX使用实例,存储着DBLP(即数字书目索引与图书馆项目)中的所有数据(点此进入演示);

  ·在DEX中载入Twitter: 其中包括45亿个图形;

  ·在DEX 及Query中载入维基百科: 效果明显好于Neo4J。

  DEX在安装方面同样简便,大家只需要一个JAR文件并加以运行即可。与Neo4J不同,DEX的当前数据库只是一个单独的文件。DEX Java API同样易于使用,而图形类则几乎能够提供任何一项大家需要的操作。不过DEX也并非完善无缺,相信摒除下列缺点的DEX会在发展的道路上走得更远:

  ·最好将个人版的节点上限数量提升到10亿;

  ·尽快提供完备的说明文档与更好的应用实例;

  ·在短期之内将旧版本中的图形算法移植到新版本中。

  点击此处查看另一篇文章,其中详细阐述了在DEX中部署图形的流程。

 

0