第八章 数据库设计(2012)_第1页
第八章 数据库设计(2012)_第2页
第八章 数据库设计(2012)_第3页
第八章 数据库设计(2012)_第4页
第八章 数据库设计(2012)_第5页
已阅读5页,还剩83页未读 继续免费阅读

下载本文档

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

文档简介

1、第八章第八章 数据库设计数据库设计12数据库设计概述数据库设计的过程8.1 数据库设计概述数据库设计概述v 什么是数据库设计什么是数据库设计数据库设计是指对于一个给定的应用环境,构数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用使之能够有效地存储数据,满足各种用户的应用需求需求(信息要求和处理要求信息要求和处理要求)。)。8.1 数据库设计概述数据库设计概述 数据库是信息系统的核心和基础数据库是信息系统的核心和基础 它把信息系统中大量的数据按一定的模型组织它把信息系统中大量

2、的数据按一定的模型组织起来;起来; 提供存储、维护、检索数据的功能;提供存储、维护、检索数据的功能; 使信息系统可以方便、及时、准确地从数据库使信息系统可以方便、及时、准确地从数据库中获得所需的信息。中获得所需的信息。数据库设计目标:为用户和各种应用系统提供一数据库设计目标:为用户和各种应用系统提供一个信息基础设施和高效率的运行环境。个信息基础设施和高效率的运行环境。8.1 数据库设计概述数据库设计概述结构(数据)设计和行为(处理)设计相结合结构(数据)设计和行为(处理)设计相结合 结构设计:结构设计:针对给定的应用环境,进行数据库针对给定的应用环境,进行数据库的关系模式或子模式的设计。包括数

3、据库的概的关系模式或子模式的设计。包括数据库的概念设计、逻辑设计和物理设计。给出各应用程念设计、逻辑设计和物理设计。给出各应用程序共享的结构,是静态和稳定的,一经形成不序共享的结构,是静态和稳定的,一经形成不易改变。易改变。 行为设计:行为设计:确定数据库用户的行为和动作,即确定数据库用户的行为和动作,即通过应用程序来实现对数据库的操作。而用户通过应用程序来实现对数据库的操作。而用户的行为总是使数据库的内容发生变化,所以行的行为总是使数据库的内容发生变化,所以行为设计是动态的。为设计是动态的。数据库设计的特点:数据库设计的特点: 1 1、硬件、软件和干件相结合。、硬件、软件和干件相结合。 (技

4、术与管理的界面称之为(技术与管理的界面称之为“干件干件”) 2 2、数据库设计与应用系统设计相结合。、数据库设计与应用系统设计相结合。 结构(数据)设计:设计数据库框架或数据库结构。结构(数据)设计:设计数据库框架或数据库结构。 行为(处理)设计:设计应用程序、事务处理等。行为(处理)设计:设计应用程序、事务处理等。8.1 数据库设计概述数据库设计概述 数据库建设的基本规律数据库建设的基本规律 三分技术,七分管理,十二分基础数据三分技术,七分管理,十二分基础数据 管理:数据库建设项目管理、企业(应用部门)管理:数据库建设项目管理、企业(应用部门)的业务管理的业务管理 基础数据:收集、整理、组织

5、和不断更新基础数据:收集、整理、组织和不断更新8.1 数据库设计概述数据库设计概述现实世界现实世界概念模型设计概念模型设计 子模式设计子模式设计物理数据库设计物理数据库设计逻辑数据库设计逻辑数据库设计建立数据库建立数据库数据分析数据分析功能分析功能分析功能模型功能模型功能说明功能说明事务设计事务设计程序说明程序说明 应用程序设计应用程序设计 程序编码调试程序编码调试 传统的软件工程传统的软件工程忽视对应用中数忽视对应用中数据语义的分析和据语义的分析和抽象,只要有可抽象,只要有可能就尽量推迟数能就尽量推迟数据结构设计的决据结构设计的决策;策; 早期的数据库设早期的数据库设计致力于数据模计致力于数

6、据模型和建模方法研型和建模方法研究,忽视了对行究,忽视了对行为的设计。为的设计。早期数据库设计结构和行为分离的设计早期数据库设计结构和行为分离的设计8.1 数据库设计概述数据库设计概述 直观设计法直观设计法(早期方法)(早期方法)设计质量与设计人员的经验和水平有直接关系;设计质量与设计人员的经验和水平有直接关系;缺乏科学理论和工程方法的支持,工程质量难以保证;缺乏科学理论和工程方法的支持,工程质量难以保证;数据库运行一段时间后常常又不同程度地发现各种问题,数据库运行一段时间后常常又不同程度地发现各种问题,增加了维护代价。增加了维护代价。 规范设计法规范设计法基本思想:过程迭代和逐步求精基本思想

7、:过程迭代和逐步求精典型方法:典型方法: 新奥尔良方法新奥尔良方法 基于基于E-RE-R模型的数据库设计方法模型的数据库设计方法 3NF3NF(第三范式)的设计方法(第三范式)的设计方法数据库设计方数据库设计方法法计算机辅助设计法计算机辅助设计法8.2 数据库设计的过程数据库设计的过程六个阶段:六个阶段:1. 1. 需求分析阶段;需求分析阶段;2. 2. 概念设计阶段;概念设计阶段;3. 3. 逻辑设计阶段;逻辑设计阶段;4. 4. 物理设计阶段;物理设计阶段;5. 5. 数据库实施阶段;数据库实施阶段;6. 6. 数据库运行和维护阶段。数据库运行和维护阶段。设设计计阶阶 段段设设 计计 描描

8、 述述数数 据据处处 理理需求需求分析分析 数据字典、全系统中数据项、数据字典、全系统中数据项、 数据流、数据存储的描述数据流、数据存储的描述数据流图数据流图和和判定表(判定树)判定表(判定树)、数数据字典据字典中处理过程的描述中处理过程的描述 概念模型概念模型(E-R图)图) 数据字典数据字典 系统说明书包括:系统说明书包括: 新系统要求、新系统要求、 方案和概图方案和概图 反映新系统信息反映新系统信息 流的流的数据流图数据流图 某种数据模型某种数据模型 关系关系 非关系非关系 系统结构图系统结构图 (模块结构)(模块结构) 存储安排存储安排 方法选择方法选择 存取路径建立存取路径建立 模块

