版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Cha10数据库完整性本章内容 对DBMS的要求 完整性约束条件完整性和安全性 完整性 数据正确、相容 安全性 防止恶意破坏、非法存取对DBMS的要求 提供定义完整性约束条件的机制 提供完整性检查的方法 违约处理实体完整性 使用primary key定义 单属性的码 列级约束 表级约束 多属性的码 表级约束码的定义1Create table student(sno char(9) primary key,Sname char(20) not null,Ssex char(2),Sage smallint,Sdept char(20);Create table student(sno char(
2、9),Sname char(20) not null,Ssex char(2),Sage smallint,Sdept char(20),primary key (sno);码的定义2Create table sc(sno char(9) not null,cno char(20) not null,Grade smallint,Primary key (sno,cno);实体完整性的检查 检查主码值是否唯一 全表扫描或使用索引 检查主码各属性是否为空5112 3066 783 715 20 2530 4151 54 6568 69 71 7679 84 9325参照完整性的定义Create
3、table sc(sno char(9) not null,cno char(20) not null,Grade smallint,Primary key (sno,cno),Foreign key (sno) references student(sno),Foreign key (cno) references course(cno),);可能破坏完整性的情况被参照表参照表违约处理可能破坏参照完整性插入行拒绝可能破坏参照完整性修改外码值拒绝删除行可能破坏参照完整性拒绝/级联删除/置空修改主码值可能破坏参照完整性拒绝/级联修改/置空用户定义的完整性 属性上的约束条件 列值非空not nul
4、l 列值唯一unique 满足一个布尔表达式check 元组上的约束条件列值唯一Create table dept(deptno numeric(2),Dname char(9) unique,Location char(10),Primary key (deptno);Check短语Create table student(sno char(9) primary key,Sname char(20) not null,Ssex char(2) check (ssex in (男,女),Sage smallint,Sdept char(20);Check短语Create table stude
5、nt(sno char(9) primary key,Sname char(20) not null,Ssex char(2) ,Sage smallint,Sdept char(20),Check (ssex=女 or sname not like ms.%);完整性约束命名子句 格式Constraint 条件名 primary key|foreign key|checkCreate table student(sno numeric(6)Constraint c1 check (sno between 90000 and 99999),Sname char(20) Constraint c
6、2 not null,Ssex char(2) Constraint c3 check(ssex in (男,女),Sage smallint Constraint c4 check(sage30),Constraint c5 primary key (sno);去掉限制 去掉限制Alter table student drop constraint c4; 修改限制Alter table student drop constraint c1;Alter table student add constraint c1 check (sno between 900000 and 999999),
7、触发器 定义Create trigger 触发器名|before|after| on for eachrow|statement when 激活执行before触发器sql语句执行after触发器 删除Drop trigger on 定义一个before行级触发器,为teacher表定义规则“教授工资不得低于4000元,若低于则自动改为4000”Create trigger insert_or_update_salBefore insert or update on teacherFor each row as beginIf (new.pjob=教授) and (new.sal4000) t
8、hen new.sal=4000;End if;End; 定义一个after行级触发器,teacher表的工资发生变化后自动在工资变化表sal_log中增加一条记录Create trigger insert_sal After insert on teacher For each row As beginInsert into sal_log values(new.eno,nes.sal ,current_user,current_timestamp);End; 定义一个after行级触发器,teacher表的工资发生变化后自动在工资变化表sal_log中增加一条记录Create trigge
9、r update_sal After update on teacher For each row As beginIf (new.sal old.sal ) then Insert into sal_log values(new.eno,nes.sal ,current_user,current_timestamp);End if;End;完整性约束条件分类对象粒度列元组关系对象状态动态动态列级约束动态元组约束动态关系约束静态静态列级约束静态元组约束静态关系约束静态约束 对数据类型的约束 对数据格式的约束 对取值范围的约束 空值约束 其他列级 对列间关系的约束发货量=1000zc教授拒绝执行
10、操作参照完整性 外码能否为空 在被参照表中删除行级联删除受限删除置空删除 在参照表中插入行受限插入递归插入 修改主码不允许允许约束3静态关系约束 实体完整性约束 参照完整性约束 函数依赖约束 统计约束数据库的完整性完整性正确性和相容性垃圾进垃圾出 garbage in garbage out 对数据库的非法更新输入数据错误操作、程序错误系统故障事务的并发执行人为破坏完整性子系统 功能 监督事务的执行 针对违反现象采取适当操作 完整性规则的构成何时使用触发条件触发条件何种错误约束条件约束条件如何处理ELSE子句子句域完整性规则域联系的规则关系完整性规则SQL的完整性约束主键约束主键约束外键约束外
11、键约束删除、修改基本关系元组时的考虑属性值上的属性值上的约束约束非空值约束检查子句域约束子句全局约束全局约束基于元组的检查子句断言删除、修改基本关系元组时的考虑 Restrict方式 参照表中无相关记录时允许操作 Cascade方式 参照表中的相关记录一同更新 Set null方式 参照表中的相关记录字段置空断言assertionsCreate assertion asse1 check不许男生学习张老师的课程不许男生学习张老师的课程(not exists没这种记录:没这种记录:(select *男生学习张老师课程的记录男生学习张老师课程的记录 from sc where cno in (se
12、lect cno from c where teacher=zhang) And sno in (select sno from s where sex=m) );断言assertionsCreate assertion asse2 check每组人数不能超过每组人数不能超过50(50=all(select count(sc.sno)每门课程的学习人数每门课程的学习人数 from s,sc where s.sno=sc.sno and sex=m group by cno );约束的命名 Sno char(4) constraint s_pk primary key; Age smallint constraint s_check check(age=15 and age=15 and value=15 and age=15 and age=25); Drop assertion asse1,asse2;数据库的安全
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 皖北卫生职业学院《行政法学》2025-2026学年期末试卷
- 宁德师范学院《政治经济学》2025-2026学年期末试卷
- 中国医科大学《改革开放史》2025-2026学年期末试卷
- 亳州职业技术学院《法医学史》2025-2026学年期末试卷
- 南昌交通学院《材料工程基础》2025-2026学年期末试卷
- 展会安全应急指南讲解
- 人工智能参加高考纪实
- 生成智能基础 8
- 家具设计师安全演练能力考核试卷含答案
- 学校学生行为制度
- 《民族团结一家亲同心共筑中国梦》主题班会
- 2025-2030中国频率合成器行业市场发展趋势与前景展望战略研究报告
- 道路损坏修缮协议书模板
- 全国民用建筑工程设计技术规范
- 博士论文写作精解
- 数字普惠金融对粮食供应链韧性的影响研究
- 2024年11月医用冷库建设合同3篇
- 护理CQI项目模板
- 2025年河北省职业院校技能大赛建筑工程识图(高职组)赛项参考试题库(含答案)
- 2024年洛阳职业技术学院单招职业适应性测试题库及答案解析
- 2024年贵州省技能大赛白酒酿造赛项考试题库(含答案)
评论
0/150
提交评论