




免费预览已结束,剩余77页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1,第2章数据库设计理论及方法,2,2.1数据库设计的理论依据,如何评价一个数据库设计得是否合理?衡量数据库的理论标准关系数据库的规范化理论规范化:一个低级范式的关系模式通过分解(投影)的方式可转变成多个高一级范式的关系模式集合。范式:符合某一种级别标准的关系模式的集合。规范化理论的作用:改造关系模式,通过分解关系模式来消除其中不合适的问题,以解决删除异常、更新异常、插入异常和数据冗余问题。规范化的基础是函数依赖。(补充)一、函数依赖(形式化定义)二、函数依赖的性质三、完全函数依赖与部分函数依赖四、传递函数依赖,3,关系模式,用R(U,F)来描述一个关系,其中:R:关系名;U:关系中所有属性的集合;F:关系中所有函数依赖的集合。函数依赖:如由学号能唯一确定一个学生的姓名,则称“学号”决定“姓名”,也称:“姓名”函数依赖于“学号”。记作:学号姓名,即学号是决定因素。候选码:能够确定关系模式中所有属性U的最小属性组。如学生情况下不重名时,学号和姓名都是。成绩情况下,(学号,课程号)才是。,4,4,一、函数依赖,定义:设R(U)是一个属性集U上的关系模式,X和Y是U的子集。若对于R(U)的任意一个可能的关系r,r中不可能存在两个元组在X上的属性值相等,而在Y上的属性值不等,则称“X函数确定Y”或“Y函数依赖于X”,记作XY。,5,说明:,1.函数依赖不是指关系模式R的某个或某些关系实例满足的约束条件,而是指R的所有关系实例均要满足的约束条件。2.函数依赖是语义范畴的概念。只能根据数据的语义来确定函数依赖。例如“姓名年龄”这个函数依赖只有在不允许有同名人的条件下成立3.函数依赖表达的是关系的属性与属性之间的关系。如果属性A与属性B之间是一对一的关系,则互相函数依赖。如果属性A与属性B之间是一对多的关系,则一端函数依赖于多端。如(姓名,课程号)成绩如果属性A与属性B之间是多对多的关系,则不存在函数依赖。,6,例:分析关系“学籍(学号,姓名,性别,学院,院长,课程号,课程名称,成绩,任课教师)”的函数依赖。,分析1:不允许同名,7,二、函数依赖的性质,(1)投影性一组属性函数决定它的所有子集。(平凡的函数依赖)例:(学号,课程号)学号(学号,课程号)课程号。(2)合并性有属性X、Y、Z,若XY且XZ则必有X(Y,Z)。例:学号姓名,学号性别,则学号(姓名,性别),8,(3)扩张性有属性X、Y、Z,若XY且WZ,则(X,W)(Y,Z)。例:学号(姓名,性别),学院院长,则有(学号,学院)(姓名,性别,院长)。(4)分解性若X(Y,Z),则XY且XZ。由合并性和分解性,得出XA1,A2,,An成立的充分必要条件是XAi(i=1,2,n)成立。,9,定义:在关系模式R(U)中,如果XY,并且对于X的任何一个真子集X,都有XY,则称Y完全函数依赖于X,记作XFY。若XY,但Y不完全函数依赖于X,则称Y部分函数依赖于X,记作XPY。,三、完全函数依赖与部分函数依赖,10,例:分析关系“学籍(学号,姓名,性别,学院,院长,课程号,课程名称,成绩,任课教师)”中的完全函数依赖及部分函数依赖。,部分函数依赖:(学号,课程号)姓名(学号,课程号)课程名称,11,四、传递函数依赖,定义:在关系模式R(U)中,如果XY,YZ,且YX,YX,则称Z传递函数依赖于X。注:如果YX,即XY,则Z直接依赖于X。,例:分析在关系“学籍(学号,姓名,性别,学院,院长,课程号,课程名称,成绩,任课教师)”中的传递函数依赖:分析:学号学院,学院院长,并且学院学号,所以院长传递函数依赖于学号,12,汇总:函数依赖集为:学号姓名,学号性别,学号学院,学院院长,课程号课程名,(学号,课程号)成绩,(学号,课程号)任课教师,任课教师课程号(前提条件是一位教师只上一门课)。,图形表示法:,13,五个范式,数据库设计完后,就得到关系模式的集合评价关系模式集合的优劣范式(NormalForm)来进行描述。定义:可以把范式理解为符合某一种级别标准的关系模式的集合。目前专家们提出了第一范式到第五范式的概念,本章只讨论前三个范式及第三范式的改进形式BCNF(BoyceCoddNormalForm)范式。,14,14,范式的种类:第一范式(1NF)第二范式(2NF)第三范式(3NF)BC范式(BCNF)第四范式(4NF)第五范式(5NF),15,第一范式,所谓第一范式(1NF):是指关系(数据表)的每一属性(列)都是不可分割的基本数据项,同一列不能有多个含义。1NF是关系数据库的基本规则,不满足1NF的要求,就不能称其为关系数据库。第一范式表达了以下三个意思:(1)一个表中不能存在两个含义重复的属性。如:员工信息表中有员工编号、工作证编号及其它属性,而员工编号、工作证编号都是唯一区分员工记录的属性,且取值相同,保留一个即可。,16,(2)一个表中的一列不能是其他列计算的结果。例:商品信息表中的最高售价=建议售价+浮动价格因此保留每条记录的最高售价,显然会造成数据冗余,应去掉。,17,(3)一个表中某一列的取值不能有多个含义。例商品信息表中,“建议售价”只能代表一个币种的价格,不可能既表示人民币价格又表示美元价格。如果一定要标出两个币种的价格,可以将“建议售价”分解为两列:“人民币售价”和“美元售价”。,18,第二范式(2NF):,第二范式:是指非主属性完全函数依赖于主码(主键)的属性组。2NF是在1NF的基础上制定的,即设计数据库时,在考虑第二范式的规定时首先要满足第一范式的要求。,19,例如关系模式S-L-C(学号,课程号,系,住处,成绩),并且每个系的学生住在同一个地方,即系决定住处。,这里主码为(学号,课程号)。关系模式的函数依赖如下:(学号,课程号)成绩,表示成绩完全函数依赖于(学号,课程号),即(学号,课程号)完全决定成绩。学号系,表示学号决定系,即系函数依赖于学号;(学号,课程号)系,表示系部分函数依赖于主码(学号,课程号);学号住处,表示学号决定住处(学号,课程号)住处,表示住处部分函数依赖于主码(学号,课程号)可见非主属性系、住处并不完全函数依赖于码。因此S-L-C(学号,系,课程号,住处,成绩)不符合2NF定义,即S-L-C不属于2NF。,20,一个关系模式不属于2NF,就会产生以下几个问题:,插入异常。假若要插入一个学生记录:学号=0403030430,系=IS,住处=L2,但该生还未选课,即这个学生无课程号值,这样的元组就插不进S-L-C中。因为插入元组(记录)时必须给定主码值,而这时主码值的部分为空(主属性为空),因而学生的基本信息无法插入。删除异常。假定某个学生只选一门课,如0403030430就选了一门课c01。现在就连c01这门课他也不选了,那么c01这个数据项就要删除。而c01是主属性,删除了c01,整个元组就必须跟着删除,使得0403030430的其他信息也被删除了,从而造成删除异常,即不应删除的信息也删除了。数据冗余度大。如某学生选10门课,则其系和住处信息要重复存储10次。修改复杂。某个学生从数学系转到计算机科学系,这本来只需修改此学生元组中的系分量。但因为关系模式S-L-C中还含有学生的住处属性,学生转系同时还将改变住处,因而还必须修改元组中的住处分量。另外,如果这个学生选修了k门课,系和住处重复存储了k次,不仅存储冗余度大,而且必须修改k个元组中全部系和住处信息,造成修改的复杂化。,21,可见由于系,住处,对主码不是完全函数依赖,会出现以上问题。解决的办法是将关系模式S-L-C分解为以下两个关系模式:SC(学号,课程号,成绩)S-L(学号,系,住处)这样就使得非主属性对主码都是完全函数依赖了。符合2NF。,22,第三范式(3NF):,第三范式:指非主属性既不部分函数依赖于候选码,也不传递函数依赖于候选码,即非主属性都直接函数依赖于码。3NF是在2NF的基础上制定的,若要满足第三范式,必须先满足第二范式。例,图2.3中关系模式S-L存在非主属性对主码传递函数依赖:学号系系住处则学号住处不符合3NF。学生(学号,姓名,性别,学院,院长)分解后学生(学号,姓名,性别,学院)学院(学院,院长)都满足第三范式,23,不符合3NF也会产生以下几个问题:插入异常:如某系刚成立,当前还没有学生(无学号值),也就无法插入该系的信息。删除异常:如果某系的学生全部毕业了,在删除学生信息时,也删除了系的信息。数据冗余大:每个学生都住在同一楼。住处信息重复出现。修改复杂:当学校调整学生宿舍时,一个系的学生都迁到另一个楼,由于每个系的学生住处信息重复存储,修改时要重复修改。,SC(学号,课程号,成绩)S-L(学号,系,住处),24,解决办法:,将关系S-L(学号,系,住处)分解为以下两个关系:S-D(学号,系)D-L(系,住处)分解后的关系模式S-D与D-L都属于3NF。同时每个决定因素都是候选码,所以S-D与D-L也属于BCNF。BCNF比3NF更进了一步。在3NF的基础上,消去所有部分函数依赖,包括主属性对不包含它的候选码的部分函数依赖,就属于BCNF。关系规范化的过程就是将一个非规范化关系或低级范式关系分解为多个高级范式关系的过程。,25,BCNF,例:关系模式STJ(S,T,J)中,S表示学生,T表示教师,J表示课程。每一教师只教一门课。每门课有若干教师,某一学生选定某门课,就对应一个固定的教师。解:由语义可得到如下的函数依赖:(S,J)T;(S,T)J;TJ。这里(S,J),(S,T)都是候选码。STJ是3NF,因为没有任何非主属性对码传递依赖或部分依赖。但STJ不是BCNF关系,因为T是决定因素,而T不包含码。3NF的“不彻底”性表现在可能存在主属性对码的部分依赖和传递依赖。非BCNF的关系模式也可以通过分解成为BCNF。例如STJ可分解为ST(S,T)与TJ(T,J),它们都是BCNF。一个模式中的关系模式如果都属于BCNF,那么在函数依赖范畴内,它已实现了彻底的分离,已消除了插入和删除的异常。,26,关系分解过程,任何一个非规范的关系都可以经过分解达到3NF,但不一定能达到BCNF。关系分解通常可以遵循图2.4所示过程。,27,模式分解,分解要保证:无损连接性和保持函数依赖。无损连接:分解后的关系通过自然连接可以恢复成原来的关系。保持函数依赖分解:是指在模式分解过程中函数依赖不能丢失的特性,即模式分解不能破坏原来的语义。,28,关系运算,包括选择、投影、连接、增加、删除、修改。选择:从一个关系中选出满足给定条件的记录(元组)的操作。行角度。投影:从一个关系中选出若干指定字段的值的操作。列角度。连接:把两个关系中的记录按一定的条件横向结合,生成一个新的关系。,29,2.2数据库设计方法,数据库的设计大概分如下几步进行:规划阶段:调查、分析、制定目标需求分析:收集需求、撰写需求说明书概念结构设计:局部E-R模型、总体E-R模型设计逻辑结构设计:转换规则、优化物理结构设计:数据库的实现数据库的运行和维护,30,2.2.1规划阶段,规划的好坏将直接影响到整个系统的成功与否。规划阶段的主要工作一般分以下三步:(1)系统调查。对企业组织进行全面的调查,画出组织层次图,以了解企业的组织机构。(2)可行性分析。从经济、效益和法律等方面对建立数据库的可行性进行分析;然后写出可行性分析报告,组织专家进行讨论其可行性。(3)确定数据库系统的总目标和制订项目开发计划。在得到决策部门批准后,就正式进入数据库系统的开发工作。,31,2.2.2需求分析,数据库的性能是由用户决定的,所以充分了解用户需求是完成数据库设计的关键。计算机人员(系统分析员)和用户双方共同收集数据库所需要的信息内容和用户对处理的需求。并以需求说明书的形式确定下来,作为以后系统开发和系统验证的依据。需求工作可分以下四步完成:分析用户活动,产生业务流程图确定系统范围,产生系统关联图分析用户活动所涉及的数据,产生数据流图分析系统数据产生数据字典下面通过一个简单的教学管理系统来说明这四个步骤应完成的功能。,32,例2-1学校教学管理信息系统要完成如下功能,(1)教师聘课、(2)学生选课1分析用户活动,产生业务流程图如果系统比较复杂,可以从了解用户日常工作流程入手,通过座谈会、与职员共同工作、设计调查问卷、查阅历史业务记录等途径来搞清业务的处理过程。在分析之后画出“用户活动图”。下图是该学校的教学业务活动图。,33,2确定系统范围,产生系统关联图,这一步是确定系统的边界,即确定用计算机处理的范围。即:在和用户经过充分协商的基础上确定计算机所能进行的数据处理的范围,确定哪些工作由人工完成,哪些工作由计算机系统完成,即确定人机界面。,图中虚线框内的部分属于系统范围,而框外部分由人工处理。,34,3分析用户活动涉及的数据,产生数据流图,深入分析用户的业务处理,以数据流图形式表示出数据的流向和对数据所进行的加工。数据流图(DataFlowDiagram,简记为DFD)是从“数据”和“对数据的加工”两方面表达数据处理系统工作过程的一种图形表示法,具有直观、易于被用户和软件人员双方都能理解的一种表达系统功能的描述方式。数据流图由四部分组成:数据流、加工、文件、源点和终点。,35,数据流图的组成:,(1)数据流:表示流动着的数据,它可以是一项数据,也可以是一组数据,也可以是表示数据文件的存储操作。数据流通常用箭头表示,在它上方标明数据流的名称。(2)加工又称功能处理:用圆形来表示处理逻辑,圆形内部填写处理的名称(如任课、选课等)。(3)文件:用一条横线表示,旁边注明文件名或内容。(4)源头和终点:用矩形表示,表示数据流的开始和结束(可以省略)。,36,以下是一个简单的数据流图,数据流图的每个部分都要命名以便区分。上图是一个简单的数据流图,其含义是数据流D1从始点S流出,经过P1加工处理变成数据流D2,P1加工时要调用文件F1中的内容,数据流D2再经过P2加工处理,加工处理时要把部分结果存放到文件F2中,同时产生数据流D3,数据流D3流往终点E。,37,如前面讨论的学校教学管理,最初的数据流图可表示成图2-7的样子,教师提出任课请求,经教学信息管理系统处理后,形成聘书交给教师。学生提出选课请求后,经教学信息管理系统处理后,形成课程表交给学生。,38,逐步细化:在图2-7基础上,详细画出的系统内部各数据流图分别如图2-8、图2-9所示。,当教师提出任课请求后,系统作任课处理时要用到教师文件的信息,然后产生任课数据,经打印处理后形成聘书。,当学生提出选课请求后,系统作选课处理时要用到学生的信息,然后产生选课数据,经打印处理后形成课程表。,39,4分析系统数据,产生数据字典,设计者必须对数据流图中的每个数据流名、文件名、加工名都要给出具体定义,并用一个条目来描述,描述后的产物就是“数据字典”。数据字典和数据流图共同构成系统说明书。数据流的描述:也就是定义数据流的组成,每个数据流通常包括若干个数据项。下面是对图2-8中的几个数据流的描述:任课请求=教师号+教师姓名+课程号+课程名称+总学时+班级数聘书=教师姓名+课程名称+上课时间+上课地点,40,文件的描述教师基本信息=教师编号+姓名+性别+年龄+单位数据项的描述是指对数据项进行定义,一般包括对数据项的名称、类型、长度、取值范围进行定义。如对“学生”文件中的数据项,可按表2-9进行描述。,41,加工的描述:,用来对实现加工的处理过程进行描述和定义,包括过程名、过程说明、输入输出和过程功能说明等。如对学生选课处理过程描述如下:过程名称:选课。过程说明:主要说明该处理过程的功能及处理要求。例如:学生根据自己的需要选课。输入:执行该处理过程需要输入的数据。例如:选课请求和学生基本信息。输出:执行该处理过程后输出的数据。例如:课程表。至此,需求分析阶段已经完成,已经得到了由“数据流图”和“数据字典”组成的“系统说明书”,基本上解决了做什么的问题,在下一阶段将解决“怎样做”的问题。,42,2.2.3概念结构设计,要把客观世界中的事物及其联系,反映到计算机的数据世界,要经历三个领域的转变:客观世界信息世界数据世界客观世界:实际存在的客观事物及其联系信息世界:客观事物及其联系在人脑中形成的概念数据世界:是计算机领域。即将信息世界数据化,供计算机来处理。三个世界使用的术语不同,对应关系如下:,43,数据模型,三个世界的相互演变,都需要相应的数据模型。数据模型分二个级别:概念模型、逻辑模型概念模型:常用实体(Entity)联系(Relationship)图表示,简称E-R图逻辑模型:关系模型(即数据表)即将客观世界信息转换为数据模型需要二级抽象:(1)人脑对客观世界的初步抽象,得到概念模型(E-R图)。(2)将概念模型转换为逻辑模型。E-R图:是一种工具,用于数据库设计中,通过E-R图表示实体及其联系。总之,在设计数据库时,把E-R图作为中间步骤,用E-R图准确地反映出客观信息,再由E-R图构造出逻辑数据模型(即数据表),从而使问题变得简单,不易犯错。,44,概念模型相关的基本概念:,实体(Entity):客观存在并可相互区别的事物称为实体。如学生、某物体、事件等。属性(Attibute):实体所具有的某一特性。如学生实体的学号、姓名、年龄等;课程实体的课程号,课程名称、学分等。码(Key):能唯一标识实体的属性或属性集称为实体的码。如学生的学号。,45,1.E-R图的组成要素及其画法,E-R图有三个基本要素:实体、联系、属性其表示方法如下:,实体名,属性名,联系名,E-R图的画法:把相互有联系的实体(矩形)通过联系(菱形)连接起来,再把实体的属性(椭圆框)连到实体上。,46,2.实体间不同联系情况的E-R图,根据数据的复杂程度不同,实体间的联系基本有以下三种:一对一(1:1)、一对多(1:n)、多对多(n:m)例1两个实体集之间的一对一(1:1)联系的绘制设某学院有若干个教研室,每个教研室只有一个主任,则主任和教研室之间就是一对一的关系。主任和教研室的属性分别如下:主任:编号、姓名、年龄、学历教研室:教研室编号、教研室名主任和教研室之间的联系是“管理”关系,这个“管理”用一个属性“任职时间”来描述,47,描述主任和教研室之间的信息关系的E-R图:,48,例2两个实体集之间的一对多的联系的绘制,假设某仓库管理系统中,有两个实体集:仓库、商品,且规定一类商品只能存放在一个仓库中,每个仓库可以存放多种商品。仓库和商品之间是一对多的联系。属性如下仓库:仓库号、地点、面积商品:商品号、商品名、价格两实体间是“存放”的联系,并反映存放商品的数量。,49,描述仓库和商品之间的信息关系的E-R图:,50,例3.两个实体集之间的多对多的联系的绘制,设某教务管理系统中,一个教师可以讲多门课,一门课可以有多个老师讲授,则教师和课程之间是多对多的联系。教师和课程两实体属性如下:教师:教师编号、教师姓名、职称课程:课程编号、课程名、学分两实体间是“讲授”的联系,另外在“讲授”联系中,要反映授课质量。,51,描述教师和课程之间的信息关系的E-R图:,52,如果实体的属性太多,则可以将实体及其属性单独画图,在E-R图中只画实体及其联系。如例3可以这样画:,53,E-R图的设计方法,设计E-R图一般经过以下两个阶段:(1)画出每一用户的局部E-R图,确定该用户的实体、属性和联系。(2)综合局部E-R图,生成总体E-R图。在总体E-R图中,同名的实体只能出现一次。注意:一个系统E-R图不是唯一的,强调不同的侧面画出的E-R图可能有很大不同。,54,1局部E-R模型的设计,根据数据流图和数据字典的相关内容,确定实体,及其属性、实体之间的联系。例2-2设计教学信息管理系统的局部E-R图。如图2-10至图2-14所示。,55,图2-12课程实体及其属性,56,57,2总体E-R模型的设计,综合局部E-R图,消除各个局部E-R图之间的冲突,生成总体E-R图。在总体E-R图中,同名的实体只能出现一次。例2-3将上例的局部E-R图2-13、2-14,合并成总体E-R图。,选修,学生,课程,m,n,教师,任课,p,q,图2-15总体E-R图,58,2.2.4逻辑结构设计,将概念模型转换成逻辑模型,也就是数据模型。常见的数据模型有层次模型、网状模型、关系模型。以关系模型为例,明确几个术语:关系(Relation):是通常说的一张二维表。如学生基本情况表。元组(Tuple):表中一行就是一条元组。如一条学生的记录。属性列(Attribute):表中一列。如所有学生的姓名。候选码(CandidateKey):表中的某个属性或属性组,它可以唯一确定一条元组(记录)。因学生的学号不重复,如果姓名不允许重复,则候选码为学号,姓名。主码(PrimaryKey),也称主键:从候选码中选择一个作为主码。如选学号或者姓名作主码。主属性:候选码中的各属性。如果姓名不允许重复,则学号、姓名都是主属性。非主属性:不包含在候选码中的属性。如年龄,系就是非主属性。关系模式:对关系的描述,通常对应一个表头。如:学生(学号,姓名,性别,年龄,系),59,1.数据结构:由行、列组成的二维表。2.数据操作:向数据库中插入、删除、修改信息。3.完整性约束条件:目的是使数据库中不存在不符合语义的数据。如性别只能取“男”或“女”,而不能取其它的值。具体的完整性约束条件有:(1)、实体完整性:(2)、参照完整性:(3)、用户定义的完整性:,对关系模型的描述包括以下三方面:,60,完整性约束条件:,1、实体完整性:指在关系中的任何一个元组,主码不允许为空。因为在一个关系中,主码是唯一标识一个元组的,如果主属性为空,则将难以判断该元组与其他元组的区别。例如,学生选课关系中,如学号为空,即不知谁选了一门课,这种情况是不符合现实的。2、参照完整性:简单地说,一个关系中某个属性的取值要参考另一个关系中主码的取值。如:学生(学号,姓名,性别,年龄,系),主码是学号。选修(学号,课程号,成绩),主码是(学号,课程号)两个属性的组合。选修关系中的学号的取值要参考学生关系中学号的取值,即必须是学生关系中存在的值。必须是学生表中存在的学生。3、用户定义的完整性:由用户针对数据给出的具体语义约束条件,来定义完整性,称用户自定义的完整性。如人的年龄规定在0150之间取值,考试成绩应在0100之间、性别只能是男或女,等。如违反上述约束条件,系统采取相应的处理措施。如给出提示信息,并拒绝操作等。,61,逻辑结构设计,逻辑结构设计的实质是把E-R图转换为具体的DBMS支持的数据模型关系模型。把E-R图转换为关系模型的方法,通常分为初步设计和优化设计两步进行。初步设计根据转换规则,把E-R图转换为关系模型优化设计对模式进行调整和改善,62,1转换规则初步设计,要解决的问题:将实体间的联系转换为关系模式。确定关系模式的属性和主码。转换的规则如下:(1)实体的转换:实体的属性关系的属性实体的码关系的码(2)联系的转换:多对多(n:m)一对多(1:n)、一对一(1:1)、,63,联系的转换,多对多(m:n)联系的转换对“联系”单独建立一个关系(表)与联系相连实体的码关系的属性联系本身的属性关系的属性关系的码为各实体主码的组合,64,例2-4将图2-13转换成关系模式,学生(学号,姓名,性别,年龄,系),主码是学号。课程(课程号,课程名称,先修课号,学分),主码是课程号。将m:n(多对多)的联系转换为独立的关系模式如下:选修(学号,课程号,成绩),主码是学生实体的主码(学号)和课程实体的主码(课程号)的组合。,65,联系的转换,一对多(1:n)联系的转换:方法1:可将“1方”实体集的主码,纳入“n方”实体集关系(表)中作为外码,同时把“联系”的属性也一并纳入“n方”关系中。方法2:对“联系”单独建立一个关系,该关系中要包含双方实体集的主码,若“联系”有属性,也要纳入该关系中。主码是n端实体的主码。,66,对例2的仓库与商品的E-R图(1:n),方法1:可转换为以下两个关系模式(带下划线的红色属性表示主码,兰色表示外码):仓库(仓库号、地点、面积)商品(商品号、商品名、价格、数量、仓库号)方法2:将“存放”联系转换为一个独立的关系模式仓库(仓库号、地点、面积)商品(商品号、商品名、价格)存放(商品号、仓库号、数量),主码是n端实体的码,即商品号。,外码,联系的属性,67,一对一(1:1)联系的转换有三种方法:,方法1.建立第三个关系,关系中包含两个实体集的主码,如果联系有属性,也一并加入。方法2.把B实体集的主码加入到A实体集对应的关系中,如果联系有属性,也一并加入。方法3.把A实体集的主码加入到B实体集对应的关系中,如果联系有属性,也一并加入。,68,例2-6将图2-16转换成关系模式。,方法1、“任职”联系转换为一个独立的关系模式:班长(班长学号,姓名,性别,年龄,系)班级(班号,人数)任职(班长学号,班号,任职时间)主码是班长学号或班号。,69,方法2、将“班级”关系中的主码及联系的属性纳入“班长”的关系模式中:班长(班长学号,姓名,性别,年龄,系,班号,任职时间),主码是班长学号。班级(班号,人数),主码是班号。方法3、将“班长”关系中的主码及联系的属性纳入“班级”的关系模式中:班长(班长学号,姓名,性别,年龄,系),主码是学号。班级(班号,人数,班长学号,任职时间),主码是班号。,70,多元联系的转换:,三个或三个以上实体间的多元联系可以转换为一个单独的关系模式。与该多元联系相连的各实体的主码以及联系本身的属性均转换为此关系的属性,而此关系的主码为各实体码的组合。例2-7将图2-17转换成关系模式,71,多元联系的转换:,各实体的属性如下:售货员:售货员编号、姓名、性别、年龄、工龄顾客:顾客编号、顾客名称、住址、电话商品:商品编号、商品名称、价格、进货时间转换以后的关系模式如下:售货员(售货员编号,姓名,性别,年龄,工龄)顾客(顾客编号、顾客名称、住址、电话)商品(商品编号、商品名称、价格、进货时间)。销售(售货员编号,顾客编号,商品编号,销售量),主码为:售货员编号,顾客编号,商品编号这三个属性的组合。,72,例2-8.将图2-15的全局E-R图转换为关系模型。,根据上述规则,转换的方法如下:(1)将实体转换为独立的关系模式:学生(学号,姓名,性别,年龄,系)教师(教师号,性名,性别,职称,电话号码)课程(课程号,课程名称,学时,学分)(2)将多对多联系转换为独立的关系模式:选修(学号,课程号,成绩),主码是(学号,课程号)两个属性的组合。任课(教师号,课程号,学期,授课类别,班数)主码是(教师号,课程号,学期)三个属性的组合。每个关系模型就对应一个表了,73,2优化,所谓优化,就是从提高效率的角度出发,根据具体情况,对模式结构作进一步调整和改善。一般用三方面指标来衡量:单位时间内所访问的逻辑记录个数要少;单位时间内数据传送量要少;系统占用的存储空间尽量要少。虽然可以通过计算,对性能进行预测,但是实用意义不一定很大,通常采取定性判断方法,估计不同设计方案的性能优劣。最常用的优化方法就是通过对记
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 丝巾围法手册
- 开启高中新旅程 教学设计 2023-2024学年心理健康教育高一上册
- 边缘计算安全防护-第7篇-洞察及研究
- 自动化码头建设进展及影响-洞察及研究
- 护眼课题的申报书
- 教学教改课题申报书
- 课题申报书怎么写标题好
- 24 诗词曲五首 (说课稿)九年级语文下册同步高效课堂(统编版)
- 乡村类校级课题申报书
- 第一单元认识几何画板第1课《用于作图》说课稿 启动几何画板 2024-2025学年人教版初中信息技术八年级下册
- GB/T 5271.29-2006信息技术词汇第29部分:人工智能语音识别与合成
- GB/T 28248-2012印制板用硬质合金钻头
- 董关鹏-沈阳课件
- 大学生活从“心”开始
- 淄博市2020年度专业技术人员继续教育公需课考试题及答案
- 大运河前世今生课件
- 省级自然保护区建设工程可行性研究报告
- 义务教育阶段学生艺术素质测评指标体系小学音乐
- 茶叶生产加工常用表格
- 妊娠合并HIV(医学PPT课件)
- Minitab(高级)
评论
0/150
提交评论