第6章 数据库设计.ppt

上传人:visitstep340 文档编号:388606 上传时间:2018-10-12 格式:PPT 页数:61 大小:182.50KB
下载 相关 举报
第6章 数据库设计.ppt_第1页
第1页 / 共61页
第6章 数据库设计.ppt_第2页
第2页 / 共61页
第6章 数据库设计.ppt_第3页
第3页 / 共61页
第6章 数据库设计.ppt_第4页
第4页 / 共61页
第6章 数据库设计.ppt_第5页
第5页 / 共61页
亲,该文档总共61页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、1,第6章 数据库设计,2,6.1 数据库设计概述,6.1.1 数据库设计的任务、内容和特点 一、数据库设计的任务 数据库设计是指根据用户需求研制数据库结构的过程,具体地说,是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能有效的存储数据,满足用户的信息要求和处理要求。,3,二、数据库设计的内容 1数据库的结构设计 数据库的结构设计指是根据给定的应用环境,进行数据库的模式或子模式的设计。 它包括数据库的概念设计、逻辑设计和物理设计。 数据库模式是各应用程序共享的结构,是静态的、稳定的,一经形成后通常情况下是不容易改变的,所以结构设计又称为静态模型设计。,4,2数据

2、库的行为设计 数据库的行为设计是指确定数据库用户的行为和动作。而在数据库系统中,用户的行为和动作指用户对数据库的操作,这些要通过应用程序来实现,所以数据库的行为设计就是应用程序的设计。 用户的行为总是使数据库的内容发生变化,所以行为设计是动态的,行为设计又称为动态模型设计。,5,三、数据库设计的特点 现代数据库的设计的特点是强调结构设计与行为设计相结合,是一种“反复探寻,逐步求精”的过程。首先从数据模型开始设计,以数据模型为核心进行展开,数据库设计和应用系统设计相结合,建立一个完整、独立、共享、冗余小、安全有效的数据库系统。,6,6.1.2 数据库设计的步骤 按规范设计法可将数据库设计分为六个

3、阶段: (1)系统需求分析阶段 (2)概念结构设计阶段 (3)逻辑结构设计阶段 (4)物理设计阶段 (5)数据库实施阶段 (6)数据库运行与维护阶段,7,6.1.3 数据库设计方法简述 直观设计法(手工试凑法) 规范设计法 计算机辅助设计法,8,常用的规范设计方法。 1基于E-R模型的数据库设计方法 2基于3NF的数据库设计方法 3基于视图的数据库设计方法除了以上三种方法外,规范化设计方法还有实体分析法、属性分析法和基于抽象语义的设计方法等。 规范设计法从本质上来说仍然是手工设计方法,其基本思想是过程迭代和逐步求精。,9,6.2.1 概念模型的特点语义表达能力丰富。 易于交流和理解。 (3)

4、易于修改和扩充。 (4) 易于向各种数据模型转换。,6.2 概念结构设计,10,6.2.2 概念结构设计的方法与步骤 1概念结构设计的方法 设计概念结构的E-R模型可采用四种方法。自顶向下。 自底向上。 (3) 逐步扩张。 (4) 混合策略。其中最常用的方法是自底向上。即自顶向下地进行需求分析,再自底向上地设计概念结构。,11,2概念结构设计的步骤 自底向上的设计方法可分为两步: (1) 进行数据抽象,设计局部E-R模型,即设计用户视图。 (2) 集成各局部E-R模型,形成全局E-R模型,即视图的集成。3数据抽象与局部E-R模型设计 概念结构是对现实世界的一种抽象。 所谓抽象是对实际的人、物、

