图数据库根据其数据模型主要分为三类:标记属性图(Labeled Property Graphs)、RDF 三元组存储(RDF Triplestores)和超图(Hypergraphs)。每种类型适用于不同的用例,并使用不同的结构和查询语言。了解这些差异有助于开发者为涉及关联数据的项目选择合适的工具。
标记属性图(Labeled Property Graphs)是最广泛使用的类型。在这种模型中,数据表示为节点(实体)和边(关系),两者都可以具有标签和属性。标签对节点进行分类(例如,“User” 或 “Product”),而属性存储键值属性(例如,name: "Alice"
)。关系是定向的,并且也可以拥有属性(例如,since: 2020
)。Neo4j 和 Amazon Neptune 是使用此模型的数据库示例。开发者通常更喜欢标记属性图,适用于社交网络、欺诈检测或推荐引擎等场景,其中关系及其元数据至关重要。为属性图设计的查询语言 Cypher 简化了遍历连接(例如,MATCH (u:User)-[:FRIENDS_WITH]->(f:User)
)。
RDF 三元组存储(RDF Triplestores)使用资源描述框架(RDF)模型,该模型将数据结构化为主语-谓语-宾语的三元组(例如,Alice knows Bob
)。这些三元组形成一个全局图,实现跨数据集的语义互操作性。Apache Jena 和 Stardog 等数据库支持 RDF 并使用 SPARQL 作为其查询语言。此模型常用于知识图谱、关联数据或需要集成异构数据源的场景。例如,三元组 (Book, hasAuthor, J.K._Rowling)
可以与其他三元组结合来推断关系(例如,根据作者关联推断类型)。RDF 对标准化的关注使其适用于数据共享和语义推理是优先事项的学术或企业环境。
超图(Hypergraphs)通过允许边(称为超边)连接多个节点来泛化传统图模型。这对于建模复杂关系非常有用,例如协作网络中的群体互动。例如,一条超边可以代表一个涉及三个团队成员的项目,而不是需要单独的成对连接。HyperGraphDB 等数据库实现了这种模型。虽然超图提供了灵活性,但由于查询复杂性增加和工具限制,它们不太常见。开发者可能会考虑将其用于特定用例,例如建模化学反应(其中多个反应物形成产物)或具有多节点依赖关系的事件驱动系统。然而,与属性图和 RDF 相比,其采用率有限。