资源描述
*,第,8,章 数据库设计,数据库设计,是指利用现有的数据库管理,系统针对具体的应用对象构造适合的数据库,模式,建立数据库及其应用系统,使之有效,存储、操作、管理数据,满足用户各种应用,需求。,1,8,.1,数据库设计概述,数据库设计中面临的,主要困难和问题,有:,懂得计算机与数据库的人一般都缺乏应用业务知识和实际经验,而对应用业务熟悉的人又往往不懂计算机和数据库。同时具有这两方面知识的人是很少的。,应用业务的数据库系统的目标是什么在一开始往往不能很明确。,缺乏很完善的设计工具和方法。,用户的要求往往并不是一开始就能完全说清楚。,应用业务系统千差万别,很难找到一种适合所有应用业务的工具和方法。,2,设计成功的数据库系统应具备如下,一些特点,:,功能强大,能准确地表示业务数据,容易使用和维护,对最终用户操作的响应时间合理,便于数据库结构的改进,便于数据的检索和修改,较少的数据库维护工作,有效的安全机制能确保数据安全,冗余数据最少和不存在,便于数据的备份和恢复,数据库结构对最终用户透明,3,一、数据库设计的特点,1,、综合性,数据库设计涉及的,范围,广,包含计算机专业知识及业务系统专业知识;同时它还要解决技术及非技术两方面的问题。,2,、结构设计与行为设计相分离,结构设计,是指数据库的模式结构设计,包括概念结构、逻辑结构和存储结构;,行为设计,是指应用程序设计,包括功能组织、流程控制等,。,4,数据库,设计的特点:,实体的静态特性是在模式或子模式中定义的;,实体的动态行为是在存取数据库的程序中重复设计和实现的;,程序和数据不易结合;,数据库设计较为复杂;,结构设计和行为设计是分离进行的。,5,二、数据库设计方法概述,为了使数据库设计更合理更有效,需要有效,的指导原则,这种原则就称为,数据库设计方法,学,。,数据库设计方法中比较著名的有,新奥尔良,(,New Orleans,),方法,,这种方法将数据库设计,分为四个阶段:,需求分析、概念结构设计、逻辑,结构设计和物理结构设计。,如图,7-2,所示。,需求,分析,概念结构,设计,逻辑结构,设计,物理,设计,需求说明,概念结构,逻辑结构,物理结构,图72,6,三、数据库设计的基本步骤,需求分析,阶段,概念结构设计,结构设计阶段,逻辑结构设计,物理,结构,设计,功能设计,行为设计阶段,事务设计,程序设计,数据库实施,阶段,数据库运行和维护,7,需求分析,:,收集信息并进行分析和整理,,是,后,续的各个阶段,的基础,。,概念结构设计,:,对需求分析,的结果进行综合、归纳形成一个独立于具体的,DBMS,的概念模型。,逻辑结构设计,:,将概念结构设计的结,果转换为某个具体的,DBMS,所支持的数据模型,并对,其进行优化。,物理数据库设计,:,为逻辑结构设计的,结果选取一个最适合应用环境的数据库物理结构。,数据库行为设计,:,要设计所包含的功能,功能间的,关联关系以及一些功能的完整性要求;,数据库实,施,:,运用,DBMS,提供的数据语言以及数据库开发工,具,根据逻辑设计和物理设计的结果建立数据库,,编制应用程序,组织数据入库并进行试运行。,数据,库运行和维护阶段,:,投入正式使用,在,其,使用过程,中不断对其进行调整、修改和完善。,8,8,.2,数据库需求分析,一、需求分析的任务,需求分析阶段的,主要任务,:,对现实世界要处理的对象进行详细调查,在了解现行系统的概况、确定新系统功能的过程中,收集支持系统目标的基础数据及其处理方法,。需求分析是在用户调查的基础上,通过分析,逐步明确用户对系统的需求,包括数据需求和围绕这些数据的业务处理需求。,用户调查的重点是,“,数据,”,和,“,处理,”,。通过调查要从用户那里获得对数据库的下列要求:,信息需求,处理需求,安全性与完整性要求,9,在需求分析中,通过,自顶向下、逐步分解,的方,法分析系统。,数据流图是从“数据”和“处理”两方面表达数据,处理的一种图形化表示方法,。在需求分析阶段,不,必确定数据的具体存储方式,这些留待后边的物理,数据库设计考虑。数据流图中的“处理”抽象地表达,了系统的功能需求。,数据源,数据输出,处理,数据存储,图73,10,二、需求调查,需求分析首先要调查清楚用户的实际需,求,与用户达成共识,然后再分析和表达这些,需求。,需求调查的重点是,“,数据,”,和,“,处理,”,,,在调查前要拟定调查提纲。调查时要抓住两个,“,流,”,,即,“,信息流,”,和,“,处理流,”,,而且调,查中要不断地将这两个,“,流,”,结合起来。,11,需求调查,内容,包括:,1,、业务现状,业务现状包括:业务方针政策,系统的组织机,构,业务内容,约束条件和各种业务的全过程。,2,、信息源流,信息源流包括:各种数据的种类、类型及数据,量,各种数据的源头、流向和终点,各种数据的产,生、修改、查询及更新过程和频率以及各种数据业,务处理的关系。,3,、外部要求,外部要求包括:对数据保密性的要求,对数据,完整性的要求,对查询响应时间的要求,对新系统,使用方式的要求,对输入方式的要求,对输出报表,的要求,对各种数据精度的要求,对吞吐量的要求,,对未来功能、性能及应用范围扩展的要求。,12,常用的发现事实的方法有:,1,、检查文档,2,、面谈,3,、观察业务的运转,4,、研究,5,、问卷调查,13,8,.3,数据库结构设计,一、概念结构设计,概念设计的特点和策略,1,、概念模型的特点,有丰富的语义表达能力。,易于交流和理解。,易于更改。,易于向各种数据模型转换,易于导出与,DBMS,有关的逻辑模型。,14,2,、概念结构设计的策略,自底向上,。先定义每个局部应用的概念结构,然后按一定的规则把它们集成起来,从而得到全局概念模型。,自顶向下,:先定义全局概念模型,然后再逐步细化。,由里向外,:先定义最重要的核心结构,然后再逐步向外扩展。,混合策略,:,将,自顶向下和自底向上结合起来使用。先用自顶向下设计一个概念结构的框架,然后以它为框架再用自底向上设计局部概念结构,并把它们集成。,最常用的设计策略是,自底向上策略,。,15,概念结构设计是用集合概念,抽取出现实业,务系统的元素及其应用语义关联,最终形成,E-R,模型。,采用,E-R,模型方法的概念结构设计,3,个,步骤:,设计局部,E-R,模型,。局部,E-R,模型的设计内容包括确定局部,E-R,模型的范围、定义实体、联系以及它们的属性。,设计全局,E-R,模型,。这一步是将所有局部,E-R,图集成为一个全局,E-R,图,即全局,E-R,模型。,优化全局,E-R,模型,16,1,、设计局部,E-R,模型,概念结构是对现实世界的一种抽象。 一般,有,三种抽象方法:,(1),分类(,Classification,),定义某一类概念作为现实世界中一组对象的,类型,这些对象具有某些共同的特性和行为。它,抽象的是对象值和型之间的,“,Is a,mumber,of,”,(,是,的成员,),的语义。,Is a,mumber,of,学生,张三,李四,王五,17,(2),概括(,Generalization,),定义实体之间的一种子集联系,它抽象了实,体之间的,“,is a subset of,”,(,是,的子集,),的语义,。,Is a subset of,学生,本科生,研究生,超类,子类,18,(3),聚集,(,Aggregation,),定义某一类型的组成成分,它抽象了对象内,部类型和成分之间的,“,is a part of,”,(,是,的一部分,),语义。,Is a part of,学生,实体型,属性,学号,姓名,性别,19,2,、设计全局,E-R,模型,各分,E-R,图之间的冲突主要有三类:,属性冲突,属性域冲突,。即属性的类型、取值范围和取值集合不同。,属性取值单位冲突,。,命名冲突,:包括同名异义和异名同义,结构冲突,同一对象在不同应用中具有不同的抽象,同样一实体在不同的局部,E-R,图中所包含的属性个数和属性的排列次序不完全相同,20,3,、优化全局,E-R,模型,一个好的全局,E-R,模型除了能反映用户功能,需求外,还应满足如下条件:,实体个数尽可能少;,实体所包含的属性尽可能少;,实体间联系无冗余。,优化的目的就是要满足上述三个条件,即,进行,相关实体的合并,,一般是把具有相同主码的,实体进行合并,。,21,二、逻辑结构设计,逻辑结构设计的任务是,把概念结构设计,阶段设计好的基本,E-R,图转换为具体的数据,库管理系统支持的数据模型,。,逻辑结构设计一般包含两个步骤:,将概念模型转换为某种组织层数据模型,对数据模型进行优化,22,1,、将,E-R,模型转换为关系模型,转换的一般规则为:,一个实体转换为一个关系模式,。实体的属性就是关系的属性,实体的码就是关系的码。,对于实体间的联系有以下不同的情况,:,一个,1,:,1,联系,:,可以转换为一个独立的关系模式,也可以于任意一端对于的关系模式合并。,一个,1,:,n,联系,:,可以转换为一个独立的关系模式,也可以与任意,n,端所对应的关系模式合并。,一个,m,:,n,联系,:,转换为一个关系模式。,三个或三个以上实体间的一个多元联系,:,可以转换为一个关系模式。,具有相同码的关系模式可以合并,23,部门,职工,工作,部门号,部门名,职工号,职工名,工资,1,n,24,2,、数据模型的优化,具体方法为:,确定各属性间的数据依赖。,对各个关系模式之间的数据依赖进行极小化处理,消除冗余的联系。,判断每个关系模式的范式,根据实际需要确定最合适的范式。,根据需求分析阶段得到的处理要求,分析这些模式对于这样的应用环境是否合适,确定是否要对某些模式进行分解或合并。,对关系模式进行必要的分解,以提高数据的操作效率和存储空间的利用率。,25,通常的两种分解方法是,水平分解和垂直分解,K,#,A1 Am,K,#,A1 Am,K,#,A1 Am,水平分解示意图,K,#,A11 A1m A21 A2n,K,#,A11 A1m,K,#,A21 A2n,垂直分解示意图,26,3,、设计外模式,将概念模型转换为逻辑数据模型之后,还,应该根据局部应用需求,并结合具体的数据库,管理系统的特点,设计用户的外模式。,在定义外模式时可以考虑:,使用更符合用户习惯的别名,对不同级别的用户定义不同的视图,以保证数据的安全,简化用户对系统的使用,27,三、物理结构设计,数据库的物理设计是对已确定的逻辑数据结,构,利用,DBMS,提供的方法、技术,以较优的存储,结构、数据存取路径、合理的数据存储位置以及,存储分配,设计出一个高效的、可实现的物理数,据库结构。,数据库的物理设计通常分为两步:,确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;,对物理结构进行评价,评价的重点是时间和空间效率。,28,1,、物理结构设计的内容和方法,在设计数据库时,首先,要对经常用到的查询和对数,据进行更新的事务进行详细地分析,获得物理结构设,计所需的各种参数。,其次,,要充分了解所使用的,DBMS,的内部特征,特别是系统提供的存取方法和存储结,构。,对于数据查询,需要得到如下信息:,查询所涉及的关系;,查询条件所涉及的属性;,连接条件所涉及的属性;,查询列表中涉及的属性。,对于更新数据的事务,需要得到如下信息:,更新所涉及的关系;,每个关系上的更新条件所涉及的属性;,更新操作所涉及的属性。,29,通常关系数据库的物理结构设计主要包括如,下内容:,确定数据的存取方法,确定数据的存储结构,(1),确定存取方法,存取方法是快速存取数据库中的数据的,技术,数据库管理系统一般都提,供多种存取,方法 。具体采取哪种存取方法由系统根据数,据的存储方式来决定,一般用户不能干预。,30,索引存取方法,实际上就是根据应用要求确定对关系的哪,个或哪些属性列建立索引。,建立索引的原则:,某个或某些属性经常作为查询条件,某个或某些属性经常作为表的连接条件,某个属性经常作为分组的依据列,必须注意:关系上定义的索引数并不是越多越好,,系统为维护索引要付出代价,查找索引也要付出代价。,例如,若一个关系的更新频率很高,这个关系上定义的,索引数不能太多。因为更新一个关系时,必须对这个关,系上有关的索引做相应的修改。,31,聚簇存取方法,为了提供某个属性或属性组的查询速,度,把这个或这些属性,(,称为,聚簇码,),上具有,相同值的元祖集中存放在连续的物理块称为,聚簇,。,一个数据库可建立多个聚簇,一个关系,只能加入一个聚簇。,32,聚簇功能可以大大提高按聚簇码进行查询的效,率。,例如要查询信息系的所有学生名单,设信息系,有,500,名学生,在极端情况下,这,500,名学生所对应,的数据元组分布在,500,个不同的物理块上。,尽管对,学生关系已按所在系建有索引,由索引很快找到了,信息系学生的元组标识,避免了全表扫描,然而再,由元组标识去访问数据块时就要存取,500,个物理,块,执行,500,次,I,O,操作。如果将同一系的学生元,组集中存放,则每读一个物理块可得到多个满足查,询条件的元组,从而显著地减少了访问磁盘的次,数。,33,HASH,存取方法,选择,HASH,存取方法规则如下:,如果一个关系的属性主要出现在等连接,条件中或相等比较选择条件中,且满足下列,条件之一,此关系就可选择,HASH,存取方法。,如果一个关系的大小可预知,且不变。,如果关系的大小动态改变,且,DBMS,提供了动态,HASH,存取方法。,34,(2),确定存储结构,数据库物理结构设计中一个重要考虑,就是确定数据记录的存储方式。,一般存储方式有:,顺序存储,散列存储,聚簇存储,35,2,、物理结构设计的评价,具体分为如下几类,:,查询和响应时间,响应时间是从查询开始到查询结果开始显示之,间所经历的时间。,更新事务的开销,主要是修改所以、重写物理块或文件以及写校,验等方面的开销。,生成报告的开销,主要包括索引、重组、排序和结果显示的开销,主存储空间的开销,包括程序和数据所占用的空间。,辅助存储空间的开销,辅助存储空间分为数据块和索引块两种,36,8,.4,数据库行为设计,数据库,行为,设计一般分为如下几步:,功能需求分析,功能设计,事务设计,应用程序实现,37,一、功能需求分析,对于行为特性要进行如下分析:,1,、标识所有的查询、报表、事务及动态特,性,指出对数据库所要进行的各种处理,2,、指出对每个实体所进行的操作,3,、给出每个操作的语义,4,、给出每个操作(针对某一对象)的频率,5,、给出每个操作(针对某一应用)的响应是,时间,6,、给出该系统总的目标,38,二、功能设计,系统目标的实现是通过系统的各功能模块的作,用来达到的。由于每个系统功能又可以划分为若干,个更具体的功能模块,因此,可以从目标开始,一,层一层分解下去,直到每个子功能模块只执行一个,具体的任务。,通常我们,按功能关系画成的图叫功能,结构图,。,学籍管理,录取分班,入学报到,录入,修改,查询,修课管理,学籍管理的功能结构图,39,三、事务设计,事务处理是计算机模拟人处理事务的过程,它包括,输入设计、输出设计、功能设计等。,1,、输入设计,在进行输入设计时应作如下几方面工作:,原始单据的设计格式,。对于原有的单据,表格要根据新系统的要求重新设计,其设计的原则是:简单明了,便于填写,尽量标准化,便于归档,简化输入工作。,制成输入一览表,。,将全部功能所用的数据整理成表。,制作输入数据描述文档,。,包括数据的输入频率、数据的有效范围和出错校验。,40,2,、输出设计,在输出设计时要考虑如下因素:,用途,。区分输出结果是给客户的还是用于内部或报送上级领导的。,输出设备的选择,。是仅仅显示出来,还是要打印出来或需要永久保存。,输出量,输出格式,41,8,.5,数据库的实施,1,、数据加载,2,、数据库的试运行,在有一部分数据加载到数据库之后,就可以开,始对数据库系统进行联合调试了,这个过程又称为,数据库试运行,。,运行数据库应用程序,执行对数据库的各种操,作,测试其功能是否达到要求;测试系统的性能指,标,分析其是否达到设计目标。,42,数据库投入运行标志着开发工作的基本完成,和维护工作的开始,数据库只要存在一天,就需,要不断地对它进行评价、调整和维护。,在数据库运行阶段,对数据库的维护工作主,要包括:,数据库的备份和恢复,数据库的安全性和完整性控制,监视、分析、调整数据库性能,数据库的重组,8,.6,数据库的运行和维护,43,数据库设计的全部过程,数据库的设计包括,需求分析、结构设计和物理设计,。结构设计又分为概念结构设计、逻辑结构设计、物理结构设计。,概念结构设计,是用概念模型来描述用户的业务需求;,逻辑设计,是将概念设计的结果转换数据的组织模型;,物理结构设计,是设计数据的存储方式和存储结构。,数据库的行为设计,是对系统的功能需求的设计。,数据库的实施和维护,。,小结,44,作业,(,教材,p-107 ),习题,3,、,8,、,10,补充作业:,请设计一个图书馆数据库,此数据库中,对每个借阅者保存的记录包括:读者号,姓,名,地址,性别,年龄,单位。对每本书保,存有:书号,书名,作者,出版社。对每本,被借出的书保存有读者号、借出日期和应还,日期。要求:给出该图书馆数据库的,E-R,图,再将其转换为关系模型。,45,
展开阅读全文