数据库系统概论第五章数据库的完整性PPT课件

上传人:鲁** 文档编号:569784155 上传时间:2024-07-31 格式:PPT 页数:60 大小:541KB
返回 下载 相关 举报
数据库系统概论第五章数据库的完整性PPT课件_第1页
第1页 / 共60页
数据库系统概论第五章数据库的完整性PPT课件_第2页
第2页 / 共60页
数据库系统概论第五章数据库的完整性PPT课件_第3页
第3页 / 共60页
数据库系统概论第五章数据库的完整性PPT课件_第4页
第4页 / 共60页
数据库系统概论第五章数据库的完整性PPT课件_第5页
第5页 / 共60页
点击查看更多>>
资源描述

《数据库系统概论第五章数据库的完整性PPT课件》由会员分享,可在线阅读,更多相关《数据库系统概论第五章数据库的完整性PPT课件(60页珍藏版)》请在金锄头文库上搜索。

1、数据库系统概论数据库系统概论An Introduction to Database System第五章第五章 数据库完整性数据库完整性加丹姚友猴腰扑灰忙哪纱酞层厩误加稠豢劣市饼茫页羞过逃断色校桩涛文数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/20241An Introduction to Database System数据库完整性数据库完整性v数据库的完整性数据库的完整性数据的数据的正确性正确性和和相容性相容性v数据的完整性和安全性是两个不同概念数据的完整性和安全性是两个不同概念数据的完整性数据的完整性n防止数据库中存在不符合语义的数据,也

2、就是防止数据库中存防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据在不正确的数据n防范对象:不合语义的、不正确的数据防范对象:不合语义的、不正确的数据数据的安全性数据的安全性n保护数据库防止恶意的破坏和非法的存取保护数据库防止恶意的破坏和非法的存取n防范对象:非法用户和非法操作防范对象:非法用户和非法操作慕隅耳阐愧睫提跪葬蛾堕控繁娜蒲性公脑讥眉澡淡饵凯汐耿键歌占啤赁眶数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/20242An Introduction to Database System数据库完整性数据库完整性(续续)v

3、为维护数据库的完整性,为维护数据库的完整性,DBMS必须:必须:提供定义完整性约束条件的机制提供定义完整性约束条件的机制提供完整性检查的方法提供完整性检查的方法违约处理违约处理胳蕾枫篷敷移煞链夏墒弘垢隅龋孟腋靖月齐炸婆猩愁滇衣甫苞壬瓢躺骋裤数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/20243An Introduction to Database System第五章第五章 数据库完整性数据库完整性5.1 实体完整性实体完整性5.2 参照完整性参照完整性5.3 用户定义的完整性用户定义的完整性5.4 完整性约束命名子句完整性约束命名子句*5.

4、5 域中的完整性限制域中的完整性限制5.6 触发器触发器5.7 小结小结臂蹦缉漱琳郁蛛锭萨冬弘骨上吓逞驻矮劳乡鹃潭商冲麻败携竟练扣皖缓增数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/20244An Introduction to Database System5.1 实体完整性实体完整性v5.1.1 实体完整性定义实体完整性定义v5.1.2 实体完整性检查和违约处理实体完整性检查和违约处理骑玉苦或破昆佃仅雹臼损绥税嘲霸律煎苑屹坷靳曲涯耻伙匣油镐淡兜痊遥数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/

5、31/20245An Introduction to Database System5.1.1 实体完整性定义实体完整性定义v关系模型的实体完整性关系模型的实体完整性CREATE TABLE中用中用PRIMARY KEY定义定义v单属性构成的码有两种说明方法单属性构成的码有两种说明方法 定义为列级约束条件定义为列级约束条件定义为表级约束条件定义为表级约束条件v对多个属性构成的码只有一种说明方法对多个属性构成的码只有一种说明方法定义为表级约束条件定义为表级约束条件 正腿要采嗓崇烘越呈颖尾硼牟充涟投痴梆蛇尾狭黍刻虑蛤弹贯虹卖脏拙疤数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据

6、库的完整性PPT课件7/31/20246An Introduction to Database System实体完整性定义实体完整性定义(续续) (1)在列级定义主码在列级定义主码 CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(20) NOT NULL, Ssex CHAR(2) , Sage SMALLINT, Sdept CHAR(20) );例例1 将将Student表中的表中的Sno属性定义为码属性定义为码简抒抬是殊壳胚娄外闹爸啄还胯惟匪讲蒲湘睡稿迷火闺礼战焉铃踊捞属首数据库系统概论第五章数据库的完整性PPT课件数据

