- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
--(完美WORD文档DOC格式,可在线免费浏览全文和下载)值得下载!
An Introduction to Database System 第五章 数据库完整性 数据库中完整性(Integrity)是指数据的正确性、有效性和相容性,防止错误的数据进入数据库。 正确性指数据的合法性,例如数值型数据中只能包含数字而不能含字母。 有效性指数据是否属于所定义的有效范围,如月份只能用1~12的正整数表示。 相容性指表示同一事实的两个数据应相同,不一致就是不相容。 区分数据的完整性和安全性 数据的完整性:保护数据以防止合法用户无意中造成的破坏。防范对象是不合语义的、不正确的数据,防止它们进入数据库。 数据的安全性:保护数据以防止非法用户故意造成的破坏。防范对象是非法用户和非法操作,防止他们对数据库数据的非法存取。 完整性控制机制 1.完整性约束条件定义机制 2.完整性检查机制 3.违约反应 完整性控制机制 1、完整性约束条件定义机制 完整性约束条件:数据模型的组成部分,约束数据库中数据的语义。 DBMS应提供定义数据库完整性约束条件,并把它们作为模式的一部分存入数据库中。 完整性控制机制 2、完整性检查机制 检查用户发出的操作请求是否违背了完整性约束条件。一般在INSERT、UPDATE、DELETE语句执行后开始检查,也可在事务提交时检查。 完整性控制机制 3、违约反应 如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。 第五章 数据库完整性 5.1 实体完整性 5.2 参照完整性 5.3 用户定义的完整性 5.4 完整性约束命名子句 5.5 域中的完整性限制 5.6 触发器 5.1 实体完整性 5.1.1 实体完整性定义 5.1.2 实体完整性检查和违约处理 5.1.1 实体完整性定义 用CREATE TABLE中的PRIMARY KEY来定义。 可定义为列级约束条件和表级约束条件 实体完整性定义(续) CREATE TABLE student (sno CHAR(8) PRIMARY KEY, sname CHAR (8) not null, ssex CHAR (2), sage SMALLINT, sdept CHAR(20) ); CREATE TABLE student (sno CHAR(8), sname CHAR(8) not null, ssex CHAR(2), sage SMALLINT, sdept CHAR(20), PRIMARY KEY(sno) ); 实体完整性定义(续) [例2] 将SC表中的sno,cno属性组定义为码。 CREATE TABLE SC (sno CHAR(8) NOT NULL, cno CHAR(4) NOT NULL, grade SMALLINT, PRIMARY KEY(sno,cno) ); 对多个属性构成的码只能定义为表级约束条件。 5.1.2 实体完整性检查和违约处理 当用PRIMARY KEY短语定义了关系的主码后,每当对表做插入或对主码列更新时,RDBMS会按实体完整性规则自动做如下检查: 检查主码值是否唯一,如果不唯一则拒绝插入或修改; 检查主码的各个属性是否为空,只要有一个不为空就拒绝插入或修改。 实体完整性检查和违约处理(续) 检查记录中主码值是否唯一的方法: 全表扫描。依次判断表中每条记录的主码值与将插入记录上的主码值(或修改的新主码值)是否相同。十分耗时。 在主码上自动建立索引(如B+树索引)。可大大提高效率。 5.2 参照完整性 5.2.1 参照完整性定义 在CREATE TABLE中用FOREIGN KEY短语来定义哪些列为外码,用REFERENCES短语指明这些外码参照哪些表的主码。 5.2 参照完整性 例如,关系SC中一个元组表示一个学生选修的某门课程的成绩,(Sno,Cno)是主码。Sno,Cno分别参照引用Student表的主码和Course表的主码 [例3]定义SC中的参照完整性 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), /*在表级定义参照完整性*/
原创力文档


文档评论(0)