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作为其值。
关键约束
关键约束是数据库管理系统用于确保数据库中数据的准确性和一致性的规定。它们定义了表中一个或多个列的值与其他表中的值的关系,以确保数据保持正确。
在数据库管理系统中,有几种关键约束类型,包括 –
- 主键约束 - 主键约束是数据库中每个记录的唯一标识符。它保证每个数据库条目都包含一个单一的、不可为空的值或一对值作为其标识方法。
-
外键约束 - 对另一个表中的主键的引用是外键约束。它确保一个表中的列或一组列的值对应于另一个表中的主键列。
-
唯一约束 - 在数据库中,唯一约束确保一个列或一组列中的两个值不相同。
实体完整性约束
数据库管理系统使用实体完整性约束(EICs)来强制规则,以确保表的主键是唯一且不为空。通过创建EICs来阻止重复或不完整条目的形成,可以维护数据库中数据的一致性和完整性。
关系数据库中表中的每个项目都通过一个或多个字段(称为主键)来唯一识别。EICs保证每一行的主键值都是唯一且不为空。例如,考虑一个名为“Employees”的表,它有“EmployeeID”和“Name”两列。该表的主键是EmployeeID列。在这个表上设置一个EIC会确保每一行都有独特的EmployeeID值,并且该值不为空。
如果尝试插入一个具有重复或空的EmployeeID的条目,数据库管理系统将拒绝插入并生成错误。这确保了表中的信息是正确和一致的。
EICs是数据库架构的重要组成部分,有助于保证数据库中包含的数据的准确性和可靠性。
参照完整性约束
数据库管理系统将应用参照完整性约束(RICs),以保持表之间连接的一致性和完整性。通过防止创建不存在的条目之间的连接或删除在其他表中存在相关记录的记录,RICs确保数据库中的数据始终保持一致。
通过使用外键,在关系数据库中创建表之间的关联。一个表中的一列或一组列用作外键,以访问另一个表的主键。RICs确保没有参照错误,并确保这些关系是合法的。
以“Orders”和“Customers”表为例。在“Customers”数据库中的主键列与“Orders”数据集中的外键字段“CustomerID”对应。对这个连接的RIC要求“Orders”数据库中“CustomerID”列的每个值都存在于“Customers”表的主键列中。
如果尝试向“Orders”表中插入一个不存在的“CustomerID”值的记录,数据库管理系统将拒绝插入并通知用户错误。
类似于此,如果从“Customers”表中删除一条记录并有关联的“Orders”表中的链接条目,数据库管理系统将要么禁止删除,要么级联删除以确保参照完整性。
总的来说,RICs是数据库架构的重要组成部分,有助于确保数据库中包含的信息在整个时间内是正确和一致的。
元组唯一性约束
数据库管理系统使用称为元组唯一性约束(TUCs)的约束,以确保表中的每个条目或元组都是不同的。与实体完整性约束(EICs)只对特定列或组列强制唯一性不同,TUCs对整行或元组强制唯一性。
TUCs确保表中没有两行具有相同的每个列的值。即使各个列的值不是唯一的,这对于避免产生重复条目至关重要。
举例来说,考虑一下“Sales”表,它有“TransactionID”、“Date”、“CustomerID”和“Amount”这几列。即使每一列的值都可以重复,对于这个表,TUC将确保没有两行具有全部四列相同的值。
如果尝试插入具有每个列中相同值的行作为现有条目,数据库管理系统将拒绝插入并生成错误。这保证了表中数据的唯一性和准确性。
TUC可能对确保整体数据的正确性和一致性非常有帮助,特别是在必须避免生成重复条目时。
结论
约束是每个数据库管理系统的重要组成部分,构建和维护高质量的数据库需要掌握如何有效应用这些约束。为了保证数据的正确性、一致性和完整性,DBMS中的约束对数据应用规则。它们阻止不正确或不完整的数据被添加、更改或删除。EICs、RICs、TUCs和Check Constraints是一些不同种类的约束。构建和维护允许做出明智商业决策的高质量数据库需要约束。