什么是关系型数据库 - 极悦
首页 课程 师资 教程 报名

什么是关系型数据库

  • 2022-04-25 10:07:05
  • 603次 极悦

关系数据库是一种数据库类型,它存储并提供对彼此相关的数据点的访问。关系数据库基于关系模型,这是一种在表中表示数据的直观、直接的方式。在关系数据库中,表中的每一行都是具有唯一 ID 的记录,称为键。表的列保存数据的属性,每条记录通常都有每个属性的值,便于建立数据点之间的关系。

什么是关系型数据库

关系数据库示例

这是小型企业可能用来处理其产品订单的两个表的简单示例。第一个表是客户信息表,因此每条记录都包含客户的姓名、地址、送货和账单信息、电话号码和其他联系信息。每一位信息(每个属性)都在它自己的列中,并且数据库为每一行分配一个唯一的 ID(一个键)。在第二个表(客户订单表)中,每条记录都包含下订单的客户 ID、订购的产品、数量、选择的尺寸和颜色等,但不包含客户的姓名或联系信息。

这两个表只有一个共同点:ID 列(键)。但是由于该公共列,关系数据库可以在两个表之间创建关系。然后,当公司的订单处理应用程序向数据库提交订单时,数据库可以转到客户订单表,拉取有关产品订单的正确信息,并使用该表中的客户 ID 来查找客户的计费和运输客户信息表中的信息。然后仓库可以提取正确的产品,客户可以及时收到订单,公司可以收到货款。

关系数据库的结构

关系模型意味着逻辑数据结构——数据表、视图和索引——与物理存储结构是分开的。这种分离意味着数据库管理员可以管理物理数据存储,而不会影响对该数据作为逻辑结构的访问。例如,重命名数据库文件不会重命名其中存储的表。

逻辑和物理之间的区别也适用于数据库操作,这些操作是明确定义的操作,使应用程序能够操作数据库的数据和结构。逻辑操作允许应用程序指定它需要的内容,而物理操作确定应该如何访问该数据,然后执行任务。

为了确保数据始终准确且可访问,关系数据库遵循一定的完整性规则。例如,完整性规则可以指定表中不允许重复行,以消除错误信息进入数据库的可能性。

关系模型

在数据库的早期,每个应用程序都以自己独特的结构存储数据。当开发人员想要构建应用程序来使用这些数据时,他们必须对特定的数据结构有很多了解才能找到他们需要的数据。这些数据结构效率低下、难以维护且难以优化以提供良好的应用程序性能。关系数据库模型旨在解决多个任意数据结构的问题。

关系数据模型提供了一种表示和查询任何应用程序都可以使用的数据的标准方法。从一开始,开发人员就认识到关系数据库模型的主要优势在于它对表的使用,这是一种直观、高效且灵活的存储和访问结构化信息的方式。

随着时间的推移,随着开发人员开始使用结构化查询语言 (SQL) 在数据库中编写和查询数据,关系模型的另一个优势出现了。多年来,SQL 一直被广泛用作数据库查询的语言。SQL 基于关系代数,提供了一种内部一致的数学语言,可以更轻松地提高所有数据库查询的性能。相比之下,其他方法必须定义单独的查询。

关系数据库管理系统的好处

各种类型和规模的组织都使用简单而强大的关系模型来满足各种信息需求。关系数据库用于跟踪库存、处理电子商务交易、管理大量关键任务客户信息等等。可以考虑使用关系数据库来满足数据点相互关联的任何信息需求,并且必须以安全、基于规则、一致的方式进行管理。

自 1970 年代以来,关系数据库就已经存在。今天,关系模型的优势继续使其成为最广泛接受的数据库模型。

关系模型和数据一致性

关系模型最擅长维护跨应用程序和数据库副本(称为实例)的数据一致性。例如,当客户在 ATM 上存钱,然后在手机上查看账户余额时,客户希望看到这笔存款立即反映在更新的账户余额中。关系数据库擅长这种数据一致性,确保数据库的多个实例始终拥有相同的数据。

