武汉大学计算机学院数据库课程组 4.1函数依赖 (S#,C#)→ SNAME,(S#,C#)→ CLASS, (S#,C#)→ TNAME,(S#,C#)→TAGE, (S#,C#)→ ADDRESS都是部分函数依赖,因为S#→ SNAME, S#→ CLASS,C#→ TNAME,C#→TAGE,C#→ ADDRESS 例:试指出学生关系S中存在的传递函数依赖。 解:因为C#→TNAM, TNAME+>C#, TNAME→TAGE,所以C#→TAGE 是一个传递函数依赖。类似地,C#→ ADDRESS也是一个传递函数 依赖
武汉大学计算机学院数据库课程组 4.1函数依赖 例:试指出学生关系S中存在的传递函数依赖。 解:因为C#→TNAME,TNAME+>C#,TNAME→TAGE,所以C#→TAGE 是一个传递函数依赖。类似地,C#→ADDRESS也是一个传递函数 依赖。 ◼ (S#,C#)→SNAME,(S#,C#)→CLASS, (S#,C#)→TNAME,(S#,C#)→TAGE, (S#,C#)→ADDRESS都是部分函数依赖,因为S#→SNAME, S#→CLASS,C#→TNAME,C#→TAGE,C#→ADDRESS
武汉大学计算机学院数据库课程组 4.1函数依赖 四、候选键 用函数依赖的概念来定义键。 术语: 定义44: 主键 设X为R<U,F>中的属性或属>主属性:侯选键中的属性 性组合,若X、U则X为R>非主属性 的候选键。 说明: 全键:整个属性组为键 XF、U 例:R(顾客,商品,日期) X→>UX能决定整个元组 X+>UX中无多余的属性
武汉大学计算机学院数据库课程组 4.1函数依赖 四、候选键 用函数依赖的概念来定义键。 定义4.4 : ▪ 设X为R<U,F>中的属性或属 性组合,若 X F > U 则X为R 的候选键。 ▪ 说明: ▪ X F > U ▪ X -> U X能决定整个元组 ▪ X’+> U X中无多余的属性 ▪ 术语: ➢ 主键 ➢ 主属性: 侯选键中的属性 ➢ 非主属性 ➢ 全键:整个属性组为键 例:R(顾客,商品,日期)
武汉大学计算机学院数据库课程组 4.1函数依赖 例:试指出下列关系R中的侯选键、主属性和非主属性。 A D E a1 d1 e2 函数依赖判断:A->D? D-2AAD->E? a2 d6e2 a3 d4 e3 候选键判断:A->ADE AD->ADE? a4 d4 e4 解:关系R的侯选键为:A,(D,E 关系R的主属性为:A,D,E 关系R的非主属性:无
武汉大学计算机学院数据库课程组 4.1函数依赖 ◼ 例:试指出下列关系R中的侯选键、主属性和非主属性。 A D E a1 d1 e2 a2 d6 e2 a3 d4 e3 a4 d4 e4 解:关系R的侯选键为:A,(D,E) 关系R的主属性为:A,D,E 关系R的非主属性:无 函数依赖判断:A->D? D->A? … AD->E?… 候选键判断: A->ADE?… AD->ADE?…
武汉大学计算机学院数据库课程组 4.1函数依赖 B 1. R(A B c D, F=A->B, A->C AB->D] 解:由AB->A(自反律)和A>C(已知) 得:AB->C(传递律) 又因为AB->A〔自反律),AB->B(自反律)和AB->D(已知) 得:AB->ABCD。 AB是R的唯一候选键,同时也是R的主键
武汉大学计算机学院数据库课程组 4.1函数依赖 例1. R(A, B, C, D),F={A->B, A->C, AB->D} 解:由 AB->A(自反律) 和 A->C(已知) 得:AB->C(传递律) 又因为 AB->A (自反律) ,AB->B (自反律) 和 AB->D (已知) 得:AB->ABCD。 AB是R的唯一候选键,同时也是R的主键
武汉大学计算机学院数据库课程组 4.1函数依赖 12. R(A, B, D), F=A->B, A->C A->D, AB->D] 解:由A->A(自反律)和A->B,A->CA->D(已知) 得:A->ABCD 可知A是R的候选键 AB->ABCD,但由于存在A>ABCD,则AB对ABcD是部分函 数依赖,因此AB不能成为候选键。 A是R的唯一候选键,A是主键。 合pp
武汉大学计算机学院数据库课程组 4.1函数依赖 例2. R(A, B, C, D),F={A->B, A->C, A->D, AB->D} 解:由 A->A(自反律) 和 A->B, A->C, A->D(已知) 得:A-> ABCD 可知 A是R的候选键 AB->ABCD,但由于存在A-> ABCD,则AB对ABCD是部分函 数依赖,因此AB不能成为候选键。 A是R的唯一候选键,A是主键