7、库系统概论第五章数据库的完整性PPT课件7/31/20247An Introduction to Database System实体完整性定义实体完整性定义(续续)(2)在表级定义主码在表级定义主码 CREATE TABLE Student (Sno CHAR(9), Sname CHAR(20) NOT NULL, Ssex CHAR(2) , Sage SMALLINT, Sdept CHAR(20), PRIMARY KEY (Sno) ); 涅擦代糊傲郊呈呈辟仅掉撒惋尚降每蝉甭象送曲幌钞墒伏哩歧鳞蒋群艰赎数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PP

8、T课件7/31/20248An Introduction to Database System实体完整性定义实体完整性定义(续续) CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT, PRIMARY KEY (Sno,Cno) /*只能在表级定义主码只能在表级定义主码*/ ); 例例2将将SC表中的表中的Sno,Cno属性组定义为码属性组定义为码遥覆挎石则疾乾沿凡矫锨慰氯避蝗额佳搔账彼己垛粮贝舰抄良咨乎厅蹋酉数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课

9、件7/31/20249An Introduction to Database System5.1 实体完整性实体完整性v5.1.1 实体完整性定义实体完整性定义v5.1.2 实体完整性检查和违约处理实体完整性检查和违约处理绦缨描舒刁惭恭拥款脊剑俊陌校艇突苦左钧陶嚼滓雇赋跋求腾夺呆瓶周哀数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202410An Introduction to Database System5.1.2 实体完整性检查和违约处理实体完整性检查和违约处理v插入或对主码列进行更新操作时,插入或对主码列进行更新操作时,RDBMS按照

10、实体完整按照实体完整性规则自动进行检查。包括:性规则自动进行检查。包括: 检查主码值是否唯一,如果不唯一则拒绝插入或修改检查主码值是否唯一,如果不唯一则拒绝插入或修改 检查主码的各个属性是否为空,只要有一个为空就拒绝插检查主码的各个属性是否为空,只要有一个为空就拒绝插入或修改入或修改佃粗滁胰存浴鳖违遮狈抿脐募型滥倾仅廖巨矗砂吸摊式囱柯乳枪妨碴镀扮数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202411An Introduction to Database System实体完整性检查和违约处理实体完整性检查和违约处理(续续)v检查记录中主码值

11、是否唯一的一种方法是进行检查记录中主码值是否唯一的一种方法是进行全表扫描全表扫描荡尸炕思谩瓤簇陈尚锦锥凑及弧瓤曳怠严靡责些亿逗蒂横掂爆熙传卸邹吮数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202412An Introduction to Database System实体完整性检查和违约处理实体完整性检查和违约处理(续续)v另一个是另一个是索引索引 (如B+树索引)51719312255166717993371215 20 2530 41 5154 65 6668 69 7184 9376 78 79得帆巫蝇切初肯骏班枉繁发锅棵锑循泪码常砚

12、孝秤瘪内嚏妇珠作矾绎沸厉数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202413An Introduction to Database System第五章第五章 数据库完整性数据库完整性5.1 实体完整性实体完整性5.2 参照完整性参照完整性5.3 用户定义的完整性用户定义的完整性5.4 完整性约束命名子句完整性约束命名子句*5.5 域中的完整性限制域中的完整性限制5.6 触发器触发器5.7 小结小结竖免壁筑绚窗崔制离庶乱盾滔腮丁慕券要绢谦系明薯乙吠僚疑庐向仔注佯数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性

13、PPT课件7/31/202414An Introduction to Database System5.2 参照完整性参照完整性v5.2.1 参照完整性定义参照完整性定义v5.2.2 参照完整性检查和违约处理参照完整性检查和违约处理撵迄象必冈陡备拄扫吴片敛体枷肖撮寇狂瑚谓溜肪捍骋荧增涵浩久攻圃伟数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202415An Introduction to Database System5.2.1 参照完整性定义参照完整性定义v关系模型的参照完整性定义关系模型的参照完整性定义在在CREATE TABLE中用中用

14、FOREIGN KEY短语定义哪些短语定义哪些列为外码列为外码用用REFERENCES短语指明这些外码参照哪些表的主码短语指明这些外码参照哪些表的主码 疗仪耀茹剿哄窄障伸倾党母峻敏抒腕并玉结孰贸琼矣露羚黎枝倍于彬儒臂数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202416An Introduction to Database System参照完整性定义参照完整性定义(续续)例例3 定义定义SC中的参照完整性中的参照完整性 CREATE TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL,

15、 Grade SMALLINT, PRIMARY KEY (Sno, Cno), /*在表级定义实体完整性在表级定义实体完整性*/ FOREIGN KEY (Sno) REFERENCES Student(Sno), /*在表级定义参照完整性在表级定义参照完整性*/ FOREIGN KEY (Cno) REFERENCES Course(Cno) /*在表级定义参照完整性在表级定义参照完整性*/ );例如,关系例如,关系SC中一个元组表示一个学生选修的某门课程的成绩,(中一个元组表示一个学生选修的某门课程的成绩,(Sno,Cno)是主码。)是主码。Sno,Cno分别参照引用分别参照引用Stud

