您当前的位置: 首页 >  数据库

寒冰屋

暂无认证

  • 1浏览

    0关注

    2286博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

寒冰屋 发布时间:2022-05-23 18:30:00 ,浏览量:1

目录

关系数据库模型

文档数据库模型

示例文档数据库模型:eBay

图数据库模型

示例图数据库:Facebook

选择合适的型号

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

示例网络数据库模型:美国陆军

究竟什么是数据库模型?数据库模型显示了数据库的逻辑结构,包括决定如何存储和访问数据的关系和约束。

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

  1. 订单管理系统(ERP)。例如,一家销售建筑材料的公司的典型数据库可能安排如下:为数据库中的每个客户分配一个或多个地址、一个或多个联系电话,以及充当客户之间联络人的默认销售人员和公司。采购订单存储在一个单独的表中,记录了采购材料的种类、数量、价格以及负责该订单的客户。
  2. 医疗保健相关系统(EMR)。医疗保健提供者在许多不同的州设有多个办事处。许多医生为公司工作,每位医生照顾多名患者。有些医生只在一个办公室工作,而另一些医生则在不同的日子在不同的办公室工作。在这种情况下,数据库表会跟踪有关每位医生的信息,例如姓名、地址、联系方式、专业领域和费用结构。另一个表可能保存患者、他们的病史、就诊和首选医生的记录。在第三个表中,医疗保健提供者可能会存储有关预约的信息——记录患者和医生的身份、预约的时间和地点以及费用。  
  3. 科学研究。分子和细胞生物学中的基因组和相关研究领域可能是科学数据库用例的好例子。这些数据库可能包含完全测序的基因组和一些部分基因组的基因目录、基因组图谱和生物体信息,以及数据库中所有生物体中所有已知基因之间的序列相似性数据。它还包含有关细胞中分子相互作用网络以及化学化合物和反应的信息。

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

  • 关系型
  • 文档
  • 图形

每个模型都带有一个使用它的示例公司。

关系数据库模型

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

来自在线商店的订单是关系数据库模型的典型例子。客户有订单,订单有金额,金额有货币,等等。这些关系可以用实体关系图来表示,该图直观地描述了每个表如何链接到另一个表。

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

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

文档数据库模型

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

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

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

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

示例文档数据库模型:eBay

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

图数据库模型

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

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

A, B
B, C
C, A

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

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

示例图数据库:Facebook

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

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

选择合适的型号

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

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

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

网络数据库模型不再广泛使用,在1970年代已被关系模型所取代。

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

示例网络数据库模型:美国陆军

美国陆军和波音公司实施了HP 3000,并且至今仍在使用它们,尽管生命周期是2010年。Oracle的网络数据库也仍在使用和支持。查看下图并将其与基于图形的数据库的图进行比较。有什么不同?

Oracle 10g网络数据库。

https://www.codeproject.com/Articles/5318480/Choose-the-Right-Model-Comparing-Relational-Docume

关注
打赏
1665926880
查看更多评论
立即登录/注册

微信扫码登录

0.0446s