DBMS 中的约束
在 DBMS(数据库管理系统)中,约束是施加于数据库表的准则或限制,用于维护数据的完整性、正确性和一致性。约束可用于强制跨表数据链接、验证数据唯一性以及阻止错误数据的插入。数据库需要约束来确保其可靠性和高质量。
DBMS 的约束有哪些?
在 DBMS 中,约束是指对数据或数据处理施加的限制。这表明只有特定类型的数据可以输入数据库,或者只能对数据库中的数据执行特定类型的操作。
约束可以保证数据库管理系统 (DBMS) 中的数据准确性。
通过约束可以保证以下内容
数据准确性 − 约束可以保证数据的准确性,确保只有真实的数据才能输入数据库。例如,限制可能会阻止用户在只接受正数的字段中输入负值。
数据一致性 − 使用约束可以维护数据库中数据的一致性。这些约束可以确保一个表中的主键值紧跟在另一个表中的外键值之后。
数据完整性 − 约束可以确保数据库中数据的准确性和完整性。例如,约束可以阻止用户将空值输入到需要空值的字段中。
DBMS 中的约束类型
域约束
键约束
实体完整性约束
引用完整性约束
元组唯一性约束
域约束
在数据库表中,域约束是指定特定属性或字段可接受值的准则。这些限制可确保数据一致性,并有助于防止将不准确或不一致的数据输入数据库。以下是 DBMS 中域限制的一些实例 -
数据类型约束 - 这些限制定义了可以保存在列中的数据类型。创建为 VARCHAR 类型的列可以接受字符串值,但指定为 INTEGER 类型的列只能接受整数值。
长度约束 - 这些限制定义了可以放入列中的最大数据量。例如,定义为 VARCHAR(10) 的列只能接受最多 10 个字符长的字符串。
范围约束 - 列允许的值范围由范围约束指定。例如,指定为 DECIMAL(5,2) 的列只能接受最多 5 位小数,包括 2 位小数。
可空性约束 − 对列接受 NULL 值的能力的约束称为可空性约束。例如,具有 NOT NULL 定义的列不能接受 NULL 值。
唯一性约束 − 要求在一列或一组列中存在唯一值的约束称为唯一性约束。例如,具有 UNIQUE 定义的列中不允许存在重复值。
检查约束 − 用于检查数据的约束:这些约束概述了放入列中的任何数据必须满足的要求。例如,定义为 CHECK (age > 0) 的列只能接受大于零的年龄。
默认约束 − 默认约束:如果未提供值,默认约束会自动为列分配一个值。例如,如果未指定其他值,则 DEFAULT 值为 0 的列将以 0 作为其值。
键约束
键约束是 DBMS 用于确保数据库中数据准确性和一致性的规则。它们定义了一个表中一个或多个列中的值与其他表中的值之间的关联,从而确保数据保持正确。
DBMS 中有几种键约束类型,包括:-
主键约束 - 主键约束是数据库中每条记录的单独标识符。它保证每个数据库条目包含一个单独的、不同的值(或一对值),这些值不能为空,以此作为其标识方法。
外键约束 − 引用另一个表中的主键是外键约束。它确保一个表中的一列或一组列的值与另一个表中的主键列相对应。
唯一约束 − 在数据库中,唯一约束确保一列或一组列中不存在相同的值。
实体完整性约束
数据库管理系统使用实体完整性约束 (EIC) 来强制执行规则,以确保表的主键唯一且不为空。数据库中数据的一致性和完整性由 EIC 维护,EIC 的创建是为了防止出现重复或不完整的条目。
关系数据库中表中的每个项目都由一个或多个称为主键的字段唯一标识。参照完整性约束 (EIC) 保证每行的主键值唯一且不为空。以"Employees"表为例,该表包含"EmployeeID"和"Name"列。该表的主键是 EmployeeID 列。此表的 EIC 将确保每行的 EmployeeID 值唯一且不为空。
如果您尝试插入包含重复或 EmployeeID 为空的条目,数据库管理系统将拒绝插入并生成错误。这确保了表中信息的正确性和一致性。
参照完整性约束 (EIC) 是数据库架构的重要组成部分,有助于确保数据库中数据的准确性和可靠性。
参照完整性约束
数据库管理系统将应用参照完整性约束 (RIC) 来维护表间连接的一致性和完整性。通过阻止创建不存在的条目之间的链接,或删除与其他表中有关联记录的记录,RIC 可确保数据库中的数据始终保持一致。
通过使用外键,可以在关系数据库中创建表之间的链接。一个表中的一列或一组列可用作外键来访问另一个表的主键。RIC 确保不存在引用错误,并且这些关系合法。
以"订单"表和"客户"表为例。"客户"数据库中的主键列对应于"订单"数据集中的外键字段"客户 ID"。此连接上的 RIC 要求"Orders"数据库的"CustomerID"列中的每个值都必须存在于"Customers"表的主键列中。
如果尝试向"Orders"表中插入一条包含不存在的"CustomerID"值的记录,数据库管理系统将拒绝该插入操作并通知用户出现错误。
与此类似,如果"Customers"表中的一条记录被删除并链接到"Orders"表中的条目,数据库管理系统将禁止删除或级联删除,以确保引用完整性。
通常,RIC 是数据库架构的重要组成部分,有助于确保数据库中包含的信息始终正确且一致。
元组唯一性约束
数据库管理系统使用称为元组唯一性约束 (TUC) 的约束来确保表中的每个条目或元组都是不同的。TUC 强制要求整行或整元组具有唯一性,而实体完整性约束 (EIC) 则仅强制要求某些列或列组具有唯一性。
因此,TUC 确保表中任何两行的每个列的值都不会相同。即使各个列的值不唯一,这在必须避免生成重复条目的情况下也很有用。
例如,考虑"销售额"表,其中包含"交易 ID"、"日期"、"客户 ID"和"金额"列。即使个别列的值可能重复,此表的 TUC 也能确保所有四列中不会有两行具有相同的值。
如果尝试将四列中具有相同值的行作为现有条目输入,数据库管理系统将拒绝插入并生成错误。这保证了表中数据的唯一性和准确性。
TUC 可能是一个有用的工具,可以确保数据的整体正确性和一致性,尤其是在避免生成重复条目至关重要的情况下。
结论
约束是每个数据库管理系统的重要组成部分,创建和维护高质量的数据库需要掌握如何有效地应用它们。为了保证数据的正确性、一致性和完整性,DBMS 中的约束会将规则应用于数据。它们会阻止添加、更改或删除不正确或不完整的数据。 EIC、RIC、TUC 和检查约束是几种不同类型的约束。构建和维护高质量的数据库,以便做出明智的业务决策,这些约束必不可少。