9、设计模块设计 IPO表表实施实施阶段阶段此同时创建库与模式此同时创建库与模式 装入数据装入数据 数据库试运行数据库试运行 程序编码、程序编码、 编译连接、编译连接、 测试测试运行运行维护维护 性能监测、转储性能监测、转储/恢复恢复 数据库重组和重构数据库重组和重构 新旧系统转换、运行、维护(修新旧系统转换、运行、维护(修正性、适应性、改善性维护)正性、适应性、改善性维护)IPO表输入:输出:处理:CreatMain()ifthenend分区分区1 分区分区2概念概念设计设计逻辑逻辑设计设计物理物理设计设计 设计过程各个阶段的设计描述图设计过程各个阶段的设计描述图 不满意用户需求收集合分析设计概

10、念结构设计逻辑结构数据模型优化设计物理结构评价设计,性能预测物理实现实验性运行使用、维护数据库需求分析阶段概念设计阶段逻辑设计阶段物理设计阶段数据库实施阶段数据库运行、维护不满意不满意数据库结构设计程序结构设计数据库设计步骤图数据库设计步骤图8.2 数据库设计的过程数据库设计的过程1. 1. 系统分析和数据库设计人员系统分析和数据库设计人员数据库设计的核心人员数据库设计的核心人员自始至终参与数据库设计自始至终参与数据库设计其水平决定了数据库系统的质量其水平决定了数据库系统的质量 数据库设计的准备工作选定参加设计的人员数据库设计的准备工作选定参加设计的人员2. 2. 用户和用户和DBADBA在数

11、据库设计中也是举足轻重的在数据库设计中也是举足轻重的主要参加需求分析和数据库的运行维护主要参加需求分析和数据库的运行维护积极参与带来的好处:积极参与带来的好处: 加速数据库设计加速数据库设计 提高数据库设计的质量提高数据库设计的质量 3. 3. 应用开发人员应用开发人员:在系统实施阶段参与,负责编制程序和在系统实施阶段参与,负责编制程序和准备软硬件环境准备软硬件环境8.2.2 需求分析阶段需求分析阶段 需求分析就是分析用户的需要与要求需求分析就是分析用户的需要与要求:需求分析是设计数据库的起点;需求分析是设计数据库的起点;需求分析的结果是否准确地反映了用户的实际要求,需求分析的结果是否准确地反

12、映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。果是否合理和实用。v 需求分析的任务需求分析的任务: 通过详细调查现实世界要处理的对象(组织、部门、企业通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户各种需求,在此基础上确定新系统的功能。况,明确用户各种需求,在此基础上确定新系统的功能。 新系统必须充分考虑今后可能的扩充和改变,不能仅仅按新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来

13、设计数据库。当前应用需求来设计数据库。8.2.2 需求分析阶段需求分析阶段1. 调查分析用户活动调查分析用户活动调查组织机构情况,以及各部门的业务活动情况。调查组织机构情况,以及各部门的业务活动情况。2. 收集和分析需求数据,确定系统边界收集和分析需求数据,确定系统边界 在熟悉业务活动的基础上,协助用户明确对新系统的在熟悉业务活动的基础上,协助用户明确对新系统的各种需求,包括用户的信息需求、处理需求、安全性和完各种需求,包括用户的信息需求、处理需求、安全性和完整性需求等,并确定哪些功能由计算机或将来由计算机完整性需求等,并确定哪些功能由计算机或将来由计算机完成,哪些活动由人工完成。成,哪些活动

14、由人工完成。3. 编写系统需求分析报告编写系统需求分析报告 数据流图、功能模块图、数据字典等。数据流图、功能模块图、数据字典等。v 需求分析的步骤需求分析的步骤:8.2.2 需求分析阶段需求分析阶段v 需求分析的重点:需求分析的重点:“数据数据”和和处理处理1)信息要求)信息要求: 用户需要从数据库中获得信息的内容与性质;用户需要从数据库中获得信息的内容与性质; 由用户的信息要求可以导出数据要求,即在数据库中需由用户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据。要存储哪些数据。2 2)处理要求:)处理要求: 对处理功能的要求;对处理功能的要求; 对处理响应时间的要求;对处理响应时间

15、的要求; 对处理方式的要求对处理方式的要求(批处理批处理 / 联机处理联机处理)。3 3)安全性与完整性要求)安全性与完整性要求8.2.2 需求分析阶段需求分析阶段v 需求分析的难点:确定用户的最终需求需求分析的难点:确定用户的最终需求 用户缺少计算机知识,开始时无法确定计算机究竟能为用户缺少计算机知识,开始时无法确定计算机究竟能为自己做什么,不能做什么,因此无法准确地表达自己的需自己做什么,不能做什么,因此无法准确地表达自己的需求,他们所提出的需求往往不断地变化;求,他们所提出的需求往往不断地变化; 设计人员缺少用户的专业知识,不易理解用户的真正需设计人员缺少用户的专业知识,不易理解用户的真

