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

下载本文档

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

文档简介

第三章数据库设计,数据库设计概述,数据库设计是指对于一个给定的应用环境,构造(设计)优化的数据库逻辑模式和物理结构,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求,包括信息管理要求和数据操作要求。目标为用户和各种应用系统提供一个信息基础设施和高效率的运行环境数据库系统生存期数据库应用系统从开始规划、设计、实现、维护到最后被新的系统取代而停止使用的整个期间。,系统分析员和数据库设计员用户和数据库管理员应用开发人员,数据库应用系统的生存周期图,数据库设计各个阶段的设计描述,需求分析,任务:详细调查现实世界要处理的对象(组织、部门、企业);充分了解原系统(手工系统或计算机系统);明确用户的各种需求;确定新系统的功能;充分考虑今后可能的扩充和改变。调查的重点是“数据”和“处理”,获得用户对数据库要求:信息要求、处理要求、安全性与完整性要求,分析用户活动产生,产生业务流程图确定系统范围,产生系统范围图分析用户活动涉及的数据,产生数据流图分析系统数据,产生数据字典(DD),实例:假设要开发一个售书系统,顾客,P1销售,P2采购,供应商,F1配件库存,P3会计,付款,付款,收据,应付款通知,收款通知,到货通知,订货单,订货单,发货单,发货单,例子:销售采购管理系统第1层数据流程图,F2配件目录,顾客,P1.1编辑订货单,业务员,P1.3确定订货,P1.5产生暂存订货单,P1.2登录新顾客,F3顾客,P1.4开发货单修改库存,P1.6对照暂存订货单,采购,F4暂存订货单,P1.8编制销售、库存报表,P1.7检索库存,F1配件库存,经理,F5销售历史,F10应收款明细帐,第2层数据流程图之一(销售),发货单,订货单,不合格,合格,新顾客,不满足的订货,可发的订货,到货通知,F4暂存订货单,P2.1按配件汇总,P2.2确定订货的配件,P2.5修改库存、待订数量,F6待订货的配件,P2.6编制到货通知,P2.4核对发货单,F1配件库存,P2.3按供应商汇总,F8向供应商的订货单,F9应付款明细帐,销售,供应商,订货单,发货单,错误发货单,正确发货单,第2层数据流程图之二(采购),顾客,P3.1开收据并修改明细帐,P3.5编制会计报表,经理,P3.4修改总帐,F10应收款明细帐,F11总帐,P3.3付款并修改明细帐,P3.2核对付款单,F9应付款明细帐,供应商,第2层数据流程图之三(会计),应付款通知,付款,收据,数据字典,每个DBMS必须提供目录(catalogue)或字典(dictionary)功能。字典存储了各种模式(外模式、模式和内模式)和相应的映像(外模式/模式的映像,模式/内模式的映像)。换句话说,字典包括了对系统自身有用的各种对象的细节信息(有时称作描述信息或元数据)。这些对象包括:关系变量、索引、用户、完整性约束、安全性约束等。描述信息对确保系统正确工作很重要。如授权子系统首先利用用户和安全性约束的字典信息来准许或拒绝这些请求。关系系统中字典本身就是由系统关系变量(区别于普通用户的关系变量)组成。因此,用户能够像访问自己的数据一样访问字典。如,TABLE和COLUMN两种系统关系变量,分别描述了数据库中的表(即关系变量)和表中的列。Descdict_columns;(oracle系统下)用途:进行详细的数据收集和数据分析所获得的主要结果。,数据字典的内容(5个部分)数据项,数据结构,数据流,数据存储,处理过程数据项是不可再分的数据单位数据项的描述数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系,数据项之间的联系取值范围、与其他数据项的逻辑关系定义了数据的完整性约束条件,是设计数据检验功能的依据,数据字典的内容(5个部分)数据项,数据结构,数据流,数据存储,处理过程数据结构反映了数据间的组合关系一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。数据结构描述数据结构名,含义说明,组成:数据项或数据结构,数据字典的内容(5个部分)数据项,数据结构,数据流,数据存储,处理过程数据流是数据结构在系统内传输的路径。数据流描述数据流名,说明,数据流来源,数据流去向,组成:数据结构,平均流量,高峰期流量数据流来源是说明该数据流来自哪个过程数据流去向是说明该数据流将到哪个过程去平均流量是指在单位时间(每天、每周、每月等)里的传输次数高峰期流量则是指在高峰时期的数据流量,数据字典的内容(5个部分)数据项,数据结构,数据流,数据存储,处理过程数据存储数据结构停留或保存的地方,也是数据流的来源和去向之一。数据存储描述数据存储名,说明,编号,流入的数据流,流出的数据流,组成:数据结构,数据量,存取频度,存取方式流入的数据流:指出数据来源流出的数据流:指出数据去向存取频度:每次存取多少数据,每天(或每小时、每周等)存取几次等信息存取方法:批处理/联机处理;检索/更新;顺序检索/随机检索,数据字典的内容(5个部分)数据项,数据结构,数据流,数据存储,处理过程处理过程具体处理逻辑一般用判定表或判定树来描述。数据字典中只需要描述处理过程的说明性信息。处理过程描述处理过程名,说明,输入:数据流,输出:数据流,处理:简要说明简要说明:主要说明该处理过程的功能及处理要求功能:该处理过程用来做什么处理要求:处理频度要求(如单位时间里处理多少事务,多少数据量);响应时间要求等处理要求是后面物理设计的输入及性能评价的标准,数据字典是关于数据库中数据的描述,即元数据,而不是数据本身。数据本身将存放在物理数据库中,由数据库管理系统管理。数据字典有助于这些数据的进一步管理和控制,为设计人员和数据库管理员在数据库设计、实现和运行阶段控制有关数据提供依据。数据字典是在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善。我们以学生学籍管理子系统为例,简要说明如何定义数据字典。,数据字典举例,学生选课的数据流图,数据项,以“学号”为例:数据项:学号含义说明:唯一标识每个学生别名:学生编号类型:字符型长度:8取值范围:00000000至99999999取值含义:前两位标别该学生所在年级,后六位按顺序编号与其他数据项的逻辑关系:(无),数据结构,以“学生”为例“学生”是该系统中的一个核心数据结构:数据结构名:学生含义说明:是学籍管理子系统的主体数据结构,定义了一个学生的有关信息组成:学号,姓名,性别,年龄,所在系,年级,数据流,“选课信息”为例:数据流名:选课信息说明:学生所选课程信息数据流来源:“学生选课”处理数据流去向:“学生选课”存储组成:学号,课程号平均流量:每天10个高峰期流量:每天100个,数据存储,“选课信息”为例:数据存储名:学生选课说明:记录学生所选课程的成绩编号:(无)流入数据流:选课信息,成绩信息流出数据流:选课信息,成绩信息组成:学号,课程号,成绩数据量:50000个记录存取方式:随机存取,处理过程,以“学生选课”为例:处理过程名:学生选课说明:学生从可选修的课程中选出课程输入数据流:学生,课程输出数据流:学生选课处理:每学期学生都可以从公布的选修课程中选修自己愿意选修的课程,选课时有先修课程的要求,还要保证选修课的上课时间不能与该生必修课时间相冲突,每个学生四年内的选修课门数不能超过8门。,概念结构设计,什么是概念结构设计将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定概念结构设计是整个数据库设计的关键概念结构设计的特点能真实、充分地反映现实世界;易于理解;易于更改;易于向关系、网状、层次等各种数据模型转换工具E-R模型,E-R模型的概念,E-R模型(Entity-RelationshipModel)1976,Peter.P.Chen(陳品山)提出的概念设计方法(see*)以ER图的方式表达现实世界实体及实体间的联系E-R模型的建模手工计算机辅助工具。如SybasePowerDesigner,LouisianaStateUniversity,*PeterChen.TheEntity-RelationshipModel-TowardaUnifiedViewofData.ACMTransactionsonDatabaseSystems,Vol.1(1),p.9-36,1976,E-R模型的概念,E-R模型要素实体Entity包含实体属性实体与实体间的联系Relationship包含联系类型和联系属性,(1)实体与联系,实体(Entity)现实世界中可标识的对象如学生、学校、发票、教室、系、班级物理存在的实体(教室、学生)、代表抽象概念的实体(课程)应用中的数据以实体的形式呈现一个实体具有唯一的标识,称为码(Key)联系(Relationship)实体和实体之间发生的关联一个实体一般都与一个或多个实体相关,(2)联系的类型,1对1联系(1:1)学校和校长、学生和学生简历A和B是1:1联系指一个A只有一个B与其关联,并且一个B也只有一个A与其关联1对多联系(1:N)公司和职工、系和学生、客户和订单A和B是1:N联系指一个A可以有多个B与其关联,但一个B只有1个A关联多对多联系(M:N)学生和课程、教师和课程、医生和病人一个A可有多个B对应,一个B也可有多个A对应,(3)联系的确定,联系的确定依赖于实体的定义和特定的应用,同样的实体在不同应用中可能有不同的联系部门和职工:若一个职工只能属于一个部门,则是1:N,若一个职工可属于多个部门,则是M:N图书馆和图书:若图书的码定义为索书号,则为M:N(一个索书号可能有几本相同的书);若图书的码为图书条码,并且每本书有一个唯一条码,则为1:N联系,(4)E-R图的符号,矩形:表示实体菱形:表示联系,两端写上联系的基数(1:N,M:N,1:1)椭圆形:表示属性,实体的码加下划线,联系也可有属性,(5)E-R图例子:教学应用,学生,选课,学号,课程,M,N,姓名,成绩,年龄,课程号,课程名,学分,教授,教师,M,N,工资号,姓名,职称,概念结构设计的方法与步骤,自顶向下,自底向上,逐步扩张,混合策略,自底向上设计概念结构的步骤第1步:抽象数据并设计局部视图第2步:集成局部视图,得到全局概念结构,三种常用数据抽象分类抽象了对象值和型之间的“ismemberof”的语义。聚集抽象了对象内部类型和成分之间“ispartof”的语义概括抽象了类型之间的“issubsetof”的语义数据抽象的用途对需求分析阶段收集到的数据进行分类、组织(聚集),形成实体、实体属性,码,确定实体间联系类型。,局部视图设计步骤1.选择局部应用2.逐一设计分E-R图选择局部应用设计分E-R图首先需要根据系统的具体情况,在多层的数据流图中选择一个适当层次的数据流图,让这组图中每一部分对应一个局部应用,然后以这一层次的数据流图为出发点,设计分E-R图。通常以中层数据流图作为设计分E-R图的依据。原因:高层数据流图只能反映系统的概貌中层数据流图能较好地反映系统中各局部应用的子系统组成低层数据流图过细,设计分E-R图的出发点,逐一设计分E-R图任务标定局部应用中的实体、属性、码,实体间的联系将各局部应用涉及的数据分别从数据字典中抽取出来,参照数据流图,标定各局部应用中的实体、实体的属性、标识实体的码,确定实体之间的联系及其类型如何抽象实体和属性现实世界中一组具有某些共同特性和行为的对象就可以抽象为一个实体。对象和实体之间是“ismemberof”的关系。对象类型的组成成分可以抽象为实体的属性。组成成分与对象类型之间是“ispartof的关系。如何区分实体和属性两条准则:(1)属性不能再具有需要描述的性质。即属性必须是不可分的数据项,不能再由另一些属性组成。(2)属性不能与其他实体具有联系。联系只发生在实体之间。,病房作为一个实体,职称作为一个实体,仓库作为一个实体,逐一设计分E-R图步骤:(1)以数据字典为出发点定义E-R图。数据字典中的“数据结构”、“数据流”和“数据存储”等已是若干属性的有意义的聚合(2)按上面给出的准则进行必要的调整。实例:销售管理子系统分E-R图的设计销售管理子系统的主要功能:处理顾客和销售员送来的订单工厂是根据订货安排生产的交出货物同时开出发票收到顾客付款后,根据发票存根和信贷情况进行应收款处理。,销售管理子系统第一层数据流图,虚线部分划出了系统边界,支付过账,开发票,处理订单,接收订单,系统功能又分为4个子系统,下面四个图是第二层数据流图,参照第二层数据流图和数据字典,遵循两个准则,进行如下调整:订单与订单细节是1n的联系原订单和产品的联系实际上是订单细节和产品的联系。图中“发票主清单”是一个数据存储,不必作为实体加入分E-R图工厂对大宗订货给予优惠,分E-R图的框架,销售管理子系统的分E-R图,对每个实体定义的属性如下顾客:顾客号,顾客名,地址,电话,信贷状况,账目余额订单:订单号,顾客号,订货项数,订货日期,交货日期,工种号,生产地点订单细则:订单号,细则号,零件号,订货数,金额应收账款:顾客号,订单号,发票号,应收金额,支付日期,支付金额,当前余额,货款限额产品描述:产品号,产品名,单价,重量折扣规则:产品号,订货量,折扣视图的集成各个局部视图即分E-R图建立好后,还需要对它们进行合并,集成为一个整体的数据概念结构即总E-R图。,视图集成的两种方式多个分E-R图一次集成逐步集成集成局部E-R图的步骤:合并修改与重构,视图集成,冲突种类:属性冲突:取值的类型、范围或单位命名冲突:同名异义、异名同义结构冲突:1.同一对象在不同应用中具有不同抽象;2.同一实体在不同局部视图中包含的属性不完全相同;3.实体间的联系在不同的局部视图中有不同的类型。,实例:学籍管理局部视图与课程管理局部视图的合并。这两个分E-R图存在着多方面的冲突:班主任实际上也属于教师,也就是说学籍管理中的班主任实体与课程管理中的教师实体在一定程度上属于异名同义,可以应将学籍管理中的班主任实体与课程管理中的教师实体统一称为教师,统一后教师实体的属性构成为:教师:职工号,姓名,性别,职称,是否为优秀班主任将班主任改为教师后,教师与学生之间的联系在两个局部视图中呈现两种不同的类型,一种是学籍管理中教师与学生之间的指导联系,一种是课程管理中教师与学生之间的教学联系,由于指导联系实际上可以包含在教学联系之中,因此可以将这两种联系综合为教学联系。性别在两个局部应用中具有不同的抽象,它在学籍管理中为实体,在课程管理中为属性,按照前面提到的两个原则,在合并后的E-R图中性别只能作为实体,否则它无法与宿舍实体发生联系。在两个局部E-R图中,学生实体属性组成及次序都存在差异,应将所有属性综合,并重新调整次序。假设调整结果为:学生:学号,姓名,出生日期,年龄,所在系,年级,平均成绩。,消除不必要的冗余,设计基本E-R图冗余的数据是指可由基本数据导出的数据冗余的联系是指可由其他联系导出的联系冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难消除冗余的方法分析方法以数据字典和数据流图为依据根据数据字典中关于数据项之间的逻辑关系效率VS冗余信息若人为地保留了一些冗余数据,则应把数据字典中数据关联的说明作为完整性约束条件规范化理论函数依赖的概念提供了消除冗余联系的形式化工具,消除冗余,设计生成基本E-R图实例,图1.工厂物资管理E-R图,图2.销售管理子系统的分E-R图,图3.劳动人事管理的分E-R图,图4.系统的基本E-R,逻辑结构设计,逻辑结构设计的任务为了能够用某一DBMS实现用户需求,还必须将概念结构进一步转化为相应的数据模型,这正是数据库逻辑结构设计所要完成的任务逻辑结构设计的3个步骤,E-R图向关系模型的转换要解决的问题如何将实体型和实体间的联系转换为关系模式如何确定这些关系模式的属性和码转换原则一个实体型转换为一个关系模式。关系的属性为实体型的属性;关系的码为实体型的码一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。转换为一个独立的关系模式:关系的属性为与该联系相连的各实体的码及联系本身的属性;关系的候选码为每个实体的码与某一端对应的关系模式合并:合并后关系的属性为加入对应关系的码和联系本身的属性;合并后关系的码不变。,E-R图向关系模型的转换转换原则一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并转换为一个独立的关系模式:关系的属性为与该联系相连的各实体的码以及联系本身的属性;关系的码为n端实体的码与n端对应的关系模式合并:合并后关系的属性为在n端关系中加入1端关系的码和联系本身的属性;合并后关系的码:不变。由于可以减少系统中关系的个数,更倾向采用这种方法一个m:n联系转换为一个关系模式关系的属性:与该联系相连的各实体的码以及联系本身的属性关系的码:各实体码的组合同一实体集的实体间的联系,即自联系,也可按上述1:1、1:n和m:n三种情况分别处理具有相同码的关系模式可合并,向特定DBMS规定的模型进行转换转换的主要依据是所选用的DBMS的功能及限制。没有通用规则。对于关系模型来说,这种转换通常都比较简单。数据模型的优化得到初步数据模型后,还应该适当地修改、调整数据模型的结构,以进一步提高数据库应用系统的性能,这就是数据模型的优化。关系数据模型的优化通常以规范化理论为指导。优化数据模型的方法确定数据依赖对于各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系按照数据依赖的理论对关系模式逐一进行分析,考查是否存在部分函数依赖、传递函数依赖、多值依赖等,确定各关系模式分别属于第几范式,数据模型的优化优化数据模型的方法按照需求分析阶段得到的各种应用对数据处理的要求,分析对于这样的应用环境这些模式是否合适,确定是否要对它们进行合并或分解。常用分解方法水平分解:把(基本)关系的元组分为若干子集合,定义每个子集合为一个子关系,以提高系统的效率。适用“80/20原则”的应用垂直分解:把关系模式R的属性分解为若干子集合,形成若干子关系模式。可提高某些事务的效率,但也降低了效率。并不是规范化程度越高的关系就越优当一个应用的查询中经常涉及到两个或多个关系模式的属性时,系统必须经常地进行连接运算,而连接运算的代价是相当高的,可以说关系模型低效的主要原因就是做连接运算引起的对于一个具体应用来说,到底规范化进行到什么程度,需要权衡响应时间和潜在问题两者的利弊才能决定。一般说来,第三范式就足够了。,设计用户子模式定义数据库模式主要是从系统的时间效率、空间效率、易维护等角度出发。定义用户外模式时应该更注重考虑用户的习惯与方便。包括三个方面:使用更符合用户习惯的别名合并各分E-R图曾做

温馨提示

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

最新文档

评论

0/150

提交评论