一、数据库完整性概述 1.数据库的完整性: ①数据库的完整性是指数据的正确性和相容性 ②数据库完整性是防止不合语义或不正确的数据进入数据库 ③完整性体现了是否真实地反映现实世界 例: 学生的年龄必须是整数,取值范围为14-29; 学生的性别只能是男或女; 学生的学号一定是的; 学生所在的系必须是学校开设的系; 2.DBMS维护数据库完整性的机制: ①提供定义完整性约束条件的机制 DBMS应提供定义数据库完整性约束条件,并把它们存入数据库中。 ②提供完整性检查的方法 检查数据是否满足完整性约束条件的机制称为完整性 数据库完整性是确保数据库中数据准确、一致且符合业务逻辑的关键特性。在SQL Server 2008中,数据库完整性通过多种约束和机制得以实现,这些约束主要包括实体完整性、参照完整性和用户定义的完整性。 1. 实体完整性:实体完整性确保数据库表中的主键字段具有唯一值,不允许NULL值。主键是表中的标识符,它保证了每条记录的唯一性。例如,学生的学号作为主键,必须是唯一的,不能有重复。 2. 参照完整性:参照完整性规定了一个表中的外键字段与另一个表的主键字段之间的关系。这确保了数据的一致性,防止了无效的引用。比如,学生表中的系ID应指向学校开设的系表中的有效ID,不允许引用不存在的系。 3. 用户定义的完整性:这是为了满足特定业务需求而设置的额外约束,如限制字段的取值范围、类型等。例如,学生的年龄字段可以设置为整数,且取值范围限定在14至29之间,性别字段只能是“男”或“女”。 SQL Server 2008提供了定义和检查完整性约束的机制: - 定义完整性约束条件:用户可以通过ALTER TABLE或CREATE TABLE语句添加CONSTRAINT子句来定义完整性约束,如NOT NULL、UNIQUE、PRIMARY KEY、FOREIGN KEY和CHECK等。 - 完整性检查:在数据插入、更新或删除时,系统会自动执行完整性检查。如果违反了约束条件,操作将被拒绝,从而保护了数据的正确性。 违约处理是当数据操作违反完整性约束时,DBMS采取的策略。可能的动作包括回滚操作、级联更新关联数据或其他预定义的行为。 缺省(默认值)和规则是另外两种实现数据完整性的方法: - 缺省值:允许为列提供默认值,当用户在插入数据时未指定值,系统会自动填充默认值。创建默认值对象并绑定到列上,可以通过CREATE DEFAULT和sp_bindefault存储过程完成。删除默认值时,需先解绑,然后使用DROP DEFAULT语句。 - 规则:规则用于限制列或用户自定义数据类型的输入值范围,是独立的数据库对象。创建规则并绑定到列上,可以确保输入的数据满足特定条件。规则通过CREATE RULE语句创建,使用sp_bindrule存储过程绑定,解除绑定使用sp_unbindrule,删除则使用DROP RULE。 虽然缺省和规则在某些场景下有用,但它们不是ANSI SQL标准,且使用约束通常更为推荐,因为约束提供了更好的性能和更广泛的兼容性。在SQL Server 2008中,优先考虑使用NOT NULL、CHECK和FOREIGN KEY等标准约束来实现完整性控制。
- 粉丝: 6
- 资源: 918
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助