数据库系统概论第五章完整性控制_第1页
数据库系统概论第五章完整性控制_第2页
数据库系统概论第五章完整性控制_第3页
数据库系统概论第五章完整性控制_第4页
数据库系统概论第五章完整性控制_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库系统概论第五章完整性控制1第一页,共十四页,2022年,8月28日③

约束对象状态·静态:反映DB状态合理性的约束。·动态:反映DB状态变迁的约束。④

约束时机(Immediateconstraints)(1)立即约束——一条语句执行完后立即检查。(2)延迟约束(deferredconstrants)——事务执行结束后检查。转帐,从A到B后,帐才能平,才能进行检查。2、静态列级约束——对一个列的取值域的约束。①

数据类型约束类型、长度、单位、精度如XM为C型,长8位;YL为I型,长3位。②

数据格式约束如工作证号前2位表示省,后3位表示县,后4位表示单位顺序号,后5位表示个人顺序号。2第二页,共十四页,2022年,8月28日③

值域约束CJ≤100,YL≤150,XB={男,女}④

空值约束是否允许空值列。如CJ可为空。⑤

其它约束(如:列的排序、组合列等等)3、静态元组约束——对一个(仅一个)元组中各列值间联系的约束。如:总额≥单价工龄<年龄4、静态关系约束——对一个关系中若干元组之间或若干关系的联系的约束。①

实体完整性约束;②

参照完整性约束;③

函数依赖约束;④

统计约束;如:职工最低工资不能低于本部门职工平均工资的50%。3第三页,共十四页,2022年,8月28日5、动态列级约束——修改列定义或列值时的约束。①

修改定义约束——修改定义时新老值间的约束。如:将允许空值列改为不允许空值时,若该列值已有空值,则不可修改。②

修改值约束——修改时新旧值间的约束。如年龄不能修改得更小。6、动态元组约束——修改元组时新旧值间的约束。7、动态关系约束——施加于关系上的前后状态的约束①

一致性②

原子性

4第四页,共十四页,2022年,8月28日5.3完整性控制1、实体完整性(entityintegrity)——对关系模式主属性施加的完整性控制。①

不允许空;②

例:

student(XH,XM,XB,YL) XH不能为空course(KH,KM) KH不能为空Sc(XH,KH,CJ)XH, (XH,KH不能为空Createtablestudent(XH,Char(6)NOTNULL,…,);2、参照完整性(referentialintegrity)——对外码施加的完整性控制。参照关系:外码所在关系,如SC被参照关系:主码(同时又是另一关系中的外码)所在关系,如student,course.外码:SC中的XH,KH5第五页,共十四页,2022年,8月28日1)空值情况①

为空(SC中XH为空,表示无这个学生,或无学号学生选修了课程,不合应用语义),或;②

对应被参照关系中该元组存在;③

是否可为空,据应用语义确定。

DEPT(DH,DM,DD)EMPL(DH,EH,XM)EMPL中DH可为空,表示该职员还未分配到任何部门工作。2)删除被参照关系元组情况①

捆绑删除(cascades)——参照与被参照关系中相关者一起删除。·被参照关系中外码元组删除例如:删除99001号学生(或者01号课程)如:删去student中XH=‘99001’的元组删去course中KH=‘01’的元组删去SC中学号为99001(课号为01)的所有元组·参照关系中与被参照关系中码值对应元组删除6第六页,共十四页,2022年,8月28日·诛连九族如:若SC又是另一参照关系的被参照关系,则又删去之……。②

受限删除(restricted)——参照关系没有一个外码与要删除的被参照关系的主码值相对应时才执行删除。例如:若SC中外码值XH,无一个与主码值(Student.XH,course.KH)对应时才删去student、course中相应元组。③

置空值删除(nullifies/setnull)·删去被参照关系中元组;·参照关系中所有与被参照关系中已删去的主码值相等的外码值置为空值。如:删去部门表中的某个部门,则职员表中原来属于该部门的职员的所属部门号置空。7第七页,共十四页,2022年,8月28日④