16、正需求,甚至误解用户的需求;求,甚至误解用户的需求; 新的硬、软件技术的出现也会使用户需求发生变化。新的硬、软件技术的出现也会使用户需求发生变化。v 解决方法解决方法: 设计人员必须采用有效的方法,与用户不设计人员必须采用有效的方法,与用户不断深入地进行交流,才能逐步确定用户的实际需求。断深入地进行交流,才能逐步确定用户的实际需求。:数据及其流动方向,直线上方标明数据流名:数据及其流动方向,直线上方标明数据流名称。称。:数据处理,圆圈内标明处理名称。:数据处理,圆圈内标明处理名称。:数据流的终点和源点,方框内标明相应的名:数据流的终点和源点,方框内标明相应的名称。称。:文件和数据存储,在其内标

17、明相应名称。:文件和数据存储,在其内标明相应名称。 8.2.2 需求分析阶段需求分析阶段v 数据流图数据流图DFD(Data Flow Diagrams)绘制要求:绘制要求:自顶向下,逐步细化自顶向下,逐步细化作用:作用:可以形象的表示数据流与各业务活动的关系,可以形象的表示数据流与各业务活动的关系,是需求分析的工具和分析结构的描述手段。是需求分析的工具和分析结构的描述手段。8.2.2 需求分析阶段需求分析阶段实例:假设我们要开发一个学校管理系统。实例:假设我们要开发一个学校管理系统。1经过可行性分析和初步需求调查,抽象出该系统经过可行性分析和初步需求调查,抽象出该系统最高层最高层数据流图数据

18、流图,该系统由教师管理子系统、学生管理子系统、,该系统由教师管理子系统、学生管理子系统、后勤管理子系统、图书管理子系统,每个子系统分别配备后勤管理子系统、图书管理子系统,每个子系统分别配备一个开发小组。一个开发小组。2进一步细化各个子系统。进一步细化各个子系统。其中其中学生管理子系统学生管理子系统开发小组通过进行进一步的需求调查,开发小组通过进行进一步的需求调查,明确了该子系统的主要功能是进行明确了该子系统的主要功能是进行学籍管理学籍管理和和课程管理课程管理,包括学生报到、入学、毕业的管理,学生上课情况的管理。包括学生报到、入学、毕业的管理,学生上课情况的管理。通过详细的信息流程分析和数据收集

19、后,他们生成了该子通过详细的信息流程分析和数据收集后,他们生成了该子系统的数据流图。系统的数据流图。数据流图数据流图8.2.2 需求分析阶段需求分析阶段 数据字典是各类数据描述的集合。数据字典是各类数据描述的集合。 数据字典是进行详细的数据收集和数据分析所数据字典是进行详细的数据收集和数据分析所获得的主要结果。获得的主要结果。 数据字典用来说明或描述系统中数据字典用来说明或描述系统中数据的静态组数据的静态组成结构成结构,是,是数据库系统中各类数据属性的清单,数据库系统中各类数据属性的清单,在数据库设计中占有很重要的地位。在数据库设计中占有很重要的地位。 数据字典在需求分析阶段建立,在数据库设计

20、数据字典在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善。过程中不断修改、充实、完善。v 数据字典数据字典的用途的用途:8.2.2 需求分析阶段需求分析阶段 数据项数据项 数据结构数据结构 数据流数据流 数据存储数据存储 处理过程处理过程v 数据字典的内容数据字典的内容: 数据项是数据的最小组成单位;数据项是数据的最小组成单位; 若干个数据项可以组成一个数据结构;若干个数据项可以组成一个数据结构; 数据字典通过对数据项和数据结构的定义来描述数据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。数据流、数据存储的逻辑内容。8.2.2 需求分析阶段需求分析阶段 数据项是不

21、可再分的数据单位。数据项是不可再分的数据单位。 数据项描述数据项名,数据项含义说明,别名,数据数据项描述数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑类型,长度,取值范围,取值含义,与其他数据项的逻辑关系关系1. 数据项数据项数据项:以数据项:以“学号学号”为例:为例:数据项名:数据项名: 学号学号含义说明:含义说明: 唯一标识每个学生唯一标识每个学生别名:别名: 学生编号学生编号类型:类型: 字符型字符型长度:长度: 8 8取值范围:取值范围: 00000000-9999999900000000-99999999取值含义:取值含义: 前四位标别入学年份

22、,后四位按顺序编号。前四位标别入学年份,后四位按顺序编号。8.2.2 需求分析阶段需求分析阶段 数据结构反映了数据之间的组合关系。数据结构反映了数据之间的组合关系。 可以由若干个数据项组成,也可以由若干个数据结构组可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。成,或由若干个数据项和数据结构混合组成。 数据结构描述数据结构名,含义说明,组成数据结构描述数据结构名,含义说明,组成: :数据项数据项或数据结构或数据结构2. 数据结构数据结构数据结构数据结构 : : 以以“学生学生”为例为例 数据结构名:学生数据结构名:学生 含义说明:课程管理子系统的主体数据

23、结构,定义了一个学含义说明:课程管理子系统的主体数据结构,定义了一个学生的有关信息。生的有关信息。 组组 成:学号,姓名,性别,年龄,所在系,年级成:学号,姓名,性别,年龄,所在系,年级 8.2.2 需求分析阶段需求分析阶段3. 数据流数据流 数据流是数据结构在系统内传输的路径。数据流是数据结构在系统内传输的路径。 数据流描述数据流名,说明,数据流来源,数据流去数据流描述数据流名,说明,数据流来源,数据流去向,组成向,组成: :数据结构,平均流量,高峰期流量数据结构,平均流量,高峰期流量数据流来源:说明该数据流来自哪个过程;数据流来源:说明该数据流来自哪个过程;数据流去向:说明该数据流将到哪个