5、事和概念进行人为处理,它抽取人们关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述,这些概念组成了某种模型。 概念结构设计首先要根据需求分析得到的结果(数据流图、数据字典等)对现实世界进行抽象,设计各个局部E-R模型。,12,1 数据抽象 一般有两种数据抽象:分类和聚集。 分类(Classification) 分类定义某一类概念作为现实世界中一组对象的类型,将一组具有某些共同特性和行为的对象抽象为一个实体。对象和实体之间是“is member of”的关系。 例如,在教学管理中,“赵亦”是一名学生,表示“赵亦”是学生中的一员,她具有学生们共同的特性和行为。 聚集(Aggre

6、gation) 聚集定义某一类型的组成成份,将对象类型的组成成份抽象为实体的属性。组成成份与对象类型之间是“is part of”的关系。 例如,学号、姓名、性别、年龄、系别等可以抽象为学生实体的属性,其中学号是标识学生实体的主键。,13,2 局部E-R模型设计 数据抽象后得到了实体和属性,实际上实体和属性是相对而言的,往往要根据实际情况进行必要的调整。在调整中要遵循两条原则: 实体具有描述信息,而属性没有。即属性必须是不可分的数据项,不能再由另一些属性组成。 属性不能与其他实体具有联系,联系只能发生在实体之间。,14,图6.1 系别作为一个属性或实体,15,图6.2 职称作为一个属性或实体,

7、16,此外,我们可能会遇到这样的情况,同一数据项,可能由于环境和要求的不同,有时作为属性,有时则作为实体,此时必须根据实际情况而定。一般情况下,凡能作为属性对待的,应尽量作为属性,以简化E-R图的处理。 下面举例说明局部E-R模型设计。 在简单的教务管理系统中,有如下语义约束。 一个学生可选修多门课程,一门课程可为多个学生选修,因此学生和课程是多对多的联系; 一个教师可讲授多门课程,一门课程可为多个教师讲授,因此教师和课程也是多对多的联系; 一个系可有多个教师,一个教师只能属于一个系,因此系和教师是一对多的联系,同样系和学生也是一对多的联系。 根据上述约定,可以得到如图6.3所示的学生选课局部

8、图和如图6.4所示的教师任课局部图。形成局部E-R模型后,应该返回去征求用户意见,以求改进和完善,使之如实地反映现实世界。 E-R图的优点就是易于被用户理解,便于交流。,17,图6.3 学生选课局部图,18,图6.4 教师任课局部图,19,3全局E-R模型设计 局部E-R模型设计完成之后,下一步就是集成各局部E-R模型,形成全局E-R模型,即视图的集成。视图集成的方法有两种: 多元集成法,一次性将多个局部E-R图合并为一个全局E-R图。 二元集成法,首先集成两个重要的局部视图,以后用累加的方法逐步将一个新的视图集成进来。 在实际应用中,可以根据系统复杂性选择这两种方案。一般采用逐步集成的方法,

9、如果局部视图比较简单,可以采用多元集成法。一般情况下,采用二元集成法,即每次只综合两个视图,这样可降低难度。无论使用哪一种方法,视图集成均分成两个步骤,。合并,消除各局部E-R图之间的冲突,生成初步E-R图。优化,消除不必要的冗余,生成基本E-R图。,20,(1) 合并局部E-R图,生成初步E-R图 这个步骤将所有的局部E-R图综合成全局概念结构。 全局概念结构它不仅要支持所有的局部E-R模型,而且必须合理地表示一个完整、一致的数据库概念结构。 由于各个局部应用不同,通常由不同的设计人员进行局部E-R图设计,因此,各局部E-R图不可避免地会有许多不一致的的地方,我们称之为冲突。 合并局部E-R

10、图时并不能简单地将各个E-R图画到一起,而必须消除各个局部E-R图中的不一致,使合并后的全局概念结构不仅支持所有的局部E-R模型,而且必须是一个能为全系统中所有用户共同理解和接受的完整的概念模型。 合并局部E-R图的关键就是合理消除各局部E-R图中的冲突。,21,E-R图中的冲突有三种:属性冲突、命名冲突和结构冲突。 属性冲突 属性冲突又分为属性值域冲突和属性的取值单位冲突。a.属性值域冲突,即属性值的类型、取值范围或取值集合不同。比如学号,有些部门将其定义为数值型,而有些部门将其定义为字符型。又如年龄,有的可能用出生年月表示,有的则用整数表示。b.属性的取值单位冲突。比如零件的重量,有的以公

