数据保护(数据库完整性).pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据保护(数据库完整性)

第8章 数据库完整性 数据库的完整性 数据库的完整性是指数据的正确性、有效性和相容性,是为了防止数据库中存在不合语义的数据,防止错误信息的输入与输出造成无效操作或错误结果。完整性措施的防范对象是不合语义的数据。 例:性别只能是“男”或“女”,学号必须唯一。 系统提供多种强制数据完整性的机制,保证数据库中数据的质量。 数据完整性类型 根据数据完整性措施所作用的数据库对象和范围不同,可以将数据完整性进行分类。 完整性约束作用的对象: 关系(表):若干元组间,关系之间的联系的约束; 元组:元组中各个字段间的联系的约束; 列:列的类型、取值范围、精度、唯一性、为空性、默认定义、CHECK约束、主键约束、外键约束。 数据完整性约束分类: 实体(表)完整性 域(列)完整性 参照完整性(引用完整性) 用户自定义完整性 1、实体完整性 又称为行完整性。它把表中的每行都看作一个实体,要求所有行都具有唯一标识。实体完整性作用对象是列,强制表的标识符列或主键的完整性(在SQL Server中,可以通过建立PRIMARY KEY约束、UNIQUE约束、IDENTITY等措施来实施实体完整性)。 例如,对“客户信息表”,客户编号就可以作为主键,每个客户的编号能够惟一地确定该客户对应的记录信息,那么在输入数据时,则不能有相同客户编号的记录存在,通过对客户编号这一字段建立主键约束,可实现“客户信息表”的实体完整性。 2、域完整性 域完整性又称为列完整性。它要求表中指定列的数据具有正确的数据类型(通过定义数据类型)、数据格式(通过CHECK约束和规则实现)和有效的数据范围(通过FOREIGN KEY约束、 CHECK约束、NOT NULL、DEFAULT定义和规则实现)。 例如对于课程表“COURSE1”,学生的某门课程的学分应在10分以内,为了对学分这一数据项输入的数据进行限制,可以定义该表的学分字段的约束条件。 [例1] 定义“COURSE1”以及学分字段的约束条件 CREATE TABLE COURSE1 (课程号 CHAR(6) NOT NULL, 课程名 CHAR(18) NOT NULL UNIQUE, 学分 TINYINT CHECK(学分=0 and 学分=10), PRIMARY KEY(课程号)) 3、参照完整性 又称为引用完整性,它的作用对象是关系。它保证主表(被参照表)中的数据与从表(参照表)中数据的一致性。在SQL Server中,它通过主键约束PRIMARY KEY和外键FOREIGN KEY 约束、触发器等来实现。 在数据库管理系统中,保证数据库的完整性是非常重要的。参照完整性确保键值在所有表中一致。 在被参照的表中,当其主键值被其他表参照时,一般情况下该行记录既不能被删除,也不允许被改变。 4.用户自定义完整性 可以定义不属于其它完整性分类的特定业务规则,作用的对象可以是列、也可以是元组或关系。所有的完整性类型都支持用户自定义完整性,如通过CREATE TABLE 中所有列级和表级约束、存储过程和触发器等实现 8.1 约束 主键(PRIMARY KEY)约束 惟一性(UNIQUE)约束 检查(CHECK)约束 外部键(FOREIGN KEY)约束 为空性(NOT NULL)定义 8.1.1 主键约束 主键是表中的一列或一组列,它们的值可以唯一地标识表中的每一行。在创建和修改表时,可以定义主键约束。主键列的值不允许为空。 两种创建主键约束的方法 使用企业管理器创建主键约束 使用T-SQL语句创建主键约束 使用企业管理器创建主键约束 在表设计器中单击鼠标右键,在弹出的快捷菜单中选择“索引/键”,打开“属性”对话框,在该对话框中可以查看、创建、修改和删除主键,如下图。 使用T-SQL语句创建主键约束 语法(在CREATE TABLE 中加入) CONSTRAINT 主键约束名 PRIMARY KEY (列名1 [, 列名2, ... 列名n]) [例2] 使用CREATE TABLE语句创建“测试”表,同时定义“记录编号”列为主键。 CREATE TABLE 测试 (记录编号 int, 记录名称 varchar(50), CONSTRAINT PK_测试 PRIMARY KEY (记录编号) ) 8.1.2 唯一性约束 如果一个字段值不允许重复,则应当对该字段添加UNIQUE约束。与主键不同的是,在UNIQUE字段中允许出现NULL值,但为保持唯一性,最多只能出现一次NULL值。 惟一性约束可以保证除主键外的其他一

文档评论(0)

wuyoujun92 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档