123bc范式定义作用
-
范式:范式是为了消除重复数据减少冗余数据,从而让数据库内的数据更好的组织,让磁盘空间得到更有效利用的一种标准化标准,满足高等级的范式的先决条件是满足低等级范式。
-
函数依赖:一行中,一列可以决定另一列
Student(Sno, Sname, Ssex, Sage, Sdept),
Sno → Ssex, Sno → Sage
Sno → Sdept, Sno ←→ Sname
Sname → Ssex, Sname → Sage
但Ssex →Sage, Ssex→ Sdept
-
X→Y,但 Y⊈X 则称 X→Y 是非平凡的函数依赖。
X→Y,但 Y⊆X 则称 X→Y 是平凡的函数依赖。
-
如果说对于属性组 X,X–>Y,并且 X 的子集 X’ 也同样决定了 Y,即 X‘–>Y。我们将其称为 Y 对 X 的部分函数依赖,记作 X-P->Y
反之,如果不存在 X 的子集 X’可以决定 Y,并且 X–>Y,那么我们将其称之为完全函数依赖,记作:X-F->Y
v在关系SC(Sno, Cno, Grade)中,有:
n 由于:Sno ↛Grade,Cno ↛ Grade,
因此:(Sno, Cno) F→ Grade
(Sno, Cno)P→Sno
(Sno, Cno) P→Cno
-
v如果 X→Y(Y⊈X),Y↛X,Y→Z,Z⊈Y, 则称 Z 对 X 传递函数依赖。记为:X → Z。
n在关系Std(Sno, Sdept, Mname)中,有:
Sno → Sdept,Sdept → Mname,
Mname传递函数依赖于Sno
范式
-
1NF:在关系模式 R 中,其所有属性均为简单属性,即每个属性都是不可再分的,那么则称 R 为第一范式
关系模式 R 为:
(学生ID,姓名,课程号,课程名,所在系,系主任,成绩)
-
2NF:关系 R 属于第一范式,同时 R 的每个非主属性完全依赖于码,那么我们将其称之为第二范式。
R0(学生号,学生名,所在系,系主任) R1(学生号,课程号,成绩) R2 (课程号,课程名)
-
3NF:消除传递依赖
R0(学生号,学生名,所在系) R1(所在系,系主任) R2(学生号,课程号,成绩) R3 (课程号,课程名)
-
BC 范式:他强调了关系模式 R 中所有的属性(包括主属性和非主属性)都完全依赖于码或候选键,并且不存在传递依赖的情况。第二范式是消除了非主属性对主属性的部分依赖,第三范式消除了非主属性对主属性的传递依赖,那么 BC 范式则是对所有属性消除了对于主属性的传递依赖与部分依赖。换句话说,在第三范式的基础上,他消除了主属性之间的传递依赖与部分依赖。 分解为ST(S,T)与TJ(T,J)
模式分解两个原则
模式分解的原则是与原模式等价,模式分解的标准是:
模式分解具有无损连接性
模式分解能够保持函数依赖