11、斤为单位,有的以斤为单位,有的则以克为单位。 属性冲突属于用户业务上的约定,必须与用户协商后解决。,22,命名冲突 命名不一致可能发生在实体名、属性名或联系名之间,其中属性的命名冲突更为常见。 一般表现为同名异义或异名同义(实体、属性、联系名)。a.同名异义,即同一名字的对象在不同的部门中具有不同的意义。比如,“单位”在某些部门表示为人员所在的部门,而在某些部门可能表示物品的重量、长度等属性。b.异名同义,即同一意义的对象在不同的部门中具有不同的名称。比如,对于“房间”这个名称,在教务管理部门中对应着为教室,而在后勤管理部门对应为学生宿舍。 命名冲突的解决方法同属性冲突,需要与各部门协商、讨论

12、后加以解决。,23,结构冲突 a.同一对象在不同应用中有不同的抽象,可能为实体,也可能为属性。例如,教师的职称在某一局部应用中被当作实体,而在另一局部应用中被当作属性。这类冲突在解决时,就是使同一对象在不同应用中具有相同的抽象,或把实体转换为属性,或把属性转换为实体。但都要符合6.3.3中所介绍的准则。 b.同一实体在不同应用中属性组成不同,可能是属性个数或属性次序不同。解决办法是,合并后实体的属性组成为各局部E-R图中的同名实体属性的并集,然后再适当调整属性的次序。 c.同一联系在不同应用中呈现不同的类型。比如E1与E2在某一应用中可能是一对一联系,而在另一应用中可能是一对多或多对多联系,也

13、可能是在E1、E2、E3三者之间有联系。这种情况应该根据应用的语义对实体联系的类型进行综合或调整。,24,下面以教务管理系统中的两个局部E-R图为例,来说明如何消除各局部E-R图之间的冲突,进行局部E-R模型的合并,从而生成初步E-R图。 首先,这两个局部E-R图中存在着命名冲突,学生选课局部图中的实体“系”与教师任课局部图中的实体“单位”,都是指“系”,即所谓的异名同义,合并后统一改为“系”,这样属性“名称”和“单位”即可统一为“系名”。 其次,还存在着结构冲突,实体“系”和实体“课程” 在两个不同应用中的属性组成不同,合并后这两个实体的属性组成为原来局部E-R图中的同名实体属性的并集。解决

14、上述冲突后,合并两个局部E-R图,生成如图6.5所示的初步的全局E-R图。,25,图6.5 教务管理系统的初步ER图,26,(2) 消除不必要的冗余,生成基本E-R图 所谓冗余,在这里指冗余的数据和实体之间冗余的联系。冗余的数据是指可由基本的数据导出的数据,冗余的联系是由其他的联系导出的联系。在上面消除冲突合并后得到的初步ER图中,可能存在冗余的数据或冗余的联系。冗余的存在容易破坏数据库的完整性,给数据库的维护增加困难,应该消除。我们把消除了冗余的初步E-R图称为基本E-R图。 通常采用分析的方法消除冗余。数据字典是分析冗余数据的依据,还可以通过数据流图分析出冗余的联系。 如在图9.20所示的

15、初步E-R图中,“课程”实体中的属性“教师号”可由“讲授”这个教师与课程之间的联系导出,而学生的平均成绩可由“选修”联系中的属性“成绩”中计算出来,所以“课程”实体中的 “教师号” 与“学生”实体中的“平均成绩”均属于冗余数据。,27,另外,“系”和“课程”之间的联系“开课”,可以由“系”和“教师”之间的“属于”联系与“教师”和“课程”之间的“讲授”联系推导出来,所以“开课”属于冗余联系。 这样,图9.20的初步E-R图在消除冗余数据和冗余联系后,便可得到基本的E-R模型,如图9.21所示。 最终得到的基本E-R模型是企业的概念模型,它代表了用户的数据要求,是沟通“要求”和“设计”的桥梁。它决

16、定数据库的总体逻辑结构,是成功建立数据库的关键。如果设计不好,就不能充分发挥数据库的功能,无法满足用户的处理要求。 因此,用户和数据库人员必须对这一模型反复讨论,在用户确认这一模型已正确无误的反映了他们的要求后,才能进入下一阶段的设计工作。,28,图6. 6 教务管理系统的基本ER图,29,6.3.1 逻辑结构设计的任务和步骤 概念结构设计阶段得到的E-R模型是用户的模型,它独立于任何一种数据模型,独立于任何一个具体的DBMS。为了建立用户所要求的数据库,需要把上述概念模型转换为某个具体的DBMS所支持的数据模型。数据库逻辑设计的任务是将概念结构转换成特定DBMS所支持的数据模型的过程。从此开

