数据库原理与应用(第二版)Chapter5课件_第1页
数据库原理与应用(第二版)Chapter5课件_第2页
数据库原理与应用(第二版)Chapter5课件_第3页
数据库原理与应用(第二版)Chapter5课件_第4页
数据库原理与应用(第二版)Chapter5课件_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、第五章数据库设计5.1 数据库设计概述 数据库设计主要考虑如下问题。计算机软硬件环境数据库管理系统的能力用户的操作要求与信息要求完整性和安全性约束5.1.1 设计前的准备工作 数据库分析设计人员是数据库设计的核心人员,他们将自始至终参与数据库设计,他们的水平决定了数据库系统的质量。用户在数据库设计中也是举足轻重的,他们主要参加需求分析和数据库的运行维护,他们的积极参与不但能加速数据库设计,而且也是决定数据库设计的质量的又一因素。程序员和操作员则在系统实施阶段参与进来,分别负责编制程序和准备软硬件环境。5.1.2 设计方法的选择1需求分析阶段 2概念结构设计阶段 3逻辑结构设计阶段 4数据库物理

2、设计阶段 5数据库实施阶段 6数据库运行和维护阶段 数据库设计六个阶段:需求分析数据库运行和维护概念结构设计逻辑结构设计数据库物理设计数据库实施独立于数据库管理系统与数据库管理系统有关5.2 需求分析5.2.1 需求分析的任务需求分析的重点是调查、收集与分析用户在数据管理中的信息要求、处理要求、安全性与完整性要求。信息要求是指用户需要从数据库中获得信息的内容与性质。由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据。处理要求是指用户要求完成什么处理功能,对处理的响应时间有什么要求。 5.2.2 需求分析的方法 调查与初步分析用户的需求通常需要四步:调查组织机构情况; 抽象出每个职能

3、部门各种应用的功能和所需信息的定义,并确定职能部门内各应用之间的信息依赖关系和信息流通路径;协助用户明确对新系统的各种要求,包括信息要求、处理要求、完全性与完整性要求;对前面调查的结果进行初步分析,确定哪些功能由计算机完成或将来准备让计算机完成,哪些活动由人工完成。常用的调查方法有以下几种:跟班作业开调查会 请专人介绍询问设计调查表,请用户填写查阅资料 1. 需求分析及其表示方法 分析和表达用户需求的方法主要包括自顶向下和自底向上两类方法。它们均属于结构化分析(SA)方法。 需求需求需求需求需求需求需求需求需求需求需求需求需求需求(A)自顶向下的需求分析方法 B)自底向上的需求分析方法2. 数

4、据流图(Data Flow Diagram ,简称DFD ) 数据流图是对系统的的一种逻辑抽象,独立于系统的实现。数据流图表达了数据和处理过程的关系。数据流图的基本符号如下表所示:符号含义数据源点或终点 交换数据或处理 数据存储 数据流 或或或以学校成绩管理需求为例,可画出如下数据流图:学生选课单允许考试课堂安排教课书教室安排教师档案课程介绍考场安排试卷成绩册教师选课上课考试3. 数据字典(Data Dictionary,简称DD)数据字典是各类数据描述的集合,通常包括数据项、数据结构,数据流和处理过程4个部分。 (1) 数据项数据项是不可再分的数据单位。数据项描述数据项名,数据项含义说明,别

5、名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑关系例 5-1 在学生管理信息系统中,学生的学号就是一个数据项,它可以如下的进行数据描述: 数据项:学号含义说明:唯一能够标识学生的一个代号别名:学生编号类型:字符型长度:8取值范畴:00000000-99999999取值含义:前4位代表年级,后4位表示该学生的顺序号与其它数据项的逻辑关系(2) 数据结构数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。数据结构描述数据结构名,含义说明,组成:数据项或数据结构例5-2 对于学生,因为表达学生概念时,需要表

6、达很多属性,所以学生就是一个数据结构。数据结构:学生含义说明:是学生信息管理系统中主要的数据结构,定义了有关学生档案的信息,并为管理提供数据。组成:学号、姓名、年龄、性别、政治面貌等。(3) 数据流数据流是数据结构在系统内传输的路径。对数据流的描述通常包括以下内容:数据流描述数据流名,说明,数据流来源,数据流去向,组成:数据结构(4) 数据存储数据存储是数据结构停留或保存的地方,是数据流的来源和去向之一。对数据存储的描述通常包括以下内容:数据存储描述=数据存储名,说明,编号,流入的数据流,流出的数据流,组成: 数据结构,数据量,方式数据存储:学生登记表说明:记录学生的基本情况流入数据流:手工录

7、入,流出数据流:为成绩管理等提供数据,组成:数据量:每年2000条存取方式:随机存取例5-3 数据存储“学生登记表”可描述如下: (5) 处理过程处理过程的具体处理逻辑一般用判定表或判定树来描述。数据字典中只需要描述处理过程的说明性信息,通常包括以下内容:处理过程描述处理过程名,说明,输入:数据流,输出:数据流,处理:简要说明处理过程:成绩管理说明:每学期进行学生成绩的管理工作输入:学生,课程名称,考试成绩输出:进行归档,并确定补考名单等。处理:对学生的选课进行确定,并为其分配上课的教室及教师,在期末安排考试时间及地点,考试结束后填写成绩单,并确定补考名单等,根据不及格的课程数确定降级、退学等

