- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库原理与应用教程 第7章 关系数据库理论 7.1 函数依赖 7.2 关系规范化 7.3 关系模式的分解准则 关系模式的表示 关系模式的完整表示: RU,D,DOM,F R为关系名,U为关系的属性集合 D为属性集U中属性的数据域 DOM为属性到域的映射 F为属性集U的数据依赖集 简化表示:RU,F 数据依赖 定义:同一关系中属性间的相互依赖和相互制约. 包括函数依赖,多值依赖,连接依赖. 7.1 函数依赖 定义:如果有一个关系模式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 函数依赖 设R(U)是一个关系模式,U是R的属性集合,X和Y是U的子集。对于R(U)的任何一个可能的关系r,如果r中不存在两个元组,它们在X上属性值相同,而在Y上的属性值不同,则称“X函数确定Y”或“Y函数依赖于X”,记作X-Y 。 一些术语和符号 1. 如果Y不函数依赖于X,则记作X—/→Y。 2. 如果X→Y,则称X为决定因子。 3. 如果X→Y,并且Y→X,则记作X←→Y。 一些术语和符号(续) 4.平凡函数依赖与非平凡函数依赖 如果X→Y,但Y不包含于X,则称X→Y是非平凡的函数依赖,否则是平凡函数依赖。 如不作特别说明,我们总是讨论非平凡函数依赖。 一些术语和符号(续) 5. 如果X→Y,并且对于X的一个任意真子集X’ 都有X’ —/→Y,则称Y完全函数依赖于X,记作: 示例 例1:有关系模式:SC(Sno,Sname,Cno,Credit,Grade) 则函数依赖关系有: Sno→Sname Cno Credit (Sno, Cno)→ Sname (Sno, Cno)→ Grade (Sno, Cno)→ Credit 示例 例2:有关系模式:S(Sno,Sname,Dept,Dept_master) 函数依赖关系有: Sno 为什么要讨论函数依赖 S(Sno,sdept,sloc,cno,grade) 存在问题 数据冗余问题 数据更新问题 数据插入问题 数据删除问题 关系模式应满足的要求 每个分量不可再分 数据冗余尽可能小 避免更新操作引起的不一致性 不能产生插入异常 不能产生删除异常 考虑查询要求,数据组织应尽可能合理 7.2 关系规范化 7.2.1 关系模式中的码 7.2.2 范式 7.2.1 关系模式中的码 1.候选码:设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 例:教师_课程(教师号,课程号,授课学年) 语义:一个教师在一个学年可以讲授多门课程,而且一门课程在一个学年也可以由多个教师讲授,同一个学年可开始多门课程。 候选码:(教师号,课程号,授课学年) 称这样的表为全码表 7.2.1 关系模式中的码(续) 外码:用于关系表之间建立关联的属性(组)。 定义:若R(U,F)的属性(组)X(X属于U)是另一个关系S的主码,则称X为R的外码。 7.2.2 范式 关系数据库中的关系要满足一定的要求,满足不同程度要求的为不同的范式。 第一范式 第二范式 2.第二范式:如果R(U,F)∈1NF,并且R中的每个非主属性都完全函数依赖于主码,则R(U,F)∈2NF 例: S-L-C(Sno,Sdept,SLOC,Cno,Grade) 有:Sno P →SLOC,不是2NF。 1NF分解为2NF分解办法 首先,对于组成主码的属性集合的每一个子集,用它作为主码构成一个表。 (sno,sdept,sloc) (sno,cno,grade) 然后,将依赖于这些主码的属性放置到相应的表中。 最后,去掉只由主码的子集构成的表。 分解示例 对于S-L-C表,首先分解为如下形式的三张表: S-L(Sno,…) C(Cno,…) S-C(Sno, Cno,…) 然后,将依赖于这些主码的属性放置到相应的表中 S-L(Sno,Sdept
您可能关注的文档
- 大连理工大学机械制造装备设计课件 主轴组件图库.ppt
- 大连理工大学机械制造装备设计课件 自动仓储系统.ppt
- 大连理工大学计算机组成与多核计算课件第八章 辅助存储器.ppt
- 大连理工大学计算机组成与多核计算课件第九章 输入输出设备.ppt
- 大连理工大学计算机组成与多核计算课件第七章 存储系统.ppt
- 大连理工大学企业级服务器系统管理基础课件第1章 AIX介绍.ppt
- 大连理工大学企业级服务器系统管理基础课件第2章 文件和目录.ppt
- 大连理工大学企业级服务器系统管理基础课件第3章 使用文件.ppt
- 大连理工大学企业级服务器系统管理基础课件第4章 vi编辑器.ppt
- 大连理工大学企业级服务器系统管理基础课件第5章 shell基础.ppt
文档评论(0)