17、始便进入了“实现设计”阶段,需要考虑到具体的DBMS的性能、具体的数据模型特点。 从E-R图所表示的概念模型可以转换成任何一种具体的DBMS所支持的数据模型,如网状模型、层次模型和关系模型。这里只讨论关系数据库的逻辑设计问题,所以只介绍E-R图如何向关系模型进行转换。,6.3 逻辑结构设计,30,一般逻辑设计分为三步:(1) 初始关系模式设计;(2) 关系模式规范化;(3) 模式的评价与改进。,图6.7 逻辑设计,31,6.3.2 初始关系模式设计 1转换原则 概念设计中得到的E-R图是由实体、属性和联系组成的,而关系数据库逻辑设计的结果是一组关系模式的集合。所以将E-R图转换为关系模型实际上

18、就是将实体、属性和联系转换成关系模式。在转换中要遵循以下原则:(1) 一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的键就是关系的键。(2) 一个联系转换为一个关系模式,与该联系相连的各实体的键以及联系的属性均转换为该关系的属性。该关系的键有三种情况:如果联系为1:1,则每个实体的键都是关系的候选键;如果联系为1: n ,则n端实体的键是关系的键;如果联系为n : m,则各实体键的组合是关系的键。,32,2具体做法 (1) 把每一个实体转换为一个关系 首先分析各实体的属性,从中确定其主键,然后分别用关系模式表示。例如,以图6.6的E-R模型为例,四个实体分别转换成四个关系模式:学生

19、(学号,姓名,性别,年龄)课程(课程号,课程名)教师(教师号,姓名,性别,职称)系(系名,电话),33,(2) 把每一个联系转换为关系模式 由联系转换得到的关系模式的属性集中,包含两个发生联系的实体中的主键以及联系本身的属性,其关系键的确定与联系的类型有关。 例如,还以图6.6的E-R模型为例,四个联系也分别转换成四个关系模式: 属于(教师号,系名) 讲授(教师号,课程号) 选修(学号,课程号,成绩) 拥有(系名,学号),34,(3) 特殊情况的处理 三个或三个以上实体间的一个多元联系在转换为一个关系模式时,与该多元联系相连的各实体的主键及联系本身的属性均转换成为关系的属性,转换后所得到的关系

20、的主键为各实体键的组合。 例如,图6.8表示供应商、项目和零件三个实体之间的多对多联系,如果已知三个实体的主键分别为“供应商号”,“项目号”与“零件号”,则它们之间的联系“供应”可转换为关系模式,其中供应商号,项目号,零件号为此关系的组合关系键。 供应(供应商号,项目号,零件号,数量),35,图6.8 多个实体之间的联系,36,6.3.3 关系模式规范化 规范化过程可分为两个步骤: 1确定范式级别 考查关系模式的函数依赖关系,确定范式等级,逐一分析各关系模式,考查是否存在部分函数依赖,传递函数依赖等,确定它们分别属于第几范式。2实施规范化处理 确定范式级别后,利用第4章的规范化理论,逐一考察各

21、个关系模式,根据应用要求,判断它们是否满足规范要求,可用已经介绍过的规范化方法和理论将关系模式规范化。,37,综合以上数据库的设计过程,规范化理论在数据库设计中有如下几方面的应用:(1) 在需求分析阶段,用数据依赖概念分析和表示各个数据项之间的联系。(2) 在概念结构设计阶段,以规范化理论为指导,确定关系键,消除初步E-R图中冗余的联系。(3) 在逻辑结构设计阶段,从E-R图向数据模型转换过程中,用模式合并与分解方法达到规范化级别。,38,6.3.4 模式评价与改进 1模式评价 模式评价的目的是检查所设计的数据库模式是否满足用户的功能要求、效率,确定加以改进的部分。模式评价包括功能评价和性能评

