- 1、本文档共174页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库系统概念----关系数据库设计 前言 提纲 给出一个关系模式,是不是好? 给出一个表,怎么找出其中的函数依赖? 给出一个关系模式,如何判断属于nNF ? 1NF、2NF、3NF、BCNF的异同点? 分解后,无损与保持依赖如何判断? 分解算法 多值依赖确定方法是什么? 4NF分解算法 范式之间如何证明包含关系? 8.1 好的关系设计的特点 四种异常现象 引例:设计一个学生管理信息系统,模式设计两种方案: 方案一 学生=(学号,姓名,性别,年龄,系别,系主任名,系办公电话,课程号,课程名,先行课号,成绩) 码是学号,课程号 8.1 好的关系设计的特点 方案二 学生=(学号,姓名,性别,年龄,系别),码:学号 系=(系别,系主任名,系办公电话),码:系别 课程=(课程号,课程名,先行课号,学分) 码:课程号 选课=(学号,课程号,成绩),码:学号,课程号 8.1 好的关系设计的特点 1. 冗余度 方案一:假若每个学生选40门课程,其姓名、性别、年龄、系别、系主任、系办公电话、课名,先行课号要在库中出现40次,数据冗余度大。 方案二: 以上的数据只在库中出现一次,冗余度小。 8.1 好的关系设计的特点 2. 插入异常 若向库中插入一门新课程,而该课程还没有学生选。 方案一: 由于模式的码是学号,课程号,实体完整性要求主属性不能为空,现在学号为空,无法插入库内。 8.1 好的关系设计的特点 方案二: 直接插入课程关系中。 同理,方案一,建立一个新系,还没有学生,也会插入异常。方案二,直接插入系表中。 3. 删除异常 如果选修某门课程的学生都毕业,其对应记录将从库中删掉。 8.1 好的关系设计的特点 方案一: 对应的课程信息也全部删掉。称为删除异常。 方案二: 只删选课表中的记录,课程表中的信息不受影响。 同理,方案一,一个系的学生全部删除,也会删除异常。方案二,直接删除学生表中的记录,系表不受影响。 8.1 好的关系设计的特点 4. 更新异常 若数据库课程名改为数据库原理。 方案一: 所有选修该课程的的记录都要改,漏改一个,就会出现更新异常。 方案二: 只需在课程关系中修改一次。 同理,系主任名等属性值修改也如此 8.1 好的关系设计的特点 引例 考虑为管理职工的工资信息而设计一个关系模式 8.1 好的关系设计的特点 插入异常:如果没有职工具有8级工资,则8级工资的工资数额就难以插入 删除异常:如果仅有职工赵明具有4级工资,如果将赵明删除,则有关4级工资的工资数额信息也随之删除了 数据冗余:职工很多,工资级别有限,每一级别的工资数额反复存储多次 更新异常:如果将5级工资的工资数额调为620,则需要找到每个具有5级工资的职工,逐一修改 8.1 好的关系设计的特点 四种异常现象的原因 导致四中异常现象的原因是构造关系模式过程中,忽视了属性之间存在着相互关联,相互依赖,相互制约的联系,盲目地把依赖不紧密的属性硬凑在一起。 关系模式设计中, 方案二比方案一优越,方案二所属范式高于方案一。 如系办公电话与成绩并没有联系。 8.1 好的关系设计的特点 解决之道----分解 8.2 第一范式 范式的概念 范式是关系模式的集合。一个关系模式R达到某种级别,记为R∈nNF。 目前有六种主要范式:第一范式,第二范式,第三范式,BC范式,第四范式和第五范式。 低级范式通过关系分解,达到更高一级的范式,过程称作规范化。 8.2 第一范式 各范式集之间存在如下关系: 8.2 第一范式 第一范式(1NF) 定义 如果关系模式R的所有属性都是不可分的基本数据项,则R∈1NF。 第一范式是二维表的要求,排斥了属性值为元组、数组或某种复合数据的可能性。不满足第一范式的数据库不能称为关系数据库。 满足第一范式的关系模式往往会出现异常。 1NF 定义 关系中每一分量不可再分。即不能以集合、序列等作为属性值 8.3 函数依赖的分解 函数依赖的概念 定义一: 设R=(U)表示一个关系模式,属性集合U={A1,A2,…,An},X和Y是U的子集,对R=(U)下的任一个关系r的任意两个元组t1,t2,如果t1[X]=t2[X],则t1[Y]=t2[Y],称属性集X与属性集Y存在函数依赖。 记作X→Y。 8.3 函数依赖的分解 叫作“X函数确定Y”或“Y函数依赖于X”, X为决定因素,Y为依赖因素。 如果Y不函数依赖X,则记作X-\→ Y。 如果X→Y且Y→X,则X与Y是一一对应函数依赖,记作X←→Y。 定义:R下的所有函数依赖组成R的函数依赖集,记为F。 8.3 函数依赖的分解 对函数依赖的理解 (1) X→Y的判断按离散数学的逻辑蕴涵运算确定结果。 当t1[X
文档评论(0)