其他类型的数据库很难与大量数据保持这种水平的及时一致性。一些最近的数据库,例如 NoSQL,只能提供“最终一致性”。在这个原则下,当数据库规模扩大或多个用户同时访问同一数据时,数据需要一段时间才能“赶上”。最终一致性对于某些用途是可以接受的,例如维护产品目录中的列表,但对于购物车交易等关键业务操作,关系数据库仍然是黄金标准。

承诺和原子性

关系数据库在非常精细的级别处理业务规则和策略,并具有关于承诺的严格策略(即永久更改数据库)。例如,考虑一个库存数据库,它跟踪始终一起使用的三个部件。当一个零件从库存中取出时,另外两个也必须取出。如果这三个部分之一不可用,则不应提取任何部分——在数据库做出任何承诺之前,所有三个部分都必须可用。一个关系数据库在知道它可以提交所有三个部分之前不会提交一个部分。这种多方面的承诺能力称为原子性。原子性是保持数据库中数据准确并确保其符合业务规则、法规和政策的关键。

ACID 属性和 RDBMS

四个关键属性定义了关系数据库事务:原子性、一致性、隔离性和持久性——通常称为 ACID。

原子性定义了构成完整数据库事务的所有元素。

一致性定义了在事务后将数据点保持在正确状态的规则。

隔离保持事务的效果在提交之前对其他人不可见,以避免混淆。

持久性确保一旦提交事务,数据更改就成为永久性的。

存储过程和关系数据库

数据访问涉及许多重复的操作。例如,从数据表中获取信息的简单查询可能需要重复数百或数千次才能产生所需的结果。这些数据访问功能需要某种类型的代码来访问数据库。应用程序开发人员不想在每个新应用程序中为这些功能编写新代码。幸运的是,关系数据库允许存储过程,即可以通过简单的应用程序调用访问的代码块。例如,单个存储过程可以为多个应用程序的用户提供一致的记录标记。存储过程还可以帮助开发人员确保应用程序中的某些数据功能以特定的方式实现。

数据库锁定和并发

当多个用户或应用程序尝试同时更改相同的数据时,数据库中可能会出现冲突。锁定和并发技术减少了冲突的可能性,同时保持了数据的完整性。

锁定可防止其他用户和应用程序在更新数据时访问数据。在某些数据库中,锁定适用于整个表,这会对应用程序性能产生负面影响。其他数据库,如 Oracle 关系数据库,在记录级别应用锁,使表中的其他记录可用,有助于确保更好的应用程序性能。

当多个用户或应用程序同时在同一个数据库上调用查询时,并发管理活动。此功能根据为数据控制定义的策略为用户和应用程序提供正确的访问权限。

选择关系数据库时要寻找什么

用于存储、管理、查询和检索存储在关系数据库中的数据的软件称为关系数据库管理系统 (RDBMS)。RDBMS 提供用户和应用程序与数据库之间的接口,以及用于管理数据存储、访问和性能的管理功能。

在选择数据库类型和关系数据库产品时,有几个因素可以指导您做出决定。您选择的 RDBMS 将取决于您的业务需求。问自己以下问题:

我们对数据准确性的要求是什么?数据存储和准确性会依赖业务逻辑吗?我们的数据是否对准确性有严格的要求(例如,财务数据和政府报告)?

我们需要可扩展性吗?要管理的数据规模是多少,其预期增长是多少?数据库模型是否需要支持镜像数据库副本(作为单独的实例)以实现可扩展性?如果是这样,它能否保持这些实例之间的数据一致性?

并发有多重要?多个用户和应用程序是否需要同时访问数据?数据库软件在保护数据的同时是否支持并发?

我们的性能和可靠性需求是什么?我们需要高性能、高可靠性的产品吗?查询响应性能有哪些要求?供应商对服务水平协议 (SLA) 或计划外停机时间的承诺是什么?

选你想看

你适合学Java吗?4大专业测评方法

代码逻辑 吸收能力 技术学习能力 综合素质

先测评确定适合在学习

在线申请免费测试名额
价值1998元实验班免费学
姓名
手机
提交