版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第5章数据库完整性,5.1实体的完整性5.2参考完整性5.3自定义完整性5.4完整性约束命名子句5.5触发器,数据的准确性和兼容性可以防止无意义的数据进入数据库。例:学生的年龄必须为整数,范围为14-29。学生的性别只能是男人或女人。学生的学号必须是唯一的。有学生的学科必须是学校开设的。完整性:真实反映真实世界。第一,数据库的完整性是什么,第二,DBMS的完整性控制机制,1 .功能定义完整的完整性控制机制要求用户能够定义各种完整性约束。例如,银杏数据库的“贷款总额必须平衡”的限制是延迟执行的限制,3 .如果发现用户的工作请求违反了完整性约束,用户的工作请求违反了数据完整性约束,则必须采取措施确
2、保数据完整性。立即执行的约束语句执行后立即检查完整性约束违规延迟执行约束完整性检查是否延迟到整个事务执行结束,2 .检查功能,拒绝其他处理方法,定义5.1实体完整性方法:在CREATE TABLE中使用PRIMARY KEY。其次,实体完整性检查和违规处理检查:插入操作或更改代码值时,处理:拒绝运行,5.2引用完整性,1,引用完整性定义了引用完整性规则(等于关系的外部代码或null值,或引用关系的元组键值)。方法定义:在CREATE TABLE中使用FOREIGN KEY。其次,检查参照完整性和处理违规:添加、删除和更改参照表和参照表时,必须检查参照完整性,因为这可能会破坏参照完整性。处理:请
3、参阅表5.1。表5.1可能损害牙齿参考完整性的情况和违约处理,1。从引用关系中删除元组时的问题。示例:要从Student关系中删除Sno=200215122的元组,请注意SC关系中所有四个元组的Sno等于2000。级联删除:从SC关系中删除所有4个元组,Sno=200215122。如果参照关系同时是另一个关系的参照关系,则这些删除操作会继续级联到限制删除。也就是说,牙齿删除操作将被拒绝。删除空值设置:在SC关系中,将所有Sno=200215122元组的Sno值设置为空值。在学生选课数据库中,显然第一种方法和第二种方法都是对的。第三种方法与应用环境意义不一致。2 .在参照关系中插入元组时的问题,
4、如果发生违约操作,则必须在参照关系中插入元组,但参照关系中没有相应的元组。违约反应仅在以下情况下执行插入操作:限制重复插入,引用的关系具有相应的元组,其主键值等于引用关系插入元组的外部代码值,否则拒绝操作。首先在引用关系中插入相应的元组。主键值与插入到引用关系中的元组的外部代码值相同。然后在引用关系中插入元组。示例:在SC关系中插入(200215125,1,90)元组,在学生关系中插入Sno=200215125的学生没有受到限制。拒绝插入SC关系(200215125,1,90)重复插入:首先将Sno=200215125的元组插入Student关系,然后将元组插入SC关系(200215125,1
5、,90)。3 .修正参考关系中的关键代码问题。两个茄子策略(1)允许修改密钥代码。(2)不允许修改键码。(1)允许修改密钥代码策略。违约操作修改引用关系中某些元组的键值。引用关系中某些元组的外部代码值与引用关系中要修改的键值完全相同。要修改参照关系中某些元组的关键值,参照关系中没有元组的外部代码值与参照关系中修改的关键值相同。安慰剂反应(1):修改的关系是参照的关系。修改类似于删除类似连接,限制空值修改,修改引用关系的关键值,同时使用相同的方法修改引用关系的相应外部代码值。拒绝牙齿修改操作。只有在引用关系中没有元组的外部代码值与引用关系中元组的键值相同时,才能修改该元组的键值。单击修改参照关系
6、中的主代码值,并将参照关系中相应的外部代码值设置为null。安慰剂反应(2):修改后的关系是参考关系。类似插入。有限插入迭代插入,(1)允许修改主代码策略(例如,在Student关系中,在Sno=200215123的元组中,将Sno值更改为200215128)。SC关系包含4元组的Sno=200215123级联修改。在SC关系中,4个元组Sno=200215123的Sno值也更改为200215128。如果参照关系同时是另一个关系的参照关系,则这些修改会继续级联。受限修改:在SC中没有元组的Sno=200215123万Student表中,可以将元组Sno=200215123的Sno值更改为200
7、215128。修改空值设置:在Student表中,将元组Sno值=200215123更改为200215128。相反,请将SC表中所有Sno=200215123元组的Sno值设置为null。在学生选择数据库中,只有第一种方法是正确的。引用完整性实现,RDBMS在实现引用完整性时,必须为用户提供定义键代码、外部代码的机制。您可以根据自己的应用程序要求,从相关性中选择如何处理相应的元组。通常,当引用表和引用表的操作违反引用完整性时,会使用拒绝执行的默认策略。要使系统采用不同的策略,必须在创建表时明确说明。示例4显式显示了引用完整性的违约处理。CREATE TABLE sc(SnO char(9)no
8、t null、cno char (4) not null、grade smallint、primary key (SnO、cno)列值NOT NULL验证列值唯一(UNIQUE)列值是否满足布尔表达式(CHECK)示例5。定义SC表时,Sno、Cno和Grade属性不接受null值。create table sc(SnO char(9)not null、cno char (4) not null、grade smallint not null、primary key (SnO,)示例6创建了部门表dept,其中部门名称Dname牙齿具有唯一值,部门编号DEPTno作为主代码列出。createt
9、abledept(dept nonumeric(2)not null、dnamechar (9) unique、locationchar (10)、primary key示例7create table student(snochar(9)primary key,snamechar (8) not null,Ssex CHAR(2) CHECK(Seex IN()create tablesc(snochar(9)not null,cnochar (4) not null,grade smallint check(grade=0 and grade=11),create table sc(SnO
10、char(9)not null;Cno CHAR(4)非空;Gradeint (3) check (grade=0和grade=100),PRIMARY key Sno Cno tag kk,Foreign key Sno tag k1 references student,Foreign key Cno tag k2 references course),第二,检查对属性的约束并拒绝违约处理3Create table Student(snochar(9)PRIMARY KEY,snamechar (8) not null,Ssex CHAR(2) CHECK(Seex IN() snamec
11、har(8)constraint C2 Sage numeric(3)constraint C3 check(Sage 30),ssex char (2) constraint C4 check 付款实际上是实付列Sal和扣除Deduct之和。createtableteacher(eno number(4)primary key、enamechar (10)、jobchar (8)、sal number (7,2)CLARiiONalter table student drop constraint C4;范例13修改表格的限制条件,要求学号在9000999999999之间,年龄小于30,变更
12、为小于40。alter table student drop constraint C1;alter table student add constraint C1 check(SnO between 90000 0和9999999);alter table student drop constraint C3;alter table student add constraint C3 check(sage 40);其次,在表中修改完整性限制。例如,14设置性别域并声明性别值的范围。create domain gender domain char(2)check(value in(男性,女性)
13、;牙齿实例10的说明可以更改为:Seex GenderDomain,5.5触发器,数据库触发器:用户在关系表中定义的基于事务的特殊过程。定义后,所有用户都添加、删除和更改数据,服务器会自动激活相应的触发器,在核心层进行集中完整性控制。触发器类似于约束,但比约束更灵活,可以执行更复杂的检查和操作,并提供了更完善、更强大的数据控制功能。定义其他完整性约束时,必须使用数据库触发器(Trigger)实现。说明:表所有者只能在表中创建触发器,并且只能在一个表中创建一定数量的触发器。触发器名称可以包含方案名称,也可以不包含方案名称。触发器名称在同一模式下必须唯一,触发器名称和必须在同一模式下。表格名称表示牙齿表格资料变更时,会启用该表格中定义的对应触发程式。触发事件可以是INSERT、DELETE和UPDATE,也可以是这些事件的组合。UPDATE之后还可以有OF。也就是说,它表示修改时触发器处于活动状态的其他列。触发器类型:FOR EACH ROW和
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026江西南昌市第十四中学临聘教师招聘2人笔试题库【夺分金卷】附答案详解
- 2026浙江温州市瓯海区人力资源和社会保障局面向社会招聘编外人员1人考前冲刺密卷及答案详解(新)
- 2026云南昆明技师学院招募银龄技师19人笔试题库附完整答案详解(典优)
- 2026年江西财经大学第二批劳务派遣岗位招聘2人考前冲刺试卷及参考答案详解(新)
- 2026广西桂林旅游学院酒店管理学院国际酒店管理学院协议工资制人员招聘6人模拟试卷【典优】附答案详解
- 2026福建龙岩新罗区属公办中小学招聘编外教师模拟试卷【能力提升】附答案详解
- 2026江苏常州机电职业技术学院招聘劳务派遣人员3人模拟试卷附参考答案详解(培优B卷)
- 2026浙江温州市龙湾区海城街道社区卫生服务中心招聘编外工作人员2人模拟试卷含答案详解(突破训练)
- 2026广西深巴试验区发展集团有限公司招聘4人考前冲刺密卷附参考答案详解【研优卷】
- 2026山东大学校医院(卫生与健康服务中心)非事业编制人员招聘3人笔试题库带答案详解AB卷
- 2026年《医疗器械经营监督管理办法》培训试卷(+答案)
- 2026山东临沂城市职业学院临沂城市职业学院招聘专任教师、公共课教师及教辅人员113人考试备考题库及答案详解
- 2026湖北武汉市宏泰集团所属湖北宏泰私募股权基金管理有限公司投资经理岗位招聘6人模拟试卷有完整答案详解
- 钢结构大棚拆除施工方案
- 电缆敷设及接线作业指导书培训
- 2026中国数联物流信息有限公司(上海)岗位招聘笔试历年参考题库附带答案详解
- 浦发银行银联交易系统:架构设计、技术实现与安全保障
- JJF(石化)084-2023润滑油蒸发损失测定仪(诺亚克法)校准规范
- 文印工作人员保密制度
- 电力设施安全防护技术规范手册
- 人教A版(2019)高一数学必修第一册基础知识清单填空练习题(含答案)
评论
0/150
提交评论