关系数据库设计_第1页
关系数据库设计_第2页
关系数据库设计_第3页
关系数据库设计_第4页
关系数据库设计_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第2章 关系数据库设计 v需求分析 :准确了解与分析用户的需求(包括数据与处理)。v概念结构设计:对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。(E-R图) v逻辑结构设计:将概念模型转换为某个DBMS所支持的数据模型,并对其进行优化。 v物理结构设计(数据库实现):为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。 v数据库实施:建立数据库,编制与调试应用程序,组织数据入库,并进行试运行。v数据库运行和维护:对数据库系统进行评价、调整与修改。2.1 需求分析阶段v进行数据库设计首先必须准确了解与分析用户需求,包括数据与处理需求。v 需求分析是数

2、据库设计的第一阶段,本阶段所得的结果是下一阶段系统的概念结构设计的基础。 如果需求分析有误,则以它为基础的整个数据库设计将成为毫无意义的工作。 而需求分析也是数据库设计人员感觉最繁琐和困难的一步。 2.1.1 需求分析的任务获得用户对数据库的如下要求:v信息要求:了解用户获得信息的内容、性质及其联系、存储哪些数据。v处理要求:了解用户希望数据库应用系统对数据进行什么处理,对各种数据处理的响应时间,处理的频率,数据处理方式的要求。v安全性要求:了解用户对数据库中存放的信息的安全保密要求。v完整性要求:了解用户对数据库中存放的信息应满足什么样的约束条件。2.1.2 需求分析步骤收集资料分析整理数据

3、流图(DFD)用数据流图来描述系统的功能。数据字典对数据流图中的数据流和加工等进一步定义,从而完整地反映系统需求。用户确认需求分析得到的数据流图和数据字典要返回给用户,通过反复完善,最终取得用户的认可。 2.1.3 阶段成果系统需求说明书。包括数据流图、数据字典、系统功能结构图以及必要的说明。 1. 数据流程图(DFD)v 数据流程图的符号说明如下: 数据流 代表数据流,箭头表示数据流动的方向 加工 或称为处理,代表数据的处理逻辑 文件 或称为数据库存储文件,代表数据存储 外部实体 代表系统之外的信息提供者或使用者(1) 数据流: 由一组确定的数据组成。 数据流用带名字的箭头表示,名字表示流经

4、的数据,箭头则表示流向。 例如,“成绩单”数据流由学生名、 课程名、 学期、 成绩等数据组成。 (2) 加工: 是对数据进行的操作或处理。 加工包括两方面的内容: 一是变换数据的组成,即改变数据结构; 二是在原有的数据内容基础上增加新的内容,形成新的数据。 例如,在学生学习成绩管理系统中,“选课登记”是一个加工,它把学生信息和开课信息进行处理后生成学生的选课清单。 (3) 文件:数据暂时存储或永久保存的地方。 如:学生表、开课计划表。 (4) 外部实体:指独立于系统而存在的,但又和系统有联系的实体。 它表示数据的外部来源和最后的去向。 确定系统与外部环境之间的界限,从而可确定系统的范围。 外部

5、实体可以是某种人员、组织、系统或某事物。 例如,在学生学习成绩管理系统中,家长可作为外部实体存在,因为家长不是该系统要研究的实体,但它可以查询本系统中有关的学生成绩。 构造DFD的目的是使系统分析师与用户进行明确的交流,指导系统设计,并为下一阶段的工作打下基础。 所以DFD既要简单,又要容易被理解。 构造DFD通常采用自顶向下、逐层分解,直到功能细化为止,形成若干层次的DFD。 如下页图是学校成绩管理系统的第一层数据流程图。如果需要,还可以对其中的三个处理过程分别作第二层数据流程图。成绩管理的第一层数据流程图(部分) 选课登记处理学生信息表开课计划表学号、班级开课号、班级选课清单课程成绩表重读