24、过程去;数据流去向:说明该数据流将到哪个过程去;平均流量:在单位时间里的传输次数;平均流量:在单位时间里的传输次数;高峰期流量:在高峰时期的数据流量。高峰期流量:在高峰时期的数据流量。数据流数据流: “: “教室安排教室安排”可如下描述:可如下描述: 数据流:教室安排数据流:教室安排 说明:学生上课的教室布置说明:学生上课的教室布置 数据流来源:排课数据流来源:排课 数据流去向:上课数据流去向:上课8.2.2 需求分析阶段需求分析阶段4. 数据存储数据存储 数据存储是数据结构停留或保存的地方,也是数据流的来源数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。和去向之一。 数据存储

25、描述数据存储名,说明,编号,输入的数据流数据存储描述数据存储名,说明,编号,输入的数据流 ,输出的数据流输出的数据流 ,组成,组成: :数据结构,数据量,存取频度,数据结构,数据量,存取频度,存取方式存取方式数据存储数据存储: “: “学生登记表学生登记表”可如下描述:可如下描述: 数据存储:学生登记表数据存储:学生登记表 说明:记录学生的基本情况说明:记录学生的基本情况 数据量:每年数据量:每年30003000张张 存取方式:随机存取存取方式:随机存取 8.2.2 需求分析阶段需求分析阶段5. 处理过程处理过程 其具体处理逻辑一般用判定表或判定树来描述。其具体处理逻辑一般用判定表或判定树来描

26、述。 处理过程描述处理过程名,说明,输入处理过程描述处理过程名,说明,输入: :数据流,输数据流,输出出: :数据流,处理数据流,处理: :简要说明简要说明处理过程处理过程: “: “分配宿舍分配宿舍”可如下描述:可如下描述:处理过程:分配宿舍处理过程:分配宿舍说明:为所有新生分配学生宿舍说明:为所有新生分配学生宿舍输入:学生,宿舍输入:学生,宿舍输出:宿舍安排输出:宿舍安排处理:在新生报到后,为所有新生分配学生宿舍。要求同一处理:在新生报到后,为所有新生分配学生宿舍。要求同一间宿舍只能安排同一性别的学生,同一个学生只能安排在间宿舍只能安排同一性别的学生,同一个学生只能安排在一个宿舍中,安排新

27、生宿舍其处理时间应不超过一个宿舍中,安排新生宿舍其处理时间应不超过1515分钟。分钟。8.2.3 概念设计阶段概念设计阶段 在进行数据库设计时,通常先将现实世界中的客观对象在进行数据库设计时,通常先将现实世界中的客观对象首先抽象为不依赖任何具体机器的信息结构,这种结构不首先抽象为不依赖任何具体机器的信息结构,这种结构不是是DBMSDBMS支持的数据模型,而是概念模型(支持的数据模型,而是概念模型(概念结构设计概念结构设计)。然后再把概念模型转换成具体机器上然后再把概念模型转换成具体机器上DBMSDBMS支持的数据模型。支持的数据模型。客观事物客观事物(需求分析)(需求分析)概念模型概念模型DB

28、MS支持的数据模型支持的数据模型现实世界现实世界信息世界信息世界机器世界机器世界认识、抽象认识、抽象 概念模型概念模型是一个过渡是一个过渡的中间层次的中间层次8.2.3 概念设计阶段概念设计阶段 概念结构是各种数据模型的共同基础,它比数据概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。模型更独立于机器、更抽象,从而更加稳定。 概念结构设计:将需求分析得到的用户需求抽象概念结构设计:将需求分析得到的用户需求抽象为信息结构即为信息结构即概念模型概念模型的过程。的过程。 概念结构设计的特点:概念结构设计的特点: 1)能真实、充分地反映现实世界;)能真实、充分地反映现

29、实世界; 2)易于理解;)易于理解; 3)易于更改;)易于更改; 4)易于向关系、网状、层次等各种数据模型转换。)易于向关系、网状、层次等各种数据模型转换。 描述工具:描述工具:E-R模型模型8.2.3 概念设计阶段概念设计阶段v 设计方法:设计方法: 自顶向下:自顶向下:首先定义全局概念结构的框架,然首先定义全局概念结构的框架,然后逐步细化。后逐步细化。全局概念模式全局概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式需求需求8.2.3 概念设计阶段概念设计阶段 自底向上自底向上:首先定义各局部应用的概念结构,首先定义各局部应用的概念结构

30、,然后将它们集成起来,得到全局概念结构然后将它们集成起来,得到全局概念结构全局概念模式全局概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式子需求子需求子需求子需求子需求子需求子需求子需求8.2.3 概念设计阶段概念设计阶段 逐步扩张逐步扩张:首先定义最重要的核心概念结构,首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构。结构,直至总体概念结构。核心核心概念结构概念结构全局全局概念结构概念结构核心需求核心需求需求需求8.2.3 概念设计阶段概念设计阶

31、段 混合策略混合策略:将自顶向下和自底向上相结合,用自将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。骨架集成由自底向上策略中设计的各局部概念结构。v 常用策略:自底向上方法常用策略:自底向上方法n自顶向下地进行需求分析自顶向下地进行需求分析n自底向上地设计概念结构自底向上地设计概念结构8.2.3 概念设计阶段概念设计阶段全局概念模式全局概念模式概念模式概念模式1概念模式概念模式2概念模式概念模式1.1 概念模式概念模式1.2概念模式概念模式n.1 概念模式概念模式n.2需求需

