数据库原理及应用18 数据库完整性.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文档。上传文档
查看更多
数据库原理及应用-SQL DML 数据库完整性 数据库完整性 什么是数据库完整性: 防止数据库中存在不符合语义的数据 数据的正确性和相容性 例: 学生的年龄必须是整数, 学生的性别只能是男或女; 学生的学号一定是唯一的; 学生所在的系必须是学校开设的系 数据库完整性 DBMS维护数据库完整性的措施: 1、提供定义完整性约束条件的机制。由SQL中的DDL语句来实现,其定义作为数据库模式的一部分,被存入数据字典中。 2、提供完整性检查的方法。在更新操作或事务提交时检查是否违背了完整性约束条件。 3、违约处理。若操作违背了完整性约束,则采取一定措施: 拒绝执行该操作 级连(cascade)执行其他操作 主要内容 实体完整性 参照完整性 用户定义的完整性 完整性约束命名子句 触发器 小结 实体完整性 实体完整性定义 在CREATE TABLE中用PRIMARY KEY定义 列级约束条件(码中单属性) 表级约束条件(码中单属性、多属性) 实体完整性 例1 将student表中的sno属性定义为码 CREATE TABLE student (Sno char(9) primary key, Sname char(20), Sage int) 或 CREATE TABLE student (Sno char(9), Sname char(20), Sage int, primary key(Sno)) 实体完整性 例2 将SC表中的Sno,Cno属性组定义为码 Create table sc (Sno char(9), Cno char(4), Grade smallint, Primary key(Sno,Cno)) 实体完整性 实体完整性检查和违约处理 用primary key定义了主码后,当用户程序对基本表插入或者更新主码列值时,DBMS进行下列的检查: (1)检查主码值是否唯一,若不唯一则拒绝插入或修改 (2)检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改 参照完整性 参照完整性定义 在CREATE TABLE中用FOREIGN KEY短语定义哪些列为外码,用REFERENCES短语指明这些外码参照哪些表的主码 参照完整性 例 定义SC中的完整性约束 CREATE TABLE SC (Sno char(9), Cno char(4), Grade smallint, Primary key(Sno,Cno), Foreign key(Sno) references student(Sno), Foreign key(Cno) references course(Cno)) 参照完整性 或 CREATE TABLE SC (Sno char(9) references student(Sno), Cno char(4) references course(Cno), Grade smallint, Primary key(Sno,Cno)) 参照完整性 参照完整性检查和违约处理 参照表(SC)可能会破坏完整性的操作 SC表中插入新的元组 修改SC表中元组的Sno属性值 DBMS将拒绝该操作 参照完整性 被参照表(student)的操作情况 从student表中删除元组 修改student表中某元组的Sno属性的值 DBMS可以拒绝该操作,可以级连删除更新,也可以将参照表中相应的外码值置空。 置空操作出现的情况 学生(学号,姓名,性别,专业号,年龄) 专业(专业号,专业名) 参照完整性 对违反了参照完整性的操作,系统选用默认策略,即拒绝删除,若想让系统采取其他策略,必须在建表时显式地说明 参照完整性 例:显式说明参照完整性的违约处理示例 CREATE TABLE SC (Sno char(9) not null, Cno char(4) not null, Grade smallint, Primary key(Sno,Cno), Foreign key(Sno) references student(Sno) on delete cascade on update cascade, Foreign key(Cno) references course(Cno) on delete no action on update cascade) 用户定义的完整性 针对某一具体应用的数据必须满足的语义要求 目前的RDBMS都提供了定义和检验这类完整性的机制,减轻了应用程序的负担 两类用户定义的完整性 属性上的约束条件(列级) 元组上的约束条件(表级) 属性上的约束条件 属性上的约束条件定义(create table) 列值非空(not null) 列值唯一(unique) 检查列值是否

文档评论(0)

如果.可以. + 关注
官方认证
文档贡献者

坚持分享有价值的资源!

认证主体汉中恒朱网络技术有限公司
IP属地陕西
统一社会信用代码/组织机构代码
91610726MA6YWAFG7U

1亿VIP精品文档

相关文档