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