数据库 部分函数依赖 完全函数依赖 传递函数依赖 第一范式、第二范式、第三范式、BCNF范式区别
在理解函数依赖之前,先来看一下函数依赖分析:
在关系中,包括在任何候选码中的属性称为主属性;不包括在任何候选码中的属性称为非主属性。
函数依赖只分析关系中的非主属性对主属性之间的依赖关系,并不分析主属性对主键(码)的依赖关系。
具体关于部分函数依赖和完全函数依赖的定义,网上有很多,但大多都是概念,这里我从例子入手来分析,使大家更好的掌握部分函数依赖、完全函数依赖和传递函数依赖。
假设存在关系:
R(学号,姓名,性别,班级,班主任,课程号,课程名,学时数,成绩)
主键:学号+课程号
主属性:{学号,课程号}
非主属性有:{姓名,性别,班级,班主任,课程名,学时数,成绩}
完全函数依赖分析
成绩依赖于学号和课程号两个字段的组合;但只知道学号无法确定成绩,同理只知道课程号也无法确定成绩;只有学号和课程号组合在一起才能标识哪个学生哪门课程的成绩;
因此(学号,课程号)---->成绩 是“完全函数依赖”。
部分函数依赖分析