数据库技术:从文档数据库到图数据库的探索
1. 文档数据库的数据模型
文档数据库在数据存储和查询方面有独特的数据模型,常见的有文档嵌入和文档链接两种方式。
1.1 文档嵌入
在文档嵌入模式中,“演员”数据以数组形式嵌套在“电影”文档内。这种模式的优点显著,它允许在一次操作中获取一部电影及其所有演员的信息,避免了在应用代码中执行连接操作。然而,该模式也存在明显问题,“演员”数据会在多个文档中重复出现。在复杂设计中,如果需要更改“演员”的某些属性,可能会引发问题和数据不一致。而且,虽然一部电影中的演员数量相对较少,但在其他应用场景中,若嵌入文档的成员数量无限制增加,由于单个 JSON 文档的大小通常有限制(如 MongoDB 中为 64MB),也会产生问题。
1.2 文档链接
为解决文档嵌入的问题,数据库设计者可能会选择使用文档标识符来链接多个文档,类似于关系数据库通过外键关联行。例如,在“电影”文档中嵌入演员 ID 数组,用于定位出演该电影的演员。还有一种类似关系型第三范式的文档链接设计,通过链接文档将电影与演员关联起来。尽管这种设计对于文档数据库来说有些不自然,但对于某些工作负载,它能在性能和可维护性之间取得较好的平衡。
与关系数据库相比,文档数据库的数据建模确定性较低,没有类似第三范式这样定义“正确”模型的标准。而且,关系数据库的建模主要由待存储的数据性质驱动,而文档数据库中要执行的查询性质更为重要。
2. 早期 JSON 数据库
2.1 CouchDB
CouchDB 是首个著名的基于 JSON 的数据库系统,由 Damien Katz 创建
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



