《数据库课件 第八章 数据库设计.ppt》由会员分享,可在线阅读,更多相关《数据库课件 第八章 数据库设计.ppt(87页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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图)图)数据字典数据字典系统说明书包括:系统说明书包括:新系统要求、新系统要求、方案和概图方案和概图反映新系统信息反映新系统信息流的流的数据流图数据流图某种数据模型某种数据模型关系关系非关系非关系系统结构图系统结构图(模块结构)(模块结构)存储安排存储安排方法选择方法选择存取路径建立存取路径建立模块设计模块设计IPO表表实施实施阶段阶段此同时创建库与模式此同时创建库与模式装入数据装入数据数据库试运行数据库试运行程序编码、
9、程序编码、编译连接、编译连接、测试测试运运行行维护维护性能监测、转储性能监测、转储/恢复恢复数据库重组和重构数据库重组和重构新新旧旧系系统统转转换换、运运行行、维维护护(修修正性、适应性、改善性维护)正性、适应性、改善性维护)IPO表输入:输出:处理:CreatMain()ifthenend分区分区1分区分区2概念概念设计设计逻辑逻辑设计设计物理物理设计设计 设计过程各个阶段的设计描述图设计过程各个阶段的设计描述图 数数据据库库设设计计步步骤骤图图8.2 数据库设计的过程数据库设计的过程1.1.系统分析和数据库设计人员系统分析和数据库设计人员数据库设计的核心人员数据库设计的核心人员自始至终参与
10、数据库设计自始至终参与数据库设计其水平决定了数据库系统的质量其水平决定了数据库系统的质量 数据库设计的准备工作选定参加设计的人员数据库设计的准备工作选定参加设计的人员2.2.用户和用户和DBADBA在数据库设计中也是举足轻重的在数据库设计中也是举足轻重的主要参加需求分析和数据库的运行维护主要参加需求分析和数据库的运行维护积极参与带来的好处:积极参与带来的好处:加速数据库设计加速数据库设计提高数据库设计的质量提高数据库设计的质量 3.3.应用开发人员应用开发人员:在系统实施阶段参与,负责编制程序和在系统实施阶段参与,负责编制程序和准备软硬件环境准备软硬件环境8.2.2 需求分析阶段需求分析阶段
11、需求分析就是分析用户的需要与要求需求分析就是分析用户的需要与要求:需求分析是设计数据库的起点;需求分析是设计数据库的起点;需求分析的结果是否准确地反映了用户的实际要求,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。果是否合理和实用。v 需求分析的任务需求分析的任务:通过详细调查现实世界要处理的对象(组织、部门、企业通过详细调查现实世界要处理的对象(组织、部门、企业等),充分了解原系统(手工系统或计算机系统)工作概等),充分了解原系统(手工系统或计算机系统)工作概况,明确用户各种需求,在
12、此基础上确定新系统的功能。况,明确用户各种需求,在此基础上确定新系统的功能。新系统必须充分考虑今后可能的扩充和改变,不能仅仅按新系统必须充分考虑今后可能的扩充和改变,不能仅仅按当前应用需求来设计数据库。当前应用需求来设计数据库。8.2.2 需求分析阶段需求分析阶段1.调查分析用户活动调查分析用户活动调查组织机构情况,以及各部门的业务活动情况。调查组织机构情况,以及各部门的业务活动情况。2.收集和分析需求数据,确定系统边界收集和分析需求数据,确定系统边界 在熟悉业务活动的基础上,协助用户明确对新系统的在熟悉业务活动的基础上,协助用户明确对新系统的各种需求,包括用户的信息需求、处理需求、安全性和完
13、各种需求,包括用户的信息需求、处理需求、安全性和完整性需求等,并确定哪些功能由计算机或将来由计算机完整性需求等,并确定哪些功能由计算机或将来由计算机完成,哪些活动由人工完成。成,哪些活动由人工完成。3.编写系统需求分析报告编写系统需求分析报告 数据流图、功能模块图、数据字典等。数据流图、功能模块图、数据字典等。v 需求分析的步骤:需求分析的步骤:8.2.2 需求分析阶段需求分析阶段v 需求分析的重点:需求分析的重点:“数据数据”和和处理处理1)信息要求)信息要求:用户需要从数据库中获得信息的内容与性质;用户需要从数据库中获得信息的内容与性质;由用户的信息要求可以导出数据要求,即在数据库中需由用
14、户的信息要求可以导出数据要求,即在数据库中需要存储哪些数据。要存储哪些数据。2 2)处理要求:)处理要求:对处理功能的要求;对处理功能的要求;对处理响应时间的要求;对处理响应时间的要求;对处理方式的要求对处理方式的要求(批处理批处理/联机处理联机处理)。3 3)安全性与完整性要求)安全性与完整性要求8.2.2 需求分析阶段需求分析阶段v 需求分析的难点:确定用户的最终需求需求分析的难点:确定用户的最终需求 用户缺少计算机知识,开始时无法确定计算机究竟能为用户缺少计算机知识,开始时无法确定计算机究竟能为自己做什么,不能做什么,因此无法准确地表达自己的需自己做什么,不能做什么,因此无法准确地表达自
15、己的需求,他们所提出的需求往往不断地变化;求,他们所提出的需求往往不断地变化;设计人员缺少用户的专业知识,不易理解用户的真正需设计人员缺少用户的专业知识,不易理解用户的真正需求,甚至误解用户的需求;求,甚至误解用户的需求;新的硬、软件技术的出现也会使用户需求发生变化。新的硬、软件技术的出现也会使用户需求发生变化。v 解决方法解决方法:设计人员必须采用有效的方法,与用户不设计人员必须采用有效的方法,与用户不断深入地进行交流,才能逐步确定用户的实际需求。断深入地进行交流,才能逐步确定用户的实际需求。:数据及其流动方向,直线上方标明数据流名:数据及其流动方向,直线上方标明数据流名称。称。:数据处理,
16、圆圈内标明处理名称。:数据处理,圆圈内标明处理名称。:数据流的终点和源点,方框内标明相应的名:数据流的终点和源点,方框内标明相应的名称。称。:文件和数据存储,在其内标明相应名称。:文件和数据存储,在其内标明相应名称。8.2.2 需求分析阶段需求分析阶段v 数据流图数据流图DFD(Data Flow Diagrams)绘制要求:绘制要求:自顶向下,逐步细化自顶向下,逐步细化作用:作用:可以形象的表示数据流与各业务活动的关系,可以形象的表示数据流与各业务活动的关系,是需求分析的工具和分析结构的描述手段。是需求分析的工具和分析结构的描述手段。8.2.2 需求分析阶段需求分析阶段实例:假设我们要开发一
17、个学校管理系统。实例:假设我们要开发一个学校管理系统。1经过可行性分析和初步需求调查,抽象出该系统经过可行性分析和初步需求调查,抽象出该系统最高层数最高层数据流图据流图,该系统由教师管理子系统、学生管理子系统、后,该系统由教师管理子系统、学生管理子系统、后勤管理子系统、图书管理子系统,每个子系统分别配备一勤管理子系统、图书管理子系统,每个子系统分别配备一个开发小组。个开发小组。2进一步细化各个子系统。进一步细化各个子系统。其中其中学生管理子系统学生管理子系统开发小组通过进行进一步的需求调查,开发小组通过进行进一步的需求调查,明确了该子系统的主要功能是进行明确了该子系统的主要功能是进行学籍管理学
18、籍管理和和课程管理课程管理,包括学生报到、入学、毕业的管理,学生上课情况的管理。包括学生报到、入学、毕业的管理,学生上课情况的管理。通过详细的信息流程分析和数据收集后,他们生成了该子通过详细的信息流程分析和数据收集后,他们生成了该子系统的数据流图。系统的数据流图。数据流图数据流图8.2.2 需求分析阶段需求分析阶段数据字典是各类数据描述的集合。数据字典是各类数据描述的集合。数据字典是进行详细的数据收集和数据分析所数据字典是进行详细的数据收集和数据分析所获得的主要结果。获得的主要结果。数据字典用来说明或描述系统中数据字典用来说明或描述系统中数据的静态组数据的静态组成结构成结构,是,是数据库系统中
19、各类数据属性的清单,数据库系统中各类数据属性的清单,在数据库设计中占有很重要的地位。在数据库设计中占有很重要的地位。数据字典在需求分析阶段建立,在数据库设计数据字典在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善。过程中不断修改、充实、完善。v 数据字典数据字典的用途:的用途:8.2.2 需求分析阶段需求分析阶段数据项数据项数据结构数据结构数据流数据流数据存储数据存储处理过程处理过程v 数据字典的内容:数据字典的内容:数据项是数据的最小组成单位;数据项是数据的最小组成单位;若干个数据项可以组成一个数据结构;若干个数据项可以组成一个数据结构;数据字典通过对数据项和数据结构的定义来描述数
20、据字典通过对数据项和数据结构的定义来描述数据流、数据存储的逻辑内容。数据流、数据存储的逻辑内容。8.2.2 需求分析阶段需求分析阶段数据项是不可再分的数据单位。数据项是不可再分的数据单位。数据项描述数据项名,数据项含义说明,别名,数据数据项描述数据项名,数据项含义说明,别名,数据类型,长度,取值范围,取值含义,与其他数据项的逻辑类型,长度,取值范围,取值含义,与其他数据项的逻辑关系关系1.数据项数据项数据项:以数据项:以“学号学号”为例:为例:数据项名:数据项名:学号学号含义说明:含义说明:唯一标识每个学生唯一标识每个学生别名:别名:学生编号学生编号类型:类型:字符型字符型长度:长度:8 8取
21、值范围:取值范围:00000000-9999999900000000-99999999取值含义:取值含义:前四位标别入学年份,后四位按顺序编号。前四位标别入学年份,后四位按顺序编号。8.2.2 需求分析阶段需求分析阶段数据结构反映了数据之间的组合关系。数据结构反映了数据之间的组合关系。可以由若干个数据项组成,也可以由若干个数据结构组可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合组成。成,或由若干个数据项和数据结构混合组成。数据结构描述数据结构名,含义说明,组成数据结构描述数据结构名,含义说明,组成:数据项数据项或数据结构或数据结构2.数据结构数据结构数据结构
22、数据结构 :以以“学生学生”为例为例 数据结构名:学生数据结构名:学生 含义说明:课程管理子系统的主体数据结构,定义了一个学含义说明:课程管理子系统的主体数据结构,定义了一个学生的有关信息。生的有关信息。组组 成:学号,姓名,性别,年龄,所在系,年级成:学号,姓名,性别,年龄,所在系,年级 8.2.2 需求分析阶段需求分析阶段3.数据流数据流 数据流是数据结构在系统内传输的路径。数据流是数据结构在系统内传输的路径。数据流描述数据流名,说明,数据流来源,数据流去数据流描述数据流名,说明,数据流来源,数据流去向,组成向,组成:数据结构,平均流量,高峰期流量数据结构,平均流量,高峰期流量数据流来源:
23、说明该数据流来自哪个过程;数据流来源:说明该数据流来自哪个过程;数据流去向:说明该数据流将到哪个过程去;数据流去向:说明该数据流将到哪个过程去;平均流量:在单位时间里的传输次数;平均流量:在单位时间里的传输次数;高峰期流量:在高峰时期的数据流量。高峰期流量:在高峰时期的数据流量。数据流数据流:“教室安排教室安排”可如下描述:可如下描述:数据流:教室安排数据流:教室安排 说明:学生上课的教室布置说明:学生上课的教室布置 数据流来源:排课数据流来源:排课 数据流去向:上课数据流去向:上课8.2.2 需求分析阶段需求分析阶段4.数据存储数据存储数据存储是数据结构停留或保存的地方,也是数据流的来源数据
24、存储是数据结构停留或保存的地方,也是数据流的来源和去向之一。和去向之一。数据存储描述数据存储名,说明,编号,输入的数据流数据存储描述数据存储名,说明,编号,输入的数据流 ,输出的数据流输出的数据流 ,组成,组成:数据结构,数据量,存取频度,数据结构,数据量,存取频度,存取方式存取方式数据存储数据存储:“学生登记表学生登记表”可如下描述:可如下描述:数据存储:学生登记表数据存储:学生登记表 说明:记录学生的基本情况说明:记录学生的基本情况 数据量:每年数据量:每年30003000张张 存取方式:随机存取存取方式:随机存取 8.2.2 需求分析阶段需求分析阶段5.处理过程处理过程其具体处理逻辑一般
25、用判定表或判定树来描述。其具体处理逻辑一般用判定表或判定树来描述。处理过程描述处理过程名,说明,输入处理过程描述处理过程名,说明,输入:数据流,输数据流,输出出:数据流,处理数据流,处理:简要说明简要说明处理过程处理过程:“分配宿舍分配宿舍”可如下描述:可如下描述:处理过程:分配宿舍处理过程:分配宿舍说明:为所有新生分配学生宿舍说明:为所有新生分配学生宿舍输入:学生,宿舍输入:学生,宿舍输出:宿舍安排输出:宿舍安排处理:在新生报到后,为所有新生分配学生宿舍。要求同一处理:在新生报到后,为所有新生分配学生宿舍。要求同一间宿舍只能安排同一性别的学生,同一个学生只能安排在间宿舍只能安排同一性别的学生
26、,同一个学生只能安排在一个宿舍中,安排新生宿舍其处理时间应不超过一个宿舍中,安排新生宿舍其处理时间应不超过1515分钟。分钟。8.2.3 概念设计阶段概念设计阶段 在进行数据库设计时,通常先将现实世界中的客观对象在进行数据库设计时,通常先将现实世界中的客观对象首先抽象为不依赖任何具体机器的信息结构,这种结构不首先抽象为不依赖任何具体机器的信息结构,这种结构不是是DBMSDBMS支持的数据模型,而是概念模型(支持的数据模型,而是概念模型(概念结构设计概念结构设计)。然后再把概念模型转换成具体机器上然后再把概念模型转换成具体机器上DBMSDBMS支持的数据模型。支持的数据模型。客观事物客观事物(需
27、求分析)(需求分析)概念模型概念模型DBMS支持的数据模型支持的数据模型现实世界现实世界信息世界信息世界机器世界机器世界认识、抽象认识、抽象 概念模型概念模型是一个过渡是一个过渡的中间层次的中间层次8.2.3 概念设计阶段概念设计阶段概念结构是各种数据模型的共同基础,它比数据概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。模型更独立于机器、更抽象,从而更加稳定。概念结构设计:将需求分析得到的用户需求抽象概念结构设计:将需求分析得到的用户需求抽象为信息结构即为信息结构即概念模型概念模型的过程。的过程。概念结构设计的特点:概念结构设计的特点:1)能真实、充分地反映
28、现实世界;)能真实、充分地反映现实世界;2)易于理解;)易于理解;3)易于更改;)易于更改;4)易于向关系、网状、层次等各种数据模型转换。)易于向关系、网状、层次等各种数据模型转换。描述工具:描述工具:E-R模型模型8.2.3 概念设计阶段概念设计阶段v 设计方法:设计方法:自顶向下:自顶向下:首先定义全局概念结构的框架,然首先定义全局概念结构的框架,然后逐步细化。后逐步细化。全局概念模式全局概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式需求需求8.2.3 概念设计阶段概念设计阶段 自底向上自底向上:首先定义各局部应用的概念结构,首先定
29、义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构然后将它们集成起来,得到全局概念结构全局概念模式全局概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式概念模式子需求子需求子需求子需求子需求子需求子需求子需求8.2.3 概念设计阶段概念设计阶段 逐步扩张逐步扩张:首先定义最重要的核心概念结构,首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构。结构,直至总体概念结构。核心核心概念结构概念结构全局全局概念结构概念结构核心需求核心需求需求需求8.2.3
30、概念设计阶段概念设计阶段 混合策略混合策略:将自顶向下和自底向上相结合,用将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。骨架集成由自底向上策略中设计的各局部概念结构。v 常用策略:自底向上方法常用策略:自底向上方法n自顶向下地进行需求分析自顶向下地进行需求分析n自底向上地设计概念结构自底向上地设计概念结构8.2.3 概念设计阶段概念设计阶段全局概念模式全局概念模式概念模式概念模式1概念模式概念模式2概念模式概念模式1.1 概念模式概念模式1.2概念模式概念模式n.1 概念模
31、式概念模式n.2需求需求1.1需求需求1.2需求需求n.1需求需求n.2需求需求1需求需求n需求需求需求分析需求分析自顶向下自顶向下概念结构设计概念结构设计自底向上自底向上8.2.3 概念设计阶段概念设计阶段v自底向上概念结构设计步骤:自底向上概念结构设计步骤:n第第1步:抽象数据并设计局部视图步:抽象数据并设计局部视图n第第2步:集成局部视图,得到全局概念结构步:集成局部视图,得到全局概念结构数据抽象、数据抽象、局部视图的设计局部视图的设计视图集成视图集成需求分析需求分析逻辑结构设计逻辑结构设计返回用户,返回用户,征求意见直征求意见直到满意为止到满意为止DFD、DD分分ER图图总总ER图图8
32、.2.3 概念设计阶段概念设计阶段1)选择局部)选择局部E-R图的描述范围图的描述范围需求分析阶段,已用多层数据流图和数据字典描述了整个需求分析阶段,已用多层数据流图和数据字典描述了整个系统。系统。设计分设计分E-R图首先需要根据系统的具体情况,在多层的数图首先需要根据系统的具体情况,在多层的数据流图中据流图中选择一个适当层次的数据流图选择一个适当层次的数据流图,让这组图中每一,让这组图中每一部分对应一个局部应用,然后以这一层次的数据流图为出部分对应一个局部应用,然后以这一层次的数据流图为出发点,设计分发点,设计分E-R图。图。通常以通常以中层数据流图中层数据流图作为设计分作为设计分E-R图的
33、依据。原因:图的依据。原因:高层数据流图只能反映系统的概貌;高层数据流图只能反映系统的概貌;中层数据流图能较好地反映系统中各局部应用的子系中层数据流图能较好地反映系统中各局部应用的子系统组成;统组成;低层数据流图过细描述整个系统。低层数据流图过细描述整个系统。v 局部局部E-R模型设计模型设计8.2.3 概念设计阶段概念设计阶段2.画出局部画出局部E-R图图任务:标定局部应用中的实体、属性、码,实体间的联系。任务:标定局部应用中的实体、属性、码,实体间的联系。将各局部应用涉及的数据分别从数据字典中抽取出将各局部应用涉及的数据分别从数据字典中抽取出来,参照数据流图,标定各局部应用中的实体、实来,
34、参照数据流图,标定各局部应用中的实体、实体的属性、标识实体的码,确定实体之间的联系及体的属性、标识实体的码,确定实体之间的联系及其类型(其类型(1:1,1:n,m:n)。)。例:例:某校的教务管理系统中,分为学籍管理、选某校的教务管理系统中,分为学籍管理、选课管理和教师开课管理部分。课管理和教师开课管理部分。学籍管理语义:学籍管理语义:(1 1)一个系开设有多个专业,一个专业只能属于一个系;)一个系开设有多个专业,一个专业只能属于一个系;(2 2)一个专业有多个班级,一个班级只属于一个专业;)一个专业有多个班级,一个班级只属于一个专业;(3 3)一个班级有多个学生,一个学生只属于一个班级。)一
35、个班级有多个学生,一个学生只属于一个班级。系专业班级学生开设系号专业名拥有包含系名专业号班级号班级名学号姓名性别年龄8.2.3 概念设计阶段概念设计阶段1m1m1m8.2.3 概念设计阶段概念设计阶段选课管理语义:选课管理语义:(1 1)一个系可以开设多门课程,不同系开设的课程必须不同。)一个系可以开设多门课程,不同系开设的课程必须不同。(2 2)一个学生可选修多门课程,一门课程可为多个学生选修;)一个学生可选修多门课程,一门课程可为多个学生选修;课程学生选修学号课程名姓名课程号系号系开设成绩所在系1nmn8.2.3 概念设计阶段概念设计阶段教师开课管理语义:教师开课管理语义:(1 1)一个部
36、门可有多名教师,一名教师只能属于一个部门;)一个部门可有多名教师,一名教师只能属于一个部门;(2 2)一个部门只有一个负责人;)一个部门只有一个负责人;(2 2)一名教师可讲授多门课程,一门课程可为多名教师讲授。)一名教师可讲授多门课程,一门课程可为多名教师讲授。课程教师课程名属于讲授课程号部门名教师号姓名性别职称部门部门号负责负责人性别性别工号 m n n 1 1 1 对局部概念模型进行合并,集成为一个整体的对局部概念模型进行合并,集成为一个整体的数据概念结构即总数据概念结构即总E-RE-R图。图。集成的两种方式:集成的两种方式:)多元集成法多元集成法通常用于局部视图比较简单时。通常用于局部
37、视图比较简单时。)二元集成法二元集成法首先集成两个局部视图(通常是比较关键的两首先集成两个局部视图(通常是比较关键的两个局部视图);以后每次将一个新的局部视图个局部视图);以后每次将一个新的局部视图集成进来。集成进来。8.2.3 概念设计阶段概念设计阶段v 局部局部E-R模型的集成模型的集成v 集成局部集成局部E-R图步骤图步骤:合并合并:解决各局部:解决各局部E-R图图之间的冲突,将各分之间的冲突,将各分E R图合并起来生成初步图合并起来生成初步E-R图。图。优化优化:消除不必要的冗余,:消除不必要的冗余,生成全局生成全局E-R图。图。合并合并初步初步E-R图图局部局部E-R图图全局全局E-
38、R图图消除不必要的冗余消除不必要的冗余8.2.3 概念设计阶段概念设计阶段8.2.3 概念设计阶段概念设计阶段(1)合并局部合并局部E-R图,生成全局图,生成全局E-R图图各局部各局部-图存在冲突图存在冲突 各个局部应用所面向的问题不同且由不各个局部应用所面向的问题不同且由不同的设计人员进行设计同的设计人员进行设计 各个局部各个局部E-R图之间必定会存在许多不图之间必定会存在许多不一致的地方冲突一致的地方冲突合并局部合并局部E-R图的主要工作与关键所在:图的主要工作与关键所在:合理合理消除各局部消除各局部E-R图的冲突。图的冲突。8.2.3 概念设计阶段概念设计阶段三种主要的冲突类型:三种主要
39、的冲突类型:1.属性冲突属性冲突属性域冲突:属性值的类型、取值范围或取值属性域冲突:属性值的类型、取值范围或取值集合不同。集合不同。属性取值单位冲突属性取值单位冲突解决方法:通常用讨论、协商等行政手段加以解决解决方法:通常用讨论、协商等行政手段加以解决8.2.3 概念设计阶段概念设计阶段2.命名冲突命名冲突同名异义同名异义:不同意义的对象在不同的局部应用:不同意义的对象在不同的局部应用中具有相同的名字。中具有相同的名字。异名同义(一义多名)异名同义(一义多名):同一意义的对象在不:同一意义的对象在不同的局部应用中具有不同的名字。同的局部应用中具有不同的名字。解决方法:通常用讨论、协商等行政手段
40、加以解决解决方法:通常用讨论、协商等行政手段加以解决注:命名冲突可能发生在属性级、实体级、联系注:命名冲突可能发生在属性级、实体级、联系级上,其中属性的命名冲突更为常见。级上,其中属性的命名冲突更为常见。8.2.3 概念设计阶段概念设计阶段3.结构冲突结构冲突同一对象在不同应用中具有不同的抽象同一对象在不同应用中具有不同的抽象例:例:“系系”在某一局部应用中被当作实体,而在另一局在某一局部应用中被当作实体,而在另一局部应用中则被当作属性。部应用中则被当作属性。解决方法:通常是把属性变换为实体或把实体解决方法:通常是把属性变换为实体或把实体变换为属性,使同一对象具有相同的抽象。变换为属性,使同一
41、对象具有相同的抽象。同一实体在不同分同一实体在不同分E-R图中所包含的属性不完全图中所包含的属性不完全相同,或者属性的排列次序不完全相同。相同,或者属性的排列次序不完全相同。产生原因:不同的局部应用关心的是该实体产生原因:不同的局部应用关心的是该实体的不同侧面。的不同侧面。解决方法:使该实体的属性取各分解决方法:使该实体的属性取各分E-R图中图中属性的并集,再适当调整属性的次序。属性的并集,再适当调整属性的次序。8.2.3 概念设计阶段概念设计阶段学生学生学号学号姓名姓名性别性别平均成绩平均成绩(a)在局部应用在局部应用A中中学生学生学号学号姓名姓名出生日期出生日期年级年级所在系所在系(b)在
42、局部应用在局部应用B中中(c)合并后合并后学生学生学号学号出生出生日期日期年级年级所在系所在系平均平均成绩成绩姓名姓名性别性别8.2.3 概念设计阶段概念设计阶段实体之间的联系在不同局部视图中呈现不同的类型实体之间的联系在不同局部视图中呈现不同的类型例:实体例:实体E1与与E2在局部应用在局部应用A中是多对多联系,而中是多对多联系,而在局部应用在局部应用B中是一对多联系。中是一对多联系。在局部应用在局部应用X中中E1与与E2发生联系,而在局部应用发生联系,而在局部应用Y中中E1、E2、E3三者之间有联系。三者之间有联系。解决方法:根据应用语义对实体联系的类型进行解决方法:根据应用语义对实体联系
43、的类型进行综合或调整。综合或调整。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图图什么是冗余?什么是冗余?冗余的数据冗余的数据:是指可由基本数据导出的数据。:是指可由基本数据导出的数据。冗余的联系冗余的联系:是指可由其他联系导出的联系。:是指可由其他联系导出的联系。冗余数据和冗余
44、联系容易破坏数据库的完整性,给数据库冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难。维护增加困难。消除冗余的方法分析方法消除冗余的方法分析方法以数据字典和数据流图为依据,根据数据字典中关于数据以数据字典和数据流图为依据,根据数据字典中关于数据项之间逻辑关系的说明来消除冗余。项之间逻辑关系的说明来消除冗余。8.2.3 概念设计阶段概念设计阶段前面得到的前面得到的E-RE-R图中存在着冗余数据和冗余联系:图中存在着冗余数据和冗余联系:(1)(1)冗余数据冗余数据:学生实体中的年龄属性可以由出生日:学生实体中的年龄属性可以由出生日期推算出来,属于冗余数据,应该去掉。期推算出来,属于冗
45、余数据,应该去掉。(2)(2)冗余联系冗余联系:“系系”实体与实体与“课程课程”实体之间的实体之间的“开设开设”联系,可以由联系,可以由“系系”与与“教师教师”实体之间实体之间的的“属于属于”联系、联系、“教师教师”与与“课程课程”实体之间实体之间的的“讲授讲授”联系推导出来,所以属于冗余的联系。联系推导出来,所以属于冗余的联系。专业班级学生开设专业名拥有包含专业号班级号班级名学号姓名性别出生日期课程教师课程名属于讲授课程号系名教师号姓名性别职称系系号负责负责人性别性别工号m n n 1 1 1 1m n 1 n n n 1选修成绩8.2.4 逻辑设计阶段逻辑设计阶段逻辑结构设计的任务逻辑结构
46、设计的任务概念结构是各种数据模型的共同基础;概念结构是各种数据模型的共同基础;为了能够用某一为了能够用某一DBMS实现用户需求,还必须实现用户需求,还必须将概念结构设计好的将概念结构设计好的E-R图进一步转化为相应图进一步转化为相应的数据模型,这正是数据库逻辑结构设计所要的数据模型,这正是数据库逻辑结构设计所要完成的任务。完成的任务。逻辑结构设计的步骤逻辑结构设计的步骤将概念结构转化为一般的关系、网状、层次模型;将概念结构转化为一般的关系、网状、层次模型;将将转转化化来来的的关关系系、网网状状、层层次次模模型型向向特特定定DBMS支支持下的数据模型转换;持下的数据模型转换;对数据模型进行优化。
47、对数据模型进行优化。8.2.4 逻辑设计阶段逻辑设计阶段转换转换规则规则DBMS的的特点和限制特点和限制优化优化方法方法概念结构概念结构基本基本E-R图图一般数据模型一般数据模型关系、网状、层次关系、网状、层次特定的特定的DBMS支持下的数据支持下的数据模型模型优化的优化的数据模型数据模型要解决的问题要解决的问题如何将实体和实体之间的联系转换为关系模式;如何将实体和实体之间的联系转换为关系模式;如何确定这些关系模式的属性和码。如何确定这些关系模式的属性和码。转换内容转换内容转换原则转换原则8.2.4 逻辑设计阶段逻辑设计阶段转换内容转换内容E-R图由实体、实体的属性和实体之间的联系图由实体、实
48、体的属性和实体之间的联系三个要素组成;三个要素组成;关系模型的逻辑结构是一组关系模式的集合;关系模型的逻辑结构是一组关系模式的集合;将将E-R图转换为关系模型:图转换为关系模型:将实体、实体的属将实体、实体的属性和实体之间的联系转化为关系模式性和实体之间的联系转化为关系模式。8.2.4 逻辑设计阶段逻辑设计阶段转换原则转换原则 一个实体型转换为一个关系模式:一个实体型转换为一个关系模式:关系的属性:实体型的属性关系的属性:实体型的属性关系的码:实体型的码关系的码:实体型的码例,学生实体可以转换为如下关系模式:例,学生实体可以转换为如下关系模式:学生(学生(学号学号,姓名,性别,出生日期),姓名
49、,性别,出生日期)系、负责人、教师、课程、专业、班级都分别转换为一个系、负责人、教师、课程、专业、班级都分别转换为一个关系模式。关系模式。8.2.4 逻辑设计阶段逻辑设计阶段2.一个一个1:1联系联系可转换为一个独立的关系模式也可可转换为一个独立的关系模式也可以与任意一端对应的关系模式合并:以与任意一端对应的关系模式合并:转换为一个独立的关系模式:转换为一个独立的关系模式:关系的属性关系的属性:与该联系相连的各实体的码以及:与该联系相连的各实体的码以及联系本身的属性联系本身的属性关系的码关系的码:每个实体的码均是该关系的候选码:每个实体的码均是该关系的候选码 与某一端对应的关系模式合并:与某一
50、端对应的关系模式合并:关系的属性关系的属性:在该关系模式中加入对应关系的:在该关系模式中加入对应关系的码和联系本身的属性码和联系本身的属性关系的码关系的码:不变:不变8.2.4 逻辑设计阶段逻辑设计阶段例:例:“负责负责”联系为联系为1:1联系,可以有三种转换方法:联系,可以有三种转换方法:(1)转换为一个独立的关系模式:)转换为一个独立的关系模式:负责(负责(系号系号,工号),工号)或或 负责(系号,负责(系号,工号工号)2)“负责负责”联系与系关系模式合并,则只需在系关系中加入联系与系关系模式合并,则只需在系关系中加入负责人关系的码,即职工号:负责人关系的码,即职工号:系:(系:(系号系号