8、。例5-4 “成绩管理”可简要描述如下: 5.3 概念结构设计 将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计。 在概念设计阶段一般都使用语义数据模型或概念数据模型。这类数据模型具有如下特点。(1)具有很强的表达能力,能够方便地表达各种类型的数据、数据间的联系和各种约束。(2)简单易懂,概念清晰,容易使用。(3)组成模型的概念少,概念定义严格,无多义性,不同概念的语义不重叠。(4)具有使用图形表示概念模式的能力。5.3.1实体-联系模型1. 实体和属性实体联系模型简称E-R(Entry-Relation)模型。实体是E-R模型的基本对象。实体是对现实世界各种事物的抽象,

9、即将其数字化或符号化。例5-5 画出学生实体的实体描述图。学号姓名性别学生2. 实体型、键属性和属性的值域 实体型是一个具有相同属性的实体集合,由一个实体型的名字和一组属性来定义。实体型的定义称为实体模式,描述了一组实体的公共结构。实体型表示的实体集合中的任一实体称为该实体型的实例,简称实体。在任意时刻,一个实体型的所有实体的集合称为该实体型的外延。同一个实体型的不同实体是现实世界中不同的对象。在E-R模型中每个实体型一般具有一个或多个属性组成的键,用来区别不同的实体。对于同一实体型的不同实体,键的值必须相异。 实体型的每个简单属性都具有一个值域,说明这个属性的可能取值范围。3. 数据库实例4

10、. 实体间的联系一个数据库通常都包含很多实体型。不同实体型的实体之间可能具有某种联系。我们称这种联系为实体间的联系(Entry Relation)。一个联系型的实体对应约束规定了该联系型所关联的实体间的对应关系。实体对应约束包括三种,分别为一对一约束(1:1)、一对多约束(1:N)和多对多约束(M:N)。 5. 实体联系图 5.3.2 概念结构设计的方法与步骤 设计概念结构通常有三类方法: 自顶向下。即首先定义全局概念结构的框架,然后逐步细化。 自底向上。即首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构。 混合策略。即将自项向下和自底向上相结合,用自项向下策略设计一个全局概

11、念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。自底向上设计方法通常分为两步:数据抽象与局部视图设计;局部视图的集成 。数据抽象与局部视图设计:根据需求分析的结果(数据流图、数据字典等)对现实世界的数据进行抽象,设计各个局部视图即分E-R图。 视图的集成各个局部视图建立好后,还需要对它们进行合并,集成为一个整体的数据概念结构,即总E-R图。合理消除各分E-R图的冲突是合并分E-R图的主要工作与关键所在。 各分E-R图之间的冲突主要有三类:属性冲突属性域冲突 属性取值单位冲突命名冲突同名异义 异名同义 结构冲突同一对象在不同应用中具有不同的抽象 同一实体在不同局部视图中所包含的

12、属性不完全相同,或者属性的排列次序不完全相同 实体之间的联系在不同局部视图中呈现不同的类型 5.4 逻辑数据库设计5.4.1 关系数据库的逻辑设计逻辑数据库设计的任务是把概念设计阶段产生的概念数据库模式变换为逻辑数据库模式。即把概念设计阶段设计好的基本E-R图转换为选用的DBMS产品所支持的数据模型相符合的逻辑结构。 1. 逻辑设计过程概述逻辑数据库设计的步骤:(1)形成初始关系数据库模式;(2)关系模式规范化;(3)关系模式优化;(4)定义关系上的完整性和安全性约束;(5)子模式定义;(6)性能估计。是否需要修正进入物理设计阶段处理要求关系模式规范化模式评价ER模式DBMS特性从ER模式导出

13、初始数据库模式否是以DBMS语法描述模式修正2. 设计用户子模式 将概念模型转换为全局逻辑结构后,还应该根据局部应用需求,结合具体DBMS的特点,设计用户的子模式。在定义用户子模式时 应注意以下几点: (1)使用更符合用户习惯的别名。例如可以在设计用户视图时重新定义某些属性名,使其与用户习惯一致,方便使用。(2)可以对不同的级别的用户定义不同的视图,这样可以防止用户非法访问本来不允许他们查询的数据,以保证系统的安全性。(3)简化用户对系统的使用3. 存储模式设计关系型DBMS提供的有关存储模式定义的功能有:索引定义、聚集定义、数据段定义等。 4. 系统编码设计在系统设计工作过程中,对所有具有编

14、码的数据项都应强制遵从编码规则 。5. 应用软件设计(1)设计功能模块结构(2)存储过程和数据库触发器设计(3)补充数据字典(4)菜单设计(5)设计用户界面(6)生成交叉指引表5.4.2 E-R图向关系模型的转换将E-R图转换为关系模型实际上就是要将实体、实体的属性和实体之间的联系转换为关系模式,这种转换遵循如下原则:(1) 一个实体型转换为一个关系模式,实体的属性就是关系模式的属性,实体的键即为关系模式的键。(2) 对于实体间联系,就要视1:1,1:N,M:N三种不同情况做不同的处理:一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。 若实体间的联系是1:N的,

