飙血推荐
  • HTML教程
  • MySQL教程
  • JavaScript基础教程
  • php入门教程
  • JavaScript正则表达式运用
  • Excel函数教程
  • UEditor使用文档
  • AngularJS教程
  • ThinkPHP5.0教程

选择正确的模型:比较关系、文档和图形数据库

时间:2021-12-10  作者:匿名  

域名

目前使用的数据库模型主要有 3 种类型。在这篇文章中,了解它们的差异以及它们最适合哪些应用程序。

什么是数据库模型?数据库模型只不过是数据库开发人员选择的用于存储信息的结构。数据库模型还阐明了数据集不同部分之间的关​​系,以及可能限制读或写访问的任何限制。

单个数据库是根据设计者采用的更广泛数据模型的规则和概念设计的。开发人员经常使用这些模型为更大规模的现实世界项目战略性地设计数据库,例如:

  1. 订单管理系统 (ERP): 例如,销售建筑材料的公司的典型数据库可能安排如下:数据库中的每个客户都分配有一个或多个地址、一个或多个联系电话,以及一个默认销售人员充当客户与公司之间的联络人。采购订单存储在单独的表中,记录采购材料的种类、数量、价格以及负责订单的客户。

  2. 医疗保健相关系统 (EMR):数据库表跟踪有关每位医生的信息,例如姓名、地址、联系方式、专业领域和费用结构。另一个表可能会记录患者、他们的病史、就诊和首选医生。在第三个表中,医疗保健提供者可能会存储有关约会的信息,例如记录患者和医生的身份、约会的时间和地点以及费用。  

  3. 科学研究:  基因组和分子和细胞生物学的相关研究领域可能是科学数据库用例的好例子。这些数据库可能包含完整测序的基因组和一些部分基因组的基因目录、基因组图谱和生物体信息,以及数据库中所有生物体中所有已知基因的序列相似性数据。它还包含有关细胞中分子相互作用网络以及化合物和反应的信息。

为了理解现代软件背后的高级数据结构,我们将检查三种类型的模型:

  • 关系型

  • 文档

  • 图形

每个模型都带有一个使用它的示例公司。作为奖励,请滚动到最后阅读有关现已过时的网络模型的信息。

关系数据库模型

与关系数据库最接近的类似物是电子表格。但是,电子表格存储单个单元格或行之间的链接,而关系数据库存储数据之间的链接。

来自在线商店的订单是关系数据库模型优势的典型示例。客户有订单,订单有金额,金额有货币,等等。

这种表之间关系的好处是,当客户数据发生变化时,这些数据只需要在一个地方更新。例如,如果客户获得了新的电子邮件地址,则可以更改一行,并且该客户的所有订单都会自动与新的电子邮件地址相关联。

关系数据库适用于具有严格模型的事务数据。其他类型的数据(例如产品目录)可能会经常更改并且具有多种颜色和大小的组合,更适合不同的数据模型。

示例关系数据库模型:Hubspot

我们深入研究了 CRM 数据库模型,例如 Hubspot 或 SalesForce 使用的那种。

文档数据库模型

虽然像产品目录这样不断变化的数据模型可能不适合关系数据库,但它非常适合文档数据库。大多数这些数据库使用嵌套的键/值存储(如 JSON)来记录信息,我们将在同一伞下考虑键/值和文档数据模型。

域名

如果您熟悉 JSON,就会知道它是多么灵活。这些松散的约束扩展到文档数据库。您可以从几个项目或键开始,随着时间的推移添加到它们中,如有必要,将它们深度嵌套。

每个键指向一个包含许多值的文档。文档可以是实际文档,例如 2000 字的博客文章,也可以是数字、链接或任何内容。与 JSON 不同,大多数文档数据库都将严格键入,因此您需要指定是使用整数还是浮点数。

文档数据库的问题在于您将无法获得与关系数据库相同的保证。因此,您可能偶尔会看到重复的数据,并且一旦数据模型变大,就很难改进数据模型。很多时候,公司最终会混合使用文档和关系数据库。一些关系数据库甚至对JSON提供了很好的支持,因此您无需选择.

示例文档数据库模型:eBay

MongoDB 和 Redis 是众所周知的文档数据库。eBay 是电子商务平台的一个典型例子,它严重依赖于文档模型。下图提供了 eBay 数据库系统如何工作的粗略示例:

域名

图数据库模型

图数据库将每个对象表示为相互连接。这对于公司、社交媒体、基因组学之间的财务联系等数据以及非常适合图结构的其他类型的数据非常有用。最著名的图形数据库之一是 neo4j,它是在 2000 年代开发的。

要创建图形数据库,您必须导入数据。假设您有项目 A、B 和 C。如果 A 连接到 B,B 连接到 C,C 连接到 A,您可以像这样表示数据。

A, BB, CC, A

从此数据集创建的图形将完全连接。我们可以使用图形数据库提出诸如“我如何从 A 到 C?”之类的问题。数据库会返回类似“从 A 到 B,然后从 B 到 C”的答案。请注意,如果我们问“我如何从 C 到 A?” 数据库将简单地返回“从 C 到 A”。

这是一个抽象的例子。要想象对图形数据库的真实查询,请考虑各种社交媒体应用程序的新闻源。该应用程序必须请求与您的联系、与您的朋友的联系、您的朋友喜欢的帖子以及您自己帖子的喜欢。

示例图数据库:Facebook

域名

乍一看,Facebook 已经实现了自己的图数据库Tao。上图显示了一个简单帖子的连接有多么复杂。现在想象一个完整的新闻源。

Tao 支持几种有趣的查询模式。点查询是必不可少的 IF 语句:是否连接了一个对象。范围查询可用于查找诸如最近的帖子之类的内容。计数查询就像 LIST:它们获取与手头对象相关的所有项目。如果您需要解析社交图,这非常方便!

选择正确的模型

在本文中,我们探讨了如何使用关系型、文档型和图形数据库模型。我们研究了每个选项的工作原理以及在决定哪个选项最适合您的项目时需要考虑的因素。由于每个都有优点和缺点,因此在开始构建之前,您需要在决定要走的方向时仔细考虑。

来自档案:网络数据库模型

该网络数据库模型允许多个记录被链接到同一个所有者文件。该模型可以被认为是一棵倒置的树,其中的分支是成员信息,这些成员的所有者是根。这为设计提供了很大的灵活性,因为节点之间有多个链接。鉴于此,我们会认为数据库中的大多数节点彼此之间存在多对多关系。

网络数据库模型不再广泛使用,在 1970 年代已被关系模型所取代。您可以在上一篇博文中阅读有关 SQL 历史的更多信息。

一些使用网络数据库模型的数据库系统包括用于 HP 3000 的 IMAGE、集成数据存储、IDMS(集成数据库管理系统)和用于 OpenVMS 的 Oracle CODASYL DBMS。

湘ICP备14001474号-3  投诉建议:234161800@qq.com   部分内容来源于网络,如有侵权,请联系删除。