6、、重修处理成绩录入处理选课清单成绩单成绩单重读、重修表重读、重修登记清单重读、重修成绩单教科办成绩重读、重修登记清单 2. 数据字典(DD) 数据字典是以特定格式记录下来的,对数据流程图中各个基本要素(数据流、 文件、 加工等)的具体内容和特征所作的完整的对应和说明。 数据字典是对数据流程图的注释和重要补充,它帮助系统分析师全面确定用户的要求,并为以后的系统设计提供参考依据。 数据字典的内容包括:数据项、数据结构、数据流、加工、文件、外部实体等,一切在数据定义需求中出现的名称都必须有严格的说明。在数据库设计过程中,数据字典被不断地充实、修改、完善。 下面以成绩管理数据流图中几个元素的定义加以说

7、明: (1) 数据项名:成绩 别名:分数 描述:课程考核的分数值 定义:数值型,带一位小数 取值范围:0100(2) 数据结构名:成绩单 别名:考试成绩 描述:学生每学期考试成绩单 定义:成绩清单=学生号+开课号+学期+考试成绩(3) 加工名:选课登记处理 输入数据流:学期、学生号、开课号、课程号 输出数据流:选课清单 加工逻辑:把选课者的学生号、所处的学期号、以及所选的开课号、课程号记录进数据库中 处理频率:根据学校的学生人数而定,具有集中性 (4) 文件名:学生信息表 简述:用来记录学生的基本情况 组成:记录学生各种情况的数据项,如学生号、 姓名、性别、政治面貌、专业、班级号等 读文件:提

8、供各项数据的显示,提取学生的信息 写文件:对学生情况的修改、增加或删除3、系统功能结构图如:教学管理如:教学管理系统功系统功能模块图能模块图 2.2 概念结构设计阶段 概念设计阶段的目标是产生整体数据库概念结构,即概念模式。概念模式是整个组织各个用户关心的信息结构。 描述概念结构的有力工具是E-R图(也称实体-联系图,提供了表示实体、属性和联系的方法,用来描述现实世界的概念模型)。1E-R图的组成要素及其画法实体名联系名属性名实体表示属性表示联系表示2实体间不同联系情况的E-R图表示法v联系分为:一对一(1:1)、一对多(1:n)、多对多(m:n)v例:假设某学院有若干个系,每个系只有一个主任

9、。主任和系之间是一对一的关系。 主任和系的属性分别如下: 主任编号,姓名,年龄,学历; 系系编号,系名 主任和系之间是一个管理关系 描述主任和系之间的E-R图可如下图: 1主任系管理1姓名年龄学历编号系编号系名v例:两个实体集之间的一对多的联系的绘制方法。 假设在某仓库管理系统中,有两个实体集:仓库和商品。仓库用来存放商品,且规定一类商品只能存放在一个仓库中,一个仓库可以存放多件商品。仓库和商品之间是一对多的联系。 仓库和商品的属性分别如下: 仓库仓库号,地点,面积 商品商品号,商品名,价格 在存放联系中要反映出存放商品的数量。 描述仓库和商品之间的E-R图可如下图所示 1仓库商品存放n地点面

10、积仓库号商品号价格数量商品名例:两个实体集之间的多对多的联系的绘制方法。 v假设在某教务管理系统中,一个教师可以上多门课,一门课也可以由多个老师去上。教师和课程之间是多对多的联系。v教师和课程可用以下属性来描述: 教师教师号,教师名,职称 课程课程号,课程名,班级 在“讲授”联系中应能反映出教师的授课质量。 描述教师和课程之间的E-R图可如下图所示。 m教师课程讲授n教师名职称教师号课程号班级质量课程名ER图的设计方法 vE-R图通常都应经过以下两个阶段: (1)针对每一用户画出该用户信息的局部ER图,确定该用户视图的实体、属性和联系。需注意的是:能作为属性的就不要作为实体,这有利于ER图的简

11、化。 (2)综合局部ER图,生成总体ER图。在综合过程中,同名实体只能出现一次,还要去掉不必要的联系,以便消除冗余。一般来说,从总体ER图必须能导出原来的所有局部视图,包括实体、属性和联系。 例:某学校管理系统中有三个部门:后勤部、学生处和财务处。后勤部用来管理学生的住宿;教务处用来管理学生选课和教师任课;财务处用来管理发放教师的工资。 后勤部涉及到的实体及实体之间的联系如下: v 学生:属性有学号、姓名、性别、年龄、专业和入学时间v 宿舍:楼号、房间、档次v 学生与宿舍的联系是一个学生只能住在一个宿舍,一个宿舍能住多个学生,学生住宿要交租金。教务处涉及到的实体及实体之间的联系如下:v 学生:

12、属性有学号、姓名、性别、年龄、专业和入学时间v 教师:属性有教师号、姓名、性别、职称、专业v 课程:属性有课程号、课程名、学时数、专业v 各实体关系描述如下:一个学生可以选多门课,一门课可以由多个学生选修;一个教师可以教多门课,一门课也可以由多个老师教;学生选修某门课有一个成绩;教师教某门课有一个质量评价。 财务处涉及到的实体及实体之间的联系如下: v教师:属性有教师号、姓名、性别、职称、专业v工资:属性有基本工资、加班工资、扣税、工资编号v教师和工资的联系是:一个教师只能领一份工资,一份工资只能由一个教师领,领工资时应注明是某月工资。解:先根据题意设计出各部门的局部E-R图 n学生宿舍住1租

13、金学生姓名专业学号宿舍楼号档次年龄性别入学时间房间号(a) 后勤部的局部E-R图 教师姓名职称教师号课程课程号学时数课程名性别专业专业m教师课程讲授n质量学生选修mn成绩(b) 教务处的局部E-R图(学生同(a)图) 工资扣税基本工资加班工资工资编号工资教师领11月份1m学生住宿舍n1教师课程选修mn讲授n领工资1(c) 财务处的局部E-R图(教师同(b)图) 某学校管理系统的全局E-R图 2.3 逻辑结构设计阶段 E-R模型是数据库的一种概念模型,关系数据库采用的模型是关系模型,因此,必须将E-R模型转化为关系模型。 逻辑模型设计阶段的任务是将概念模型转换为某个具体的数据库管理系统所支持的数

14、据模型。 E-R模型向关系模型转换一般遵循如下原则:(1) 一个实体型(如:班级、学生、教师、课程)转换为一个关系模式。实体的属性就是关系的属性,实体的关键字就是关系的关键字。(2)一个1:1联系(如:领导)可以转化为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转化为一个独立的关系模式,则相连的每个实体的关键字及该联系的属性是该关系模式的属性,每个实体的关键字是该关系模式的候选关键字。(3)一个1:n联系(如:所属)可以转化为一个独立的关系模式,也可以与n端对应的关系模式合并。如果转化为一个独立的关系模式,与该联系相连的各实体的关键字及联系本身的属性均转换为关系的属性,而关系的

15、关键字为n端实体的关键字。(4)一个M:N联系(如:学习)转换为一个关系模式,与该联系相连的各实体的关键字以及联系本身的属性均转换为关系的属性,而关系的关键字为各实体关键字的组合。(5)三个以上(如:供应)的实体间的一个多元联系可以转化为一个关系模式,与该多元联系相连的各实体的关键字及联系本身的属性转化为关系的属性,而该关系的关键字为各实体关键字的组合。例,根据调查、分析构建了如下E-R图,要求将之转换为一组对应的关系模式。其对应的一组关系为:(1)实体转换结果:领领导导M供应商供应商供供应应物资物资项目项目NP参参加加部门部门属属于于职工职工MN1N11天数天数供应供应量量供应商(供应商编号

16、,供应商名称,电话,帐号)物资(物资编号,物资名称,型号规格,计量单位,价格)项目(项目编号,预算,开工日期,预计完成时间)职工(职工编号,姓名,出生日期,职称)部门(部门编号,部门名称)(2)联系转换结果:供应(供应商编号,项目编号,物资编号,供应量)参加(职工编号,项目编号,参加天数)领导,该联系并入“部门”实体,则“部门”的关系模式修改为: 部门(部门编号,部门名称,领导者职工编号)属于,该联系并入“职工”实体,则“职工”的关系模式修改为: 职工(职工编号,姓名,部门编号,出生日期,职称)2.3.4 函数依赖与范式1、函数依赖:设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对

