- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL数据库完整性-控制机制 DBMS的完整性控制机制的主要功能 定义功能 - 允许用户定义各类完整性约束条件 检查功能 - 检查用户提供的请求是否违背了完整性约束条件 违约反应 - 如果发现用户的操作违背了完整性约束条件, 则采取一定的动作来保证数据的完整性(一般是取消该事务已产生的影响--恢复) SQL数据库完整性-控制机制 定义功能 实体完整性约束 实体完整性在CREATE TABLE中用PRIMARY KEY定义。分为列级约束和表级约束 Create table Student (Sno char(11) , Sname char(20), Ssex char(2) Sage int, Sdept char(20)) primary key (Sno ) ) Create table Students ( Sno char(11) primary key, Sname char(20), Ssex char(2), Sage int, Sdept char(20)) SQL数据库完整性-控制机制 定义功能 参照完整性约束 参照完整性在CREATE TABLE中用FOREIGN KEY定义哪些列为外码,用REFERENCES短语指明这些外码参照哪些表的主码。 Create table SC ( Sno char(9), Cno char(4), Grade int, primary key (Sno , Cno ), foreign key(Sno ) references Student(Sno), foreign key (Cno ) references Course (Cno ) ) SQL数据库完整性-控制机制 定义功能 用户定义完整性约束 参照完整性在CREATE TABLE中用定义的属性值限制。包括: 列值非空(NOT NULL) 列值唯一(UNIQUE) 检查列值是否满足一个布尔表达式(CHECK) SQL数据库完整性-控制机制 检查功能 立即执行的约束(Immediate constraints) 检查是否违背完整性约束的时机通常是在一条语句或事务执行完后立即检查 延迟执行的约束(Deferred constraints) 在某些情况下,完整性检查需要延迟到整个事务执行结束后再进行 SQL数据库完整性-约束条件 例1: begin transaction update Students set Sno=‘2011012’ where Sno=‘2011001’; update SC set Sno=‘2011012’ where Sno=‘2011001’; commit 如是立即执行约束, 事务不能成功执行 如是延迟执行约束, 事务可以成功执行 SQL数据库完整性-控制机制 例2:银行数据库中“借贷总金额应平衡”的约束就应该是延迟执行的约束 —从账号A转一笔钱到账号B为一个事务,从账号A转出去钱后账就不平了,必须等转入账号B后账才能重新平衡,这时才能进行完整性检查。 SQL数据库完整性-控制机制 目前许多关系数据库系统都提供了定义和检查实体完整性、参照完整性和用户定义的完整性的功能。 对于违反实体完整性规则和用户定义的完整性规则的操作一般都是采用拒绝执行的方式进行处理。 而对于违反参照完整性的操作,并不都是简单地拒绝执行,有时还需要采取另一种方法,即接受这个操作,同时执行一些附加的操作,以保证数据库的状态仍然是正确的。 课程安排 SQL数据操纵功能 SQL视图 SQL索引 SQL的完整性实现 控制机制 参照完整性 SQL概述 SQL数据基本定义功能 SQL数据完整性定义 查询语句基本结 SQL单关系查询 SQL多关系查询 SQL嵌套查询 SQL分组聚集查询 参照完整性需要考虑的问题 (1) 外码是否可以接受空值的问题 外码是否能够取空值是依赖于应用环境的语义的 在实现参照完整性时,系统除了应该提供定义外码的机制,还应提供定义外码列是否允许空值的机制 例1:在职工-部门数据库中,EMP关系包含有外码Deptno,某一元组的这一列若为空值,表示这个职工尚未分配到任何具体的部门工作。这和应用环境的语义是相符的,因此EMP的Deptno列应允许空值。 参照完整性需要考虑的问题 例2:在学生-选课数据库中,Student关系为被参照关系,其主码为Sno。SC为参照关系,外
您可能关注的文档
最近下载
- 庭院设计课件 第五章 功能布局与平面设计.pptx VIP
- 2021年Fall AMC 10B真题含答案.pdf VIP
- 2025年辽宁省地矿集团面向校园招聘80人考试备考试题【含答案解析】.pdf VIP
- 九一八事变(课件)小学生主题班会通用版(共22张PPT).pptx VIP
- 屋顶分布式光伏发电施工组织设计.docx VIP
- 小学三年级班主任工作计划安排.doc VIP
- 广州某1200吨超低温金枪鱼冷库制冷系统设计.docx VIP
- 2025年美丽中国全国国家版图知识竞赛题库(附答案).docx VIP
- 中医辩证施护课件.ppt VIP
- Mysql数据库及应用 广东开放大学考试题库答案.doc VIP
文档评论(0)