数据库笔记5

数据依赖
是一个关系内部属性与属性之间的一种约束关系
通过属性间值的相等与否体现出来的数据间相互联系
是现实世界属性间相互联系的抽象
是数据内在的性质
是语义的体现
数据依赖的主要类型
函数依赖(Functional Dependency,简记为FD)
多值依赖(Multi-Valued Dependency,简记为MVD)
函数依赖普遍存在于现实生活中
描述一个学生关系,可以有学号、姓名、系名等属性。
一个学号只对应一个学生,一个学生只在一个系中学习
“学号”值确定后,学生的姓名及所在系的值就被唯一确定。
Sname=f(Sno),Sdept=f(Sno)
即Sno函数决定Sname
Sno函数决定Sdept
记作Sno→Sname,Sno→Sdept

 

设K为R<U,F>中的属性或属性组合。若K → U,则K称为R的一个候选码(Candidate Key)。
如果U部分函数依赖于K,即K → U,则K称为超码      (Surpkey)。候选码是最小的超码,即K的任意一个真子集都不是候选码。
若关系模式R有多个候选码,则选定其中的一个做为主码(Primary key)。
主属性与非主属性
包含在任何一个候选码中的属性 ,称为主属性          (Prime attribute)
不包含在任何码中的属性称为非主属性(Nonprime attribute)或非码属性(Non-key attribute)
全码:整个属性组是码,称为全码(All-key)
关系模式 R中属性或属性组X 并非 R的码,但 X 是另一个关系模式的码,则称 X 是R 的外部码(Foreign key)也称外码。
SC(Sno,Cno,Grade)中,Sno不是码
Sno是 S(Sno,Sdept,Sage)的码,则Sno是SC的外码
 

范式

范式是符合某一种级别的关系模式的集合。
关系数据库中的关系必须满足一定的要求。满足   不同程度要求的为不同范式。
范式的种类:               
第一范式(1NF)
第二范式(2NF)
第三范式(3NF)
BC范式(BCNF)
第四范式(4NF)
第五范式(5NF)
各种范式之间存在联系:
某一关系模式R为第n范式,可简记为R∈nNF。
一个低一级范式的关系模式,通过模式分解(schema decomposition)可以转换为若干个高一级范式的关系模式的集合,这种过程就叫规范化(normalization)。

2NF

定义6.6  若关系模式R∈1NF,并且每一个非主属性都完全函数依赖于任何一个候选码,则R∈2NF
[例6.4]  S-L-C(Sno,Sdept,Sloc,Cno,Grade), Sloc为学生的住处,并且每个系的学生住在同一个地方。S-L-C的码为(Sno,Cno)。
       函数依赖有

(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
一个关系模式不属于2NF,会产生以下问题:
插入异常
如果插入一个新学生,但该生未选课,即该生无Cno,由于插入元组时,必须给定码值,因此插入失败。
删除异常
如果S4只选了一门课C3,现在他不再选这门课,则删除C3后,整个元组的其他信息也被删除了。
修改复杂
如果一个学生选了多门课,则Sdept,Sloc被存储了多次。如果该生转系,则需要修改所有相关的Sdept和Sloc,造成修改的复杂化。
出现这种问题的原因
例子中有两类非主属性:
一类如Grade,它对码完全函数依赖
另一类如Sdept、Sloc,它们对码不是完全函数依赖
解决方法:
用投影分解把关系模式S-L-C分解成两个关系模式
SC(Sno,Cno,Grade)
S-L(Sno,Sdept,Sloc)
SC的码为(Sno,Cno),SL的码为Sno,这样使得非主属性对码都是完全函数依赖了

 BCNF

BCNF(Boyce Codd Normal Form)由Boyce和Codd提出,比3NF更进了一步。通常认为BCNF是修正的第三范式,有时也称为扩充的第三范式。
定义6.8  设关系模式R<U,F>∈1NF,若X →Y且Y ⊆ X时X必含有码,则R<U,F>∈BCNF。
换言之,在关系模式R<U,F>中,如果每一个决定属性集都包含候选码,则R∈BCNF。
不良特性
插入异常:如果没有学生选修某位老师的任课,则该老师担任课程的信息就无法插入。
删除异常:删除学生选课信息,会删除掉老师的任课信息。
更新异常:如果老师所教授的课程有所改动,则所有选修该老师课程的学生元组都要做改动。
数据冗余:每位学生都存储了有关老师所教授的课程的信息。

关系模式规范化的基本步骤

                              1NF

                            ↓      消除非主属性对码的部分函数依赖

消除决定因素        2NF

非码的非平凡         ↓      消除非主属性对码的传递函数依赖

函数依赖               3NF

                           ↓      消除主属性对码的部分和传递函数依赖

                             BCNF

                            ↓      消除非平凡且非函数依赖的多值依赖

                             4NF
 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值