《【教学课件】第4章数据库设计.ppt》由会员分享,可在线阅读,更多相关《【教学课件】第4章数据库设计.ppt(26页珍藏版)》请在三一办公上搜索。
1、第4章 数据库设计,本章要点:数据库设计的内容 数据库设计的特点 数据库逻辑设计 数据库物理设计 数据库的运行与维护 数据库的技术文档,4.1 数据库设计概述,数据库设计是从用户对数据的需求出发,创建一个性能良好、能满足不同用户需求、又能被选定的DBMS所接受的数据模式,进而构造出数据库结构的过程,4.1 数据库设计概述,4.1.1 数据库设计的目标 数据库设计有两个最重要的目标:满足应用功能需求和良好的数据库性能。满足应用功能需求,主要是指把用户当前应用以及可预知的将来应用所需要的数据及其联系能全部准确地存放于数据库之中,并能根据用户的需要对数据进行规定的合理的增、删、改、显示等操作。良好的
2、数据库性能,主要是指数据库应具有良好的存储结构、良好的数据共享性、良好的数据完整性、良好的数据一致性及良好的安全保密性能等。,4.1.2 数据库设计的内容,1数据库的结构特性设计 数据库的结构特性设计是确定数据库的框架和数据结构(逻辑结构特征)。2数据库的行为特性设计 数据库的行为特性设计是指确定数据库用户的行为和动作,并根据其行为特性设计出数据库的子模式。3数据库的物理模式设计 数据库的物理模式设计要求是:根据数据库结构的动态特性,在特定的RDBMS环境下,把数据库的逻辑结构模型加以物理实现,从而得出数据库的存储模式和存取方法。,4.1.3 数据库设计的特点与过程,1数据库设计的特点:数据库
3、设计是一种“反复探寻,逐步求精”的过程。2数据库设计的过程 如下图,4.2 数据库逻辑设计,4.2.1 数据库逻辑设计的步骤 逻辑设计阶段的目标是产生合理的数据库模式,可分为三个阶段:分别是收集和分析用户需求、概念模式设计和逻辑模式设计。第一阶段主要分成四个步骤,分别如下:第一步:分析用户活动,产生“用户活动图”。第二步:确定系统范围,产生“系统范围图”。第三步:分析用户活动所涉及到的数据,产生“数据流图”。第四步:分析系统数据,产生数据字典。第二阶段可分为两个步骤,分别如下:第一步:根据局部E-R模型,产生局部“E-R模型”。第二步:对局部E-R模型进行综合,产生总体E-R模型,并建立“总体
4、E-R图”。第三阶段也可分成两个步骤,分别如下:第一步:把总体E-R图转换成模式。第二步:对模式进行优化,产生符合要求的合理最优的模式。,4.2.2 收集和分析用户需求,通过一个医院信息管理系统来说明这四个步骤应完成的功能。【例】某医院信息管理系统要完成以下功能:办理病历(第一次来院治病时办理病历);查询药品情况(根据要求查询某种类或全部药品信息);病人项目入库(病人所用药、所做检查等治疗信息存入到指定的数据库中);催交欠费(根据病人项目计算出总费用,减去预交费用,若超过某一限度则催交欠费)。,1分析用户活动,用户医院的业务流程所得到的“用户活动图”,2确定系统范围,上图中虚线框内的部分属于系
5、统范围,而框外部分则需人工处理。3分析用户活动所涉及到的数据(1)数据流图(DFD)的概念 数据流图是一种能全面描述系统逻辑模型的主要工具,它可以用少数几种符号综合地反映出数据在系统中的流动、存储和处理情况。(2)数据流图的特征 抽象性数据流图完全舍去了具体的物质,只剩下数据的流动、加工处理和存储。概括性数据流图可以把系统中的不同业务处理过程联系起来,形成一个整体。(3)数据流图的组成,画数据流图应注意以下几点:数据流图中反映的是数据流而不是控制流,这是与一般程序流程图的最大不同之处;在对数据流图中各个成份命名时,应该体现命名的含义;流入文件或流出文件的数据流不必命名,因为文件名本身已经表示了
6、数据内容;源点和终点不是必须的,因为它们是属于系统之外的事物,但画出源点和终点有助于理解数据流的来龙去脉。,(4)数据流图的画法1,一般地说,画数据流图应遵循“由外向内,逐步细化”的原则。由外向内是指:根据用户活动图标定系统范围,系统范围内的细节部分可以先不考虑,将其当成一个黑盒子。如:,医院信息管理系统,病人或其家属,药品管理人员,医生,财务管理人员,病人或其家属,药品管理人员,门诊请求,查询请求,处方项目,催款请求,病历,药品清单,本次项目清单,交款通知,病人或其家属,病人或其家属,(4)数据流图的画法 2,逐步细化是指:逐一描述系统内部数据流,一般从每个业务的输入端开始向输出端推进,每当
7、经过使数据流的组成或数值发生变化的地方,就用一个“加工”将其连接起来,这个“加工”正是实现这一数据变化的。注意,不要把相互无关的数据画成一个数据流,也不要把作为一个处理单位的数据画成二个数据流。如果牵涉到文件,则应表示出“文件”与“加工”的读写关系。,(4)数据流图的画法 3,办理病历,门诊请求,打印病历,病人档案数据,病历,病人,接受查询,药品查询请求,打印,药品数据,药品清单,药品,图4-5 门诊请求数据流图,图4-6 药品查询数据流图,(4)数据流图的画法 4,处方录入,处方请求,打印清单,处方数据,处方清单,病人,图4-7 处方处理数据流图,药品,病人医疗项目,办理请求,催款请求,计算
8、费用,医疗项目数据,催款通知,药品,图4-8 催款处理数据流图,病人,病人医疗项目,4分析系统数据,(1)数据字典的概念 数据流图表达了数据和处理的关系,数据字典则是系统中各类数据描述的集合,是进行数据收集和数据分析所获得的结果。数据字典是关于数据库中数据的描述,通常称“元数据”,元数据不是数据本身。数据字典在数据库设计中占有非常重要的地位,是概念模式设计、逻辑模式设计和物理设计的主要依据。(2)通过数据流图构成数据字典 数据字典是对数据流图中的四个成份进行描述的产物,它和数据流图共同构成“系统说明书”。数据流的描述,如:门诊请求=姓名+性别+年龄+职业+通讯地址+电话号码+是否医保病历=病历
9、号+姓名+性别+年龄,4分析系统数据2,文件的描述,如:病人=病历号+姓名+性别+年龄+职业+通讯地址+电话号码+是否医保组织:按“病历号”升序排列 数据项的描述,包括名称、类型、长度、取值范围等,如:病历号(字符,10,000001999999)姓名(字符,8).加工的描述,包括过程名、过程说明、输入输出和过程功能说明等。说明:做什么?,4.2.3 概念模型设计(E-R图设计),1局部E-R模型的设计 局部E-R模型设计的任务是根据需求上一步骤产生的各个功能模块的数据流图和数据字典中的相关数据,设计出各个功能模块的局部ER图。,概念模型的设计步骤,4.2.3 概念模型设计(E-R图设计),例
10、4-2,根据数据流图和数据字典设计医院信息管理系统的局E-R图,使用,病人,药品,m,n,图4-12处方处理局部E-R图,已做过,病人,病人医疗项目,1,n,图4-13催款处理局部E-R图,2总体E-R模型的设计,局部E-R图之间的冲突主要有3类:属性冲突、命名冲突和结构冲突。(1)属性冲突 属性域冲突,即属性值的类型、取值范围不同。属性取值单位冲突。(2)命名冲突 同名异义冲突,即不同意义的对象在不同的部门的局部E-R图中具有相同的名字。异名同义冲突,即意义相同的对象在不同的部门的局部E-R图中具有不同的名字。(3)结构冲突 同一对象在不同的应用中具有不同的抽象。同一实体在不同的局部E-R图
11、中的属性组成不一致,即包含的属性个数和属性排列次序不完全相同。实体之间的联系在不同的局部ER图中呈现不同的类型。这类冲突的解决方法是根据应用的语义对实体联系的类型进行综合或调整。,2总体E-R模型的设计2,例4-3 对例4-1的医院管理系统进行扩充,要求反映药品采购信息。,使用,病人,药品,m,n,总体E-R图,使用,药品,病人,m,n,采购,制药厂,m,n,4.2.4 逻辑模式设计,逻辑模式设计的实质是把E-R图转换为具体的DBMS支持的数据模型。把E-R图转换为关系模型的方法,通常分两步进行:初步设计和优化设计。1初步设计把E-R图转换为关系模型具体的转换方法请参见3.3节。2优化设计对模
12、式进行调整和改善所谓优化,就是从提高效率的角度出发,对模式结构作进一步的凋整和改良。优化是在性能预测的基础上进行的,一般用三方面指标来衡量:(1)单位时间内所访问的逻辑记录个数要少;(2)单位时间内数据传送量要少;(3)系统占用的存储空间尽量要少。【例】要查询病人信息时,经常按住院病人和门诊病人分类查询,为改善性能,使得单位时间内访问逻辑记录的个数尽量少,请给出一种分解方法。原来的病人关系为:病人(病历号、姓名、性别、年龄、职业、通信地址、电话号码、是否医保)可对其进行水平分解,使其成为两个关系 住院病人(病历号、姓名、性别、年龄、职业、通信地址、电话号码、是否医保)门诊病人(病历号、姓名、性
13、别、年龄、职业、通信地址、电话号码、是否医保),4.3 数据库物理设计,4.3.1 存储结构的选择 选择何种存储结构,与选定的DBMS类型有关,对于层次式或网状式DBMS,存储结构的选择与应用有密切关系。对于关系式数据库,用户能够干预的事情很少,最多只能选定索引方法或给出辅助索引,以便在程序中可以按倒排文件方式查询数据,而存取路径是由系统安排的。4.3.2 属性的存储类型的确定 不同DBMS系统的数据类型稍微有点区别,因此需要针对不同的DBMS来确定每个属性的存储类型。数据库管理系统提供的数据库设计工具就具有设计属性的存储类型的功能,如Visual FoxPro提供的“表设计器”,Visual
14、 Basic提供的“可视化数据管理器”,Delphi提供的“DataBase Desktop”等。4.3.3 表的索引结构的确定 4.3.4 存取路径的确定,4.4 数据库的实现、运行与维护,4.4.1 数据库的实现 该阶段主要完成以下三项工作:(1)建立实际数据库结构。(2)装入试验数据对应用程序进行调试。(3)装入实际数据,进入试运行状态。4.4.2 数据库的运行与维护 运行维护阶段的主要任务如下:(1)对日常数据库操作进行维护(2)维护数据库的结构(3)维护数据库的安全性与完整性(4)监测并改善数据库运行性能(5)根据用户要求对数据库现有功能进行扩充(6)及时改正运行中发现的系统错误,4
15、.5 编写技术文档,4.5.1 编写系统说明书 系统说明书主要由数据流图和数据字典组成。它用来表达用户对系统的要求,软件人员根据“系统说明书”进行数据库的构造和应用程序的设计。4.5.2 编写技术说明书 技术说明书主要包括如下内容:(1)用户活动图、数据流图和数据字典。(2)局部E-R图和总体E-R图。(3)对于层次和网状数据类型应指出各种记录型及其联系,指出关键字。对于关系数据类型,应指出关系模式、关系模式之间的联系、关系的关键字。(4)在数据库设计阶段产生的每个表格的名称、字段的属性、索引的名称和索引字段(或索引表达式)(5)应用程序的总体结构框图,各主要模块的流程图,详细的程序代码。,小
16、结,本章主要介绍数据库系统的开发过程,对数据库系统的开发过程中的每个阶段进行了详尽的阐述。数据库设计包括三个部分的内容,分别是结构特性的设计、行为特性的设计和数据库的物理模式设计。数据库的开发过程基本上可分成三个阶段,分别是逻辑设计阶段、物理设计阶段、数据库的运行与调试及维护阶段。在逻辑设计阶段主要是分析用户需求,产生用户活动图,根据用户活动图设计出数据流图和数据字典,最后根据数据流图和数据字典设计出数据库模式。物理设计阶段的任务主要是确定数据的物理结构、属性的类型、索引等。数据库的运行与调试及维护阶段的主要任务是对数据库进行维护,使数据库运行良好。数据库系统作为软件产品提交时还必须提交相应的文档资料,文档资料主要包括系统说明书、技术说明书和使用说明书。,