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中有多种键约束类型,包括 -
主键约束 - 主键约束是数据库中每个记录的唯一标识符。它确保每个数据库条目都包含一个唯一的值 - 或一对值 - 作为其识别方法,并且该值不能为null。
外键约束 - 引用另一个表中主键的外键约束。它确保一个表中的一列或一组列的值与另一个表中的主键列相对应。
唯一约束 - 在数据库中,唯一约束确保列或列组中的任何两个值都不相同。
实体完整性约束
数据库管理系统使用实体完整性约束 (EIC) 来强制执行规则,这些规则确保表的PrimaryKey是唯一的并且不是null。EIC旨在阻止创建重复或不完整的条目,从而维护数据库中数据的一致性和完整性。
在关系数据库中,表中的每个条目都由一个或多个称为主键的字段唯一标识。EIC保证每个行的主键值都是唯一的,并且不是null。例如,考虑“Employees”表,它具有“EmployeeID”和“Name”列。该表的PrimaryKey是“EmployeeID”列。此表上的EIC将确保每行的“EmployeeID”值都是唯一的并且不是null。
如果您尝试插入具有重复或null“EmployeeID”的条目,数据库管理系统将拒绝插入并生成错误。这确保了表中信息是正确且一致的。
EIC是数据库设计的重要组成部分,有助于确保数据库中包含的数据的准确性和可靠性。
引用完整性约束
为了维护表之间关系的一致性和完整性,数据库管理系统将应用引用完整性约束 (RIC)。RIC通过防止创建不存在条目的链接或通过删除在其他表中具有相关条目的记录来确保数据库中的数据始终保持一致。
在关系数据库中,通过使用外键创建表之间的链接。一个表中的一列或一组列用作外键来引用另一个表的主键。RIC确保没有引用错误,并且这些关系是有效的。
例如,考虑“Orders”和“Customers”表。在“Customers”数据库中的PrimaryKey列对应于在“Orders”数据集中作为外键的“CustomerID”列。此关系上的RIC要求“Orders”数据库中“CustomerID”列中的每个值都存在于“Customers”表的主键列中。
如果尝试将记录插入到“Orders”表中,而该记录具有不存在的“CustomerID”值,则数据库管理系统将拒绝插入并通知用户错误。
类似地,如果删除“Customers”表中的记录并且链接的记录存在于“Orders”表中,则数据库管理系统将阻止删除或级联删除,以确保引用完整性。
总的来说,RIC是数据库设计的重要组成部分,有助于确保数据库中包含的信息在一段时间内保持准确和一致。
元组唯一性约束
数据库管理系统使用称为元组唯一性约束 (TUC) 的约束来确保表中的每个条目或元组都是唯一的。与仅对特定列或列组强制执行唯一性的实体完整性约束 (EIC) 不同,TUC对整行或元组强制执行唯一性。
因此,TUC确保表中没有两行在每列中具有相同的值。即使各个列值不是唯一的,这在必须避免创建重复条目时也很有用。
例如,考虑“Sales”表,它具有“TransactionID”、“Date”、“CustomerID”和“Amount”列。即使各个列值可以重复,此表上的TUC也将确保没有两行在所有四个列中具有相同的值。
如果尝试插入一行,并且该行的四个列中的每个列的值都与现有条目相同,则数据库管理系统将拒绝插入并生成错误。这确保了表中数据的唯一性和准确性。
TUC可能是确保数据正确性和一致性的有用工具,尤其是在必须避免创建重复条目时。
结论
约束是每个数据库管理系统的重要组成部分,并且有效地理解如何应用约束对于创建和维护高质量的数据库至关重要。DBMS中的约束将规则应用于数据,以确保数据的正确性、一致性和完整性。它们阻止添加、修改或删除不正确或不完整的数据。一些不同类型的约束包括EIC、RIC、TUC和检查约束。约束对于构建和维护允许进行明智的业务决策的高质量数据库至关重要。