17、于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称 “X函数确定Y” 或 “Y函数依赖于X”,记作XY。例如:有学生关系模式R(学号,姓名,性别) 通过分析,学号姓名,所以说姓名依赖于学号。性别学号,性别姓名,姓名性别,姓名学号的函数依赖关系都不成立。 2、完全函数依赖在关系模式R(U)中,设X、Y是关系模式R(U)种不同的属性子集,若存在X Y,且不存在X的任何真子集X,使得X Y,则称Y完全函数依赖于X。v例如:选修关系模式R(学号,课程号,成绩)是完全函数依赖。通过分析,一个学生的成绩完全依赖于学生的学号和课程号,因为只有学生的学号和他

18、所选的课程号确定之后,该生这门课的成绩才是唯一的。所以,成绩完全函数依赖于(学号,课程号)。3、部分函数依赖在关系模式R(U)中,X、Y是关系模式R(U)种不同的属性子集,若X Y成立,如果X中存在任何真子集X,而且有X Y也成立,则称Y对X是部分函数依赖。v例如:在成绩关系模式R(学号,课程号,学分,成绩)中,课程的学分只依赖于课程的编号,与学生的学号无关,所以课程的学分对于(学号,课程号)为部分函数依赖。4、传递函数依赖设X,Y,Z是关系R中互不相同的属性集合,存在XY(Y !X),YZ,则称Z传递函数依赖于X。如R(姓名,工资等级,工资额)。4、范式理论1NF) 如果R满足关系的每一分量

19、是不可再分的数据项,则称R是第一范式的,记作R1NF。 第一范式是对关系模式的最起码的要求。不满足第一范式的数据库模式不能称为关系数据库。 例:一个库房存储的库有4个字段(零件号,仓库号,零件数量,仓库地址),这个库符合1NF。学号姓名性别学院院长课程号课程名称成绩任课教师99051张三丰男信息李平09012数据库85萧峰99051张三丰男信息李平09013大学物理80杨广99053李丽女信息李平08056大学英语75陈妍99072王刚男化学张香02011无机化学91张敏99061徐娟女管理王莉08056大学英语95张倩1范式范式(2NF):若关系模式R1NF,并且每一个非主属性都完全函数依赖

20、于R的码(主关键字),则R2NF。 例如:一个库房存储的库有4个字段(零件号,仓库号,零件数量,仓库地址),这个库符合1NF。由于“仓库地址”至完全依赖于“仓库号”,即只依赖于主关键字的一部分,所以它不符合2NF。这样会导致以下几个问题: 存在数据冗余。因为仓库数量可能不多。 在更改仓库地址时,如果漏改了某一记录,存在数据不一致。 如果某个仓库的零件出库完了,那么这个仓库地址就丢失了,即这种关系不允许存在某个仓库中不放零件的情况。v解决上述问题的方法是:从关系中分解出新的二维表,使得每个二维表中所有的非关键字都完全依赖于各自的主关键字。 (零件号,仓库号,零件数量,仓库地址) (零件号,仓库号

21、,零件数量)和(仓库号,仓库地址) 这样就完全符合2NF了。(3NF):如果一个关系属于2NF,且每一个非关键字不传递依赖于主关键字,这种关系就是3NF。简言之,从2NF中消除传递依赖,就是3NF。例如,有一张表(姓名,工资等级,工资额),符合2NF,但是由于工资等级决定工资额,这就叫传递依赖,所以它不符合3NF。同样可以把它分解成两个表,即(姓名,工资等级)和(工资等级,工资额),这样就符合3NF了。规范化小结n关系模式规范化的基本步骤关系模式规范化的基本步骤 1NF(每个分量必须是不可分的项每个分量必须是不可分的项) 消除决定属性消除决定属性 2NF(每个非主属性完全函数依赖于码(每个非主属性完全函数依赖于码)集非码的非平集非码的非平 凡函数依赖凡函数依赖 3NF(每个非主属性既不部分也不传递函数依赖于码)(每个非主属性既不部分也不传递函数依赖于码) BCNF (每个决定因素都包含码)(每个决定因素都包含码) 消除非平凡且非函数依赖的多值依赖消除非平凡且非函数依赖的多值依赖 4NF消除消除非主属性非主属性对码的对码的部分函数依赖部分函数依赖消除消除非主属性非主属性对码的对码的传递函数依赖传递函数依赖消除消除主属性主属性对码的部分和传递函数依赖对码的部分和传递函数依赖 数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论