关系数据库拥有40多年的发展历史,从理论到实践有着一整套成熟体系。在历史上,关系数据库曾经取代了层次数据库和网状数据库;成功吸收容纳了面向对象数据库和XML数据库,成为现今数据管理的主流数据库产品。商业数据库包括Oracle、DB2和SQL Server等,开源数据库包括PostgreSQL和MySQL等。因此基于历史上的成功经验,人们容易想到使用关系数据库存储知识图谱。基于关系数据库的存储方案是目前知识图谱采用的一种主要存储方法。本小节将按照时间发展顺序简要介绍各种基于关系表的知识图谱存储结构,包括三元组表、水平表、属性表、垂直划分、六重索引和DB2RDF。
如下图所示,下面以摘自DBpedia 数据集的RDF数据作为知识图谱进行讲解和举例。该知识图谱描述了IBM公司及其创始人 Charles Flint和Google 公司及其创始人Larry Page的一些属性和联系。对于其他格式的知识图谱,这些存储方案同样适用。
三元组表
三元组表是将知识图谱存储到关系数据库的最简单、最直接的办法,就是在关系数据库中建立一张具有3列的表,该表的模式为:三元组表(主语,谓语,宾语),将知识图谱中的每条三元组存储为三元组表中的一行记录。下表是上图中知识图谱对应的三元组表,由于一共有21行,限于篇幅仅列出了前5行。