关系的定义和性质 关系是一个属性数目相同的元组的集合。 在关系模型中,对关系作了下列规范性限制 ●关系中每一个属性值都是不可分解的 关系中不允许出现重复元组(即不允许出现相同 的元组) ●由于关系是一个集合,因此不考虑元组间的顺序, 即没有行序 ●元组中的属性在理论上也是无序的,但使用时按 习惯考虑列的顺序
11 关系的定义和性质 ⚫ 关系是一个属性数目相同的元组的集合。 ⚫ 在关系模型中,对关系作了下列规范性限制 ⚫ 关系中每一个属性值都是不可分解的 ⚫ 关系中不允许出现重复元组(即不允许出现相同 的元组) ⚫ 由于关系是一个集合,因此不考虑元组间的顺序, 即没有行序 ⚫ 元组中的属性在理论上也是无序的,但使用时按 习惯考虑列的顺序。 返 回
关系模型的完整性规则(1) 实体完整性规则( entity integrity rule) 要求关系中元组在组成主键的属性上不能有 空值。如果出现空值,那么主键值就起不了 惟一标识元组的作用
12 关系模型的完整性规则(1) ⚫ 实 体 完整 性规 则( entity integrity rule) ⚫ 要求关系中元组在组成主键的属性上不能有 空值。如果出现空值,那么主键值就起不了 惟一标识元组的作用
关系模型的完整性规则(2) 参照完整性则( reference integrity rule) ●如果属性集K是关系模式R1的主键,K也是关系 模式R2的外键,那么在R2的关系中,K的取值只 允许两种可能,或者为空值,或者等于R1关系中 某个主键值 这条规则的实质是“不允许引用不存在的实体 关系模式R的关系称为“参照关系”,关系模式 R2的关系称为“依赖关系”。“主表”和“副 表”,“父表”和“子表”。 13
13 关系模型的完整性规则 (2) ⚫ 参照完整性规则(reference integrity rule) ⚫ 如果属性集K是关系模式R1的主键,K也是关系 模式R2的外键,那么在R2的关系中,K的取值只 允许两种可能,或者为空值,或者等于R1关系中 某个主键值 ⚫ 这条规则的实质是“不允许引用不存在的实体” ⚫ 关系模式R1的关系称为“参照关系” ,关系模式 R2的关系称为“依赖关系” 。 “主表”和“副 表” , “父表”和“子表”
关系模型的完整性规则(3) 下面各种情况说明了参照完整性规则在关系中如何实现 的 在关系数据库中有下列两个关系模式: S(S#, SNAME, AGe, seX SC (S#, C#, GRADE) 这里带线者为主键,带线者为外键。据规则要求 关系SC中的S#值应该在关系S中出现。如果关系SC中有 个元组(S7,C4,80),而学号S7却在关系S中找不到 那么我们就认为在关系SC中引用了一个不存在的学生实 体,这就违反了参照完整性规则 另外,在关系C中#不仅是外键,也是主键的一部分 因此这里S#值不允许空
14 关系模型的完整性规则 (3) ⚫ 下面各种情况说明了参照完整性规则在关系中如何实现 的。 在关系数据库中有下列两个关系模式: S(S#,SNAME,AGE,SEX) SC(S#,C#,GRADE) 这里带 线者为主键,带 线者为外键。据规则要求 关系SC中的S#值应该在关系S中出现。如果关系SC中有 一个元组(S7,C4,80),而学号S7却在关系S中找不到, 那么我们就认为在关系SC中引用了一个不存在的学生实 体,这就违反了参照完整性规则。 另外,在关系SC中S# 不仅是外键,也是主键的一部分, 因此这里S# 值不允许空
关系模型的完整性规则(4) 设工厂数据库中有两个关系模式: DEPT(#, DNAME) EMP(E#, ENAME, SALARY, D#F) 车间模式DEPT的属性为车间编号、车间名, 职工模式EMP的属性为工号、姓名、工资 所在车间的编号。每个模式的主键与外键已杉 出。在EMP中,由于D#不在主键中,因此D拼 值允许空 15
15 关系模型的完整性规则 (4) 设工厂数据库中有两个关系模式: DEPT(D#,DNAME) EMP(E#,ENAME,SALARY,D# ) 车间模式DEPT的属性为车间编号、车间名, 职工模式EMP的属性为工号、姓名、工资、 所在车间的编号。每个模式的主键与外键已标 出。在EMP中,由于D# 不在主键中,因此D# 值允许空