22、价。 (1) 功能评价 功能评价指对照需求分析的结果,检查规范化后的关系模式集合是否支持用户所有的应用要求。关系模式必须包括用户可能访问的所有属性。在涉及多个关系模式的应用中,应确保联接后不丢失信息。如果发现有的应用不被支持,或不完全被支持,则应该改进关系模式。发生这种问题的原因可能是在逻辑设计阶段,也可能是在需求分析或概念设计阶段。是哪个阶段的问题就返回到哪个阶段去,因此有可能对前两个阶段再进行评审,解决存在的问题。 在功能评价的过程中,可能会发现冗余的关系模式或属性,这时应对它们加以区分,搞清楚它们是为未来发展预留的,还是某种错误造成的,比如名字混淆。如果属于错误处置,进行改正即可,而如果

23、这种冗余来源于前两个设计阶段,则也要返回重新进行评审。,39,(2) 性能评价 对于目前得到的数据库模式,由于缺乏物理设计所提供的数量测量标准和相应的评价手段,所以性能评价是比较困难的,只能对实际性能进行估计,包括逻辑记录的存取数、传送量以及物理设计算法的模型等。 美国密执安大学的T.Teorey和J.Fry于1980年提出的逻辑记录访问(Logical Record Access,LRA)方法是一种常用的模式性能评价方法。LRA方法对网状模型和层次模型较为实用,对于关系模型的查询也能起一定的估算作用。,40,2模式改进 根据模式评价的结果,对已生成的模式进行改进。 如果因为需求分析、概念设计

24、的疏漏导致某些应用不能得到支持,则应该增加新的关系模式或属性。 如果因为性能考虑而要求改进,则可采用合并或分解的方法。 (1) 合并 如果有若干个关系模式具有相同的主键,并且对这些关系模式的处理主要是查询操作,而且经常是多关系的查询,那么可对这些关系模式按照组合使用频率进行合并。 这样便可以减少联接操作而提高查询效率。,41,(2) 分解 为了提高数据操作的效率和存储空间的利用率,最常用和最重要的模式优化方法就是分解,根据应用的不同要求,可以对关系模式进行垂直分解和水平分解。 水平分解是把关系的元组分为若干子集合,定义每个子集合为一个子关系。 对于经常进行大量数据的分类条件查询的关系,可进行水

25、平分解,这样可以减少应用系统每次查询需要访问的记录数,从而提高了查询性能。,42,例如,有学生关系(学号,姓名,类别),其中类别包括大专生、本科生和研究生。如果多数查询一次只涉及其中的一类学生,就应该把整个学生关系水平分割为大专生、本科生和研究生三个关系。 垂直分解是把关系模式的属性分解为若干子集合,形成若干子关系模式。垂直分解的原则是把经常一起使用的属性分解出来,形成一个子关系模式。 例如,有教师关系(教师号,姓名,性别,年龄,职称,工资,岗位津贴,住址,电话),如果经常查询的仅是前六项,而后三项很少使用,则可以将教师关系进行垂直分割,得到两个教师关系:教师关系1(教师号,姓名,性别,年龄,

26、职称,工资)教师关系2(教师号,岗位津贴,住址,电话) 这样,便减少了查询的数据传递量,提高了查询速度。,43,垂直分解可以提高某些事务的效率,但也有可能使另一些事务不得不执行连接操作,从而降低了效率。因此是否要进行垂直分解要看分解后的所有事务的总效率是否得到了提高。垂直分解要保证分解后的关系具有无损连接性和函数依赖保持性。相关的分解算法已经在第4章进行了详细介绍。 经过多次的模式评价和模式改进之后,最终的数据库模式得以确定。逻辑设计阶段的结果是全局逻辑数据库结构。对于关系数据库系统来说,就是一组符合一定规范的关系模式组成的关系数据库模型。 数据库系统的数据物理独立性特点消除了由于物理存储改变

27、而引起的对应程序的修改。标准的DBMS例行程序应适用于所有的访问,查询和更新事务的优化应当在系统软件一级上实现。这样,逻辑数据库确定之后,就可以开始进行应用程序设计了。,44,数据库最终要存储在物理设备上。对于给定的逻辑数据模型,选取一个最适合应用环境的物理结构的过程,称为数据库物理设计。物理设计的任务是为了有效地实现逻辑模式,确定所采取的存储策略。此阶段是以逻辑设计的结果作为输入,结合具体DBMS的特点与存储设备特性进行设计,选定数据库在物理设备上的存储结构和存取方法。 数据库的物理设计可分为两步:(1) 确定物理结构,在关系数据库中主要指存取方法和存储结构;(2)评价物理结构,评价的重点是