32、求1.1需求需求1.2需求需求n.1需求需求n.2需求需求1需求需求n需求需求需求分析需求分析自顶向下自顶向下概念结构设计概念结构设计自底向上自底向上8.2.3 概念设计阶段概念设计阶段v自底向上概念结构设计步骤:自底向上概念结构设计步骤:n第第1步:抽象数据并设计局部视图步:抽象数据并设计局部视图n第第2步:集成局部视图,得到全局概念结构步:集成局部视图,得到全局概念结构数据抽象、数据抽象、局部视图的设计局部视图的设计视图集成视图集成需求分析需求分析逻辑结构设计逻辑结构设计返回用户,返回用户,征求意见直征求意见直到满意为止到满意为止DFD、DD分分ER图图总总ER图图8.2.3 概念设计阶段

33、概念设计阶段1)选择局部)选择局部E-R图的描述范围图的描述范围 需求分析阶段,已用多层数据流图和数据字典描述了整需求分析阶段,已用多层数据流图和数据字典描述了整个系统。个系统。 设计分设计分E-R图首先需要根据系统的具体情况,在多层的数图首先需要根据系统的具体情况,在多层的数据流图中据流图中选择一个适当层次的数据流图选择一个适当层次的数据流图,让这组图中每,让这组图中每一部分对应一个局部应用,然后以这一层次的数据流图一部分对应一个局部应用,然后以这一层次的数据流图为出发点,设计分为出发点,设计分E-R图。图。 通常以通常以中层数据流图中层数据流图作为设计分作为设计分E-R图的依据。原因:图的

34、依据。原因: 高层数据流图只能反映系统的概貌;高层数据流图只能反映系统的概貌; 中层数据流图能较好地反映系统中各局部应用的子系中层数据流图能较好地反映系统中各局部应用的子系统组成;统组成; 低层数据流图过细描述整个系统。低层数据流图过细描述整个系统。v 局部局部E-R模型设计模型设计8.2.3 概念设计阶段概念设计阶段2. 画出局部画出局部E-R图图任务:标定局部应用中的实体、属性、码,实体间的联系。任务:标定局部应用中的实体、属性、码,实体间的联系。 将各局部应用涉及的数据分别从数据字典中抽取出将各局部应用涉及的数据分别从数据字典中抽取出来,参照数据流图,标定各局部应用中的实体、实来,参照数

35、据流图,标定各局部应用中的实体、实体的属性、标识实体的码,确定实体之间的联系及体的属性、标识实体的码,确定实体之间的联系及其类型(其类型(1:1,1:n,m:n)。)。 例:例: 某校的教务管理系统中,分为学籍管理、选某校的教务管理系统中,分为学籍管理、选课管理和教师开课管理部分。课管理和教师开课管理部分。 学籍管理语义:学籍管理语义:(1 1)一个系开设有多个专业,一个专业只能属于一个系;)一个系开设有多个专业,一个专业只能属于一个系;(2 2)一个专业有多个班级,一个班级只属于一个专业;)一个专业有多个班级,一个班级只属于一个专业;(3 3)一个班级有多个学生,一个学生只属于一个班级。)一

36、个班级有多个学生,一个学生只属于一个班级。系专业班级学生开设系号专业名拥有包含系名专业号班级号班级名学号姓名性别年龄8.2.3 概念设计阶段概念设计阶段1m1m1m8.2.3 概念设计阶段概念设计阶段选课管理语义:选课管理语义:(1 1)一个系可以开设多门课程,不同系开设的课程必须不同。)一个系可以开设多门课程,不同系开设的课程必须不同。(2 2)一个学生可选修多门课程,一门课程可为多个学生选修;)一个学生可选修多门课程,一门课程可为多个学生选修;课程学生选修学号课程名姓名课程号系号系开设成绩所在系1nmn8.2.3 概念设计阶段概念设计阶段教师开课管理语义:教师开课管理语义:(1 1)一个部

37、门可有多名教师,一名教师只能属于一个部门;)一个部门可有多名教师,一名教师只能属于一个部门;(2 2)一个部门只有一个负责人;)一个部门只有一个负责人;(2 2)一名教师可讲授多门课程,一门课程可为多名教师讲授。)一名教师可讲授多门课程,一门课程可为多名教师讲授。课程教师课程名属于讲授课程号部门名教师号姓名性别职称部门部门号负责负责人性别性别工号 m n n 1 1 1 对局部概念模型进行合并,集成为一个整体的对局部概念模型进行合并,集成为一个整体的数据概念结构即总数据概念结构即总E-RE-R图。图。集成的两种方式:集成的两种方式:)多元集成法多元集成法通常用于局部视图比较简单时。通常用于局部

38、视图比较简单时。)二元集成法二元集成法首先集成两个局部视图(通常是比较关键的首先集成两个局部视图(通常是比较关键的两个局部视图);以后每次将一个新的局部两个局部视图);以后每次将一个新的局部视图集成进来。视图集成进来。8.2.3 概念设计阶段概念设计阶段v 局部局部E-R模型的集成模型的集成v 集成局部集成局部E-R图步骤图步骤: 合并合并:解决各局部:解决各局部E-R图图之间的冲突,将各分之间的冲突,将各分E R图合并起来生成初步图合并起来生成初步E-R图。图。 优化优化:消除不必要的冗余,:消除不必要的冗余,生成全局生成全局E-R图。图。合并合并初步初步E-R图图局部局部E-R图图全局全局