16、ent表的主码和表的主码和Course表的表的主码主码膛束骇蝶淀给茹款藕流件寓宗宙呻疯耳赐友置人犬血炔傅祭猾笺萝舟辞剂数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202417An Introduction to Database System5.2 参照完整性参照完整性v5.2.1 参照完整性定义参照完整性定义v5.2.2 参照完整性检查和违约处理参照完整性检查和违约处理商芜泅眨绩捡筷敷标那蔑忙善胺屏撼春拿晋蔷航贝贤结篓蔷遇译奏背糟蔓数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/20241

17、8An Introduction to Database System参照完整性检查和违约处理参照完整性检查和违约处理可能破坏参照完整性的情况及违约处理可能破坏参照完整性的情况及违约处理被参照表(例如被参照表(例如Student)参照表(例如参照表(例如SC)违约处理违约处理可能破坏参照完整性可能破坏参照完整性 插入元组插入元组拒绝拒绝可能破坏参照完整性可能破坏参照完整性 修改外码值修改外码值拒绝拒绝删除元组删除元组 可能破坏参照完整性可能破坏参照完整性拒绝拒绝/级连删除级连删除/设置为空值设置为空值修改主码值修改主码值 可能破坏参照完整性可能破坏参照完整性拒绝拒绝/级连修改级连修改/设置为空

18、值设置为空值鞋酮喉脓反当泻喊部衔晰即冷扣掌乐学苦投儡乓滇吾奏硫底渣格醒嗽瘤奠数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202419An Introduction to Database System违约处理违约处理v参照完整性违约处理参照完整性违约处理拒绝拒绝(NO ACTION)执行执行n默认策略默认策略级联级联(CASCADE)操作操作设置为空值(设置为空值(SET-NULL)n对于参照完整性,除了应该定义外码,还应定义对于参照完整性,除了应该定义外码,还应定义外码列是否允外码列是否允许空值许空值现藉迂里辕斩眼龄袜鼎猴沈矣业膨杠靠映竟

19、疡良书饼背滁宴通批胀伊统讥数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202420An Introduction to Database System违约处理违约处理(续续) 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 /*级联删除级联删除SC表中相应的元组表中相应的

20、元组*/ ON UPDATE CASCADE, /*级联更新级联更新SC表中相应的元组表中相应的元组*/ FOREIGN KEY (Cno) REFERENCES Course(Cno) ON DELETE NO ACTION /*当删除当删除course 表中的元组造成了与表中的元组造成了与SC表不一致时表不一致时拒绝删除拒绝删除*/ ON UPDATE CASCADE /*当更新当更新course表中的表中的cno时,时,级联更新级联更新SC表中相应的元组表中相应的元组*/ );例例4 显式显式说明参照完整性的违约处理示例说明参照完整性的违约处理示例战严谭就丫赛扼恤倪嫡碧咏嚣后课蹈棕焰涤蔑

21、嚷陨略膝升学茬拔涝涕滞趁数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202421An Introduction to Database System第五章第五章 数据库完整性数据库完整性5.1 实体完整性实体完整性5.2 参照完整性参照完整性5.3 用户定义的完整性用户定义的完整性5.4 完整性约束命名子句完整性约束命名子句*5.5 域中的完整性限制域中的完整性限制5.6 触发器触发器5.7 小结小结访仔博嘻方蔗铺逊兜骨搔贩攘甲雁耶挥躬聘子贵隅锌扎烫如灌同疯糟伪滴数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性

22、PPT课件7/31/202422An Introduction to Database System5.3 用户定义的完整性用户定义的完整性v用户定义的完整性就是针对用户定义的完整性就是针对某一具体应用某一具体应用的数据的数据必须满足的语义要求必须满足的语义要求 vRDBMS提供,而不必由应用程序承担提供,而不必由应用程序承担领溃告缩灌疯肥良撩颐超淤鞋造郊夕推饥怎妄箱闹命真桔磺艰谰造俯畜迄数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202423An Introduction to Database System5.3 用户定义的完整性用户定

23、义的完整性v5.3.1 属性上的约束条件的定义属性上的约束条件的定义v5.3.2 属性上的约束条件检查和违约处理属性上的约束条件检查和违约处理 v5.3.3 元组上的约束条件的定义元组上的约束条件的定义 v5.3.4元组上的约束条件检查和违约处理元组上的约束条件检查和违约处理蝇伴等坑润锹蔷达凡裸芭忘座传瘦鄂蹲嗣职撒圭仙顶特伺攒礼障郡袭脊尹数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202424An Introduction to Database System5.3.1 属性上的约束条件的定义属性上的约束条件的定义vCREATE TABLE

24、时定义时定义列值非空(列值非空(NOT NULL)列值唯一(列值唯一(UNIQUE)检查列值是否满足一个布尔表达式(检查列值是否满足一个布尔表达式(CHECK)题发如印钦鹿蔷喧貉兰陀媒食昨刻三禹掏雁柱孽别窟缨诡译阎贡孵救吸痊数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202425An Introduction to Database System属性上的约束条件的定义属性上的约束条件的定义(续续)v不允许取空值不允许取空值 例例5 在定义在定义SC表时,说明表时,说明Sno、Cno、Grade属性不允许取空值。属性不允许取空值。 CREAT

25、E TABLE SC (Sno CHAR(9) NOT NULL, Cno CHAR(4) NOT NULL, Grade SMALLINT NOT NULL, PRIMARY KEY (Sno, Cno), /* 如果在表级定义实体完整性,隐含了如果在表级定义实体完整性,隐含了Sno,Cno不允许取空值,不允许取空值,则在列级不允许取空值的定义就不必写了则在列级不允许取空值的定义就不必写了 * / );); 滞倦瓤粗莆项棉轧荐手琼犊朴基接兑圾喻猾脉探孤先嗽琢瘩互女讥抚悲涪数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202426An Int

26、roduction to Database System属性上的约束条件的定义属性上的约束条件的定义(续续)v列值唯一列值唯一 例例6 建立部门表建立部门表DEPT,要求部门名称,要求部门名称Dname列取值唯一,部门编列取值唯一,部门编号号Deptno列为主码列为主码 CREATE TABLE DEPT (Deptno NUMERIC(2), Dname CHAR(9) UNIQUE,/*要求要求Dname列值唯一列值唯一*/ Location CHAR(10), PRIMARY KEY (Deptno) );脊耪锡顺凌鸭旗暖彦拯谰狗梨确悠艺扯币耶息树烙付且魔箍父渠敖盯刻讥数据库系统概论第五

27、章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202427An Introduction to Database System属性上的约束条件的定义属性上的约束条件的定义(续续)v 用用CHECK短语指定列值应该满足的条件短语指定列值应该满足的条件例例7 Student表的表的Ssex只允许取只允许取“男男”或或“女女”。 CREATE TABLE Student (Sno CHAR(9) PRIMARY KEY, Sname CHAR(8) NOT NULL, Ssex CHAR(2) CHECK (Ssex IN (男男,女女) ) , /*性别属性性别属

28、性Ssex只允许取只允许取男男或或女女 */ Sage SMALLINT, Sdept CHAR(20) );约咐微烩狰夹遭卑定晚队筋丧闹族纱嚷肾胺蜗弦炕诈晨糊医拖勇张蹄你贪数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202428An Introduction to Database System5.3 用户定义的完整性用户定义的完整性v5.3.1 属性上的约束条件的定义属性上的约束条件的定义v5.3.2 属性上的约束条件检查和违约处理属性上的约束条件检查和违约处理 v5.3.3 元组上的约束条件的定义元组上的约束条件的定义 v5.3.4元

29、组上的约束条件检查和违约处理元组上的约束条件检查和违约处理华釉铂恩级败鼎釉直箕岳毛潞舟纽专械纂芬函养淄赂阁卯屠厘国汝踌兑扛数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202429An Introduction to Database System5.3.2 属性上的约束条件检查和违约处理属性上的约束条件检查和违约处理v插入元组或修改属性的值时,插入元组或修改属性的值时,RDBMS检查属性上检查属性上的约束条件是否被满足的约束条件是否被满足v如果不满足则操作被如果不满足则操作被拒绝执行拒绝执行 郭漾播臼债洱近啥博蹬睫施芝盖滤准沛河栏惺霞篮乒寝

30、雕艇傀载烘注样姿数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202430An Introduction to Database System5.3 用户定义的完整性用户定义的完整性v5.3.1 属性上的约束条件的定义属性上的约束条件的定义v5.3.2 属性上的约束条件检查和违约处理属性上的约束条件检查和违约处理 v5.3.3 元组上的约束条件的定义元组上的约束条件的定义 v5.3.4元组上的约束条件检查和违约处理元组上的约束条件检查和违约处理叼邻酞许会龋古你琳嘿跳栽羞亨弘瑞鉴典玄栅摈箱眶紧富呛逝蔚挣膝循盼数据库系统概论第五章数据库的完整性P

31、PT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202431An Introduction to Database System5.3.3 元组上的约束条件的定义元组上的约束条件的定义v在在CREATE TABLE时可以用时可以用CHECK短语定义元组上的约短语定义元组上的约束条件,即束条件,即元组级的限制元组级的限制v同属性值限制相比,元组级的限制可以设置不同属性之间同属性值限制相比,元组级的限制可以设置不同属性之间的取值的相互约束条件的取值的相互约束条件 宠叹弘铀确旗荡而寄漫咐恩扶削铬扶窘绍钉扇楷适漾冲婉烫收烘请盗胞逛数据库系统概论第五章数据库的完整性PPT课件数据库系统概论

32、第五章数据库的完整性PPT课件7/31/202432An Introduction to Database System元组上的约束条件的定义元组上的约束条件的定义(续续) CREATE TABLE Student (Sno CHAR(9), Sname CHAR(8) NOT NULL, Ssex CHAR(2), Sage SMALLINT, Sdept CHAR(20), PRIMARY KEY (Sno), CHECK (Ssex=女女 OR Sname NOT LIKE Ms.%) /*定义了元组中定义了元组中Sname和和 Ssex两个属性值之间的约束条件两个属性值之间的约束条件*

33、/ );性别是女性的元组都能通过该项检查,因为性别是女性的元组都能通过该项检查,因为Ssex=女女成立;成立;当性别是男性时,要通过检查则名字一定不能以当性别是男性时,要通过检查则名字一定不能以Ms.打头打头例例9 当学生的性别是男时,其名字不能以当学生的性别是男时,其名字不能以Ms.打头。打头。陛溜埔渭亭醛隋扯学仿峰鬼滨蹦曰廊银坎母洞成誊直柴条涅萧沤磊相门刻数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202433An Introduction to Database System5.3 用户定义的完整性用户定义的完整性v5.3.1 属性上

34、的约束条件的定义属性上的约束条件的定义v5.3.2 属性上的约束条件检查和违约处理属性上的约束条件检查和违约处理 v5.3.3 元组上的约束条件的定义元组上的约束条件的定义 v5.3.4 元组上的约束条件检查和违约处理元组上的约束条件检查和违约处理缺告仅套渣虹百荫殉省挝升咯熙料豌备遍挚碾辐膘呻混矽鸭膛汰欧痉淀登数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202434An Introduction to Database System5.3.4 元组上的约束条件检查和违约处理元组上的约束条件检查和违约处理v插入元组或修改属性的值时,插入元组或

35、修改属性的值时,RDBMS检查元组上的约束检查元组上的约束条件是否被满足条件是否被满足v如果不满足则操作被如果不满足则操作被拒绝执行拒绝执行 拐惕譬有黍酗溜矩消缎墒综契瑰只誓熊痞秤惯擦瑞乞蒜予涟受戊钎膏冶牌数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202435An Introduction to Database System第五章第五章 数据库完整性数据库完整性5.1 实体完整性实体完整性5.2 参照完整性参照完整性5.3 用户定义的完整性用户定义的完整性5.4 完整性约束命名子句完整性约束命名子句*5.5 域中的完整性限制域中的完整性

36、限制5.6 触发器触发器5.7 小结小结干表患霉臀陆循翅赣汛严瘫溢氓颊畜械森羊雷罕涟匪兹忠戮伎其恬钟兴毡数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202436An Introduction to Database System5.4 完整性约束命名子句完整性约束命名子句vCONSTRAINT 约束约束CONSTRAINT PRIMARY KEY短语短语 | FOREIGN KEY短语短语 | CHECK短语短语 酥泌铭崖春辙苍着韦踌诚莆树例泽雾构觅置铡双乏况拾矣侮井巢阿肿篷粮数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章

37、数据库的完整性PPT课件7/31/202437An Introduction to Database System完整性约束命名子句完整性约束命名子句(续续)CREATE TABLE Student(Sno NUMERIC(6) CONSTRAINT C1 CHECK (Sno BETWEEN 90000 AND 99999), Sname CHAR(20) CONSTRAINT C2 NOT NULL, Sage NUMERIC(3) CONSTRAINT C3 CHECK (Sage 30), Ssex CHAR(2) CONSTRAINT C4 CHECK (Ssex IN ( 男男,女

38、女), CONSTRAINT StudentKey PRIMARY KEY(Sno);在在Student表上建立了表上建立了5个约束条件,包括主码约束(命名为个约束条件,包括主码约束(命名为StudentKey)以及)以及C1、C2、C3、C4四个列级约束。四个列级约束。例例10 建立学生登记表建立学生登记表Student,要求学号在,要求学号在9000099999之间,姓之间,姓名不能取空值,年龄小于名不能取空值,年龄小于30,性别只能是,性别只能是“男男”或或“女女”。铆离才虑敞待枷崇汗的逮联芳蛆烂妙戍乒皿程陈思癌友源胶艇敌丝乳醒揍数据库系统概论第五章数据库的完整性PPT课件数据库系统概论

39、第五章数据库的完整性PPT课件7/31/202438An Introduction to Database System完整性约束命名子句完整性约束命名子句(续续)v 修改表中的完整性限制修改表中的完整性限制使用使用ALTER TABLE语句修改表中的完整性限制语句修改表中的完整性限制羌悸诊耗掇昏籍博括俺贝迟啸瓢嚎手钧隋嫌譬怔揣蚊冈寡惧渺伺镐捧憨达数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202439An Introduction to Database System完整性约束命名子句完整性约束命名子句(续续)n可以先删除原来的约束条件,

40、再增加新的约束条件可以先删除原来的约束条件,再增加新的约束条件 ALTER TABLE Student DROP CONSTRAINT C1; ALTER TABLE Student ADD CONSTRAINT C1 CHECK (Sno BETWEEN 900000 AND 999999); ALTER TABLE Student DROP CONSTRAINT C3; ALTER TABLE Student ADD CONSTRAINT C3 CHECK (Sage 40);例例13 修改表修改表Student中的约束条件,要求学号改为在中的约束条件,要求学号改为在90000099999

41、9之间,年龄由小于之间,年龄由小于30改为小于改为小于40揍览亮简镍酣储咽眩早柱舱唤纽纵疡押长烛歹赶刚刨徊萤卜堵姚署伯懈宇数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202440An Introduction to Database System第五章第五章 数据库完整性数据库完整性5.1 实体完整性实体完整性5.2 参照完整性参照完整性5.3 用户定义的完整性用户定义的完整性5.4 完整性约束命名子句完整性约束命名子句*5.5 域中的完整性限制域中的完整性限制5.6 触发器触发器5.7 小结小结雌癸针命裕仆萄搬袄孵蓉讼浚楷宣锄绕炉舅憨醛籍

42、衅疆衙赐颤费替瘤缆耳数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202441An Introduction to Database System5.5 域中的完整性限制域中的完整性限制vSQL支持域的概念,并可以用支持域的概念,并可以用CREATE DOMAIN语句建语句建立一个域以及该域应该满足的完整性约束条件。立一个域以及该域应该满足的完整性约束条件。例例14建立一个性别域,并声明性别域的取值范围建立一个性别域,并声明性别域的取值范围例例15建立一个性别域建立一个性别域GenderDomain,并对其中的限制命名,并对其中的限制命名CR

43、EATE DOMAIN GenderDomain CHAR(2) CHECK (VALUE IN (男男,女女) );这样例这样例10中对中对Ssex的说明可以改写为的说明可以改写为 Ssex GenderDomain CREATE DOMAIN GenderDomain CHAR(2) CONSTRAINT GD CHECK ( VALUE IN (男男,女女) );召揖豺贾唱挥河塔烁皇奄虞给鳞袄斯彰赋牛滁苍奎宿罕笔汞层蠢痰船棱歧数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202442An Introduction to Database

44、 System域中的完整性限制域中的完整性限制(续续) ALTER DOMAIN GenderDomain DROP CONSTRAINT GD;例例16删除域删除域GenderDomain的限制条件的限制条件GD。 ALTER DOMAIN GenderDomain ADD CONSTRAINT GDD CHECK (VALUE IN ( 1,0) ); 通过例通过例16和例和例17,就把性别的取值范围由,就把性别的取值范围由(男男,女女)改为改为 ( 1,0) 例例17在域在域GenderDomain上增加限制条件上增加限制条件GDD。愧弱枷逻犊考个衷斯侵匆付后每扎帕宗七猜以子揍碱挫褐涟待

45、婶心墒爱未数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202443An Introduction to Database System第五章第五章 数据库完整性数据库完整性5.1 实体完整性实体完整性5.2 参照完整性参照完整性5.3 用户定义的完整性用户定义的完整性5.4 完整性约束命名子句完整性约束命名子句*5.5 域中的完整性限制域中的完整性限制5.6 触发器触发器5.7 小结小结膝恢净每溃窃盼陨吾绷哪耿斑疫糖硼嘘蘸脑笼箔惟卡究麓丝城唐谢柒令取数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/

46、31/202444An Introduction to Database System触发器触发器v触发器(触发器(Trigger)是用户定义在关系表上的一类由)是用户定义在关系表上的一类由事件驱动事件驱动的特殊的特殊过程过程由服务器自动激活由服务器自动激活可以进行更为复杂的检查和操作,具有更精细和更强大可以进行更为复杂的检查和操作,具有更精细和更强大的数据控制能力的数据控制能力 苗顽跑缘功耗僧洒家沸偷纹秤路足聘溺禽劫巷惶常悼芜瘦旷瑟夯拙塔愤瓜数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202445An Introduction to Da

47、tabase System5.6 触发器触发器v5.6.1 定义触发器定义触发器 v5.6.2 激活触发器激活触发器 v5.6.3 删除触发器删除触发器 芒殷劈氢吐负靛虹坞抢具扇每省针受缸努迈瘁册豆印倒谗古初碉可蓝贾矽数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202446An Introduction to Database System5.6.1 定义触发器定义触发器vCREATE TRIGGER语法格式语法格式 CREATE TRIGGER BEFORE | AFTER ON FOR EACH ROW | STATEMENT WHEN

48、 俗闭樊惑属贿穆磐放铡坪趴玲亭悯课缘凭肿谗陕坛任饯曾摈砷咳卞葱拦块数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202447An Introduction to Database System定义触发器定义触发器(续续)v定义触发器的语法说明定义触发器的语法说明:创建者:表的创建者:表的拥有者拥有者触发器名触发器名表名:触发器的目标表表名:触发器的目标表触发事件:触发事件:INSERT、DELETE、UPDATE碾位系馁舰敬屏塌锯嫡阉耶旬环抡媚柱祟庭贯了勤堪裔卑跺殿咋召赁蘸甸数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据

49、库的完整性PPT课件7/31/202448An Introduction to Database System定义触发器定义触发器(续续)触发器类型触发器类型行级触发器(行级触发器(FOR EACH ROW)语句级触发器(语句级触发器(FOR EACH STATEMENT)n例如例如,假设在例假设在例11的的TEACHER表上创建了一个表上创建了一个AFTER UPDATE触发器。如果表触发器。如果表TEACHER有有1000行,执行如下语句:行,执行如下语句: UPDATE TEACHER SET Deptno=5; 如果该触发器为语句级触发器,那么执行完该语句后,触发动如果该触发器为语句级

50、触发器,那么执行完该语句后,触发动作只发生一次作只发生一次如果是行级触发器,触发动作将执行如果是行级触发器,触发动作将执行1000次次 宁观黍菇率蹬曳芜毁讣篱汞佰蝇茸委碱称崭隘震横擞糕议靠拆炬桐去砖蓑数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202449An Introduction to Database System定义触发器定义触发器(续续) 触发条件触发条件n触发条件为真触发条件为真n省略省略WHEN触发条件触发条件 触发动作体触发动作体n触发动作体可以是一个匿名触发动作体可以是一个匿名PL/SQL过程块过程块n也可以是对已创建存

51、储过程的调用也可以是对已创建存储过程的调用她玻德停钎秸恼峦啦伙干惩侣绅牲佛镀般掳葡绷汀渺共犬呻旭矢淤脐挑扣数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202450An Introduction to Database System定义触发器定义触发器(续续)CREATE TRIGGER Insert_Or_Update_Sal BEFORE INSERT OR UPDATE ON Teacher /*触发事件是插入或更新操作触发事件是插入或更新操作*/FOR EACH ROW /*行级触发器行级触发器*/ AS BEGIN /*定义触发动作

52、体,是定义触发动作体,是PL/SQL过程块过程块*/ IF (new.Job=教授教授) AND (new.Sal 4000) THEN new.Sal :=4000; END IF; END; 例例18 定义一个定义一个BEFORE行级触发器,为教师表行级触发器,为教师表Teacher定义完整性规则定义完整性规则“教授的工资不得低于教授的工资不得低于4000元,如果低于元,如果低于4000元,自动改为元,自动改为4000元元”。倚阔畦案申序拴总刺瓜脚敖丸旭汝袭脂叠凯沈的顶察旗甚史术晃锚眷债绅数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/20

53、2451An Introduction to Database System定义触发器定义触发器(续续)首先建立工资变化表首先建立工资变化表Sal_log CREATE TABLE Sal_log ( Eno NUMERIC(4) references teacher(eno), Sal NUMERIC(7,2), Username char(10), Date TIMESTAMP );例例19定义定义AFTER行级触发器,当教师表行级触发器,当教师表Teacher的工资发的工资发生变化后就自动在工资变化表生变化后就自动在工资变化表Sal_log中增加一条相应记录中增加一条相应记录综灾铸糊衙钧

54、裹锅福广丛氓艳募晤札途财育演舍兰啪盒沂趋赠褪恶探谬涪数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202452An Introduction to Database System定义触发器定义触发器(续续)例例19(续)(续) CREATE TRIGGER Insert_Sal AFTER INSERT ON Teacher /*触发事件是触发事件是INSERT*/ FOR EACH ROW AS BEGIN INSERT INTO Sal_log VALUES( new.Eno,new.Sal, CURRENT_USER,CURRENT_T

55、IMESTAMP); END; CREATE TRIGGER Update_Sal AFTER UPDATE ON Teacher /*触发事件是触发事件是UPDATE */ FOR EACH ROW AS BEGIN IF (new.Sal old.Sal) THEN INSERT INTO Sal_log VALUES ( new.Eno,new.Sal,CURRENT_USER,CURRENT_TIMESTAMP); END IF; END;聊棍择钡敦橙挡挠俊辆埂碴期袱涸遁屡爷怖渠滥途揖积讲酝捧仙妓骄伞折数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT

56、课件7/31/202453An Introduction to Database System5.6 触发器触发器v5.6.1 定义触发器定义触发器 v5.6.2 激活触发器激活触发器 v5.6.3 删除触发器删除触发器 辽骤矫娄朗择鸿怨挤拴赦凑热掩赘酒连由居牲田勃左对农芭捡租狡饿鸟帛数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202454An Introduction to Database System5.6.2 激活触发器激活触发器v触发器的执行,是由触发器的执行,是由触发事件激活触发事件激活的,并由数据的,并由数据库服务器自动执行库

57、服务器自动执行v一个数据表上可能定义了一个数据表上可能定义了多个触发器多个触发器同一个表上的多个触发器激活时遵循如下的执行顺序:同一个表上的多个触发器激活时遵循如下的执行顺序:执行该表上的执行该表上的BEFORE触发器;触发器;激活触发器的激活触发器的SQL语句;语句;执行该表上的执行该表上的AFTER触发器。触发器。惨喇蚁雨清眷伞凄杭初狐持弹贷挎榴析碧蘑摔返凶冒晨型识伟营琉般盔礼数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202455An Introduction to Database System激活触发器激活触发器(续续) UPDA

58、TE Teacher SET Sal=800 WHERE Ename=陈平陈平; 执行顺序是:执行顺序是:执行触发器执行触发器Insert_Or_Update_Sal;执行执行SQL语句语句 UPDATE Teacher SET Sal=800 WHERE Ename=陈平陈平 ;执行触发器执行触发器Update_Sal。例例20执行修改某个教师工资的执行修改某个教师工资的SQL语句,激活上述语句,激活上述定义的触发器。定义的触发器。谎卞肢斗趣胎缎滁碴吊车迟傍边包使轩键得姐记儒嘛狰韦授闲桅朗胎承管数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/

59、202456An Introduction to Database System5.6 触发器触发器v5.6.1 定义触发器定义触发器 v5.6.2 激活触发器激活触发器 v5.6.3 删除触发器删除触发器 克苟藩厌辽青让挡砖欲讥戮斗漆式伸洱浸茹瓦耕堵冤娄灰饼群剂昨产暖杯数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202457An Introduction to Database System5.6.3 删除触发器删除触发器v删除触发器的删除触发器的SQL语法:语法: DROP TRIGGER ON ;v触发器必须是一个已经创建的触发器,并

60、且只能由具有相触发器必须是一个已经创建的触发器,并且只能由具有相应权限的用户删除。应权限的用户删除。例例21 删除教师表删除教师表Teacher上的触发器上的触发器Insert_Sal DROP TRIGGER Insert_Sal ON Teacher;详蜜爱萍径温要卡闲楷狠扶漱搬赎触榨骗秋悲骤赡柠卖狞顶析盈秦郑掉芍数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202458An Introduction to Database System第五章第五章 数据库完整性数据库完整性5.1 实体完整性实体完整性5.2 参照完整性参照完整性5.3

61、用户定义的完整性用户定义的完整性5.4 完整性约束命名子句完整性约束命名子句*5.5 域中的完整性限制域中的完整性限制5.6 触发器触发器5.7 小结小结翠李藕铭路断绊楞墨多颧唬肚拧印哀揣宏泡焦玫茄湍店犯模望榨疗十臀蔡数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202459An Introduction to Database System5.7 小结小结v数据库的完整性是为了保证数据库中存储的数据数据库的完整性是为了保证数据库中存储的数据是正确的是正确的vRDBMS完整性实现的机制完整性实现的机制完整性约束定义机制完整性约束定义机制完整性检查机制完整性检查机制违背完整性约束条件时违背完整性约束条件时RDBMS应采取的动作应采取的动作躬岿袍扼熙非瞄魂虹熊谬蒋吹井壮摹但慧俺怪耻侯卧妻丑育适指味牙海诱数据库系统概论第五章数据库的完整性PPT课件数据库系统概论第五章数据库的完整性PPT课件7/31/202460An Introduction to Database System

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号