使用Asset数据库进行资产主数据建模
上一节,我们介绍了如何读写Asset数据库中的数据。本小节,我们就深入探索图数据库最独特的功能 - 关系的表达和基于图数据库的数据建模。
定义领域对象之间的关系
关系型数据库缺乏关系的直观表达
我们使用关系型数据存储、管理数据已经有几十年的时间了,但是,关系型数据库缺乏关系的直观表达方式。在最初,关系型数据库被设计成规则的表结构,这是表示实体的结构,并没有关系的直观表达方式。为了解决这个问题,关系型数据库用外键关联和连接表来表示关系。但是,连接表并不能较好的反映现实世界的特征。例如,我们生活在一个相互连接的世界中,社交网络就是一个典型的相互连接的例子。在社交网络中,只有“人”这一种对象,再就是,“朋友关系”这一种关系。如果,我们要用关系型数据库存储社交网络中的每个人和他、她相关好友的信息。那么,我们必须两张表,一张为“人”的实体表,另一张为“朋友关系”的连接表。如果,我们想查询“谁是小明和小赵共同的朋友”这种在社交网络中非常常见的查询,在关系型数据库中就会产生连接查询的噩梦。因为随着数据量的增大,连接查询的性能会成指数级的下降。
图数据库拥抱关系
在图数据库中,关系被认为和实体同等重要的一等公民,这种关系的直观表达和关系型数据库中的关系表完全是两种方式。通过定义对象的属性和相互关系,图数据库能够使我们用更加贴近现实世界的方式表达我们要处理的问题。同时,图数据库对于对象和对象之间关系的遍历有着特殊的优化。那么,上面提到的“