1.1 图是什么
图数据库
说得正式一点儿,图仅仅是顶点和边的集合,或者说更简单一点儿,图就是一些节点和关联这些节点的联系(relationship)的集合。图将实体表现为节点,实体与其他实体连接的方式表现为联系。我们可以用这个通用的、富有表现力的结构来建模各种场景,从宇宙火箭的建造到道路系统,从食物的供应链及原产地追踪到人们的病历,甚至更多其他的场景。
无处不在的图
在我们了解科学、政府和商业领域的数据集广泛多样性的过程中,图起到了极大的作用。现实世界完全不同于关系型数据库背后的基于表的模型,它是丰富的且相互之间充满关联:有些部分是统一而规则的,而其他部分是特殊的、不规则的。一旦理解了图,你就会发现图无处不在。比如,Gartner定义了商业世界的5个图—社交、意向、消费、兴趣和移动,并指出运用这些图的能力是一个“可持续的竞争优势”。
就拿Twitter来说,它的数据很容易表示为一张图。在图1-1中我们可以看到由互相关注的人组成的一个小的社交网络。联系是这里建立语义上下文的关键,也就是说,Billy关注了(`
javascript
FOLLOWS
)`
Harry,反过来,Harry也关注了Billy,Ruth和Harry同样也是互相关注的,但是,尽管Ruth关注了Billy,但Billy却对他无动于衷。
当然,实际的Twitter图比图1-1要大数亿倍,但它们的工作原理是一样的。在图1-2中,我们把Ruth发布的消息也包含到图里面来。
尽管图很简单,但图1-2还是展示出了图模型的表现力。我们很容易从中看出Ruth发布了一连串的消息。通过标记为`
javascript
CURRENT
联系可以找到最新的一条消息;```javascript
PREVIOUS
系建立了消息时间线。
属性图模型
在讨论图1-2的过程中,我们也顺便提一下一个最流行的图模型变体—属性图(property graph)(在附录A中我们会更详细地讨论其他可替代的图数据模型)。属性图具有如下特征。
它包含节点和联系。
节点上有属性(键值对)。
联系有名字和方向,并总是有一个开始节点和一个结束节点。
联系也可以有属性。
对于大部分人来说,属性图模型是直观且容易理解的。不过简单归简单,使用图将有价值的见解融入到数据中的大多数场景却都可以用属性图来描述。
本文仅用于学习和交流目的,不代表异步社区观点。非商业转载请注明作译者、出处,并保留本文的原始链接。