1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,5/9/2012,#,静态列级约束,数据的完整性,数据的正确性、有效性和相容性。即将数据控制在有效的范围内,或要求数据之间满足一定的关系。,(课本,P7,),例如:学生的年龄必须是整数,取值范围为,1429,;学生的性别只能是男或女;学生的学号是唯一的等等。这些都是指数据的完整性。,数据是否具备完整性关系到数据库系统能否真实地反映现实世界,因此维护数据库的完整性是非常重要的。,数据库的完整性,数据库的完整性与安全性,完整性,安全性,目的,防止合法用户使用数据库时向数据库中加入不合语义的数据,防止用户非法使用数据
2、库,包括恶意破坏数据和越权存取数据,防范对象,不合语义的数据,非法用户和非法操作,完整性控制机制,完整性约束条件定义,机制,完整性约束条件,加在数据库数据之上的语义约束条件。,完整性检查,机制,检查数据是否满足完整性条件的机制,也就是检查用户发出的操作请求是否违背了完整性约束条件。,违约反应,如果发现用户的操作请求使数据违背了完整性约束条件,则采取一定的动作来保证数据的完整性。,完整性约束条件,完整性约束条件是完整性控制机制的,核心,。,完整性约束条件作用的对象,:,列,:对属性的取值类型、范围、精度、排序等的约束条件;,元组,:对元组中各个属性间的联系的约束;,关系,:对若干元组间、关系集合
3、上以及关系之间的联系的约束。,对于这三类对象,其状态既可以是静态的也可以是动态的。,静态:,对静态对象的约束是反映数据库状态合理性的约束,静态约束是最重要的一类完整性约束。,动态:,对动态对象的约束是反映数据库状态变迁的约束。,六类完整性约束条件。,静态列级约束,静态元组约束,静态关系约束,动态列级约束,动态元组约束,动态关系约束,对象状态,动态列级约束 动态元组约束 动态关系约束,动态 ,静态列级约束 静态元组约束 静态关系约束,静态 ,对象粒度,列 元组 关系,静态列级约束,静态列级约束,:,对一个列的取值域的说明,;,最常见、最容易实现的一类完整性约束,五类静态列级约束,1),数据类型约
4、束:数据的类型、长度、单位、精度等,例:学生姓名的数据类型为字符型,长度为,8,2),对数据格式的约束,例:学号:前两位表示入学年份,后四位为顺序编号,日期:,YY.MM.DD,。,静态列级约束,3),对取值范围或取值集合的约束,例:规定成取值范围或取值集合的约束绩的取值范围为,0-100;,年龄的取值范围为,14-29,;性别的取值集合为,男,女,4),对空值的约束,空值:未定义或未知的值,与零值和空格不同。有的列允许空值,有的则不允许。,例:成绩可为空值,5),其他约束,例:关于列的排序说明,组合列等,静态元组约束,静态元组约束:规定元组的各个列之间的约束关系,例:订货关系中发货量,=700,元,静态元组约束只局限在元组上,因此比较容易实现。,静态关系约束,关系的各个元组之间或若干关系之间存在的各种联系或约束,常见静态关系约束:,实体完整性约束,参照完整性约束,函数依赖约束,统计约束,静态关系约束,关系字段间存在的函数依赖,例:在学生课程教师关系,SJT(S,J,T),的函数依赖:,(S,J,),T,TJ),,将,(S,J),作为主码,还需要显示地表示,T J,这个函数依赖。,定义某个字段值一个关系多个元组的统计值之间的约束关系,例:职工平均工资的,2,倍,=,部门经理的工资,=,职工平均工资的,5,倍,职工平均工资值,:,统计值,Thank you,!,