39、E-R图图消除不必要的冗余消除不必要的冗余8.2.3 概念设计阶段概念设计阶段8.2.3 概念设计阶段概念设计阶段(1) 合并局部合并局部E-R图,生成全局图,生成全局E-R图图 各局部各局部-图存在冲突图存在冲突 各个局部应用所面向的问题不同且由不各个局部应用所面向的问题不同且由不同的设计人员进行设计同的设计人员进行设计 各个局部各个局部E-R图之间必定会存在许多不图之间必定会存在许多不一致的地方冲突一致的地方冲突合并局部合并局部E-R图的主要工作与关键所在:图的主要工作与关键所在:合理合理消除各局部消除各局部E-R图的冲突。图的冲突。8.2.3 概念设计阶段概念设计阶段 三种主要的冲突类型

40、:三种主要的冲突类型:1. 属性冲突属性冲突 属性域冲突:属性值的类型、取值范围或取属性域冲突:属性值的类型、取值范围或取值集合不同。值集合不同。 属性取值单位冲突属性取值单位冲突解决方法:通常用讨论、协商等行政手段加以解决解决方法:通常用讨论、协商等行政手段加以解决8.2.3 概念设计阶段概念设计阶段2. 命名冲突命名冲突 同名异义同名异义:不同意义的对象在不同的局部应用:不同意义的对象在不同的局部应用中具有相同的名字。中具有相同的名字。 异名同义(一义多名)异名同义(一义多名):同一意义的对象在不:同一意义的对象在不同的局部应用中具有不同的名字。同的局部应用中具有不同的名字。解决方法:通常

41、用讨论、协商等行政手段加以解决解决方法:通常用讨论、协商等行政手段加以解决注:命名冲突可能发生在属性级、实体级、联系注:命名冲突可能发生在属性级、实体级、联系级上,其中属性的命名冲突更为常见。级上,其中属性的命名冲突更为常见。8.2.3 概念设计阶段概念设计阶段3. 结构冲突结构冲突 同一对象在不同应用中具有不同的抽象同一对象在不同应用中具有不同的抽象例:例:“系系”在某一局部应用中被当作实体,而在某一局部应用中被当作实体,而在另一局部应用中则被当作属性。在另一局部应用中则被当作属性。解决方法:通常是把属性变换为实体或把实体解决方法:通常是把属性变换为实体或把实体变换为属性,使同一对象具有相同

42、的抽象。但变换为属性,使同一对象具有相同的抽象。但变换时要遵循两个准则。变换时要遵循两个准则。8.2.3 概念设计阶段概念设计阶段 同一实体在不同分同一实体在不同分E-R图中所包含的属性不完图中所包含的属性不完全相同,或者属性的排列次序不完全相同。全相同,或者属性的排列次序不完全相同。 产生原因产生原因:不同的局部应用关心的是该实体:不同的局部应用关心的是该实体的不同侧面。的不同侧面。 解决方法解决方法:使该实体的属性取各分:使该实体的属性取各分E-R图中图中属性的并集,再适当调整属性的次序。属性的并集,再适当调整属性的次序。8.2.3 概念设计阶段概念设计阶段学生学生学号学号 姓名姓名性别性

43、别平均成绩平均成绩(a)在局部应用在局部应用A中中学生学生学号学号 姓名姓名出生日期出生日期年级年级所在系所在系 (b)在局部应用在局部应用B中中(c)合并后合并后学生学生 学号学号出生出生日期日期年级年级所在系所在系 平均平均成绩成绩姓名姓名性别性别8.2.3 概念设计阶段概念设计阶段 实体之间的联系在不同局部视图中呈现不同的类型实体之间的联系在不同局部视图中呈现不同的类型 例:实体例:实体E1与与E2在局部应用在局部应用A中是多对多联系,而中是多对多联系,而在局部应用在局部应用B中是一对多联系。中是一对多联系。 在局部应用在局部应用X中中E1与与E2发生联系,而在局部应用发生联系,而在局部

44、应用Y中中E1、E2、E3三者之间有联系。三者之间有联系。 解决方法:根据应用语义对实体联系的类型进行解决方法:根据应用语义对实体联系的类型进行综合或调整。综合或调整。8.2.3 概念设计阶段概念设计阶段产品产品零件零件构成构成nm数量数量(a)E-R图图1产品产品零件零件供应供应np数量数量(b)E-R图图2供应商供应商m构成构成nm数量数量1(c)合并后)合并后产品产品零件零件供应供应np数量数量2供应商供应商m8.2.3 概念设计阶段概念设计阶段(2) 优化:消除不必要的冗余,设计全局优化:消除不必要的冗余,设计全局E-R图图什么是冗余?什么是冗余? 冗余的数据冗余的数据:是指可由基本数

45、据导出的数据。:是指可由基本数据导出的数据。冗余的联系冗余的联系:是指可由其他联系导出的联系。:是指可由其他联系导出的联系。 冗余数据和冗余联系容易破坏数据库的完整性,冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难。给数据库维护增加困难。8.2.3 概念设计阶段概念设计阶段消除冗余的方法分析方法消除冗余的方法分析方法 以数据字典和数据流图为依据,根据数据字典中以数据字典和数据流图为依据,根据数据字典中关于数据项之间逻辑关系的说明来消除冗余。关于数据项之间逻辑关系的说明来消除冗余。例例: 教师工资单中包括该教师的基本工资、各种补贴、教师工资单中包括该教师的基本工资、各种补贴、应扣

46、除的房租水电费以及实发工资。应扣除的房租水电费以及实发工资。分析:由于实发工资可以由前面各项推算出来,因此可以分析:由于实发工资可以由前面各项推算出来,因此可以去掉,在需要查询实发工资时根据基本工资、各种补贴、去掉,在需要查询实发工资时根据基本工资、各种补贴、应扣除的房租水电费数据临时生成。应扣除的房租水电费数据临时生成。8.2.3 概念设计阶段概念设计阶段前面得到的前面得到的E-RE-R图中存在着冗余数据和冗余联系:图中存在着冗余数据和冗余联系:(1)(1)冗余数据冗余数据:学生实体中的年龄属性可以由出生日:学生实体中的年龄属性可以由出生日期推算出来,属于冗余数据,应该去掉。期推算出来,属于