说明·上述三种,选择哪一种实施,视应用需求确定。如:学籍管理中,学生毕业了,删去选课及学生信息,故需捆绑删除(course不删)student信息。·DBMS提供相应选择机制。

3)修改被参照关系主码值情况①

捆绑修改(cascades)·修改被参照关系中主码值。如修改student中的XH=99003改为XH=99020·同时修改参照关系中相等外码值。如:同时SC中所有99003改为99020·诛连九族。8第八页,共十四页,2022年,8月28日②

受限修改(restricted)——仅当参照关系中没有一个外码值与被参照关系中某个元组主码值相等时才可修改被参照关系中的该元组主码值。如:仅当SC中学生无99003时,才可修改student中XH=99003。③

置空值修改(nullifies)·修改被参照关系中的主码值;·将参照关系中的与该主码值相等的外码置为空值。④

说明·具体应用中,根据应用需求选择上述方法执行。·DBMS提供机制支持用户选择。

9第九页,共十四页,2022年,8月28日3、用户定义完整性(integrityofuserdefinition)1)空值控制——对给定属性施加不允许空值限制(NOTNULL)2)单个属性控制为:(CJisNull)

OR(CJBETWEEN0AND100)3)多属性控制如:XB=‘男’

ANDYL<=304、ORACLE完整性1)实体完整性CREATETABLEstudent(XHNUMBER(8),XMVARCHAR(8),YLNUMBER(3),ConstraintPK-XHPRIMARYKEY(XH));一旦定义了主码,则DBMS自动进行完整性检查:·主码不能为空;·主码值须唯一。10第十页,共十四页,2022年,8月28日2)参照完整性①

语句·FOREIGNKEY:指定外码属性·REFERENCES:指定外码对应主码·ONDELETECASCADE:指定捆绑删除要求例:CREATETABLESC(XHNUMBER(8),KHNUMBER(3),CJNUMBER(3),CONSTRAINTFK_SCFOREIGNKEY(XH,KH)REFERENCESSTUDENT(XH),course(KH)ONDELETECASCADE));

11第十一页,共十四页,2022年,8月28日②

说明:·SC中外码为XH,KH。·对应STUDENT主码为XH。·对应COURSE主码为KH。·当修改STUDENT中XH时,先检查SC中有无元组XH值与之相等,若有,则不能执行该修改;当修改COURSE中KH,先检查SC中有无元组的KH值与之相等,若有,则不能执行该修改。·当删除STUDENT或COURSE某元组时,则先在SC中找到相应元组,进行捆绑删除。3)用户定义完整性①

列值非空(NOTNULL)②

列值唯一(UNIQUE)CREAETABLECOURSE(KHNUMBER(3),KMVARCHAR(20)

CONSTRAINTU1UNIQUE,XSNUMBER(2));12第十二页,共十四页,2022年,8月28日其中:CONSTRAINTU1UNIQUE:KM唯一,约束名为U1。③

列值范围限制例:·

·

·XBVARCHAR(2)CONSTRAINTX1CHECK(XBIN(‘男’,‘女’));例:·

·

·GZNUMBER(8.2)CONSTRAINTG1CHECK(GZ≥1000.00));例:CRETATETRIGGERUPDATE-CJBEFOREINSERTORUPDATEOFCJFOREACHROWWHEN(:NEW.KH=‘001’)BEGINIF:NEW.CJ>50THEN:NEW.CJ:=50ENDIF;END;13第十三页,共十四页,2022年,8月28日说明:·利用触发器,当对SC中进入插入元组和修改CJ值时,若为‘001’号课程,则CJ>50时一律自动改为50分。·定义触发器语句为CREATEORREPLACETRTGGER。(先定义后使用)·CREATETRIGGER语句定义触发器的约束条件。

一条完整性规则可以用一个五元组(D,O,A,C,P)来形式化地表示,其中:D:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论