第9章数据库完整性技术方案.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第9章 数据库完整性  关键词:     完整性  约束  默认值  规则  绑定规则   学习要求:     本章主要阐述了SQL?Server?2000提供的数据完整性机制。并且全面地、系统地介绍了SQL?Server?2000提供的各种约束;设置默认值的方法;创建、解除和删除规则的方法。重点分析了SQL?Server?2000提供的数据完整性机制。学习和掌握本章,是对SQL?Server?2000数据库的灵活运用。 数据库的完整性:是指数据的正确性、有效性和相容性。 说明:完整性是为了防止数据库中存在不符合语义的数据,防止错误信息的输入和输出。 数据库完整性约束条件:加在数据库数据之上的语义约束条件。 完整性检查:在DBMS中检查数据是否满足完整性条件的机制。 DBMS的完整性控制机制应具有三个方面的功能: (1)定义功能:提供定义完整性约束条件的机制。 (2)检查功能:检查用户发出的操作请求是否违背了完整性约束条件。 (3)防范功能:如果发现用户的操作请求使数据违背了完整性约束条件,采取一定的动作来保证数据的完整性。 9.1 约束引言  约束分类:   ● 列级约束:只能应用在一列上。   ● 表级约束:可以应用在一个表中的多列上。   注意:数据完整性约束条件是在创建表结构的时候指定。   例:CREATE?TABLE?book?( ???????  bid?int?NOT?NULL,?????????列级约束 ???????  bname?char(8)?NOT?NULL,??列级约束 ???????  authorid?char(10)     ) 9.1.1 PRIMARY KEY约束  PRIMARY?KEY约束也称为主键约束。主键能够惟一地确定表中的每一条记录,主键不能取空值。主键约束可以保证实体的完整性。   PRIMARY?KEY约束可以在下面情况下使用:   ● 作为表定义的一部分在创建表时创建。   ● 添加到尚没有PRIMARY?KEY约束的表中(一个表只能有一个PRIMARY?KEY约束)。   ● 如果己有PRIMARY?KEY约束,则可对其进行修改或删除。   ● 主键约束格式:PRIMARY?KEY?(列名表) 例:CREATE?TABLE?department????????/*部门表*/    (??dno?int ?PRIMARY?KEY,???????????/*部门号,为主键*/     dname?char(20),???????????/*部门名*/    )   注意:当约束用于表级时,应按下列形式设置:    CONSTRAINT?constraint_name      各种约束形式    constraint_name:约束名。   例:CREATE?TABLE?sc?(       sno?char(8),       cno?char(4),       grade?int,       CONSTRAINT?pk_sc?primary?key(sno,cno)     ) 9.1.2 FOREIGN KEY 约束  FOREIGN?KEY约束也称为外键约束。主要用来维护两个表之间数据的一致性,实现表之间的参照完整性。   1、外键--如果一个关系中的属性或属性组并非该关系的关键字,但它们是另外一个关系的关键字,则称其为该关系的外关键字。      course表的tno是一个外键。   2、参照完整性规则:外键属性上的值或者取空值;或者等于它所参照的表中某个元组的主键值。   上例中:course表的tno取值:   ?空值(未给该课程指定教师)   ?非空值(必须是teacher表中某个元组的tno值)。   3、FOREIGN?KEY约束可以在下面情况下使用:   ● 作为表定义的一部分在创建表时创建。   ● 如果FOREIGN?KEY约束与另一个表(或同一表)已有的PRIMARY?KEY约束或UNIQUE约束相关联,则可向现有表添加FOREIGN?KEY约束。一个表可以有多个FOREIGN?KEY约束。 (例如:在score(sno,cno,degree)表中有两个FOREIGN?KEY约束,一个是sno,参照student表的主键sno;另一个是cno,参照course表的主键cno)。   ● 对己有的FOREIGN?KEY约束进行修改或删除。 4、外键约束格式:       FOREIGN?KEY?[(列名表)]       REFERENCE?目标表[(列名表)]       [ON?DELETE?NO?ACTION?|?CASCADE]       [ON?UPDATE?NO?ACTION?|?CASCADE]   5、删除主键所在表要考虑

文档评论(0)

富贵礼包 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档