47、冗余数据,应该去掉。(2)(2)冗余联系冗余联系:“系系”实体与实体与“课程课程”实体之间的实体之间的“开设开设”联系,可以由联系,可以由“系系”与与“教师教师”实体之实体之间的间的“属于属于”联系、联系、“教师教师”与与“课程课程”实体之实体之间的间的“讲授讲授”联系推导出来,所以属于冗余的联联系推导出来,所以属于冗余的联系。系。专业班级学生开设专业名拥有包含专业号班级号班级名学号姓名性别出生日期课程教师课程名属于讲授课程号系名教师号姓名性别职称系系号负责负责人性别性别工号m n n 1 1 1 1m n 1 n n n 1选修成绩8.2.4 逻辑设计阶段逻辑设计阶段 逻辑结构设计的任务逻辑

48、结构设计的任务 概念结构是各种数据模型的共同基础;概念结构是各种数据模型的共同基础; 为了能够用某一为了能够用某一DBMS实现用户需求,还必须实现用户需求,还必须将概念结构设计好的将概念结构设计好的E-R图进一步转化为相应图进一步转化为相应的数据模型,这正是数据库逻辑结构设计所要的数据模型,这正是数据库逻辑结构设计所要完成的任务。完成的任务。 逻辑结构设计的步骤逻辑结构设计的步骤 将概念结构转化为一般的关系、网状、层次模型;将概念结构转化为一般的关系、网状、层次模型; 将转化来的关系、网状、层次模型向特定将转化来的关系、网状、层次模型向特定DBMS支支持下的数据模型转换;持下的数据模型转换;

49、对数据模型进行优化。对数据模型进行优化。8.2.4 逻辑设计阶段逻辑设计阶段转换转换规则规则DBMS的的特点和限制特点和限制优化优化方法方法概念结构概念结构基本基本E-R图图一般数据模型一般数据模型关系、网状、层次关系、网状、层次特定的特定的DBMS支持下的数据支持下的数据模型模型优化的优化的数据模型数据模型 要解决的问题要解决的问题 如何将实体和实体之间的联系转换为关系模式;如何将实体和实体之间的联系转换为关系模式; 如何确定这些关系模式的属性和码。如何确定这些关系模式的属性和码。 转换内容转换内容 转换原则转换原则8.2.4 逻辑设计阶段逻辑设计阶段 转换内容转换内容 E-R图由实体、实体

50、的属性和实体之间的联系图由实体、实体的属性和实体之间的联系三个要素组成;三个要素组成; 关系模型的逻辑结构是一组关系模式的集合;关系模型的逻辑结构是一组关系模式的集合; 将将E-R图转换为关系模型:图转换为关系模型:将实体、实体的属将实体、实体的属性和实体之间的联系转化为关系模式性和实体之间的联系转化为关系模式。8.2.4 逻辑设计阶段逻辑设计阶段 转换原则转换原则 一个实体型转换为一个关系模式:一个实体型转换为一个关系模式: 关系的属性:实体型的属性关系的属性:实体型的属性 关系的码:实体型的码关系的码:实体型的码例,学生实体可以转换为如下关系模式:例,学生实体可以转换为如下关系模式:学生(

51、学生(学号学号,姓名,性别,出生日期),姓名,性别,出生日期) 系、负责人、教师、课程、专业、班级都分别转换为一个系、负责人、教师、课程、专业、班级都分别转换为一个关系模式。关系模式。8.2.4 逻辑设计阶段逻辑设计阶段2. 一个一个1:1联系联系可转换为一个独立的关系模式也可可转换为一个独立的关系模式也可以与任意一端对应的关系模式合并:以与任意一端对应的关系模式合并: 转换为一个独立的关系模式:转换为一个独立的关系模式: 关系的属性关系的属性:与该联系相连的各实体的码以及:与该联系相连的各实体的码以及联系本身的属性联系本身的属性 关系的码关系的码:每个实体的码均是该关系的候选码:每个实体的码

52、均是该关系的候选码 与某一端对应的关系模式合并:与某一端对应的关系模式合并: 关系的属性关系的属性:在该关系模式中加入对应关系的:在该关系模式中加入对应关系的码和联系本身的属性码和联系本身的属性 关系的码关系的码:不变:不变8.2.4 逻辑设计阶段逻辑设计阶段例:例:“负责负责”联系为联系为1:1联系,可以有三种转换方法:联系,可以有三种转换方法:(1)转换为一个独立的关系模式:)转换为一个独立的关系模式: 负责(负责(系号系号,工号),工号) 或或 负责(系号,负责(系号,工号工号)2)“负责负责”联系与系关系模式合并,则只需在系关系中加入联系与系关系模式合并,则只需在系关系中加入负责人关系

