知道关系数据库后,我会理解范例。 规范化是关系数据库关系模型规范化的标准,从规范化缓慢到严格可分为不同的规范化,通常采用第一规范化。 第二范式、第三范式和BC范式。 范例基于函数依赖。
函数依赖
如果一个表中某个字段y的值由另一个字段或字段x的一组值确定,则y函数称为依赖于x。
函数依赖
定义
设x、y为关系r的两个属性的集合,并且如果任意时刻r任意两个元组的x属性值相同,则x函数确定y,或y函数依赖于x。
3 .平凡的函数依赖
当关系中的属性集合y是属性集合x的子集时(yx ),存在函数依赖关系XY。 即,一组属性函数决定其所有子集。 这种函数依赖称为平凡的函数依赖。
4 .非平凡函数依赖
当关系属性集合y不是属性集合x的子集时,如果存在函数依赖XY,则这种函数依赖被称为非平凡函数依赖。
5 .完全函数依赖
设x、y为关系r的两个属性的集合,x’为x的真子集,虽然存在XY,但每个x’都有x’! Y表示y的完全函数依赖于x。
6 .某些函数依赖
据悉,x、y为关系r的两个属性的集合,XY存在,x’为x的真子集,x’y存在时,y部分函数依赖于x。
7 .传递函数依赖
据悉,x、y、z是关系r中相互不同的属性的集合,xy(y )存在X ),YZ的情况下,z传递函数依赖于x。
属性关系
属性之间有三种关系,但不是每个关系都有函数依赖关系。 设r(u )为属性集u上的关系模式,x、y为u的子集。
x和y之间为1:1的关系(一对一的关系),学校和校长之间为1:1的关系时,存在函数依赖X Y和Y X。
x与y之间为1:n关系(一对多关系),年龄与姓名之间为1:n关系时,存在依赖于Y X的函数。
x与y之间为m:n关系(多对多关系),学生与课程之间为m:n关系,则x与y之间不存在函数依赖。
个案研究
编辑
示例:student(SnO,Sname,Ssex,Sage,Sdept ) )。
假设不允许重复名称,则有:个
Sno Ssex,Sno Sage,Sno Sdept,
Sno Sname,Sname Ssex,Sname Sage
Sname Sdept
但是Ssex - Sage
X Y且Y X时,标记为X Y。
y不函数依赖于x时,标记为X - Y。
在关系模型r(u )中,对于u的子集x和y,
1.X Y,但y不是x的子集时,xy称为非平凡函数依赖
例:在关系sc(SnO、Cno、Grade )中,
不平凡的函数依赖: (Sno,Cno ) Grade。
2 .虽然xy,但在y是x的子集的情况下,据说xy是平凡的函数依赖
平凡函数依赖于(Sno,Cno ) Sno,),Cno ) Cno。
3.xy且x的真子集x1存在,并且当x1 y时,y部分依赖于x。
例)在学生表(学号、姓名、性别、班级、年龄)关系中,
部分函数依赖:(学号、姓名)性别、学号性别,所以)学号、姓名)性别依赖部分函数。
4 .如果xy并且x的任何真子集x1都不存在x1 y,则y完全依赖于x。
例)在成绩单(学号、课程编号、成绩)关系上,
完全函数依赖:“学号、学号”成绩、学号-成绩、学号-成绩,因此“学号、学号”成绩完全函数依赖。
在x y且y z,y - x的情况下,存在x z,这种函数依赖被称为传递函数依赖。
例:关系S1 (学号、系名、系部长)、
由于是学号系名、系名系部长、还有系名-学号、系部长-系名,所以学号系部长依赖传递函数。