在决定项目使用哪种数据库时,查看一些不同类型数据的真实世界示例可能会有所帮助。这不仅可以帮助您决定使用哪种类型的数据库,还可以帮助您了解数据可能如何建模。
在本文中,您将看到不同类型数据库的一些示例以及可能存储在其中的数据类型。
关系型数据库,有时也称为SQL数据库(因为查询它们所使用的语言),使用表、列和行来存储数据。在表之间共有的列有助于形成数据之间的关系。
关系型数据库的一个常见用例是存储患者医疗数据。
例如,一个医疗服务提供商可能有多个诊所,他们在那里接诊患者。这将导致创建一个“诊所”表,存储有关诊所名称和地址等信息。
一个诊所可能有多个医生,这意味着诊所和医生之间存在一对一的关系。同样,诊所和患者之间也存在一对一的关系。具有一对一关系的实体通常存储在单独的表中。这意味着“医生”和“患者”将分别存储在单独的表中。这些表将具有唯一ID、地址和其他相关信息等列。
表之间的关系将通过共享的列形成。例如,“医生”表中的列将存储来自“诊所”表的officeId
值,以表示其办公地点。患者将通过doctorId
与医生关联,以及他们用于预约的诊所,通过officeId
属性。
非关系型数据库或NoSQL数据库是指不使用传统关系型/SQL数据库中表、列和行(有时称为记录)功能的数据存储。这意味着存在许多非关系型数据库类型。在本节中,我们将讨论图数据库、层次数据库、分布式数据库和文档数据库的示例。
了解更多信息,我们有一篇关于NoSQL数据库示例的文章。
图数据库使用节点来存储数据,边定义了它们之间的关系。
在图数据库中可以存储的数据的一个示例是关于电影及其制作人员的信息。节点包含有关人或电影的信息。边定义了它们之间的关系,例如某人在电影中出演、执导或制作。
这在构建电影推荐查询时很有帮助。如果一个观众看过某个演员主演的电影,他们可以看到该演员主演的其他电影或由某人执导的电影的推荐。
层次数据库以树形结构表示数据。每个“父”节点可以有多个“子”节点。没有父节点的节点被认为是根节点。
组织结构图是可以在层次数据库中轻松建模的数据的一个很好的示例。根节点将是首席执行官(CEO),他们可能有“EmployeeID”为1和“Level”值为0,因为他们是根。
然后,CEO可以有多个直接下属,例如首席技术官(CTO)、首席财务官(CFO)和首席运营官(COO)。他们也有许多直接下属。这种树结构会一直持续到没有直接下属的员工级别。
分布式数据库是指数据逻辑上相关,但存储在多个地理位置不同的数据库中的数据库。
域名系统(DNS)使用分布式数据库。世界各地的互联网用户使用Web地址,或称为URL,来访问网站和其他互联网服务。然而,在底层,这些名称实际上映射到唯一的IP地址。
名称服务器用于存储这些映射,并且在全球范围内有多个。不同的名称服务器由不同的公司拥有。然而,当在互联网上搜索时,它们都被以相同的方式访问。用户输入他们想要访问的地址,其余的由系统处理。信息是分布式的,但它们都通过一个大型数据库管理系统访问。
文档数据库将信息以文档的形式存储,通常以类似JSON的结构。它允许将相关数据存储在一个地方,而不是分布在多个表中。
与关系型数据库一样,文档数据库能够处理通用用例,这使得它们适用于许多类型的应用程序和数据。
对于医疗保健组织来说,文档数据库是一个很好的数据库,可用于存储有关办公室、医生和患者的信息。
例如,每位患者都有一个包含所有信息的单个文档,如姓名、地址、出生日期、医生、当地医疗保健办公室、以前或当前的疾病列表以及他们正在服用的任何药物。
文档模型允许将相关数据一起嵌入。通过存储一起访问的信息,可以在不进行任何昂贵的连接的情况下非常快速地检索数据——并且更容易以适应应用程序的方式塑造数据。
非关系型数据库,包括文档数据库,具有许多优点,如可扩展性、灵活性以及高可用性。[了解更多](https://mongodb.ac.cn/nosql-explained/advantages)。MongoDB Atlas 提供了文档数据库的所有优点,且可在云端使用,这意味着您的数据库将得到全面管理,高度可用,并且能够根据需求进行扩展或缩减。
如果您想尝试非关系型数据库,您现在就可以使用免费层开始使用 MongoDB Atlas。
在这篇文章中,您学习了您可能使用不同类型数据库的不同例子,并看到了在数据库中使用数据时可能呈现的数据图。
要了解更多关于数据库类型以及何时使用它们的信息,您可以阅读关于[关系型数据库与非关系型数据库的比较](https://mongodb.ac.cn/compare/relational-vs-non-relational-databases)的文章。
存在不同类型的数据库,但考虑日常生活中的数据存储示例会有所帮助。
这包括社交媒体网站如 Twitter、电影服务如 Netflix、您的医疗记录,甚至是银行。
您创建数据库的方式将取决于您想要创建的数据库类型。MongoDB 的文档数据库是通用型的,适用于大多数场景。然而,在开始项目之前,您应该始终考虑[何时使用 NoSQL 数据库](https://mongodb.ac.cn/nosql-explained/when-to-use-nosql)。
要利用云和数据库即服务模型,请使用 [MongoDB Atlas](http://cloud.mongodb.com)。甚至还有免费层,这样您可以体验产品并了解如何建模您的数据。