函数依赖 候选码 主码 第三范式 BCNF 多值依赖

本文详细介绍了关系数据库理论中的函数依赖,包括完全、部分、传递和平凡依赖,以及码的概念,如超码、候选码、主码和非主属性。此外,还讲解了数据库设计中的范式,如1NF、2NF、3NF和BCNF,以及多值依赖。规范化过程被总结为从1NF到4NF的步骤,旨在消除数据冗余和提高数据一致性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

关系数据库理论

课本第六章 关系数据库理论

一、函数依赖:

1.完全函数依赖

通过AB能得出C,但是AB单独得不出C,那么说C完全依赖于AB。

2.部分函数依赖

通过AB能得出C,通过A也能得出C,通过B也能得出C,那么说C部分依赖于AB。

3.传递函数依赖

通过A得到B,通过B得到C,但是C得不到B,B得不到A,那么说C传递依赖于A。

4.平凡依赖

定义:

若X->Y,且Y是X的子集(对任一关系模式,平凡函数依赖必然成立),就是平凡函数依赖。

例如:

在学生表(学号,姓名,年级)中,(学号,姓名)可以推出学号和姓名其中的任何一个,这就是平凡函数依赖.

直白点说,就是只要Y是X的子集,Y就依赖于X。

5.非平凡依赖

定义:

若X->Y,但Y不是X的子集,就是非平凡函数依赖。

例如:

在学生表(学号,姓名,年级)中,通过(学号,姓名)可以推出这个学生所在的年级,但年级不是(学号,姓名)的子集,这是非平凡函数依赖.((学号,姓名)就是一个x,学号或者姓名就是一个x’)。

函数依赖举例说明

Student表:Sno(学号),Sdept(系),Mname(系主任名字),Cno(课程号),Grade(成绩)

ex1: (Sno,Cno)->Grade是完全函数依赖,在该表中Sno和Cno都无法单独决定Grade,因此可以说,Grade完全依赖于Sno和Cno。

ex2: (Sno,Cno)->Sdept是部分函数依赖,因为Sno->Sdept成立,而Sno为(Sno,Cno)的真子集。

ex3: Sno->Sdept,Sdept->Mname,(加上条件Sdept不能决定Sno),此时可以说Mname传递依赖于Sno。

完全函数依赖:

{学号,课号}–>成绩

学号+课号 可以决定 成绩

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值