15、则可以与N端对应的关系模式合并,并在N端实体型转换的关系模式中加入1端实体型转换成的关系模式的键和联系的属性。若将1:N联系转换为一个独立的关系模式,则与该联系相连的各实体转换成的关系模式的键以及联系本身的属性均转换为关系的属性,而关系的键为N端实体对应的关系模式的键。 若实体间的联系是M:N的,则将该联系转换为一个独立的关系模式,其属性为两端实体类型的键加上联系类型的属性,而关系的键为两端实体转换成的关系模式键的组合。 5.4.3 数据库设计中关系规范化的应用理论上的关系规范化,在实际应用中并不完全采用,其主要原因在于: (1) 找出所有数据依赖不是一件简单的事,如果漏掉或错误地确定了一些数

16、据依赖关系,按上节的方法进行规范化,不能得到一个在理论上认为好的数据库设计。(2) 即使我们能正确地找出所有的数据依赖关系,采用机械地分解模式的方法,而完全不考虑关系的具体大小,以及数据的更新状况,全部规范到同样的程度(比如3NF),这也是不适当的。(3) 数据库设计一般采用先得到E-R模型,再由E-R图转换得到关系数据库模式的方法。从E-R图转换成的关系模式,较小(包含的属性较少),为了以后数据库查询的方便、更多的情况是需要合并关系模式,而不是分解关系模式。关系规范化的 实际意义在于,当设计E-R模型时,应仔细分析数据间存在的数据依赖,这样能使我们最后从E-R图得到的关系数据库模式基本达到3

17、NF的规范程度。因此,要得到一个好的数据库设计,要根据具体情况对关系模式进行处理,既可能要合并关系模式,也可能要分解关系模式。 5.5 物理设计阶段对于给定的基本数据模型选取一个最适合应用环境的物理结构的过程,称为物理设计。1. 数据库物理设计的内容 (1)存储记录结构设计。(2)确定数据存放位置。(3)存取方法的设计。(4)完整性和安全性考虑。(5)程序设计。2. 数据库的实现 根据逻辑设计和物理设计的结果,在计算机系统上建立起实际数据库结构、装入数据、测试和试运行的过程称为数据库的实现阶段。主要有三个方面的工作: (1)建立实际数据库结构。(2)装入试验数据对应用程序进行调试。(3)装入实

18、际数据,进入试运行状态。测量系统的性能指标,是否符合设计目标。 3 数据库的运行和维护数据库系统正式运行,标志着数据库设计与应用开发工作的结束和维护阶段的开始。运行维护阶段的主要任务有四项:(1)维护数据库的安全性与完整性。(2)监测并改善数据库的运行性性能。(3)根据用户要求对数据库现有的功能进行调整和扩充。(4)及时发现并改正运行中的系统错误或不足。5.6 数据库设计实例5.6.1 概念结构设计 某公司的业务特点主要包括以下几个方面的内容:(1) 公司下设几个部门,如技术部、财务部、工程部;(2)每个部门承担多个工程项目,每个工程项目属于一个部门;(3) 每个部门有多个职工,每个职工只属于

19、一个部门;(4) 一名职工可能参与多个工程项目,每个工程允许多名职工参与;(5)每个部门有一个经理,一个经理只能负责一个部门。同时需要注意的是,经理也是职工;(6) 一名职工可能有多名亲属,也可能没有亲属;(7)一名职工可能有多种技能,某种技能可能被多名职工掌握 。根据上述业务特点,可以定义五个实体:部门、职工、亲属、工程、技能,它们的实体-属性图如下所示:部门编号经理电话部门名称部门技能编号技能名称技能职工编号性别姓名职工亲属姓名工程编号经费预算部门编号工程名称工程出生年月亲属关系亲属部门工程承担1n部门职工聘用1n职工工程参加mn部门职工经理11职工亲属有1n职工技能具有mn局部E-R图:

20、亲属有职工具有参加技能部门聘用承担工程经理1nn1m1nnmn11全局E-R图5.6.2 逻辑结构设计 将E-R图转换成如下关系模型:名称属性主键外部键部门部门编号、部门名称、电话、职工编号(领导)部门编号职工编号工程工程编号、工程名称,部门编号,经费预算工程编号部门编号职工职工编号、姓名、性别、出生年月、部门编号职工编号部门编号技能技能编号、技能名称技能编号人才职工编号、技能编号、从事年限职工编号、技能编号职工编号、技能编号亲属职工编号、亲属姓名、亲属关系职工编号、亲属姓名职工编号分配工程编号、职工编号、工时工程编号、职工编号工程编号、职工编号5.6.3 物理结构设计 根据逻辑结构设计结果,定义数据表创建语句。 例如:CREATE TABLE 部门( 部门编号 INT NOT NULL, CONSTRAINT

温馨提示

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

评论

0/150

提交评论