28、时间和空间效率。,6.4 数据库物理设计,45,6.4.1 确定物理结构 设计人员必须深入了解给定的DBMS的功能,DBMS提供的环境和工具、硬件环境,特别是存储设备的特征。另一方面也要了解应用环境的具体要求,如各种应用的数据量、处理频率和响应时间等。只有“知己知彼”才能设计出较好的物理结构。 1存储记录结构的设计 在物理结构中,数据的基本存取单位是存储记录。有了逻辑记录结构以后,就可以设计存储记录结构,一个存储记录可以和一个或多个逻辑记录相对应。存储记录结构包括记录的组成、数据项的类型和长度,以及逻辑记录到存储记录的映射。某一类型的所有存储记录的集合称为“文件”,文件的存储记录可以是定长的,

29、也可以是变长的。 文件组织或文件结构是组成文件的存储记录的表示法。文件结构应该表示文件格式、逻辑次序、物理次序、访问路径、物理设备的分配。物理数据库就是指数据库中实际存储记录的格式、逻辑次序和物理次序、访问路径、物理设备的分配。 决定存储结构的主要因素包括存取时间、存储空间和维护代价三个方面。设计时应当根据实际情况对这三个方面进行综合权衡。一般DBMS也提供一定的灵活性可供选择,包括聚簇和索引。,46,(1) 聚簇(Cluster) 聚簇就是为了提高查询速度,把在一个(或一组)属性上具有相同值的元组集中地存放在一个物理块中。如果存放不下,可以存放在相邻的物理块中。其中,这个(或这组)属性称为聚

30、簇码。 为什么要使用聚簇呢?聚簇有两个作用: 使用聚簇以后,聚簇码相同的元组集中在一起了,因而聚簇值不必在每个元组中重复存储,只要在一组中存储一次即可,因此可以节省存储空间。 聚簇功能可以大大提高按聚簇码进行查询的效率。例如,假设要查询学生关系中计算机系的学生名单,设计算机系有300名学生。在极端情况下,这些学生的记录会分布在300个不同的物理块中,这时如果要查询计算机系的学生,就需要做300次的I/O操作,这将影响系统查询的性能。如果按照系别建立聚簇,使同一个系的学生记录集中存放,则每做一次I/O操作,就可以获得多个满足查询条件和记录,从而显著地减少了访问磁盘的次数。,47,(2) 索引 存

31、储记录是属性值的集合,主关系键可以惟一确定一个记录,而其他属性的一个具体值不能惟一确定是哪个记录。在主关系键上应该建立惟一索引,这样不但可以提高查询速度,还能避免关系键重复值的录入,确保了数据的完整性。 在数据库中,用户访问的最小单位是属性。如果对某些非主属性的检索很频繁,可以考虑建立这些属性的索引文件。索引文件对存储记录重新进行内部链接,从逻辑上改变了记录的存储位置,从而改变了访问数据的入口点。关系中数据越多索引的优越性也就越明显。 建立多个索引文件可以缩短存取时间,但是增加了索引文件所占用的存储空间以及维护的开销。因此,应该根据实际需要综合考虑。,48,2访问方法的设计 访问方法是为存储在

32、物理设备(通常指辅存)上的数据提供存储和检索能力的方法。一个访问方法包括存储结构和检索机构两个部分。存储结构限定了可能访问的路径和存储记录;检索机构定义了每个应用的访问路径,但不涉及存储结构的设计和设备分配。 存储记录是属性的集合,属性是数据项类型,可用作主键或辅助键。主键惟一地确定了一个记录。辅助键是用作记录索引的属性,可能并不惟一确定某一个记录。 访问路径的设计分成主访问路径与辅访问路径的设计。主访问路径与初始记录的装入有关,通常是用主键来检索的。首先利用这种方法设计各个文件,使其能最有效地处理主要的应用。一个物理数据库很可能有几套主访问路径。辅访问路径是通过辅助键的索引对存储记录重新进行

