8数据库设计与规范化理论.ppt

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8数据库设计与规范化理论

第八章 数据库设计与规范化理论 张建英 单位:大连理工大学,电信学院 电话3820 E-mail:zhangjy@ zhangjianying@ 内容提要 1 规范化设计 1.1 为什么要进行规范化设计 1.2 规范化设计与1NF、2NF、3NF、4NF 2 数据库设计 2.1 需求分析 2.2 概念设计 2.3 逻辑设计 2.4 物理设计 2.5 数据库实施与试运行 2.6 数据库运行与维护 1.1 数据库设计 需求分析 用户需求,数据库必须做什么? 概念设计 高度描述数据库干什么?(用ER图) 逻辑设计 转化为具体DBMS数据模型。 模式优化:规范化 物理设计 设计索引,布置文件、表等 数据库的实施与运行维护 1.1 为什么要对关系模式规范化 在数据库的设计中,如何构造一个适合于它的数据模式,即应该构造几个关系模式,每个关系由哪些属性组成等。这是数据库设计的问题。 实际上任何一种数据库应用系统,不论是层次的、网状的还是关系的,都会遇到如何构造合适的数据模型及逻辑结构的问题。 规范化理论对于一般的数据库逻辑设计同样具有理论上的意义。 1.1 关系的形式化定义 回顾下在关系模型一章中关系模式的定义: 对关系的描述称为关系模式。可以形式化的表示为: R(U,D,dom,F) 其中: R:关系名 U:组成关系的属性名集合 D:属性来自的域 dom:属性到域的映射 F:属性间数据的依赖关系 简记: R(U),或者R(A1,A2,…An) 1.1 问题 什么是数据依赖?为何在关系模式中要考虑它?它对于关系有何影响? 数据依赖是关系中的属性值之间的相互关系。它是现实世界属性间相互联系的抽象,是数据内在的性质,是语义的体现。现在,已发现许多种数据依赖。 例1:在某学校的学生的关系中,只要学号确定了,他(她)的姓名就确定了。这相当于对于一个由学号到姓名的映射name=f(stdno)。这样的数据依赖称为函数依赖(Functional Dependency)。记为:stdno-name; 例2:对于一个仓库保管关系(保管员,物品,仓库)来说,实际中要求,对于任意一个仓库,若一个保管员要么能保管所有的物品,要么都不能保管。这时当仓库确定时,与其保管员对应的物品是多个,这种数据依赖称为多值依赖。 1.1 数据依赖对于关系操作的影响 假设要建立一个学生数据库,要描述的对象包括:学生(Sno),系(dept),系负责人(deptHead),课程(Cname)和成绩(G)。于是对应的属性集合为: U= {Sno,Sdept, deptHead,Cname,G} 由实际中的知识得知 一个系有若干学生,一个学生只属于一个系。 Sno-Sdept 一个系只有一名负责人(正职)。 Sdept→ deptHead 一个学生可选修多门课程,每门课程有若干学生选修, 每个学生选修的每门课程有一个成绩。 (Sno,Cname)→G 1.1 数据依赖对于关系操作的影响 1如果一个系刚好成立但还没有招生,怎样表示存在这个系呢?若插入该系的信息(系名,系负责人),学生信息及选课信息如何表达?2又若虽然有学生,但还没有成绩,如何表达? ——插入异常 反之,1若某个系的学生全部毕业了,但系还要保留,这样若删除所有学生的记录,系的信息将不复存在。2又若某学生只选了一门课,现在这门课也不选了,删除时会删除学生的信息。 ——删除异常 另外,如:每条记录都有系名,系领导的信息,浪费存储,另外换系领导后,所有的记录都要一起更新。 ——更新异常 问题:怎样才能不会发生呢?问题源于关系的模式设计有问题,造成数据冗余,即没有考虑好数据依赖,从而没有设计成好的、规范的模式。 1.2 规范化 1971年Edgar Codd提出了规范化理论,规范化理论研究已经取得了很多的成果。 是根据属性数据依赖的情况来区分关系规范化的程度(1NF,2NF,3NF,BCNF,4NF,PJNF…)的。 函数依赖是最常见的一种数据依赖。 函数依赖:设R(U)是属性集U上的关系模式,X,Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称X函数确定Y或Y函数依赖X。记作 X→Y。 函数依赖:r中任意两个元组r,s,若t[X]=s[X],则t[Y]=s[Y],则称X→Y。 1.2 函数依赖 平凡的函数依赖与非平凡的函数依赖: X-Y,但YX则称X-Y是平凡的函数依赖。 X-Y,但YX则称X-Y是非平凡的函数依赖。 完全函数依赖与部分函数依赖 在R(U)中,如果X-Y,并且对于X的任何一个真子集X’,都有X’Y,则称Y对X完全依赖,记作:XY。 若X-Y但

文档评论(0)

zhuliyan1314 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档