数据库第六章

属性间的联系

1.一对一联系

2.一对多联系

3.多对多联系

数据依赖

是一个关系内部属性与属性之间的一种约束关系

是现实世界属性间相互联系的抽象

是数据内在的性质 是语义的体现

1.函数依赖

2.多值依赖

例:描述一个学生关系,可以有学号、姓名、系名等属性。

一个学号只对应一个学生,一个学生只在一个系中学习 “学号”值确定后,学生的姓名及所在系的值就被唯一确定。

现给出一个关系模式找出其问题:

U ={Sno, Sdept, Mname, Cno, Grade}

F={Sno→Sdept, Sdept→ Mname, (Sno, Cno)→ Grade}

(1)数据冗余

(2)更新异常

(3)插入异常

(4)删除异常

把这个单一的模式分成三个关系模式:

S(Sno,Sdept,Sno → Sdept);

SC(Sno,Cno,Grade,(Sno,Cno) → Grade);

DEPT(Sdept,Mname,Sdept → Mname);

这三个模式都不会发生插入异常、删除异常的问题,数据的冗余也得到了控制。

平凡函数依赖与非平凡函数依赖

X→Y,但Y⊈X则称X→Y是非平凡的函数依赖。

X→Y,但Y⊆X 则称X→Y是平凡的函数依赖。

例:在关系SC(Sno, Cno, Grade)中,            

                                                       非平凡函数依赖: (Sno, Cno) → Grade            

                                                       平凡函数依赖:     (Sno, Cno) → Sno                                          

                                                                                     (Sno, Cno) → Cno

完全函数依赖与部分函数依赖

在关系SC(Sno, Cno, Grade)中,有:  

由于:Sno ↛Grade,Cno ↛ Grade,          

因此:(Sno, Cno)  →   Grade  (Sno,Cno)→Sdept是部分函数依赖              

因为Sno →Sdept成立,且Sno是(Sno,Cno)的真子集

传递函数依赖

在关系Std(Sno, Sdept, Mname)中,有:

Sno → Sdept,Sdept → Mname, Mname传递函数依赖于Sno。

范式

第一范式(1NF)

第二范式(2NF)

第三范式(3NF)

BC范式(BCNF)

第四范式(4NF)

第五范式(5NF)

2NF

若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则R∈2NF

例:

S-L-C(Sno,Sdept,Sloc,Cno,Grade)

(Sno,Cno)→Grade,Sno→Sdept,

(Sno,Cno)→Sdept,Sno→Sloc,

(Sno,Cno)→Sloc,Sdept→Sloc

S-L-C的码为(Sno,Cno)

S-L-C满足第一范式。

非主属性Sdept、Sloc并不完全依赖于码

关系模式S-L-C不属于2NF

产生问题:

                  插入异常

                  删除异常

                  修改复杂

3NF

设关系模式R<U,F>∈1NF,若R中不存在这样的码X、属性组Y及非主属性Z(Z ⊇ Y), 使得X→Y,Y→Z成立,Y ↛ X不成立,则称R<U,F> ∈ 3NF。

例:2NF关系模式S-L(Sno, Sdept, Sloc)中 函数依赖:          

Sno→Sdept          

Sdept → Sno          

Sdept→Sloc          

可得:Sno→Sloc,即S-L中存在非主属性对码的传递函数依赖,S-L 不属于3NF

BCNF

设关系模式R<U,F>∈1NF,若X →Y且Y 不含于 X时X必含有码,则R<U,F>∈BCNF。

换言之,在关系模式R<U,F>中,如果每一个决定属性集都包含候选码,则R∈BCNF。

例子:关系模式SJP(S,J,P)中,S是学生,J表示课程,P表示名次。

           每一个学生选修每门课程的成绩有一定的名次,每门课程中每一名次只有一 个学生(即没有并列名次)。

由语义可得到函数依赖:

    (S,J)→P;(J,P)→S

    (S,J)与(J,P)都可以作为候选码。

   关系模式中没有属性对码传递依赖或部分依赖,所以SJP∈3NF。

4NF

不允许有非平凡且非函数依赖的多值依赖。 允许的非平凡多值依赖实际上是函数依赖。

规范化小结

数据依赖的公理系统

闭包

在关系模式R<U,F>中为F所逻辑蕴涵的函数依赖的全体叫作F的闭包,记为F +。

设F为属性集U上的一组函数依赖,X、Y 属于U, XF+={ A|X→A能由F根据Armstrong公理导出},XF+  称为属性集X关于函数依赖集F的闭包。

例:已知关系模式R<U, F>,其中U={A, B, C, D, E};F={AB→C, B→D, C→E, EC→B, AC→B}。     

求(AB)F+ 。

AB→C,B→D

得出ABCD

C→E,AC→B

得出ABCDE

所以闭包为ABCDE

模式的分解

若要求分解具有无损连接性,那么模式分解一定能够达到4NF。

若要求分解保持函数依赖,那么模式分解一定能够达到3NF,但不一定能够达到BCNF。

若要求分解既具有无损连接性,又保持函数依赖,则模式分解一定能够达到3NF,但不一定能够达到BCNF。

 

 

A1

A2

An

U1

 

 

 

 

 

 

Cij

 

Uk

 

 

 

 

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值