33、内部链接,从而改变访问数据的入口点。用辅助索引可以缩短访问时间,但增加了辅存空间和索引维护的开销。设计者应根据具体情况作出权衡。,49,3数据存放位置的设计 为了提高系统性能,应该根据应用情况将数据的易变部分、稳定部分、经常存取部分和存取频率较低部分分开存放。 例如,目前许多计算机都有多个磁盘,因此可以将表和索引分别存放在不同的磁盘上,在查询时,由于两个磁盘驱动器并行工作,可以提高物理读写的速度。 在多用户环境下,可能将日志文件和数据库对象(表、索引等)放在不同的磁盘上,以加快存取速度。另外,数据库的数据备份、日志文件备份等,只在数据库发生故障进行恢复时才使用,而且数据量很大,可以存放在磁带上

34、,以改进整个系统的性能。,50,4系统配置的设计 DBMS产品一般都提供了一些系统配置变量、存储分配参数,供设计人员和DBA对数据库进行物理优化。系统为这些变量设定了初始值,但是这些值不一定适合每一种应用环境,在物理设计阶段,要根据实际情况重新对这些变量赋值,以满足新的要求。 系统配置变量和参数很多,例如,同时使用数据库的用户数、同时打开的数据库对象数、内存分配参数、缓冲区分配参数(使用的缓冲区长度、个数)、存储分配参数、数据库的大小、时间片的大小、锁的数目等,这些参数值影响存取时间和存储空间的分配,在物理设计时要根据应用环境确定这些参数值,以使系统的性能达到最优。,51,6.4.2 评价物理

35、结构 和前面几个设计阶段一样,在确定了数据库的物理结构之后,要进行评价,重点是时间和空间的效率。 如果评价结果满足设计要求,则可进行数据库实施。 实际上,往往需要经过反复测试才能优化物理设计。,52,数据库实施是指根据逻辑设计和物理设计的结果,在计算机上建立起实际的数据库结构、装入数据、进行测试和试运行的过程。 数据库实施主要包括以下工作: 建立实际数据库结构; 装入数据; 应用程序编码与调试; 数据库试运行; 整理文档。,6.5 数据库实施,53,6.5.1 建立实际数据库结构 DBMS提供的数据定义语言(DDL)可以定义数据库结构。可使用第3章所讲的SQL定义语句中的CREATE TABL

36、E语句定义所需的基本表,使用CREATE VIEW语句定义视图。 6.5.2 装入数据 装入数据又称为数据库加载(Loading),是数据库实施阶段的主要工作。在数据库结构建立好之后,就可以向数据库中加载数据了。 由于数据库的数据量一般都很大,它们分散于一个企业(或组织)中各个部门的数据文件、报表或多种形式的单据中,它们存在着大量的重复,并且其格式和结构一般都不符合数据库的要求,必须把这些数据收集起来加以整理,去掉冗余并转换成数据库所规定的格式,这样处理之后才能装入数据库。因此,需要耗费大量的人力、物力,是一种非常单调乏味而又意义重大的工作。,54,由于应用环境和数据来源的差异,所以不可能存在

37、普遍通用的转换规则,现有的DBMS并不提供通用的数据转换软件来完成这一工作。 对于一般的小型系统,装入数据量较少,可以采用人工方法来完成。 首先将需要装入的数据从各个部门的数据文件中筛选出来,转换成符合数据库要求的数据格式, 然后输入到计算机中, 最后进行数据校验,检查输入的数据是否有误。 但是,人工方法不仅效率低,而且容易产生差错。对于数据量较大的系统,应该由计算机来完成这一工作。通常是设计一个数据输入子系统,其主要功能是从大量的原始数据文件中筛选、分类、综合和转换数据库所需的数据,把它们加工成数据库所要求的结构形式,最后装入数据库中,同时还要采用多种检验技术检查输入数据的正确性。 为了保证

38、装入数据库中数据的正确无误,必须高度重视数据的校验工作。在输入子系统的设计中应该考虑多种数据检验技术,在数据转换过程中应使用不同的方法进行多次检验,确认正确后方可入库。,55,如果在数据库设计时,原来的数据库系统仍在使用,则数据的转换工作是将原来老系统中的数据转换成新系统中的数据结构。同时还要转换原来的应用程序,使之能在新系统下有效地运行。 数据的转换、分类和综合常常需要多次才能完成,因而输入子系统的设计和实施是很复杂的,需要编写许多应用程序,由于这一工作需要耗费较多的时间,为了保证数据能够及时入库,应该在数据库物理设计的同时编制数据输入子系统,而不能等物理设计完成后才开始。,56,6.5.3

