版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、4.2 数据完整性实现技术(DDL)信息科学与工程学院杨金民2020.10数据完整性的四大保障措施:主键约束;外键约束;域约束;业务规则约束;数据完整性问题DDL介绍表模式(Schema)的定义中,包含了主键,外键,域约束的定义;业务规则约束用触发器(Trigger)来定义;SQL 标识符(Identifiers)数据库中的对象,有如下类别:表,列,视图,存储过程,函数,触发器,用户,角色,索引,用户自定义数据类型。例如,在数据库中创建一个表student,准确的说法是创建表类型的一个实例对象。该实例对象的名称字段的取值为student;这样一来,表的模式(Schema), 在DBMS内部也是
2、使用表来存储,设这个表为sys_table表。用户每创建一个表,其实就是往sys_table中添加一行数据;对于某个类别,在数据库中,其实例对象都是用名称来标识。名称命名规则:以字母开头,只含字母,数字,下划线,长度不超过128;SQL基本数据类型Data Type Description BOOLEAN 布尔类型 TRUE/FALSECHAR 固定长度的字符串,如 CHAR(10)VARCHAR 变长字符串,如 VARCHAR(50)NUMERIC or DECIMAL 数值型 NUMERIC(7,2)INTEGER IntegerSMALLINT 小整型 FLOAT or REAL 浮点数
3、. DATE 日类型 TIME 时间类型 TIMESTAMP 时间戳CHARACTER LARGE OBJECT SQL3 文本大对象BINARY LARGE OBJECT SQL3 二进制大对象表模式定义语句例子CREATE TABLE Emp (eno CHAR(5),ename VARCHAR(30) NOT NULL,birthday DATE,title CHAR(2) CHECK (title IN (NULL,EE,SA,PR,ME),salary DECIMAL(9,2),superno CHAR(5),dno CHAR(5)PRIMARY KEY (eno)FOREIGN K
4、EY (dno) REFERENCES Dept(dno)ON DELETE SET NULL ON UPDATE CASCADE FOREIGN KEY (superno) REFERENCESEmp(eno);引用完整性约束所指的一个方面StudentNamestudentNosexbirthdateMike2008043101male1990/12/14Tom2008043214female1992/02/21Mary2008043332female1988/07/09EnrollstudentNocourseNosemestergrade20080433324308032010/019
5、020080431014303172009/015620080431014303172008/025620080433324300072004/027720080433324306012000/018720080431014303172002/0256在Student表中的某一行记录:1)其主关键字studentNo被修改;2)被删除;3)被插入;在Enroll表中对应的记录怎么办?引用完整性约束StudentNamestudentNosexbirthdateMike2008043101male1990/12/14Tom2008043214female1992/02/21Mary2008043
6、332female1988/07/09EnrollstudentNocourseNosemestergrade20080433324308032010/019020080431014303172009/015620080431014303172008/025620080433324300072004/027720080433324306012000/018720080431014303172002/0256在Student表中的某一行记录:1)修改的其主关键字studentNo;2)删除某一行记录;3)插入一行新记录;1) CASCADE2) SET NULL3) NO ACTION引用完整性
7、约束所指的另一个方面StudentNamestudentNosexbirthdateMike2008043101male1990/12/14Tom2008043214female1992/02/21Mary2008043332female1988/07/09EnrollstudentNocourseNosemestergrade20080433324308032010/019020080431014303172009/015620080431014303172008/025620080433324300072004/027720080433324306012000/01872008043101
8、4303172002/0256在Enroll表中:添加一行记录;某行记录的外建字段studentNo的值被修改enroll表中行记录的外建字段studentNo的值在Student中要存在;表模式创建例子CREATE TABLE Enroll (sno CHAR(12) NOT NULL,cno CHAR(8) NOT NULL,semester CHAR(7), tno CHAR(7),classNo CHAR(2);grade SMALLINTPRIMARY KEY (sno, cno, semester)FOREIGN KEY (sno) REFERENCES student(sno)
9、ON DELETE CASCADE ON UPDATE CASCADE,FOREIGN KEY (cno) REFERENCES course(cno) ON DELETE NO ACTION ON UPDATE CASCADE FOREIGN KEY (tno) REFERENCES teacher(to) ON DELETE SET NULL ON UPDATE CASCADE );课堂练习CourseNamecourseNocredithourstextbooksyllabusdtuy_tnodnodatabaseA240608464aintroduction200421324opera
10、ting system430803464ball200100724java430317348csectionnull24写出Course表的模式定义语句 用户对某个表执行行更新元组约束 1)域约束:当前数据行,每个字段取值受其域约束:data type,取值范围,NOT NULL,UNIQUE等;2)业务规则约束当前行数据,不同字段的取值彼此之间存在关联约束;当前行数据,它受该表中已有行的约束;当前行数据,它受其它表中已有行的约束;业务规则约束的表达1)当前行数据,每个字段取值受其域约束:data type,domain,NOT NULL 等;2)当前行数据,不同字段的取值彼此之间存在关联约束
11、;例如:CREATE TABLE student (studentNo CHAR(10) NOT NULL,honors CHAR(1),grade DECIMAL(4,1)CHECK ( (honors = Y AND grade 85) OR honors = N);3)当前行数据,它受该表中已有行的约束;4)当前行数据,它受其它表中已有行的约束;使用触发器实现比较后两类业务规则约束(相对复杂)触发器表:TableNameTableTypeOperationTypeFieldNameTriggerTypeTriggerNameTriggerCodeenrolltableINSERTnull
12、BEFOREenroll_insert.teachertableUPDATEsalaryAFTERsalary_update.staffviewINSERTnullINSTEAD OFtransfer_insertstaffviewDELETEnullINSTEAD OFtransfer_delete理解业务规则约束的触发器实现机制Thread:while (1) waitForClientRequest(Request); try 解析请求:操作类型,表,字段;对更新操作,查触发器表: if (有BEFORE触发器) 分别调用它们; if (有INSTEAD OF触发器) 分别调用它们 el
13、se 执行请求操作; if (有AFTER触发器) 分别调用它们; catch exception(e) . 使用触发器实现每学期选课不超过25学分CREATE TRIGGER trigger_insertEnrollBEFORE INSERT ON enrollREFERENCING NEW ROW AS newFOR EACH ROWBEGINcredit integerSELECT SUM(credit) INTO credit FROM course WHERE courseId IN (SELECT courseId FROM enroll WHERE studentId = new
14、.studentId AND semester =new.semester) OR courseId = new.courseId;WHEN ( credit 25 ) raise_application_error(20000, 这个学期已经选修学分 + credit);END;实现每个房间的预订不重叠冲突CREATE TRIGGER trigger_insertBookingBEFORE INSERT ON bookingREFERENCING NEW ROW AS newFOR EACH ROWBEGINWHEN( EXIST SELECT hotelNo, roomNo FROM bo
15、oking WHERE hotelNo = newrow.hotelNo AND roomNo =new.roomNo AND dateTo = new.dateFrom AND dateFrom old.salary*1.1) INSERT INTO auditEmpVALUES (new.eno, date(now(), new.salary, old.salary);事件条件动作随堂测试基于触发器放入业务规则定义1)对老师表,rank的取值有:教授,副教授,助理教授。要求:职称级别低的工资不能高于职称级别高的老师的工资;2) 当员工表中的某个员工被删除时,该员工在workOn表中相应的记
16、录也要求一同删除;删除或者修改中的一个对象DROP TABLE emp;ALTER TABLE emp .;DROP VIEW staff;ALTER VIEW staff .;DROP PROCEDURE add_enroll;ALTER PROCEDURE add_enroll;DROP TRIGGER staff_insert;ALTER TRIGGER staff_insert;关系数据库模型的知识图谱审计踪迹记录权限管理对象权限用户授权收权触发器业务规则约束完整性约束主键约束域约束外键约束SQL表达应用程序屏蔽编程可视化数据存储过程个性化数据屏蔽SQL视图屏蔽联接业务数据数据库中的对
17、象应用程序(视图和存储过程)存储过程视图表触发器(完整性约束)用户(权限管理)索引数据库管理系统(DBMS)SQL DDL创建 CREATE;删除 DROP;修改ALTER;数据库设计人员SQL DMLSELECT;DELETE;UPDATE;INSERT;Statistics;CALL;数据库使用人员什么时候定义成视图?什么时候定义成存储过程?阶段考试题希尔顿是一跨国旅馆经营公司,其数据库系统中有如下4个表:Hotel (hotelNo, name, city)Room (roomNo, hotelNo, type, price)Booking (hotelNo, guestId, dateFrom, dateTo, roomNo)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年菏泽市第三人民医院第二批公开招聘编制备案制工作人员模拟笔试试题及答案解析
- 2025河南新郑天佑医院(原新郑市第二人民医院)招聘备考考试试题及答案解析
- 2025广东佛山市第二人民医院招聘高层次人才(第二批)4人备考考试题库及答案解析
- 2025年河北医科大学第四医院招聘6名派遣人员模拟笔试试题及答案解析
- 2025年甘肃省国家统计局嘉峪关调查队招聘公益性岗位人员备考考试试题及答案解析
- 2025重庆两江新区鸳鸯社区卫生服务中心招聘1人笔试备考重点试题及答案解析
- 2026湖南省密码工程技术研究中心 项目总监、新媒体运营等岗位招聘备考考试题库及答案解析
- 2025湖南经视招聘8人模拟笔试试题及答案解析
- 2025粤港澳大湾区气象研究院第二批招聘备考考试试题及答案解析
- 2025广东湛江市吴川市公益性岗位人员招聘4人模拟笔试试题及答案解析
- 法律诊所(第三版)课件全套 第1-10章 入门、会见-调解
- QC工作流程图模板
- 电梯维保服务投标方案
- 4继电控制线路故障检测与排除
- 国家开放大学《公共部门人力资源管理》期末机考资料
- 大学生职业规划与就业指导知到章节答案智慧树2023年广西中医药大学
- GB/T 20969.2-2021特殊环境条件高原机械第2部分:高原对工程机械的要求
- PMBOK指南第6版中文版
- 快速记忆法训练课程速读课件
- 步战略采购方法细解 CN revison 课件
- 酒店装饰装修工程施工进度表
评论
0/150
提交评论