当前位置:文档之家› 参照完整性

参照完整性

– A、R(A) 、 – C、R(A×B×C×D) 、 × × ×
5
B、R(A,B,C,D) 、 D、R(A,B) 、
关系的完整性
实体完整性
关系的主码中的属性值不能为空值 空值:不知道或无意义 空值: 意义:关系对应到现实世界中的实体集, 意义:关系对应到现实世界中的实体集,元组 对应到实体,实体是相互可区分的, 对应到实体,实体是相互可区分的,通过主码 来唯一标识,若主码为空, 来唯一标识,若主码为空,则出现不可标识的 实体, 实体,这是不容许的 – 如学生表中学号取空值则意味着该学生不存在 – – –1Biblioteka 参照完整性参照完整性
– 如果关系 2的外部码 k,与关系 1的主码 k相 如果关系R 的外部码F ,与关系R 的主码P 对应, 中的每一个元组的F 值或者等于 对应,则R2中的每一个元组的 k值或者等于R1 中某个元组的P 中某个元组的 k 值,或者为空值 – R2为参照关系, R1为被参照关系或目标关系 为参照关系, – 意义:如果关系R2的某个元组t2参照了关系R1 意义:如果关系 的某个元组 参照了关系 的某个元组t 的某个元组 1,则t1必须存在 – 例关系“学生”在“专业号”上的取值有两种 例关系“学生” 专业号” 可能
系统支持
– 实体完整性和参照完整性由系统自动支持 – 系统应提供定义和检验用户定义的完整性机制
3
完整性示例
供应商关系S(主码是“供应商号” 供应商关系S(主码是“供应商号”) S(主码是
供应商号 B01 S10 T20 Z01
供应商名 红星 宇宙 黎明 立新
所在城市 北京 上海 天津 重庆
4
零件关系P(主码是“零件号” 外码是“ 零件关系P(主码是“零件号”,外码是“供应商号 P(主码是 今要向关系 P 中插入新 ”) 行 , 新行的值分别列出如 零件号 颜色 供应商号 哪些行能够插入? 下。哪些行能够插入? 010 B01 红 037’ A . (‘037 , ‘ 绿 ’ , 037 null) 312 S10 白 B.(null,‘黄’, (null, 201 T20 蓝 T20’) ‘T20 ) C.(‘201 ,‘红’, 201’, 201 T20’) ‘T20 )
本章习题
关系模型中,一个关键字是 关系模型中,一个关键字是________
要 点
– A、可由多个任意属性组成 、 – B、至多由一个属性组成 、 – C、可由一个或多个其值能唯一标识该关系模 、 式中任何元组的属性组成 – D、以上都不是 、
设有属性A, , , , 设有属性 ,B,C,D,以下表示中不是关 系的是________ 系的是
• 空值,表示该学生尚未分到任何专业中 空值, • 若非空值,则必须是“专业”关系中某个元组的专 若非空值,则必须是“专业” 业号值, 业号值,表示该学生不可能分到一个不存在的专业 中
R1 Pk
R2
Fk
2
用户自定义完整性
用户定义的完整性
– 用户针对具体的应用环境定义的完整性约束条 这些约束都由关系模型处理, 件,这些约束都由关系模型处理,与应用程序 无关 – 如“学号”属性要求是8位数字的字符串, 位数字的字符串, 学号”属性要求是 位数字的字符串 性别”属性要求取值为“ “性别”属性要求取值为“男”或“女”
相关主题