39、 应用程序编码与调试 数据库应用程序的设计属于一般的程序设计范畴,但数据库应用程序有自己的一些特点。例如,大量使用屏幕显示控制语句、形式多样的输出报表、重视数据的有效性和完整性检查、有灵活的交互功能。 为了加快应用系统的开发速度,一般选择第四代语言开发环境,利用自动生成技术和软件复用技术,在程序设计编写中往往采用工具(CASE)软件来帮助编写程序和文档,如目前普遍使用的PowerBuilder、Delphi以及由北京航空航天大学研制的863/CMIS支持的数据库开发工具OpenTools等。 数据库结构建立好之后,就可以开始编制与调试数据库的应用程序,这时由于数据入库尚未完成,调试程序时可以先

40、使用模拟数据。,57,6.5.4 数据库试运行 应用程序编写完成,并有了一小部分数据装入后,应该按照系统支持的各种应用分别试验应用程序在数据库上的操作情况,这就是数据库的试运行阶段,或者称为联合调试阶段。在这一阶段要完成两方面的工作。(1) 功能测试。实际运行应用程序,测试它们能否完成各种预定的功能。(2) 性能测试。测量系统的性能指标,分析系统是否符合设计目标。 系统的试运行对于系统设计的性能检验和评价是很重要的,因为有些参数的最佳值只有在试运行后才能找到。如果测试的结果不符合设计目标,则应返回到设计阶段,重新修改设计和编写程序,有时甚至需要返回到逻辑设计阶段,调整逻辑结构。,58,重新设计

41、物理结构甚至逻辑结构,会导致数据重新入库。由于数据装入的工作量很大,所以可分期分批的组织数据装入,先输入小批量数据做调试用,待试运行基本合格后,再大批量输入数据,逐步增加数据量,逐步完成运行评价。 数据库的实施和调试不是几天就能完成的,需要有一定的时间。在此期间由于系统还不稳定,随时可能发生硬件或软件故障,加之数据库刚刚建立,操作人员对系统还不熟悉,对其规律缺乏了解,容易发生操作错误,这些故障和错误很可能破坏数据库中的数据,这种破坏很可能在数据库中引起连锁反应,破坏整个数据库。 因此必须做好数据库的转储和恢复工作,要求设计人员熟悉DBMS的转储和恢复功能,并根据调试方式和特点首先加以实施,尽量

42、减少对数据库的破坏,并简化故障恢复。,59,6.5.5 整理文档 在程序的编码调试和试运行中,应该将发现的问题和解决方法记录下来,将它们整理存档作为资料,供以后正式运行和改进时参考。 全部的调试工作完成之后,应该编写应用系统的技术说明书和使用说明书,在正式运行时随系统一起交给用户。 完整的文件资料是应用系统的重要组成部分,但这一点常被忽视。必须强调这一工作的重要性,引起用户与设计人员的充分注意。,60,小 结,本章介绍了数据库设计的六个阶段,包括:系统需求分析、概念结构设计、逻辑结构设计、物理设计、数据库实施、数据库运行与维护。对于每一阶段,都分别详细讨论了其相应的任务、方法和步骤。 需求分析

43、是整个设计过程的基础,需求分析做得不好,可能会导致整个数据库设计返工重做。 将需求分析所得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计,概念结构设计是整个数据库设计的关键所在,这一过程包括设计局部E-R图、综合成初步E-R图、E-R图的优化。,61,小 结,将独立于DBMS的概念模型转化为相应的数据模型,这是逻辑结构设计所要完成的任务。一般的逻辑设计分为三步:初始关系模式设计,关系模式规范化,模式的评价与改进。 物理设计就是为给定的逻辑模型选取一个适合应用环境的物理结构,物理设计包括确定物理结构和评价物理结构两步。 根据逻辑设计和物理设计的结果,在计算机上建立起实际的数据库结构,装入数据,进行应用程序的设计,并试运行整个数据库系统,这是数据库实施阶段的任务。 数据库设计的最后阶段是数据库的运行与维护,包括维护数据库的安全性与完整性,监测并改善数据库性能,必要时需要进行数据库的重新组织和构造。,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教学课件 > 大学教育

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1