53、的码,即职工号:负责人关系的码,即职工号:系:(系:(系号系号,系名,系名,工号工号)(3)“负责负责”联系与负责人关系模式合并,则只需在负责人联系与负责人关系模式合并,则只需在负责人关系中加入系关系的码,即班级号:关系中加入系关系的码,即班级号: 负责人:(负责人:(工号工号,姓名,性别,姓名,性别,系号系号)8.2.4 逻辑设计阶段逻辑设计阶段注意:注意: 从理论上讲,从理论上讲,1:1联系可以与任意一端对应的关系联系可以与任意一端对应的关系模式合并。模式合并。 但在一些情况下,与不同的关系模式合并效率会但在一些情况下,与不同的关系模式合并效率会大不一样。因此究竟应该与哪端的关系模式合并大

54、不一样。因此究竟应该与哪端的关系模式合并需要依应用的具体情况而定。需要依应用的具体情况而定。 原因:由于连接操作是最费时的操作,所以一般原因:由于连接操作是最费时的操作,所以一般应以尽量减少连接操作为目标。应以尽量减少连接操作为目标。 例如:如果经常要查询某个系的负责人姓名,则将负责联例如:如果经常要查询某个系的负责人姓名,则将负责联系与负责人关系合并更好些。系与负责人关系合并更好些。8.2.4 逻辑设计阶段逻辑设计阶段3. 一个一个1:n联系联系可转换为一个独立的关系模式也可以可转换为一个独立的关系模式也可以与与n端对应的关系模式合并:端对应的关系模式合并: 转换为一个独立的关系模式:转换为

55、一个独立的关系模式: 关系的属性关系的属性:与该联系相连的各实体的码以及:与该联系相连的各实体的码以及联系本身的属性联系本身的属性 关系的码关系的码:n端实体的码端实体的码与与n端对应的关系模式合并:端对应的关系模式合并: 关系的属性关系的属性:在:在n端关系模式中加入端关系模式中加入1端关系端关系的码和联系本身的属性的码和联系本身的属性 关系的码关系的码:不变:不变8.2.4 逻辑设计阶段逻辑设计阶段例:例:“开设开设”联系为联系为1:n(系(系:专业)联系,可专业)联系,可以有两种转换方法:以有两种转换方法:(1)转换为一个独立的关系模式:)转换为一个独立的关系模式: 开设(系号,开设(系

56、号,专业号专业号)(2)将其与专业关系模式合并:)将其与专业关系模式合并:专业(专业(专业号专业号,专业名,专业名,系号系号)8.2.4 逻辑设计阶段逻辑设计阶段4. 一个一个m:n联系可转换为一个关系模式:联系可转换为一个关系模式: 关系的属性:与该联系相连的各实体的码以及关系的属性:与该联系相连的各实体的码以及联系本身的属性联系本身的属性 关系的码关系的码:各实体码的组合:各实体码的组合 例,例,“选修选修”联系是一个联系是一个m:n联系,可以将它转换为如下联系,可以将它转换为如下关系模式,其中学号与课程号为关系的组合码:关系模式,其中学号与课程号为关系的组合码: 选修(选修(学号,课程号

57、学号,课程号,成绩),成绩)8.2.4 逻辑设计阶段逻辑设计阶段5. 三个或三个以上实体间的一个多元联系可转换为一三个或三个以上实体间的一个多元联系可转换为一个关系模式:个关系模式: 关系的属性关系的属性:与该多元联系相连的各实体的码:与该多元联系相连的各实体的码以及联系本身的属性以及联系本身的属性 关系的码关系的码:各实体码的组合:各实体码的组合mnP项目零件供应供应商数量供应(供应(供应商号,项目号,零件号供应商号,项目号,零件号,数量),数量)8.2.4 逻辑设计阶段逻辑设计阶段6. 具有相同码的关系模式可合并:具有相同码的关系模式可合并: 目的:减少系统中的关系个数目的:减少系统中的关

58、系个数 合并方法:将其中一个关系模式的全部属性加入合并方法:将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性到另一个关系模式中,然后去掉其中的同义属性(可能同名也可能不同名),并适当调整属性的(可能同名也可能不同名),并适当调整属性的次序。次序。例例,关系模式:,关系模式:开设(系号,开设(系号,专业号专业号)专业(专业(专业号专业号,专业名),专业名) 专业(专业(专业号专业号,专业名,系号),专业名,系号)专业班级学生开设专业名拥有包含专业号班级号班级名学号姓名性别出生日期课程教师课程名属于讲授课程号系名教师号姓名性别职称系系号负责负责人性别性别工号m n n 1

59、 1 1 1m n 1 n n n 1选修成绩7个实体个实体7个联系,其个联系,其中:中:1个个1:1联联系,系,4个个1:n联联系,系,2个个m:n联联系。系。教务管理系统的关系模型教务管理系统的关系模型按照上述原则,按照上述原则,教务管理系统中教务管理系统中的实体和联系可以转换的实体和联系可以转换为下列关系模型:为下列关系模型: 系系(系号系号,系名),系名)专业专业(专业号专业号,专业名,专业名,系号系号) 系系:专业的专业的1:n(开设开设) 班级班级(班级号班级号,班级名,班级名,系号系号) 专业专业:班级的班级的1:n(拥有拥有) 学生学生(学号学号,姓名,性别,出生日期,姓名,性

60、别,出生日期,班级号班级号) 班级班级:学生的学生的1:n(包含包含) 课程课程(课程号课程号,课程名),课程名) 教师教师(教师号教师号,姓名,性别,职称,姓名,性别,职称,系号系号) 系系:教师的教师的1:n(属于属于) 选修选修(学号,课号学号,课号,成绩),成绩) 学生学生:课程的课程的m:n(选修选修) 讲授讲授(教师号,课程号教师号,课程号) 教师教师:课程的课程的m:n(讲授讲授) 负责人负责人(工号工号,姓名,性别,姓名,性别,系号系号) 系系:负责人的负责人的1:1(负责负责)8.2.4 逻辑设计阶段逻辑设计阶段 数据库逻辑设计的结果不是唯一的。数据库逻辑设计的结果不是唯一的

温馨提示

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

评论

0/150

提交评论