- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
07关系数据库规范化理论
数据库技术与应用
袁宝库
yuanbaoku@bupt.edu.cn
关系数据库规范化理论
函数依赖
关系规范化
关系模式的分解准则
函数依赖
定义:如果有一个关系模式R(A1,A2,…,An),X 和Y为{A1,A2,…,An}的子集,那么对于关系R中的任意一个X值,都只有一个Y 值与之对应,则称X函数决定Y,或Y函数依赖于X。
例:Student(Sno, SName, Sdept, Sage)
Sno→SName, Sno→Sdept, Sno→Sage
例: SC(Sno, Cno, Grade)
(Sno, Cno)→Grade
一些术语和符号
1. 如果X→Y,但Y不包含于X,则称X→Y是非平凡的函数依赖。如不作特别说明,我们总是讨论非平凡函数依赖。
2. 如果Y不函数依赖于X,则记作X—/→Y。
3. 如果X→Y,则称X为决定因子。
4. 如果X→Y,并且Y→X,则记作X←→Y。
一些术语和符号
5. 如果X→Y,并且对于X的一个任意真子集X’ 都有X’ —/→Y,则称Y完全函数依赖于X,记作:
6.如果X→Y(非平凡函数依赖,并且Y—/→X)、Y→Z,则称Z传递函数依赖于X。
如果X’→Y成立,则称Y部分函数依赖于X,记作:
示例
例1:有关系模式:SC(Sno,Sname,Cno,Credit,Grade)
则函数依赖关系有:
Sno→Sname
(Sno, Cno)→ Sname
(Sno, Cno)→ Grade
示例
例2:有关系模式:S(Sno,Sname,Dept,Dept_master)
函数依赖关系有:
Sno
由于:Sno Dept ,Dept Dept_master
所以有:Sno Dept_master
Sname
为什么要讨论函数依赖
存在的问题
数据冗余问题
数据更新问题
数据插入问题
数据删除问题
关系规范化
关系模式中的码
范式
关系模式中的码
候选码:设K为R (U,F)中的属性或属性组,若K f→U,则K为R候选码。(K为决定R全部属性值的最小属性组)。
主码:关系R (U,F)中可能有多个候选码,则选其中一个作为主码。
全码:候选码为整个属性组。
主属性与非主属性:
在R (U,F)中,包含在任一候选码中的属性称为主属性,不包含在任一候选码中的属性称为非主属性
示例
例:SC(SNO,CNO,Grade)
候选码:(SNO,CNO),也为主码
主属性:SNO,CNO,非主属性:Grade
例:R(P,W,A), P――演奏者,W――作品,A――听众
语义:一个演奏者可演奏多个作品,某一作品可被多个演奏者演奏;听众也可欣赏不同演奏者个不同作品。
候选码:(P,W,A)――全码(演奏者、作品、听众 -一场音乐会)
关系模式中的码
外码:用于关系表之间建立关联的属性(组)。
定义:若R(U,F)的属性(组)X(X属于U)是另一个关系S的主码,则称X为R的外码。
范式
关系数据库中的关系要满足一定的要求,满足不同程度要求的为不同的范式。
第一范式
第一范式:不包含重复组的关系。
第二范式
第二范式:如果R(U,F)∈1NF,并且R中的每个非主属性都完全函数依赖于主码,则R(U,F)∈2NF
例: S-L-C(Sno,Sdept,SLOC,Cno,Grade)
有:Sno →SLOC,不是2NF。
分解办法
首先,对于组成主码的属性集合的每一个子集,用它作为主码构成一个表。
然后,将依赖于这些主码的属性放置到相应的表中。
最后,去掉只由主码的子集构成的表。
分解示例
对于S-L-C表,首先分解为如下形式的三张表:
S-L(Sno,…)
C(Cno,…)
S-C(Sno, Cno,…)
然后,将依赖于这些主码的属性放置到相应的表中
S-L(Sno,Sdept, Sloc)
C(Cno)
S-C(Sno, Cno, Grade)
最后,去掉只由主码的子集构成的表,最终分解为:
S-L(Sno,Sdept, Sloc)
S-C(Sno, Cno, Grade)
S-L(Sno,Sdept, Sloc)存在问题
数据冗余 :有多少个学生就有多少个重复的Sdept和SLOC;
插入异常:当新建一个系时,若还没有招收学生,则无法插入;
第三范式
定义:如果R(U,F)∈2NF,并且所有非主属性都不传递依赖于主码,则R(U,F)∈3NF。
对S-L(Sno,Sdept,SLOC)
∵Sno传递→SLOC, ∴不是3NF
分解过程
(1)对于不是候选码的每个决定因子,从表中删去依赖于它的所有属性;
(2)新建一个表,新表中包含在原表中所有依赖于该决定因子的属性;
(3)将决定因子作为
您可能关注的文档
最近下载
- 《装配式多层混凝土墙板建筑技术规程》.pdf VIP
- 建设工程造价咨询业务指导规程.docx VIP
- 监狱电网工程施工方案(3篇).docx
- 2025年中国婴儿纸尿裤市场调查研究报告.docx
- 鼎捷ERP全套操作参考手册.doc VIP
- 牛津译林六上Unit 3 Holiday fun Cartoon time课件.ppt VIP
- 「备战2024高考语文」重点古诗文篇目默写复习:《谏太宗十思疏》理解性默写精选.docx VIP
- 2025年秋最新人教版七年级上册英语单词默写版 .pdf VIP
- 普通高中语文课程标准(2017年版2020年修订).pdf VIP
- 教育事业发展“十五五”规划.docx
文档评论(0)