- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库概论0的5
第五章 关系数据理论; 数据库逻辑设计
一组数据:应构造几个关系? 每个关系由哪些属性组成? ; 关系必须满足一定的完整性约束条件。
① 依赖于值域的限制
对属性取值范围的限制。
② 依赖于值的相等与否的限制
属性间的相互关联。
数据库模式设计的关键。;已知:关系模式SB,
要设计一个模式SD,它与SB“等价”,但在某些方面“更好”一些。;SNO;关系模式S1存在的问题是:
① 冗余大。每一个系名和系主任的名字存储次数等于该系学生人数乘以每个学生选修的课程门数,浪费存储。
② 插入异常。若一个系刚成立没有招生,或虽然有了学生,但尚未安排课程,那么系名和系主任就无法插入到数据库中。;③ 删除异常。当一个系的学生都毕业了而又没招新生时,删除了全部学生记录,随之也删除了系名和系主任名。这个系仍然存在,而在数据库中却无法找到该系的信息。
④ 更新异常。若某系换系主任,数据库中该系的学生记录应全部更改,系统要付出很大的代价来维护数据库的完整性。如有不慎,某些记录漏改了,则会造成数据的不一致而出错。; 一个好的关系模式的条件应该:
① 尽可能少的数据冗余。
② 没有插入异常。
③ 没有删除异常。
④ 没有更新异常。
原因:属性间值的相等与否,数据间存在着某些相互依赖的关系。; 把关系模式S1分成三个关系模式:
S_1(SNO, SNAME, SAGE, SSEX, SDEPT) -- r1S_2(SDEPT, DNAME) -- r2S_3(SNO, CNO, GRADE) -- r3
r1:学生信息,与所学课程及系主任无关;
r2:系的信息,与学生信息无关;
r3:选课成绩信息,与学生的基本信息无关。; 把关系模式S1分成三个关系模式:
S_1(SNO, SNAME, SAGE, SSEX, SDEPT)S_2(SDEPT, DNAME)S_3(SNO, CNO, GRADE)
数据冗余度降低;无插入异常;
无删除异常; 无更新异常;上述三个模式是否最佳?
到底什么样的关系模式是最佳的?
标准是什么?
如何实现? ; 函数依赖
数据依赖 多值依赖
连接依赖; 每个关系中的属性一定要满足某种内在的语义条件,即要按一定的规范设计关系模式,这就是关系模式的规范化。
关系数据库设计理论主要包括三个方面的内容:数据依赖、范式、模式设计方法。
数据依赖起着核心的作用。;1971年,E.F.Codd相继提出了
第一范式
第二范式
第三范式
E.F.Codd与Boyce合作提出了
Boyce- Codd范式(BCNF)
1976-1978年,Fagin,Delobe又定义了
第四范式
到目前为止已经提出了
第五范式; 一个关系数据库中的表,必须满足一定的条件。
应满足的条件分成几级,每一级称作一个范式,不同的级别有不同的范式。
关系的规范化就是使关系满足某种条件的处理。; 满足最基本规范化条件的的关系模式叫第一范式;
第一范式的关系模式再满足另外一些约束条件就产生了第二范式、第三范式、BC范式等等;
一个低一级的关系范式,通过模式分解可以转换成高一级范式的关系模式的集合。这种过程叫关系模式规范化。;关系模式R为第几范式表示为:
R ? xNF
其中, x:级别; NF:范式(Normal Forms)
范式级别越高,应满足的条件就越严格。
5NF?4NF?BCNF?3NF?2NF?1NF;;1. 函数依赖
函数依赖是关系模式中属性之间的一种依赖关系。
在诸多的数据依赖中,其中最有实际意义的是函数依赖(functional dependency)。
例如:关系模式S1中,SNO与SAGE之间就有一种函数依赖关系。; 定义1: 设R(U)是属性集U上的关系模式。X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等(即对于X的每一个具体值,Y都有唯一的值与之对应),则称‘X函数决定Y’或‘Y函数依赖于X’,记作X?Y。称X为决定因子,Y是依赖因子。X?Y为模式R(U)的一个函数依赖。; 对一个关系中的任意两个元组,只要决定因子的值相同,所有其它属性的值也一定相同。即: 如果t1,t2是r的任意两个元组,如果t1[X]=t2[X],则有
文档评论(0)