
六章数据库设计.ppt
128页第六章 数据库设计主要章节※6.1 概述概述 ※6.2 需求分析需求分析※6.3 概念结构设计概念结构设计 ※6.4 逻辑结构设计逻辑结构设计※6.5 物理结构设计物理结构设计 ※6.6 数据库的实现数据库的实现 ※6.7 数据库的运行与维护数据库的运行与维护 本章重要概念 ※(1)数据库设计的两种方法:生命周期法和快数据库设计的两种方法:生命周期法和快速原型法速原型法※(2)概念设计的重要性、主要步骤逻辑设计概念设计的重要性、主要步骤逻辑设计阶段的主要步骤阶段的主要步骤※(3)ER模型的基本元素,属性的分类,联系的模型的基本元素,属性的分类,联系的元数、连通词、基数采用元数、连通词、基数采用ER方法的概念设方法的概念设计步骤※(4)ER模型到关系模型的转换规则采用模型到关系模型的转换规则采用ER方方法的逻辑设计步骤法的逻辑设计步骤※(5)ER模型的扩充:弱实体,超类和子类模型的扩充:弱实体,超类和子类 6.1概述6.1概述主要内容主要内容※数据库设计目标和方法数据库设计目标和方法※数据库设计的基本步骤数据库设计的基本步骤 数据库设计目标和方法数据库设计数据库设计※数据库设计是指对于给定的软、硬件环境,针数据库设计是指对于给定的软、硬件环境,针对现实问题,设计一个较优的数据模型,建立对现实问题,设计一个较优的数据模型,建立相应的数据库结构和数据库应用系统。
相应的数据库结构和数据库应用系统数据库设计目标和方法数据库设计目标数据库设计目标※⑴⑴ 最大限度地满足用户的应用功能需求主要是指用最大限度地满足用户的应用功能需求主要是指用户可以将当前与可预知的将来应用所需要的数据及其户可以将当前与可预知的将来应用所需要的数据及其联系,全部准确地存放在数据库中联系,全部准确地存放在数据库中 ※⑵⑵ 获得良好的数据库性能即要求数据库设计保持良获得良好的数据库性能即要求数据库设计保持良好的数据特性以及对数据的高效率存取和资源的合理好的数据特性以及对数据的高效率存取和资源的合理使用,并使建成的数据库具有良好的数据共享性、独使用,并使建成的数据库具有良好的数据共享性、独立性、完整性及安全性等立性、完整性及安全性等对于关系数据库)(对于关系数据库)※⑶⑶ 对现实世界模拟的精确度要高对现实世界模拟的精确度要高※⑷⑷ 数据库设计应充分利用和发挥现有数据库设计应充分利用和发挥现有DBMS的功能和的功能和性能※⑸⑸ 符合软件工程设计要求,因为应用程序设计本身就符合软件工程设计要求,因为应用程序设计本身就是数据库设计任务的一部分是数据库设计任务的一部分数据库设计目标和方法对于关系数据库:对于关系数据库:※数据要达到一定的规范化程度,避免数据重复数据要达到一定的规范化程度,避免数据重复存储和异常操作。
存储和异常操作※保持实体之间连接的完整性,避免数据库的不保持实体之间连接的完整性,避免数据库的不一致性※满足对事务响应时间的要求满足对事务响应时间的要求※尽可能减少数据的存储量和内外存间数据的传尽可能减少数据的存储量和内外存间数据的传输量※便于数据库的扩充和移植,使系统有更好的适便于数据库的扩充和移植,使系统有更好的适应性数据库设计目标和方法数据库设计方法数据库设计方法 ※⑴⑴ 生命周期法生命周期法v生命周期(生命周期(Life cycle)法就是将整个数据库应用系统的开)法就是将整个数据库应用系统的开发过程分解成若干个阶段,并对每个阶段的目标、任务、方发过程分解成若干个阶段,并对每个阶段的目标、任务、方法作出规定,使整个数据库应用系统的开发过程具有合理的法作出规定,使整个数据库应用系统的开发过程具有合理的组织和科学的秩序组织和科学的秩序※阶段划分:系统分析、系统设计、系统实施、系统运阶段划分:系统分析、系统设计、系统实施、系统运行与维护行与维护 ※主要遵循的原则:主要遵循的原则: v①① 用户参与的原则用户参与的原则 v②② 先逻辑、后物理的原则先逻辑、后物理的原则 v③③ 自顶向下的原则。
自顶向下的原则 v④④ 工作成果描述标准化原则工作成果描述标准化原则需求分析系统设计 系统实施 运行维护 生生命命周周期期法法确定开发的总目标确定开发的总目标,计划计划开发的软件系统功能、性开发的软件系统功能、性能、可靠性及接口等方面能、可靠性及接口等方面的设想并提供一个可做的设想并提供一个可做为设计基础的系统规格说为设计基础的系统规格说明书,包括对软、硬件环明书,包括对软、硬件环境的需求和一整套完整的境的需求和一整套完整的数据流图数据流图 把需求分析阶段所确定的把需求分析阶段所确定的功能细化主要工作是设功能细化主要工作是设计模块结构图和系统的数计模块结构图和系统的数据结构 以某一个或几种特定的以某一个或几种特定的程序设计语言表达上一阶程序设计语言表达上一阶段确定的各模块控制流程段确定的各模块控制流程编制时应遵循结构化程序编制时应遵循结构化程序设计并对已编制好的程设计并对已编制好的程序进行单元调试(分调),序进行单元调试(分调),整体调试(联调)和系统整体调试(联调)和系统测试(验收)测试(验收) 是整个生存期中时间最是整个生存期中时间最长的阶段,重点是将系长的阶段,重点是将系统付诸使用,同时解决统付诸使用,同时解决开发过程中遗留问题,开发过程中遗留问题,改正和改善性能改正和改善性能.数据库设计目标和方法数据库设计目标和方法⑵⑵ 快速原型法快速原型法 ※快速原型(快速原型(Rapid Prototyping)法的基本思想是在)法的基本思想是在初步了解用户的基本要求后,开发人员先建立一个他初步了解用户的基本要求后,开发人员先建立一个他们认为符合用户要求的模式系统交付用户检验,由于们认为符合用户要求的模式系统交付用户检验,由于模型是可以执行的,所以为用户提供了获得感性认识模型是可以执行的,所以为用户提供了获得感性认识的机会。
的机会※优点:优点: v用户可以测试具体实例,直接观察一个实际系统用户可以测试具体实例,直接观察一个实际系统 v有利于准确地定义出用户需求,降低系统开发风险有利于准确地定义出用户需求,降低系统开发风险v适用于中小规模系统的开发适用于中小规模系统的开发 ※缺点:缺点:v具有为用户需求快速生成软件的工具和环境具有为用户需求快速生成软件的工具和环境数据库设计目标和方法⑶⑶ 面向对象法面向对象法※面向对象(面向对象(Object Oriented,简称,简称OO)法是)法是针对面向过程提出的,是区别于传统的结构化针对面向过程提出的,是区别于传统的结构化方法的一种新方法、新思路,是一种基于数据方法的一种新方法、新思路,是一种基于数据抽象的类的组合的自底向上的开发方法抽象的类的组合的自底向上的开发方法※基本步骤:基本步骤:v①① 标识对象和定义类;标识对象和定义类;v②② 组织类间关系;组织类间关系;v③③ 在类层中构造框架;在类层中构造框架;v④④ 建立可复用的类库和系统总框架建立可复用的类库和系统总框架 数据库设计目标和方法面向对象法主要有以下四个特征:面向对象法主要有以下四个特征:※(1) 对象是有关数据和操作的封装体,突破了传统的对象是有关数据和操作的封装体,突破了传统的将数据与操作分离的模式,较好地实现了数据抽象。
将数据与操作分离的模式,较好地实现了数据抽象※(2) 面向对象法的继承性体现了概念分离抽象在对面向对象法的继承性体现了概念分离抽象在对象继承结构上,下层对象继承上层对象的特征(属性象继承结构上,下层对象继承上层对象的特征(属性和操作),因而便于软件系统的演化和功能扩充和操作),因而便于软件系统的演化和功能扩充※(3) 面向对象法用消息将对象动态连接在一起与结面向对象法用消息将对象动态连接在一起与结构化方法中的模块调用不同,面向对象法采用了灵活构化方法中的模块调用不同,面向对象法采用了灵活的消息传递方式,便于在概念上体现并行和分布式结的消息传递方式,便于在概念上体现并行和分布式结构※(4) 面向对象法具有封装性对象将其实现细节封装面向对象法具有封装性对象将其实现细节封装在它的内部,因此无论是对象功能的完善扩充还是对在它的内部,因此无论是对象功能的完善扩充还是对象实现的修改,影响仅限于该对象内部而不会对外界象实现的修改,影响仅限于该对象内部而不会对外界产生影响,这就保证了软件系统的可复用性和可维护产生影响,这就保证了软件系统的可复用性和可维护性 数据库设计的基本步骤运行和维护 实现 物理设计逻辑设计概念设计需求分析 对用户提出的各种要求加以分析,对用户提出的各种要求加以分析,对各种原始数据加以综合、整理,是对各种原始数据加以综合、整理,是形成最终设计目标的首要阶段,也是形成最终设计目标的首要阶段,也是整个数据库设计过程中最困难的阶段。
整个数据库设计过程中最困难的阶段 概念结构设计是对用户需求进行概念结构设计是对用户需求进行进一步抽象、归纳,并形成独立于进一步抽象、归纳,并形成独立于DBMSDBMS和有关软、硬件的概念数据模型和有关软、硬件的概念数据模型的设计过程,这是对现实世界中具体的设计过程,这是对现实世界中具体数据的首次抽象,实现了从现实世界数据的首次抽象,实现了从现实世界到信息世界的转化过程到信息世界的转化过程 逻辑结构设计是将概念结构转逻辑结构设计是将概念结构转化为某个化为某个DBMSDBMS所支持的数据模型,所支持的数据模型,并进行优化的设计过程由于逻辑并进行优化的设计过程由于逻辑结构设计是一个基于具体结构设计是一个基于具体DBMSDBMS的实的实现过程,所以选择什么样的数据模现过程,所以选择什么样的数据模型尤为重要,其次是数据模型的优型尤为重要,其次是数据模型的优化 物理结构设计是将逻辑结构设计物理结构设计是将逻辑结构设计阶段所产生的逻辑数据模型,转换为阶段所产生的逻辑数据模型,转换为某一计算机系统所支持的数据库物理某一计算机系统所支持的数据库物理结构的实现过程。
结构的实现过程 数据库实施阶段,即数据库调试、数据库实施阶段,即数据库调试、试运行阶段一旦数据库物理结构形试运行阶段一旦数据库物理结构形成,就可以用已选定的成,就可以用已选定的DBMSDBMS来定义、来定义、描述相应的数据库结构,装入相应的描述相应的数据库结构,装入相应的数据,以生成完整的数据库数据,以生成完整的数据库 数据库实施阶段结束,标志着数数据库实施阶段结束,标志着数据库系统投入正常运行工作的开始据库系统投入正常运行工作的开始数据库运行及维护的过程,是一个调数据库运行及维护的过程,是一个调整、修改和不断完善的运行过程整、修改和不断完善的运行过程 6.2 需求分析6.2 需求分析主要内容主要内容※需求分析的任务需求分析的任务※需求分析的步骤需求分析的步骤 需求分析的任务※需求分析阶段任务是对系统的整个应用情况作全面的、详需求分析阶段任务是对系统的整个应用情况作全面的、详细的调查,确定企业组织的目标,收集支持系统总的设计细的调查,确定企业组织的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户的需求,目标的基础数据和对这些数据的要求,确定用户的需求,并把这些要求写成用户和数据库设计者都能够接受的文档。
并把这些要求写成用户和数据库设计者都能够接受的文档※需求分析中调查分析的方法很多,通常的办法是对不同层需求分析中调查分析的方法很多,通常的办法是对不同层次的企业管理人员进行个人访问,内容包括业务处理和企次的企业管理人员进行个人访问,内容包括业务处理和企业组织中的各种数据访问的结果应该包括数据的流程、业组织中的各种数据访问的结果应该包括数据的流程、过程之间的接口以及访问者和职员两方面对流程和接口语过程之间的接口以及访问者和职员两方面对流程和接口语义上的核对说明和结论对于某些特殊的目标和数据库的义上的核对说明和结论对于某些特殊的目标和数据库的要求,可以从企业组织中的最高层机构得到要求,可以从企业组织中的最高层机构得到※设计人员还应该了解系统将来要发生的变化,收集未来应设计人员还应该了解系统将来要发生的变化,收集未来应用所涉及的数据,充分考虑到系统可能的扩充和变动,使用所涉及的数据,充分考虑到系统可能的扩充和变动,使系统设计更符合未来发展的趋向,并且易于改动,以减少系统设计更符合未来发展的趋向,并且易于改动,以减少系统维护的代价系统维护的代价※这一阶段的任务如图这一阶段的任务如图※总体信息需求定义了未来系统用到的所有信息,总体信息需求定义了未来系统用到的所有信息,描述了数据之间本质上和概念上的联系,描述描述了数据之间本质上和概念上的联系,描述了实体、属性、组合及联系的性质。
了实体、属性、组合及联系的性质 ※这一阶段的结果是这一阶段的结果是“需求说明书需求说明书”,其主要内,其主要内容是系统的数据流图和数据字典需求说明书容是系统的数据流图和数据字典需求说明书应是一份既切合实际,又具有远见的文档,是应是一份既切合实际,又具有远见的文档,是一个描述新系统的轮廓图一个描述新系统的轮廓图需求分析的任务总体信息需求总体信息需求处理需求处理需求第第1步:需求分析步:需求分析需求分析的步骤※⑴⑴ 分析用户活动,产生用户活动图分析用户活动,产生用户活动图这一步主要了解用户当前的业务活动和职能,搞这一步主要了解用户当前的业务活动和职能,搞清其处理流程(即业务流程)如果一个处理流程比清其处理流程(即业务流程)如果一个处理流程比较复杂,就要把这个处理流程分解成若干个子处理流较复杂,就要把这个处理流程分解成若干个子处理流程,使每个处理流程功能明确、界面清楚,分析之后程,使每个处理流程功能明确、界面清楚,分析之后画出用户活动图(即用户的业务流程图)画出用户活动图(即用户的业务流程图)※⑵⑵ 确定系统范围,产生系统范围图确定系统范围,产生系统范围图这一步是确定系统的边界在和用户经过充分讨这一步是确定系统的边界。
在和用户经过充分讨论的基础上,确定计算机所能进行数据处理的范围,论的基础上,确定计算机所能进行数据处理的范围,确定哪些工作由人工完成,哪些工作由计算机系统完确定哪些工作由人工完成,哪些工作由计算机系统完成,即确定人机界面成,即确定人机界面 ※⑶⑶ 分析用户活动所涉及的数据,产生数据流图分析用户活动所涉及的数据,产生数据流图深入分析用户的业务处理,以数据流图形式表示深入分析用户的业务处理,以数据流图形式表示出数据的流向和对数据所进行的加工出数据的流向和对数据所进行的加工 需求分析的步骤教师教师原始输入原始输入输入输入处理处理成绩成绩登录登录输出输出处理处理教务处教务处输入输入格式化格式化输出输出输出输出格式化格式化成绩文件成绩文件※数据流图数据流图((Data Flow Diagram,简记为,简记为DFD):):是从是从“数据数据”和和“对数据的加工对数据的加工”两方面表达数据处理系两方面表达数据处理系统工作过程的一种图形表示法统工作过程的一种图形表示法※特点特点具有直观、易于被用户和软件人员双方都能理解的一种表具有直观、易于被用户和软件人员双方都能理解的一种表达系统功能的描述方式。
达系统功能的描述方式 ※DFD有四个基本成分:有四个基本成分:v数据流(用箭头表示)数据流(用箭头表示)v加工或处理(用圆圈表示)加工或处理(用圆圈表示)v文件(用双线段表示)文件(用双线段表示)v外部实体(数据流的源点或终点,用方框表示)外部实体(数据流的源点或终点,用方框表示)需求分析的步骤※DFD可作为自顶向下逐步细化时描述对象的工具顶可作为自顶向下逐步细化时描述对象的工具顶层的每一个圆圈(加工处理)都可以进一步细化为第层的每一个圆圈(加工处理)都可以进一步细化为第二层;第二层的每一个圆圈又可以进一步细化为第三二层;第二层的每一个圆圈又可以进一步细化为第三层层……;直到最底层的每一个圆圈已表示一个最基本;直到最底层的每一个圆圈已表示一个最基本的处理动作为止的处理动作为止※DFD可以形象地表示数据流与各业务活动的关系,它可以形象地表示数据流与各业务活动的关系,它是需求分析的工具和分析结果的描述手段是需求分析的工具和分析结果的描述手段※例例6.1 在选课业务的处理流程中,假设开发人员收集在选课业务的处理流程中,假设开发人员收集到以下数据:学生基本信息表、课程表、选课单、选到以下数据:学生基本信息表、课程表、选课单、选课情况一览表、成绩单等。
课情况一览表、成绩单等※通过分析,确认学生基本信息表、课程表、选课单是通过分析,确认学生基本信息表、课程表、选课单是输入选课系统的原始数据,而选课情况一览表以及成输入选课系统的原始数据,而选课情况一览表以及成绩单等是选课系统最终需要输出的数据,如下图所示绩单等是选课系统最终需要输出的数据,如下图所示需求分析的步骤系统原始数据输入系统原始数据输入学生学生选课系统选课系统学生基本信息学生基本信息学生选课信息学生选课信息课程成绩课程成绩课程信息课程信息个人成绩单个人成绩单选课情况一览表选课情况一览表 某课程成绩单某课程成绩单系统输出数据系统输出数据学生选课系统是如何对系统的原始数据进行处理最后得到系统的学生选课系统是如何对系统的原始数据进行处理最后得到系统的输出数据呢?下面图给出了学生选课系统的整个数据流图,它是前面图输出数据呢?下面图给出了学生选课系统的整个数据流图,它是前面图的进一步分解和细化数据流图是一种从数据的角度描述数据作为输入的进一步分解和细化数据流图是一种从数据的角度描述数据作为输入进入系统,经受若干加工处理,或者合并,或者分解,或者存储,最后进入系统,经受若干加工处理,或者合并,或者分解,或者存储,最后输出的整个过程。
输出的整个过程 需求分析的步骤课程信息课程信息学生基本信息学生基本信息个人成绩单个人成绩单选课情况一览表选课情况一览表某课程成绩单某课程成绩单查询结果查询结果查询结果查询结果查询结果查询结果系统原始数据系统原始数据系统输出数据系统输出数据学生基本信息学生基本信息课程信息课程信息学生选课信息学生选课信息学生信学生信息录入息录入选课信选课信息录入息录入成绩录入成绩录入查询个人查询个人所有课程所有课程成绩成绩课程信课程信息录入息录入查询课程查询课程的的选课情况选课情况查询某查询某门课程的门课程的所所有成绩有成绩学生选课系统的学生选课系统的0 0层数据流图层数据流图 需求分析的步骤※⑷⑷ 分析系统数据,产生数据字典分析系统数据,产生数据字典数据字典提供了对数据库数据描述的集中管数据字典提供了对数据库数据描述的集中管理,它的功能是存储和检索各种数据描述(称理,它的功能是存储和检索各种数据描述(称为元数据为元数据Metadata),如叙述性的数据定义等,),如叙述性的数据定义等,并且为并且为DBA提供有关的报告提供有关的报告 ※数据字典中通常包括数据字典中通常包括 ::v数据项数据项v数据结构数据结构v数据流数据流v数据存储数据存储v加工过程加工过程 例例6.2 在上图中有一个数据在上图中有一个数据流查询个人所有课程成绩,每个流查询个人所有课程成绩,每个人的成绩单有一个数据项为学生人的成绩单有一个数据项为学生的学号的学号SNO。
在数据字典中对此在数据字典中对此数据项如下描述数据项如下描述数据项名:数据项名:SNOSNO说说 明:标识一名学生明:标识一名学生类类 型:型:CHAR(9)CHAR(9)长长 度:度:9 9别别 名:学生学号名:学生学号取值范围:取值范围:000000000000000000~~999999999999999999需求分析的步骤①① 数据项数据项 ※数据项是数据的最小单位,对数据项的描述,数据项是数据的最小单位,对数据项的描述,通常包括数据项名、含义、别名、类型、长度、通常包括数据项名、含义、别名、类型、长度、取值范围以及与其他数据项的逻辑关系取值范围以及与其他数据项的逻辑关系需求分析的步骤②② 数据结构数据结构※数据结构反映了数据之间的组合关系数据结构反映了数据之间的组合关系※一个数据结构可以由若干个数据项组成,也可一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项以由若干个数据结构组成,或由若干个数据项和数据结构混合而成和数据结构混合而成※它包括数据结构名、含义及组成该数据结构的它包括数据结构名、含义及组成该数据结构的数据项名或数据结构名。
数据项名或数据结构名需求分析的步骤数据流名:个人成绩查询数据流名:个人成绩查询说说 明:学生可以根据所学专业、班级号、学生姓名、明:学生可以根据所学专业、班级号、学生姓名、 课程名称来查询个人成绩课程名称来查询个人成绩来来 源:学生选课信息源:学生选课信息去去 向:输出到个人成绩单向:输出到个人成绩单数据结构:个人成绩查询数据结构:个人成绩查询 所学专业所学专业 班级号班级号 学生姓名学生姓名 课程名称课程名称③③ 数据流数据流※数据流可以是数据项,也可以是数据结构,表示某一数据流可以是数据项,也可以是数据结构,表示某一加工处理过程的输入或输出数据对数据流的描述应加工处理过程的输入或输出数据。
对数据流的描述应包括数据流名、说明、流出的加工名、流入的加工名包括数据流名、说明、流出的加工名、流入的加工名以及组成该数据流的数据结构或数据项以及组成该数据流的数据结构或数据项※例例6.3 在上图中成绩查询是一个数据流,在数据字典在上图中成绩查询是一个数据流,在数据字典中可作如下描述中可作如下描述 需求分析的步骤数据存储名:课程说 明:对每门课程的名称、学分、先行课程号和摘要的描述输出数据流:课程介绍数 据 描 述:课程号、课程名、学分数、先行课程号、摘要数 量:每年328种 存 取 方 式:随机存取④④ 数据存储数据存储※数据存储是处理过程中要存储的数据,它可以是手工数据存储是处理过程中要存储的数据,它可以是手工凭证、手工文档或计算机文档对数据存储的描述应凭证、手工文档或计算机文档对数据存储的描述应包括:数据存储名、说明、输入数据流、输出数据流、包括:数据存储名、说明、输入数据流、输出数据流、数据量(每次存取多少数据)、存取频度(单位时间数据量(每次存取多少数据)、存取频度(单位时间内存取次数)和存取方式(是批处理,还是联机处理;内存取次数)和存取方式(是批处理,还是联机处理;是检索,还是更新;是顺序存取,还是随机存取)。
是检索,还是更新;是顺序存取,还是随机存取) ※例例6.4 上图中课程是个数据存储,在数据字典中可对上图中课程是个数据存储,在数据字典中可对其作如下描述其作如下描述需求分析的步骤处理过程:确定选课名单处理过程:确定选课名单说说 明:对选某门课程的每一个学生,根据已选修课程确定其是否可明:对选某门课程的每一个学生,根据已选修课程确定其是否可 选该课程再根据学生选课的人数选择适当的教室,制定选课单选该课程再根据学生选课的人数选择适当的教室,制定选课单输输 入:学生选课、可选课程、已选课程入:学生选课、可选课程、已选课程输输 出:选课单程序提要:出:选课单程序提要: a a.对所选课程在选课表中查找其是否已选此课程;.对所选课程在选课表中查找其是否已选此课程; b b.若未选过此课程,则在选课表中查找是否已选此课程的先行课程;.若未选过此课程,则在选课表中查找是否已选此课程的先行课程; c c.若.若a a、、b b都满足,则在选课表中增加一条选课记录;都满足,则在选课表中增加一条选课记录; d d.处理完全部学生的选课后,形成选课单。
.处理完全部学生的选课后,形成选课单 ⑤⑤ 加工过程加工过程※对加工处理的描述包括加工过程名、说明、输对加工处理的描述包括加工过程名、说明、输入数据流、输出数据流,并简要说明处理工作、入数据流、输出数据流,并简要说明处理工作、频度要求、数据量及响应时间等频度要求、数据量及响应时间等6.3 概念设计6.3 概念设计主要内容主要内容※概念结构设计任务和概念结构设计任务和ER模型的特点模型的特点※概念结构设计的基本方法概念结构设计的基本方法※概念结构设计的主要步骤概念结构设计的主要步骤※局部局部ER模型的设计模型的设计※全局全局ER模型的设计模型的设计※概念结构设计实例概念结构设计实例概念结构设计任务和ER模型的特点 ※数据库的概念结构设计数据库的概念结构设计是整个数据库设计的关键阶段,是整个数据库设计的关键阶段,其主要任务是通过对用户需求进行综合、归纳与抽象,其主要任务是通过对用户需求进行综合、归纳与抽象,形成一个独立于具体形成一个独立于具体DBMS的概念模式的概念模式 ※实体实体-联系(联系(Entity Rela-tionship,,ER)模型具有)模型具有以下特点:以下特点:v⑴⑴ 能真实、充分地反映现实世界,包括事物和事物之间的能真实、充分地反映现实世界,包括事物和事物之间的联系,并能满足用户对数据的处理要求;联系,并能满足用户对数据的处理要求; v⑵⑵ 易于理解。
可以利用它在设计人员、编程人员以及最终易于理解可以利用它在设计人员、编程人员以及最终用户之间进行交流,使得用户能够积极参与,保证数据库设用户之间进行交流,使得用户能够积极参与,保证数据库设计的成功;计的成功; v⑶⑶ 易于更改当应用环境和应用要求发生改变时,容易对易于更改当应用环境和应用要求发生改变时,容易对模式进行修改和扩充;模式进行修改和扩充; v⑷⑷ 易于向关系、网状、层次等各种数据模型转换易于向关系、网状、层次等各种数据模型转换 概念结构设计的基本方法⑴⑴ 自底向上的设计方法:自底向上的设计方法:※也称为属性综合法也称为属性综合法这种方法的基本点是将前这种方法的基本点是将前面需求分析中收集到的数据元素作为基本输入,面需求分析中收集到的数据元素作为基本输入,通过对这些元素的分析,把它们综合成相应的通过对这些元素的分析,把它们综合成相应的实体或联系实体或联系 ※适合范围适合范围v较小单位的、较为简单的设计对象较小单位的、较为简单的设计对象※不适合不适合于中等规模以上的设计对象于中等规模以上的设计对象概念结构设计的基本方法⑵⑵ 自顶向下的设计方法:自顶向下的设计方法:※从分析组织的事务活动开始,按下面步骤进行:从分析组织的事务活动开始,按下面步骤进行:v首先识别用户所关心的实体及实体间的联系,建立首先识别用户所关心的实体及实体间的联系,建立一个初步的数据模型框架;一个初步的数据模型框架;v然后再以逐步求精的方式加上必需的描述属性形成然后再以逐步求精的方式加上必需的描述属性形成一个完整的局部一个完整的局部ER模型;模型;v最后再将这些局部最后再将这些局部ER模型集成为一个统一的全局模型集成为一个统一的全局ER模型。
模型概念结构设计的主要步骤 ※ ⑴⑴ 进行数据抽象,设计局部概念模式进行数据抽象,设计局部概念模式局部用户的信息需求是构造全局概念模式的基础在建立局部用户的信息需求是构造全局概念模式的基础在建立局部概念结构时,常常要对需求分析的结果进行细化、补局部概念结构时,常常要对需求分析的结果进行细化、补充和修改,如有的数据项要分为若干子项,有的数据定义充和修改,如有的数据项要分为若干子项,有的数据定义要重新核实等要重新核实等※⑵⑵ 将局部概念模式综合成全局概念模式将局部概念模式综合成全局概念模式 综合各局部概念结构就可得到反映所有用户需求的全局概综合各局部概念结构就可得到反映所有用户需求的全局概念结构在综合过程中,主要处理各局部模式对各种对象念结构在综合过程中,主要处理各局部模式对各种对象定义的不一致问题,包括同名异义、异名同义和同一事物定义的不一致问题,包括同名异义、异名同义和同一事物在不同模式中被抽象为不同类型的对象(例如,有的作为在不同模式中被抽象为不同类型的对象(例如,有的作为实体,有的又作为属性)等问题把各个局部结构合并,实体,有的又作为属性)等问题把各个局部结构合并,还会产生冗余问题,或导致对信息需求的再调整与分析,还会产生冗余问题,或导致对信息需求的再调整与分析,以确定确切的含义。
以确定确切的含义※⑶⑶ 评审评审 消除了所有冲突后,就可把全局结构提交评审评审分为消除了所有冲突后,就可把全局结构提交评审评审分为用户评审与用户评审与DBA及应用开发人员评审两部分及应用开发人员评审两部分局部ER模型的设计1. 确定局部结构范围确定局部结构范围※设计局部设计局部ER模型时,首先需要根据系统的具模型时,首先需要根据系统的具体情况,在多层的数据流图中选择一个适当层体情况,在多层的数据流图中选择一个适当层次的数据流图,让这组图中每一部分对应一个次的数据流图,让这组图中每一部分对应一个局部应用,然后以这一层次的数据流图为出发局部应用,然后以这一层次的数据流图为出发点,设计局部点,设计局部ER图 ※在确定局部在确定局部ER模型的设计范围时,有两条原模型的设计范围时,有两条原则可供参考:则可供参考:v⑴⑴ 把那些关系最密切的若干功能所涉及到的数据把那些关系最密切的若干功能所涉及到的数据尽可能地包含在一个局部尽可能地包含在一个局部ER模型内;模型内;v⑵⑵ 一个局部一个局部ER模型中所包含的实体数不能太多,模型中所包含的实体数不能太多,以免过于复杂,不便理解和管理以免过于复杂,不便理解和管理。
局部局部ER模型设模型设计的流程图如计的流程图如下:下:局部ER模型的设计需求分析结果需求分析结果确定局部确定局部ER模型范围模型范围实体定义实体定义联系定义联系定义属性分配属性分配还有局部还有局部结构待分析结构待分析无无 进入全局进入全局ER模型设计模型设计有需求分析结果确定局部结构范围实体定义联系定义属性分配还有局部结构待分析有无进入全局ER模式设计局部ER模式设计流程图范围的划分要自然,易于管理;范围的大小要适度太小了,会造成局部结构过多,设计过程繁琐,综合困难;太大了,则容易造成内部结构复杂,不便分析 范围之间的界面要清晰,相互影响要小采用人们习惯的划分;避免冗余,在一个局部结构中,对一个对象只取一种抽象形式,不要重复;依据用户的信息处理需求 确定属性的原则: 属性应该是不可再分解的语义单位;实体与属性之间的关系只能是1:N的;不同实体类型的属性之间应无直接关联关系 属性分配的原则: 当多个实体类型用到同一属性时, 一般把属性分配给那些使用频率最高的实体类型,或分配给实体值少的实体类型 有些属性不宜归属于任一实体类型,只说明实体之间联系的特性 局部ER模型的设计下面以学校的教务管理信息系统为例来说明下面以学校的教务管理信息系统为例来说明局部概念结构设计范围的确定。
教务管理信息系局部概念结构设计范围的确定教务管理信息系统的顶层数据流图如下图所示统的顶层数据流图如下图所示 教务管理教务管理信息系统信息系统学生学籍数据学生学籍数据课程数据课程数据选课数据选课数据成绩数据成绩数据学籍变动表学籍变动表课程表课程表选课一览表选课一览表成绩单成绩单局部ER模型的设计下面图给出了教务管理信息系统的下面图给出了教务管理信息系统的0层数据流层数据流图,该图描述了教务管理信息系统的组成部分以图,该图描述了教务管理信息系统的组成部分以及各部分的输入和输出数据及各部分的输入和输出数据 局部ER模型的设计课程管理课程管理22成绩管理成绩管理44学生基本信息学生基本信息课程表课程表课程数据课程数据成绩单成绩单成成绩绩数数据据选课一览表选课一览表选课管理选课管理3学生基本信息学生基本信息课程信息课程信息选课信息选课信息学籍变动表学籍变动表学生学籍数据学生学籍数据学生学籍学生学籍管理管理1选选课课数数据据局部ER模型的设计2. 确定实体及实体的主键确定实体及实体的主键⑴⑴ 确定实体确定实体 ※实体(实体(Entity)是一个数据对象,指应用中可以区别的客观存在的)是一个数据对象,指应用中可以区别的客观存在的事物,如人、部门、表格、物体、项目等。
同一类实体构成实体事物,如人、部门、表格、物体、项目等同一类实体构成实体集(集(Entity Set)ER模型中的实体往往是指实体集模型中的实体往往是指实体集※学生选课子系统局部应用中,学生选课子系统局部应用中,学生学生是一个实体,学生张平、李玲是一个实体,学生张平、李玲是学生实体中的两个实例是学生实体中的两个实例课程课程是一个实体,操作系统、数据库是一个实体,操作系统、数据库原理及应用是课程实体中的两个实例原理及应用是课程实体中的两个实例※课程管理子系统的局部应用中,课程管理子系统的局部应用中,课程课程是一个实体,每门课程是课是一个实体,每门课程是课程实体中的一个实例上课的程实体中的一个实例上课的教师教师是一个实体,每位上课的教师是一个实体,每位上课的教师都是教师实体中的一个实例都是教师实体中的一个实例※成绩管理子系统的局部应用中,学生是一个实体一个学生,选成绩管理子系统的局部应用中,学生是一个实体一个学生,选修一门课程并参加了考试,就会有这门课程的成绩因此,可以修一门课程并参加了考试,就会有这门课程的成绩因此,可以把成绩视为选课联系的一个属性把成绩视为选课联系的一个属性 局部ER模型的设计⑵⑵ 确定实体的主键确定实体的主键 ※主键是确定实体的唯一标志。
主键是确定实体的唯一标志v学生实体的主键是学号;学生实体的主键是学号;v课程实体的主键是课程号;课程实体的主键是课程号;v教师实体的主键是教师号;教师实体的主键是教师号;局部ER模型的设计⑶⑶ 区分实体与属性的一般原则:区分实体与属性的一般原则: ※实体一般需要描述信息,而属性不需要例如,实体一般需要描述信息,而属性不需要例如,学生需要描述属性(学号、姓名、性别、出生学生需要描述属性(学号、姓名、性别、出生年月等),所以学生是实体而性别不需要描年月等),所以学生是实体而性别不需要描述属性,所以性别是属性述属性,所以性别是属性※多值的属性可考虑作为实体例如,教师的职多值的属性可考虑作为实体例如,教师的职务是一个多值的属性,即一个教师可能担任多务是一个多值的属性,即一个教师可能担任多个职务此时职务可考虑作为一个独立的实体,个职务此时职务可考虑作为一个独立的实体,否则数据库表中就会出现大量空值否则数据库表中就会出现大量空值局部ER模型的设计⑷⑷ 实体与属性是相对而言的实体与属性是相对而言的※同一事物,在一种应用环境中作为同一事物,在一种应用环境中作为“属性属性”,,在另一种应用环境中就必须作为在另一种应用环境中就必须作为“实体实体”。
※例如,学校中的系,在某种应用环境中,它只例如,学校中的系,在某种应用环境中,它只是作为是作为“学生学生”实体的一个属性,表明一个学实体的一个属性,表明一个学生属于哪个系;而在另一种环境中,由于需要生属于哪个系;而在另一种环境中,由于需要考虑一个系的系主任、教师人数、学生人数、考虑一个系的系主任、教师人数、学生人数、办公地点等,这时系就需要作为实体了办公地点等,这时系就需要作为实体了 局部ER模型的设计3. 定义实体间的联系定义实体间的联系 ※联系是实体集之间关系的抽象表示,即对现实联系是实体集之间关系的抽象表示,即对现实世界中事物之间关系的描述世界中事物之间关系的描述※如教师实体集与学生实体集间的如教师实体集与学生实体集间的“讲授讲授”联系,联系,公司实体集与职工实体集之间的公司实体集与职工实体集之间的“聘任聘任”联系联系等 ※在局部在局部ER图设计时,需要对已识别出的实体图设计时,需要对已识别出的实体确定不同实体间的联系是属于什么类型的联系,确定不同实体间的联系是属于什么类型的联系,是二元联系还是多元联系?是二元联系还是多元联系?局部ER模型的设计※⑴⑴ 一对一(一对一(1:1)联系)联系※若两个实体集中的每一个实体至多和另一个实体集中若两个实体集中的每一个实体至多和另一个实体集中的一个实体有联系,则称两个实体集具有的一个实体有联系,则称两个实体集具有1:1的联系。
的联系※⑵⑵ 一对多(一对多(1:N)联系)联系※设有两个实体集,若第一个实体集中每个实体与第二设有两个实体集,若第一个实体集中每个实体与第二个实体集中多(大于个实体集中多(大于1)个实体相联系,而第二个实)个实体相联系,而第二个实体中的每个实体至多和第一个实体集中的一个实体有体中的每个实体至多和第一个实体集中的一个实体有联系,则称第一个实体集与第二个实体集是一对多的联系,则称第一个实体集与第二个实体集是一对多的联系,记为联系,记为1:N ※⑶⑶ 多对多(多对多(M:N)联系)联系※若两个实体集中的每一个实体都和另一个实体集中多若两个实体集中的每一个实体都和另一个实体集中多(大于(大于1)个实体有联系,则称这两个实体集是多对)个实体有联系,则称这两个实体集是多对多的联系,记为多的联系,记为M:N局部ER模型的设计技术员技术员技术技术参与参与1掌握掌握工程工程使用使用N111N冗余联系冗余联系定义实体联系时应注意定义实体联系时应注意 ::※①① 消除冗余联系在确定联系类型时,应注意防止出消除冗余联系在确定联系类型时,应注意防止出现冗余联系(即可以从其他联系导出的联系)现冗余联系(即可以从其他联系导出的联系)。
※假定每一个技术员必须参加一个工程;每个工程有多假定每一个技术员必须参加一个工程;每个工程有多个技术员参加;每个工程必须使用一种技术由于联个技术员参加;每个工程必须使用一种技术由于联系具有传递性,因此,隐含了每一个技术员必须掌握系具有传递性,因此,隐含了每一个技术员必须掌握一种技术该问题设计到三个实体,即技术员、工程一种技术该问题设计到三个实体,即技术员、工程以及技术以及技术局部ER模型的设计②② 正确鉴别二元及多元联系正确鉴别二元及多元联系※在局部在局部ER图设计中,不同实体间应建立二元还是多元联系,应该图设计中,不同实体间应建立二元还是多元联系,应该根据问题说明来确定根据问题说明来确定※问题问题1::任何一个供应商可向任何一个顾客供应任何一种零件任何一个供应商可向任何一个顾客供应任何一种零件 ※在这个问题中,给定一个供应商,不能够确定该供应商向哪个顾在这个问题中,给定一个供应商,不能够确定该供应商向哪个顾客供应了哪种零件给定一个顾客,也不能够确定该顾客是向哪客供应了哪种零件给定一个顾客,也不能够确定该顾客是向哪个供应商购买了哪种零件同样,给定一个零件,也不能确定哪个供应商购买了哪种零件。
同样,给定一个零件,也不能确定哪个顾客在哪个供应商处购买的如果想知道哪一个供应商向哪一个顾客在哪个供应商处购买的如果想知道哪一个供应商向哪一个顾客提供了哪一种零件,则必须构建一个三元联系,且供应商、个顾客提供了哪一种零件,则必须构建一个三元联系,且供应商、顾客以及零件三个实体之间的联系是多对多的顾客以及零件三个实体之间的联系是多对多的供应商供应商零件零件供供-顾顾-零零顾客顾客NPM局部ER模型的设计※问题问题2::任何一个供应商可向任何一个顾客供应零件,任何一个供应商可向任何一个顾客供应零件,但每个顾客订购的零件是一定的但每个顾客订购的零件是一定的 ※在这个问题中,同样地,给定一个供应商,却不能确在这个问题中,同样地,给定一个供应商,却不能确定向哪个顾客供应零件;给定一个顾客,也不能确定定向哪个顾客供应零件;给定一个顾客,也不能确定向哪个供应商购买零件但是,顾客确定了,该顾客向哪个供应商购买零件但是,顾客确定了,该顾客所购买的零件就可以确定所购买的零件就可以确定 ※因此,供应商和顾客之间是二元的多对多联系;而零因此,供应商和顾客之间是二元的多对多联系;而零件和顾客之间是二元的一对多联系。
件和顾客之间是二元的一对多联系※只有供应商和顾客确定了,才能确定一个供应联系值;只有供应商和顾客确定了,才能确定一个供应联系值;而顾客确定了,可以有一个唯一的零件值而顾客确定了,可以有一个唯一的零件值 供应商供应商顾客顾客供应供应MN零件零件购买购买M1※ 问题问题3::任何一个供应商可向任何一个顾客提供零件,任何一个供应商可向任何一个顾客提供零件,但某个供应商对某个顾客供应的零件是确定的但某个供应商对某个顾客供应的零件是确定的 ※这个问题表示,当供应商和顾客确定了,供应商供应这个问题表示,当供应商和顾客确定了,供应商供应给顾客的零件也就确定了对此只需定义一个二元联给顾客的零件也就确定了对此只需定义一个二元联系,而零件则可作为供应联系的一个属性系,而零件则可作为供应联系的一个属性 ※由以上讨论可知,对于多个实体,是否应该定义成一由以上讨论可知,对于多个实体,是否应该定义成一个多元联系的问题,不可一概而论,应该具体问题做个多元联系的问题,不可一概而论,应该具体问题做具体分析,所定义的模式要能够确切地表达问题的语具体分析,所定义的模式要能够确切地表达问题的语义局部ER模型的设计M供应商供应商顾客顾客供应供应N局部ER模型的设计学院学院系系拥有拥有N包含包含教职工教职工11N③③ 防止存在语义上的缺陷。
防止存在语义上的缺陷※主要原因是定义联系时没有弄清问题的语义,定义的主要原因是定义联系时没有弄清问题的语义,定义的结构无法提供所需要的信息结构无法提供所需要的信息 ※ 例如,一个学院拥有多名教教师以及一个学院包含多例如,一个学院拥有多名教教师以及一个学院包含多个系※问题问题1::如果给定一个职工号,并查询该职工属于哪如果给定一个职工号,并查询该职工属于哪一个系,那么由下图可以确定该职工是哪一个学院的,一个系,那么由下图可以确定该职工是哪一个学院的,但不能确定属于该学院的哪一个系但不能确定属于该学院的哪一个系解决上述问题的方法是对解决上述问题的方法是对ER图作适当变换图作适当变换 局部ER模型的设计系系教职工教职工拥有拥有1包含包含学院学院N1N系与教职工之间直接发生联系,而且是一对多系与教职工之间直接发生联系,而且是一对多联系现在,给定一个职工号就可以确定该职工联系现在,给定一个职工号就可以确定该职工属于哪一个系属于哪一个系 ※问题问题2::如果某些教职工不属于任何系而是直属于学如果某些教职工不属于任何系而是直属于学院的,那么就不能提供这方面的信息因此这种结构院的,那么就不能提供这方面的信息。
因此这种结构仍缺乏语义信息仍缺乏语义信息 ※解决的方法是增加一个联系(如增加学院解决的方法是增加一个联系(如增加学院─教职工间教职工间的的“直属直属”联系),为直属学院的教职工提供一个路联系),为直属学院的教职工提供一个路径 ※通过添加新的联系解决了一些语义问题,但对有些情通过添加新的联系解决了一些语义问题,但对有些情况,增加新的联系会带来新的语义问题况,增加新的联系会带来新的语义问题局部ER模型的设计系系教职工教职工拥有拥有1包含包含学院学院N1N直属直属添加添加“直属直属”联系联系局部ER模型的设计教师教师学生学生指导指导N工程工程参加参加MN职工号职工号T001T002学号学号ST001ST002工程号工程号P001P002指导指导参加参加具体事例为:具体事例为:这个实例中无法得到关于哪位教师指导哪个学生参加哪项工程的这个实例中无法得到关于哪位教师指导哪个学生参加哪项工程的信息(如教师信息(如教师T001T001和和T002T002指导学生指导学生ST001ST001参加工程参加工程P001P001和和P002P002) 改进的一种方法是再增加一个教师对工程的改进的一种方法是再增加一个教师对工程的““服务服务””联系。
联系※问题问题3::假定每个学生可在多名教师指导下参加多项工程每位假定每个学生可在多名教师指导下参加多项工程每位教师可指导多名学生,但只允许一位教师指导一个学生参加一教师可指导多名学生,但只允许一位教师指导一个学生参加一项工程,而不允许多位教师指导一名学生参加某项工程项工程,而不允许多位教师指导一名学生参加某项工程 局部ER模型的设计学生学生工程工程指导指导N参加参加教师教师MMN服务服务添加添加“服务服务”联系联系MN参加参加服务服务指导指导职工号职工号T001T002学号学号ST001ST002工程号工程号P001P002局部ER模型的设计学生学生工程工程教教-学学-工工教师教师NPM 三元联三元联系系ER图图※添加了添加了“服务服务”联系后的结构能够确切地提供如下信联系后的结构能够确切地提供如下信息:职工号为息:职工号为T001的教师指导学号为的教师指导学号为ST001的学生参的学生参加工程号为加工程号为P001的工程职工号为的工程职工号为T002的教师指导的教师指导学号为学号为ST002的学生参加工程号为的学生参加工程号为P001的工程。
但是,的工程但是,从上图却无法确定职工号为从上图却无法确定职工号为T002的教师指导学号为的教师指导学号为ST001的学生究竟参加了那一项工程可见,有时增的学生究竟参加了那一项工程可见,有时增加了一个新的联系虽然可以化解原来的语义问题,却加了一个新的联系虽然可以化解原来的语义问题,却又产生了新的语义问题又产生了新的语义问题 ※解决该问题的方法是将教师、学生以及工程三个实体解决该问题的方法是将教师、学生以及工程三个实体间的联系定义成一个三元联系间的联系定义成一个三元联系 局部ER模型的设计职工号职工号+学号学号+工程号工程号T001+ST001+P001T001+ST002+P002T002+ST001+P002T002+ST002+P001学号学号ST001ST002职工号职工号T001T002工程号工程号P001P002局部ER模型的设计4. 给实体及联系加上描述属性给实体及联系加上描述属性 ※为局部视图中的每个实体和联系加上所有必需的其他为局部视图中的每个实体和联系加上所有必需的其他描述属性描述属性 在需求分析阶段,已收集了所有的数据在需求分析阶段,已收集了所有的数据对象。
除了主键属性外,还需将其他属性分配给有关对象除了主键属性外,还需将其他属性分配给有关的实体或联系为使这种分配更合理,必须研究属性的实体或联系为使这种分配更合理,必须研究属性之间的函数依赖关系并考虑其他一些准则,而这些不之间的函数依赖关系并考虑其他一些准则,而这些不易于一般用户理解因此在概念结构设计阶段,应该易于一般用户理解因此在概念结构设计阶段,应该避免涉及这类问题,而主要应从用户需求的概念上去避免涉及这类问题,而主要应从用户需求的概念上去识别实体或联系应该有哪些描述属性识别实体或联系应该有哪些描述属性 ※例如,例如,“学生学生”实体的描述属性除了实体的描述属性除了“学号学号”以外,以外,还需要还需要“姓名姓名”、、“性别性别”、、“出生年月出生年月”、、“家庭家庭地址地址”、、“入学时间入学时间”、、“系别系别”、、“专业专业”等属性;等属性;而而“课程课程”实体的描述属性除了实体的描述属性除了“课程号课程号”属性以外,属性以外,还需要还需要“课程名课程名”、、“学时数学时数”、、“学分学分”、、“开设开设学期学期”、、“课程类型课程类型”(必修或选修)等属性必修或选修)等属性联系本身也可以有描述属性。
联系本身也可以有描述属性 局部ER模型的设计学生学生学号学号姓名姓名…专业专业课程课程课程号课程号课程名课程名课程类型课程类型…选修选修MN成绩成绩局部ER模型的设计教师教师职务职务姓名姓名教师号教师号出生日期出生日期工资工资奖金奖金教师不变信息教师不变信息姓名姓名教师号教师号出生日期出生日期教师变动信息教师变动信息职务职务工资工资奖金奖金教师号教师号5. ER模型的操作模型的操作 ※在数据库设计过程中,常常要对在数据库设计过程中,常常要对ER图进行种种变化这种变化称图进行种种变化这种变化称为为ER模型的操作,包括实体类型、联系类型和属性的分裂、合并、模型的操作,包括实体类型、联系类型和属性的分裂、合并、增删等 ※例例6.6 分裂方式有水平分裂和垂直分裂两种把教师分裂成男教师分裂方式有水平分裂和垂直分裂两种把教师分裂成男教师与女教师两个实体类型,这是水平分裂也可把教师中经常变化与女教师两个实体类型,这是水平分裂也可把教师中经常变化的属性组成一个实体类型,而把固定不变的属性组成另一个实体的属性组成一个实体类型,而把固定不变的属性组成另一个实体类型,这是垂直分裂类型,这是垂直分裂 。
局部ER模型的设计教师教师课程课程担任担任MN教师教师课程课程主讲主讲1MNN※联系类型分裂联系类型分裂※下图是教师担任教学任务的下图是教师担任教学任务的ER图,而图,而“担任担任”联系类型可以分裂为联系类型可以分裂为“主讲主讲”和和“”两两个新的联系类型个新的联系类型 局部ER模型的设计产品销售产品销售产品号产品号销售量销售量产品生产产品生产产品号产品号产量产量产品产品产品号产品号产量产量销售量销售量合并是分裂操作的逆过程合并是分裂操作的逆过程※例如,有一个例如,有一个“产品销售产品销售”实体,其属性有实体,其属性有“产品号产品号”和和“销售额销售额”,另一个,另一个“产品生产产品生产”实体,其属性有实体,其属性有“产品号产品号”和和“产量产量”,把它,把它们合并操作如以下图们合并操作如以下图局部ER模型的设计(a)(b)AA-CB-CBCAA-B-CBC※但必须注意,对于联系的合并,其类型必须是但必须注意,对于联系的合并,其类型必须是定义在相同的实体类型组合中,否则是不合法定义在相同的实体类型组合中,否则是不合法的合并,下图所示的合并就是不合法的合并的合并,下图所示的合并就是不合法的合并。
局部ER模型的设计例例6.7 6.7 在人事管理系统中,在人事管理系统中,社会关系的存在是以职工的存社会关系的存在是以职工的存在为前提,即社会关系对于职在为前提,即社会关系对于职工具有依赖联系又如商业应工具有依赖联系又如商业应用系统中,顾客地址与顾客之用系统中,顾客地址与顾客之间也有类似的联系间也有类似的联系( (一般顾客可一般顾客可以有若干个联系地址以有若干个联系地址) ) 1N职工职工具有具有社会关系社会关系1N顾客顾客通讯通讯地址地址6. 弱实体与弱联系弱实体与弱联系 ※在现实世界中,有时某些实体对于另一些实体具有很强的在现实世界中,有时某些实体对于另一些实体具有很强的依赖联系,例如一个实体的存在必须以另一实体的存在为依赖联系,例如一个实体的存在必须以另一实体的存在为前提※一个实体对于另一些实体具有很强的依赖联系,而且该实一个实体对于另一些实体具有很强的依赖联系,而且该实体主键的部分或全部从其依赖实体中获得,称该实体为弱体主键的部分或全部从其依赖实体中获得,称该实体为弱实体在ER模型中,弱实体用双线矩形框表示与弱实模型中,弱实体用双线矩形框表示与弱实体的联系,称为弱联系,用双线菱形框表示。
体的联系,称为弱联系,用双线菱形框表示 局部ER模型的设计7. 子类和超类子类和超类※子类和超类的概念最先出现在面向对象技术中在现实子类和超类的概念最先出现在面向对象技术中在现实世界中,实体类型之间可能存在着抽象与具体的联系世界中,实体类型之间可能存在着抽象与具体的联系譬如学校人事系统中有人员、教师、学生、本科生和研譬如学校人事系统中有人员、教师、学生、本科生和研究生等实体类型这些概念之间,究生等实体类型这些概念之间,“人员人员”是比是比“教师教师”、、“学生学生”更为抽象,而更为抽象,而“教师教师”、、“学生学生”是比是比“人员人员”更为具体的概念更为具体的概念※当低层上较具体的实体类型表达了与之联系的较高层上当低层上较具体的实体类型表达了与之联系的较高层上的更为一般实体类型的特殊情况时,就称较高层上实体的更为一般实体类型的特殊情况时,就称较高层上实体类型为超类型(类型为超类型(supertype),简称超类;较低层上实),简称超类;较低层上实体类型为子类型(体类型为子类型(subtype),简称子类简称子类 局部ER模型的设计子类和超类子类和超类※性质:性质:v子类与超类之间具有继承性特点,即子类实体子类与超类之间具有继承性特点,即子类实体继承超类实体的所有属性。
但子类实体本身还继承超类实体的所有属性但子类实体本身还可以包含比超类实体更多的属性可以包含比超类实体更多的属性v继承性是通过子类实体和超类实体具有相同的继承性是通过子类实体和超类实体具有相同的实体标识符实现的实体标识符实现的 局部ER模型的设计教师教师本科生本科生研究生研究生人员人员学生学生※在在ER图中,超类以两端双线的矩形框表示,并用加图中,超类以两端双线的矩形框表示,并用加圈的弧线与其子类相连,子类本身仍用普通矩形框表圈的弧线与其子类相连,子类本身仍用普通矩形框表示※例如例如 学校人事管理系统中实体之间的联系可用图表示学校人事管理系统中实体之间的联系可用图表示相邻的上层实体称为超类实体,下层实体称为子类实相邻的上层实体称为超类实体,下层实体称为子类实体譬如“学生学生”是是“人员人员”的子类实体,但又是的子类实体,但又是“本科生本科生”和和“研究生研究生”的超类实体的超类实体 全局ER模型设计全局ER模型的设计流程无 局部ER模式确定公共实体类型合并两个局部ER模式检查并消除冲突还有未合并的局部模式有还有冲突吗有属性冲突 :如,重量单位有的用公斤,有的用克 结构冲突 :同一对象在不同应用中的不同抽象 ;同一实体在不同局部ER图中属性的个数或次序不同 ;实体之间的联系在不同的局部ER图中呈现不同的类型 命名冲突 :属性名、实体名、联系名之间存在同名异义或异名同义冲突全局ER模型的设计※所有局部所有局部ER模型都设计好后,接下来就是把它们综模型都设计好后,接下来就是把它们综合成单一的全局概念结构。
合成单一的全局概念结构 ※1. 确定公共实体类型确定公共实体类型 ※确定各局部结构中的公共实体类型当系统较大时,确定各局部结构中的公共实体类型当系统较大时,可能有很多局部模式,这些局部可能有很多局部模式,这些局部ER模型是由不同的模型是由不同的设计人员确定的,问题有:设计人员确定的,问题有: v同一现实世界的对象可能给予不同的描述同一现实世界的对象可能给予不同的描述 ,有的作为实体,有的作为实体类型,有的又作为联系类型或属性类型,有的又作为联系类型或属性 v实体类型名和键也可能不同实体类型名和键也可能不同 ※处理方法:处理方法:v根据实体类型名和键来认定公共实体类型根据实体类型名和键来认定公共实体类型v把同名实体类型作为公共实体类型的一类候选把同名实体类型作为公共实体类型的一类候选v把具有相同键的实体类型作为公共实体类型候选把具有相同键的实体类型作为公共实体类型候选 全局ER模型的设计2. 局部局部ER模型的合并模型的合并 ※合并的顺序有时会影响处理效率和结果合并的顺序有时会影响处理效率和结果※合并原则是:首先进行两两合并;先合并那些合并原则是:首先进行两两合并;先合并那些现实世界中有联系的局部结构;合并从公共实现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。
体类型开始,最后再加入独立的局部结构※进行两两合并是为了减少合并工作的复杂性;进行两两合并是为了减少合并工作的复杂性;※合并原则是为了使合并结果的规模尽可能小合并原则是为了使合并结果的规模尽可能小全局ER模型的设计3. 消除冲突消除冲突 ※局部局部ER模型之间的不一致的地方,称之为冲模型之间的不一致的地方,称之为冲突 ⑴⑴ 属性冲突属性冲突※属性域的冲突,即属性值的类型、取值范围或属性域的冲突,即属性值的类型、取值范围或取值集合不同例如,重量单位有的用公斤,取值集合不同例如,重量单位有的用公斤,有的用克有的用克全局ER模型的设计⑵⑵ 结构冲突结构冲突※同一对象在不同应用中的不同抽象,类型有:同一对象在不同应用中的不同抽象,类型有:※①① 如职工,在某个应用中为实体,而在另一应用中为如职工,在某个应用中为实体,而在另一应用中为属性※②② 同一实体在不同局部同一实体在不同局部ER图中属性组成不同,包括图中属性组成不同,包括属性个数、次序等属性个数、次序等※③③ 实体之间的联系在不同的局部实体之间的联系在不同的局部ER图中呈现不同的图中呈现不同的类型如实体类型如实体E1与与E2在某一应用中是多对多联系,在某一应用中是多对多联系,而在另一应用中是一对多联系;又如在某一应用中实而在另一应用中是一对多联系;又如在某一应用中实体体E1与与E2发生联系,而在另一应用中,实体发生联系,而在另一应用中,实体E1、、E2、、E3三者之间有联系等等。
三者之间有联系等等 全局ER模型的设计结构冲突解决方法:结构冲突解决方法:※对于同一对象在不同的局部对于同一对象在不同的局部ER模型中产生不模型中产生不同的抽象,其解决方式是:把属性变为实体或同的抽象,其解决方式是:把属性变为实体或把实体变为属性,使同一对象具有相同的抽象把实体变为属性,使同一对象具有相同的抽象※对于同一个实体在不同对于同一个实体在不同ER模型中属性组成不模型中属性组成不同,其解决方式为:取两个分同,其解决方式为:取两个分ER模型属性的模型属性的并,作为合并后的该实体属性并,作为合并后的该实体属性※对于实体间的相同联系呈现的不同的类型,其对于实体间的相同联系呈现的不同的类型,其解决方式为:根据具体应用的语义,对实体键解决方式为:根据具体应用的语义,对实体键的联系作适当的综合或调整的联系作适当的综合或调整 例例6.8 在教务管理信息系统中的系,在某一局在教务管理信息系统中的系,在某一局部部ER模型中为学生实体的属性,而在另一局部模型中为学生实体的属性,而在另一局部ER模型中为一个单独的实体,其实学生和系之间模型中为一个单独的实体,其实学生和系之间存在从属关系,应该调整、合并为如图所示。
存在从属关系,应该调整、合并为如图所示 全局ER模型的设计系系名称名称联系联系系主任系主任所在地点所在地点编号编号姓名姓名所在系所在系所学专业所学专业学号学号学生学生性别性别属于属于1N全局ER模型的设计((a))姓名姓名所在系所在系所学专业所学专业学号学号学生学生性别性别学生学生籍贯籍贯政治面貌政治面貌家庭住址家庭住址姓名姓名((b))(c)家庭住址家庭住址姓名姓名所在系所在系所学专业所学专业学号学号学生学生性别性别籍贯籍贯政治面貌政治面貌※例例6.9 在教务管理信息系统中的学生实体,在某一局在教务管理信息系统中的学生实体,在某一局部部ER模型由学号、姓名、性别、所在系、所学专业组模型由学号、姓名、性别、所在系、所学专业组成,其成,其ER模型如图模型如图 (a)所示而在另一局部所示而在另一局部ER模型模型则由姓名、政治面貌、籍贯、家庭住址组成,其则由姓名、政治面貌、籍贯、家庭住址组成,其ER模模型如图型如图 (b)所示,合并后如图所示,合并后如图 (c)所示 例例6.10 在工程管理系统中,产品与零件之间的多对多联系如图在工程管理系统中,产品与零件之间的多对多联系如图((a)所示。
产品、零件和供应商三者实体间多对多联系如图()所示产品、零件和供应商三者实体间多对多联系如图(b)所示因为它们的语义不同,所以不具有包含关系将它们综合起来合并成如因为它们的语义不同,所以不具有包含关系将它们综合起来合并成如图的图的ER模型 (a)产品产品数量数量组成组成零件零件MN供应商供应商产品产品数量数量供应供应零件零件MNP(b)组成组成(c)MN供应数量供应数量组成数量组成数量供应商供应商产品产品零件零件组成组成NMP全局ER模型的设计全局ER模型的设计 设计全局设计全局ERER模型的目的不在于把若于局部模型的目的不在于把若于局部ERER模型形式上合并为一个模型形式上合并为一个ERER模型,而在于消除冲突,使之成为能够被全系统中所有用户共同理解和模型,而在于消除冲突,使之成为能够被全系统中所有用户共同理解和接受的统一的概念模式接受的统一的概念模式 ⑶⑶ 命名冲突命名冲突※包括属性名、实体名、联系名之间的冲突包括属性名、实体名、联系名之间的冲突v同名异义,即不同意义的对象具有相同的名字;同名异义,即不同意义的对象具有相同的名字;v异名同义,即同一意义的对象具有不同的名字。
异名同义,即同一意义的对象具有不同的名字※属性冲突和命名冲突通常采用讨论、协商等行属性冲突和命名冲突通常采用讨论、协商等行政手段解决,结构冲突则要认真分析后才能解政手段解决,结构冲突则要认真分析后才能解决全局ER模型的设计4. 全局模式的优化全局模式的优化※在得到全局在得到全局ER模型后,为了提高数据库系统模型后,为了提高数据库系统的效率,还应进一步依据处理需求对的效率,还应进一步依据处理需求对ER模型模型进行优化进行优化※一个好的全局一个好的全局ER模型,除能准确、全面地反模型,除能准确、全面地反映用户功能需求外,还应满足下列条件:映用户功能需求外,还应满足下列条件:v实体类型的个数尽可能少;实体类型的个数尽可能少;v实体类型所含属性个数尽可能少;实体类型所含属性个数尽可能少;v实体类型间无冗余联系实体类型间无冗余联系※这些条件不是绝对的,要视具体的信息需求与这些条件不是绝对的,要视具体的信息需求与处理需求而定处理需求而定全局ER模型的设计全局全局ER模型的优化原则:模型的优化原则:⑴⑴ 相关实体类型的合并相关实体类型的合并※这里的合并不是前面的这里的合并不是前面的“公共实体类型公共实体类型”的合的合并,而是指相关实体类型的合并。
并,而是指相关实体类型的合并※一般在权衡利弊后可以把一般在权衡利弊后可以把1:1联系的两个实体联系的两个实体类型合并类型合并※具有相同键的实体类型常常是从不同角度刻画具有相同键的实体类型常常是从不同角度刻画现实世界,如果经常需要同时处理这些实体类现实世界,如果经常需要同时处理这些实体类型,那么也有必要合并成一个实体类型型,那么也有必要合并成一个实体类型※但这时可能会产生大量空值,因此,要对存储但这时可能会产生大量空值,因此,要对存储代价、查询效率进行权衡代价、查询效率进行权衡全局ER模型的设计⑵⑵ 冗余属性的消除冗余属性的消除※在综合成全局在综合成全局ER模型后,可能产生全局范围内的冗模型后,可能产生全局范围内的冗余属性※例如,在教育统计数据库的设计中,一个局部结构含例如,在教育统计数据库的设计中,一个局部结构含有高校毕业生数、招生数、在校学生数和预计毕业生有高校毕业生数、招生数、在校学生数和预计毕业生数;另一局部结构中含有在校学生数、分年级在校学数;另一局部结构中含有在校学生数、分年级在校学生数、各专业在校学生数和各专业的预计毕业生数生数、各专业在校学生数和各专业的预计毕业生数各局部结构自身都无冗余,但综合成一个全局各局部结构自身都无冗余,但综合成一个全局ER模模型时,在校学生数即成为冗余属性,应予消除。
型时,在校学生数即成为冗余属性,应予消除※一般同一非键的属性出现在几个实体类型中,或者一一般同一非键的属性出现在几个实体类型中,或者一个属性值可从其他属性值导出,此时,应把这些冗余个属性值可从其他属性值导出,此时,应把这些冗余的属性从全局模式中去掉的属性从全局模式中去掉 ※冗余属性消除与否,也取决于它对存储空间、访问效冗余属性消除与否,也取决于它对存储空间、访问效率和维护代价的影响率和维护代价的影响※有时为了兼顾访问效率,有意保留冗余属性有时为了兼顾访问效率,有意保留冗余属性全局ER模型的设计⑶⑶ 冗余联系的消除冗余联系的消除※在全局模式中可能存在有冗余的联系,通常利用规范在全局模式中可能存在有冗余的联系,通常利用规范化理论中函数依赖的概念消除冗余联系化理论中函数依赖的概念消除冗余联系※把所有局部把所有局部ER模型综合成最终的全局概念结构应满模型综合成最终的全局概念结构应满足如下要求:足如下要求:v全局概念结构内部必须具有一致性,不再存在各种冲突;全局概念结构内部必须具有一致性,不再存在各种冲突;v全局概念结构能准确地反映原各局部视图结构,包括属性、全局概念结构能准确地反映原各局部视图结构,包括属性、实体及实体间的联系;实体及实体间的联系;v全局概念结构能满足需求分析阶段所确定的所有需求。
全局概念结构能满足需求分析阶段所确定的所有需求 ※全局概念结构最终还应该提交给用户,征求用户和有全局概念结构最终还应该提交给用户,征求用户和有关人员的意见,进行评审、修改和调整,最后确定的关人员的意见,进行评审、修改和调整,最后确定的全局概念结构为数据库的逻辑设计提供依据全局概念结构为数据库的逻辑设计提供依据 概念结构设计实例实例实例1 教务管理信息系统的全局教务管理信息系统的全局ER图 教务管理信息系统(简化的)全局教务管理信息系统(简化的)全局ER图是由学生学籍图是由学生学籍管理管理ER图、学生选课图、学生选课ER图、课程管理图、课程管理ER图以及成绩管图以及成绩管理理ER图组成根据本章前面讨论的局部图组成根据本章前面讨论的局部ER图,教务管理图,教务管理信息系统的全局信息系统的全局ER图模式如图所示图模式如图所示 学籍变动学籍变动学号学号…变动日期变动日期专业专业学生学生学号学号…课程号课程号课程课程…变动日期变动日期奖金奖金教师号教师号教师教师…讲课讲课成绩成绩M选课选课N11变动变动概念结构设计实例※实例实例2 某厂产品生产及库存综合管理系统的概念结构设计某厂产品生产及库存综合管理系统的概念结构设计。
※根据概念结构设计的步骤,先进行局部概念结构设计,然后再对根据概念结构设计的步骤,先进行局部概念结构设计,然后再对各个局部概念进行综合各个局部概念进行综合※⑴⑴ 局部概念结构设计局部概念结构设计 v①① 确定局部概念结构的设计范围为讨论简单起见,对该综合管确定局部概念结构的设计范围为讨论简单起见,对该综合管理系统进行了简化,只讨论产品的设计、生产和存储理系统进行了简化,只讨论产品的设计、生产和存储v②② 识别实体与实体的主键产品及库存综合管理系统识别出的实识别实体与实体的主键产品及库存综合管理系统识别出的实体应有以下几种:产品(主键:产品号或编号)、零件(主键:体应有以下几种:产品(主键:产品号或编号)、零件(主键:零件号)、材料(主键:材料名)、仓库(主键:仓库号)零件号)、材料(主键:材料名)、仓库(主键:仓库号)v③③ 定义实体间的联系定义实体间的联系※在技术部门的设计中,在技术部门的设计中,“产品产品”实体由实体由“零件零件”实体组成,实体组成,“零零件件”实体和实体和“材料材料”实体通过消耗发生联系,而且都是多对多联实体通过消耗发生联系,而且都是多对多联系可得技术部门局部模式图,如下图所示。
系可得技术部门局部模式图,如下图所示 在生产部门的生产中,在生产部门的生产中,“产品产品”实体与实体与“材料材料”实体通过实体通过“使用使用”联系在一起,而且是多对多联系可得生产部门局部联系在一起,而且是多对多联系可得生产部门局部ER模型,如下图所模型,如下图所示 概念结构设计实例产品产品零件零件组成组成MN材料材料消耗消耗MN产品产品材料材料使用使用MN 在材料库存中,在材料库存中,““材料材料””实体与实体与““仓库仓库””实体通过实体通过““存放存放””联系在联系在一起而且是多对多联系可得工厂材料库存局部一起而且是多对多联系可得工厂材料库存局部ERER模型,如图所示模型,如图所示 材料材料仓库仓库存放存放MN④④ 给实体及联系加上描述属性给实体及联系加上描述属性给实体和联系加上描述属性应根据具体的应用需求而定,本书的实例给实体和联系加上描述属性应根据具体的应用需求而定,本书的实例内容是简化的,在具体的系统设计中根据需求分析来确定如下图内容是简化的,在具体的系统设计中根据需求分析来确定如下图 (a)、、 (b)、、 (c)分别是技术部门的分别是技术部门的ER图、生产部门的图、生产部门的ER图、材料库存管理的图、材料库存管理的ER图。
图 概念结构设计实例耗用量耗用量组成组成产品产品性能参数性能参数产品号产品号零件零件零件号零件号规格规格材料材料材料名材料名消耗消耗零件数零件数(a)使用量使用量使用使用产品产品编号编号价格价格库存量库存量材料材料材料名材料名价格价格仓库号仓库号(b))(c))存放量存放量存放存放材料材料编号编号价格价格材料名材料名库存量库存量仓库号仓库号仓库仓库面积面积地点地点概念结构设计实例⑵⑵ 全局概念结构设计全局概念结构设计※①① 冲突问题冲突问题v属性域冲突:属性值的类型、取值范围或取值集合不相同等属性域冲突:属性值的类型、取值范围或取值集合不相同等该例中没有涉及具体企业应用对象和实际数据,在实际应用该例中没有涉及具体企业应用对象和实际数据,在实际应用时,可通过各部门或不同应用设计人员间相互讨论、协商的时,可通过各部门或不同应用设计人员间相互讨论、协商的方式加以解决方式加以解决 v命名冲突:分析产品实体在两个不同应用中的属性描述,这命名冲突:分析产品实体在两个不同应用中的属性描述,这里编号就是产品号,将两个不同应用部门关于该属性的名称里编号就是产品号,将两个不同应用部门关于该属性的名称统一称为产品号。
统一称为产品号v结构冲突:显然,仓库对象在两个局部应用中具有不同的抽结构冲突:显然,仓库对象在两个局部应用中具有不同的抽象,在生产部门作为材料实体的属性,而在仓库管理的局部象,在生产部门作为材料实体的属性,而在仓库管理的局部ER模型中它是一个单独的实体,为使同一对象仓库具有相模型中它是一个单独的实体,为使同一对象仓库具有相同的抽象,必须在合并时把仓库统一作为实体加以处理本同的抽象,必须在合并时把仓库统一作为实体加以处理本例中的另一个结构冲突,是产品实体在两个分例中的另一个结构冲突,是产品实体在两个分ER模型中属模型中属性组成部分不同的问题,取分性组成部分不同的问题,取分ER模型产品实体属性的并,模型产品实体属性的并,然后统一属性名称,形成对产品实体新的描述,如下图所示然后统一属性名称,形成对产品实体新的描述,如下图所示在解决上述有关冲突后,综合各局部在解决上述有关冲突后,综合各局部ER模型模型可形成如下图所示初步的全局可形成如下图所示初步的全局ER模型 概念结构设计实例产品产品性能参数性能参数产品号产品号+编号编号产品产品价格价格产品产品性能参数性能参数产品号产品号价格价格合并合并概念结构设计实例耗用量耗用量存放存放存放量存放量仓库号仓库号仓库仓库地点地点面积面积使用量使用量产品产品性能参数性能参数产品号产品号价格价格使用使用零件零件零件号零件号消耗消耗规格规格材料材料材料名材料名编号编号库存量库存量价格价格组成组成零件数零件数MMNN1N②②冗余问题。
冗余问题分析该分析该ER模型的数量属性可知,该初步模型的数量属性可知,该初步ER模型存在着存放量、库存量、使用量等属性的冗余问题消模型存在着存放量、库存量、使用量等属性的冗余问题消除这些冗余后,我们可以得到下图所示的基本除这些冗余后,我们可以得到下图所示的基本ER模型 概念结构设计实例存放量存放量产品产品性能参数性能参数产品号产品号价格价格组成组成零件数零件数存放存放仓库号仓库号仓库仓库地点地点面积面积耗用量耗用量零件零件零件号零件号消耗消耗规格规格材料材料材料名材料名编号编号价格价格MN1N概念结构设计实例※目前我们所产生的目前我们所产生的ER模型,仅仅是某企业工模型,仅仅是某企业工厂生产及材料库存管理的一个基本概念模式,厂生产及材料库存管理的一个基本概念模式,它表示了用户的数据处理要求,是沟通用户需它表示了用户的数据处理要求,是沟通用户需求和系统设计的桥梁求和系统设计的桥梁※要想把它确定下来作为最终概念模式,设计者要想把它确定下来作为最终概念模式,设计者还应提交给用户,并与用户反复讨论、研究,还应提交给用户,并与用户反复讨论、研究,同时征求用户和有关人员的意见,进行评审、同时征求用户和有关人员的意见,进行评审、修改和优化等工作,在用户确认这一模式已正修改和优化等工作,在用户确认这一模式已正确无误地反映了他们的需求后,才能作为最终确无误地反映了他们的需求后,才能作为最终的数据库概念结构,进入下一阶段的数据库设的数据库概念结构,进入下一阶段的数据库设计工作。
计工作概念结构设计实例实例分析:实例分析:※某大学教务管理系统中包含三个部分:某大学教务管理系统中包含三个部分:v教师管理子系统;教师管理子系统;v学籍管理子系统;学籍管理子系统;v课程管理子系统课程管理子系统※在综合过程中:在综合过程中:※学籍管理中的班主任和导师实际上也属于教师,可以学籍管理中的班主任和导师实际上也属于教师,可以将其与课程管理中的将其与课程管理中的“教师教师”实体合并;实体合并;※教师管理子系统中的实体项目教师管理子系统中的实体项目“负责人负责人”也属于也属于“教教师师”,所以也可以合并所以也可以合并※注意:这里尽管实体可以合并,但联系依然存在注意:这里尽管实体可以合并,但联系依然存在局部模式现有的教学管理系统初步分析系统的对象根据服务种类分析教师子模块……局部ER图其他局部模式现有的教学管理系统初步分析系统的对象根据服务种类分析学生子模块……图5.21 学籍管理局部应用的分E-R图导师班级学生组成管理班主任档案材料宿舍住宿归档指导系有参加学会1N111NNN11NMN1具有社会关系1N局部ER图其他局部模式现有的教学管理系统初步分析系统的对象根据服务种类分析课程子模块……局部ER图图5.22 课程管理局部应用分E-R图1教室M1教科书教师担任课程系开设N1学生选修NMN上课PN例子:三个局部ER图合并成一个ER图1图5.24 合并后的教学管理E-R图1N1P1N1N1N1MMNNNN社会关系具有1NNM1系聘用承接项目参加设置院长学院主管NN111教师评定职称分配工作量111N档案材料归档参加学会1宿舍住宿教科书担任指导课程选修教室上课有1班级学生组成N开设N管理11教师管理1 1合并后的教学管理ER图6.4 逻辑结构设计主要内容※ ER模型向关系模型的转换模型向关系模型的转换※关系模式的优化关系模式的优化 6.4.1逻辑结构设计概念结构设计的结果是得概念结构设计的结果是得到一个与到一个与DBMS无关的概念模无关的概念模式。
而式而逻辑设计的目的是把概逻辑设计的目的是把概念结构设计阶段设计好的全局念结构设计阶段设计好的全局ER模型转换成与选用的具体模型转换成与选用的具体机器上的机器上的DBMS所支持的数据所支持的数据模式相符合的逻辑结构模式相符合的逻辑结构(包括(包括数据库模式和外模式)数据库模式和外模式)逻辑结构设计可以运用关逻辑结构设计可以运用关系数据库模式设计理论使设计系数据库模式设计理论使设计过程形式化地进行,并且结果过程形式化地进行,并且结果可以验证关系数据库的逻辑可以验证关系数据库的逻辑结构设计的过程如右图所示结构设计的过程如右图所示 处理需求处理需求 ER模型模型 DBMS特征特征从从ER模型导出模型导出初始数据库模式初始数据库模式关系模式规范化关系模式规范化模式评价模式评价是否需要修正是否需要修正模式修正模式修正用用DBMS语法描述语法描述进入物理设计阶段进入物理设计阶段是是否否ER模型向关系模式的转换※将将ER模型转换为关系模式实际上就是要将实模型转换为关系模式实际上就是要将实体、实体的属性和实体间的联系转换为关系模体、实体的属性和实体间的联系转换为关系模式的过程式的过程。
其原则是其原则是:※ 1. 实体类型的转换将每个实体类型转换成一实体类型的转换将每个实体类型转换成一个关系模式,实体的属性即为关系的属性,实个关系模式,实体的属性即为关系的属性,实体标识符即为关系模式的键体标识符即为关系模式的键 ※2. 联系类型的转换联系类型转换成关系模式是联系类型的转换联系类型转换成关系模式是根据不同的情况做不同的处理根据不同的情况做不同的处理ER模型向关系模式的转换⑴⑴ 实体间的联系是实体间的联系是1:1的的※可以在两个实体类型转换成的两个关系模式中的任意可以在两个实体类型转换成的两个关系模式中的任意一个关系模式的属性中加入另一个关系模式的键和联一个关系模式的属性中加入另一个关系模式的键和联系类型的属性系类型的属性※例如某学校管理中的实体例如某学校管理中的实体“校长校长”与与“学校学校”之间存之间存在着在着1:1的联系,在将其转化为关系模式时,的联系,在将其转化为关系模式时,“校长校长”与与“学校学校”各为一个关系模式如果用户经常要在各为一个关系模式如果用户经常要在查询学校信息时同时查询其校长信息,那么可在学校查询学校信息时同时查询其校长信息,那么可在学校模式中加入校长名和任职年月,其关系模式设计如下模式中加入校长名和任职年月,其关系模式设计如下(加下划线者为主键,加波浪线者为外键):(加下划线者为主键,加波浪线者为外键):v学校关系模式(学校名,地址,,校长名,任职年月)学校关系模式(学校名,地址,,校长名,任职年月)v校长关系模式(校长名,年龄,性别,职称)校长关系模式(校长名,年龄,性别,职称)ER模型向关系模式的转换⑵⑵ 实体间的联系是实体间的联系是1:N的的※则在则在N端实体类型转换成的关系模式中加入端实体类型转换成的关系模式中加入1端实体类型转换成的关系模式的键和联系类型端实体类型转换成的关系模式的键和联系类型的属性。
的属性※例如某学校管理中的实体例如某学校管理中的实体“系系”与与“教师教师”之之间存在着间存在着1:N的联系,其转换成的关系模式如的联系,其转换成的关系模式如下:下: v系关系模式(系编号,系名,,系主任)系关系模式(系编号,系名,,系主任) v教师关系模式(教师编号,姓名,年龄,性别,职教师关系模式(教师编号,姓名,年龄,性别,职称,系编号,聘用年月)称,系编号,聘用年月)ER模型向关系模式的转换⑶⑶ 弱实体弱实体※若实体间的联系是若实体间的联系是1:N的,而且在的,而且在N端实体类端实体类型为弱实体,转换成的关系模式中将型为弱实体,转换成的关系模式中将1端实体端实体类型(父表)的键作为外键放在类型(父表)的键作为外键放在N端的弱实体端的弱实体(子表)中弱实体的主键由父表的主键与弱(子表)中弱实体的主键由父表的主键与弱实体本身的候选键组成也可以为弱实体建立实体本身的候选键组成也可以为弱实体建立新的独立的标识符新的独立的标识符ID※例如例如 某学校管理中的实体某学校管理中的实体“学生学生”与弱实体与弱实体“社会关系社会关系”之间存在着之间存在着1:N的联系,其的联系,其ER图图如下图所示。
如下图所示ER模型向关系模式的转换1N学生学生具有具有社会关系社会关系班号班号姓名姓名所在系所在系学生编号学生编号年龄年龄性别性别家庭住址家庭住址姓名姓名年龄年龄称呼称呼政治面貌政治面貌工作单位工作单位转换成的关系模式如转换成的关系模式如下:下:学生关系模式学生关系模式((学生学生编号编号,姓名,年,姓名,年龄,性别,家庭龄,性别,家庭住址,所在系,住址,所在系,班号)班号)社会关系模式社会关系模式((学生学生编号编号,称呼,姓,称呼,姓名,年龄,政治名,年龄,政治面貌,工作单位)面貌,工作单位) ER模型向关系模式的转换MN选修选修学生学生班号班号姓名姓名所在系所在系学生编号学生编号年龄年龄性别性别家庭住址家庭住址开课系编号开课系编号开课学期开课学期课程课程课程名课程名课程编号课程编号课程性质课程性质学分数学分数先行课先行课成绩成绩⑷⑷ 实体间的联系是实体间的联系是M:N的的※将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合类型的属性,而键为两端实体键的组合※例如某学校管理中的实体例如某学校管理中的实体“学生学生”与与“课程课程”之间存在着之间存在着M:N的联系,的联系,其其ER图如图所示。
图如图所示ER模型向关系模式的转换转换成的关系模式如下:转换成的关系模式如下: ※学生关系模式(学生关系模式(学生编号学生编号,姓名,年龄,性别,,姓名,年龄,性别,家庭地址,所在系,班号)家庭地址,所在系,班号)※课程关系模式(课程关系模式(课程编号课程编号,课程名,课程性质,,课程名,课程性质,学分数,先行课,开课学期,开课系编号)学分数,先行课,开课学期,开课系编号)※选修关系模式(选修关系模式(学生编号,课程编号学生编号,课程编号,成绩),成绩) 3. 超类和子类的转换超类和子类的转换 将超类和子类各转换成一个关系模式,在子类转换成的关系将超类和子类各转换成一个关系模式,在子类转换成的关系模式(子表)中加入超类转换成关系模式(父表)的键,从而实模式(子表)中加入超类转换成关系模式(父表)的键,从而实现父表与子表的联系由于父表与子表的主键相同,所以子表的现父表与子表的联系由于父表与子表的主键相同,所以子表的主键也是外键主键也是外键 下图为学校人事管理下图为学校人事管理系统中的人员、教师、学生、系统中的人员、教师、学生、本科生、研究生的继承性层本科生、研究生的继承性层次联系图。
次联系图 教师教师本科生本科生研究生研究生人员人员学生学生这个结构转换成的关系模式如下:这个结构转换成的关系模式如下: 人员人员(身份证号,姓名,年龄,性(身份证号,姓名,年龄,性别)别) 教师教师((身份证号身份证号,教师编号,职称),教师编号,职称) 学生(学生(身份证号身份证号,学号,系别,专,学号,系别,专业)业) 本科生本科生((身份证号身份证号,入学年份),入学年份) 研究生研究生((身份证号身份证号,研究方向,导,研究方向,导师姓名)师姓名)ER模型向关系模式的转换6.4.2关系模式的优化※在关系数据库的逻辑设计中,先是利用在关系数据库的逻辑设计中,先是利用ER模模型向关系模式转换规则初步得到一组关系模式型向关系模式转换规则初步得到一组关系模式集后,还应该再适当地修改、调整关系模式的集后,还应该再适当地修改、调整关系模式的结构,以进一步提高数据库应用系统的性能,结构,以进一步提高数据库应用系统的性能,这个过程称为关系模式的优化这个过程称为关系模式的优化 关系模式的优化优化关系模式的方法:优化关系模式的方法: ※ ⑴⑴ 确定函数依赖确定函数依赖※根据需求分析阶段所得到的数据的语义,分别写出每个关系模式根据需求分析阶段所得到的数据的语义,分别写出每个关系模式内部各属性之间的函数依赖以及不同关系模式属性之间函数依赖。
内部各属性之间的函数依赖以及不同关系模式属性之间函数依赖 ※例如,学生关系模式内部存在下列函数依赖:例如,学生关系模式内部存在下列函数依赖: v学号学号→姓名,学号姓名,学号→性别,学号性别,学号→出生年月,学号出生年月,学号→所在系,学所在系,学号号→班级,班级,… ※课程关系模式内部存在下列函数依赖:课程关系模式内部存在下列函数依赖: v课程号课程号→课程名,课程号课程名,课程号→学时数,课程号学时数,课程号→学分,课程号学分,课程号→开开设学期,设学期,… ※选修关系模式中存在下列函数依赖:选修关系模式中存在下列函数依赖:v学号,课程号)学号,课程号)→成绩成绩 ※学生关系模式的学号与选修关系模式的学号之间存在函数依赖:学生关系模式的学号与选修关系模式的学号之间存在函数依赖: v学生学生.学号学号→选修选修.学号学号关系模式的优化※⑵⑵ 可用实体候选键之间的函数依赖来表示不可用实体候选键之间的函数依赖来表示不同实体间的一对一、一对多、多对多的联系,同实体间的一对一、一对多、多对多的联系,然后对函数依赖进行最小化处理,消除冗余的然后对函数依赖进行最小化处理,消除冗余的联系。
联系 ※⑶⑶ 根据规范化理论对关系模式逐一进行分析,根据规范化理论对关系模式逐一进行分析,检查是否存在部分函数依赖、传递函数依赖等,检查是否存在部分函数依赖、传递函数依赖等,确定各关系模式分别属于第几范式确定各关系模式分别属于第几范式 ※⑷⑷ 根据需求分析阶段得到的各种应用及对数根据需求分析阶段得到的各种应用及对数据处理的要求,分析所在的应用环境中这些关据处理的要求,分析所在的应用环境中这些关系模式是否合适,确定是否要对它们进行合并系模式是否合适,确定是否要对它们进行合并或分解关系模式的优化关于关系模式的规范化问题,做如下两点说明:关于关系模式的规范化问题,做如下两点说明:※并不是规范化程度越高的关系就越好当一个应用的并不是规范化程度越高的关系就越好当一个应用的查询中经常涉及到两个或多个关系模式的属性时,系查询中经常涉及到两个或多个关系模式的属性时,系统必须经常地进行连接运算,而连接运算的代价是相统必须经常地进行连接运算,而连接运算的代价是相当高的,可以说关系模式操作低效的主要原因就是做当高的,可以说关系模式操作低效的主要原因就是做连接运算引起的在这种情况下,第二范式甚至第一连接运算引起的。
在这种情况下,第二范式甚至第一范式也许是最好的范式也许是最好的※如果一个关系模式在实际应用中只是提供查询,并不如果一个关系模式在实际应用中只是提供查询,并不提供更新操作,或者很少提供更新操作,此时不会存提供更新操作,或者很少提供更新操作,此时不会存在更新异常问题或更新异常不是主要问题,可以不对在更新异常问题或更新异常不是主要问题,可以不对关系模式进行分解关系模式进行分解 关系模式的优化※例如,在关系模式学生成绩单(学号,英语,数学,语文,平均例如,在关系模式学生成绩单(学号,英语,数学,语文,平均成绩)中存在下列函数依赖:成绩)中存在下列函数依赖: v学号学号→英语,学号英语,学号→数学,学号数学,学号→语文,学号语文,学号→平均成绩,(英平均成绩,(英语,数学,语文)语,数学,语文)→平均成绩平均成绩 ※根据合并规则可得:根据合并规则可得:v学号学号→(英语,数学,语文英语,数学,语文) 因此,因此,“学号学号→平均成绩平均成绩”是传递是传递函数依赖函数依赖※由于关系模式中存在传递函数依赖,所以是由于关系模式中存在传递函数依赖,所以是2NF关系 ※虽然平均成绩可以由其他属性推算出来,但如果应用中需要经常虽然平均成绩可以由其他属性推算出来,但如果应用中需要经常查询学生的平均成绩,为了提高查询效率,关系模式中仍然可保查询学生的平均成绩,为了提高查询效率,关系模式中仍然可保留该冗余数据,对关系模式不再做进一步分解。
留该冗余数据,对关系模式不再做进一步分解 ※对于一个具体应用来说,规范化应进行到什么程度,需要根据具对于一个具体应用来说,规范化应进行到什么程度,需要根据具体情况而定一般来说,关系模式达到第三范式就能获得比较满体情况而定一般来说,关系模式达到第三范式就能获得比较满意的效果意的效果关系模式的优化※⑸⑸ 对关系模式进行必要的分解,以提高数据操作的效率和存储空对关系模式进行必要的分解,以提高数据操作的效率和存储空间的利用率间的利用率 ※常用的分解方法有两种:水平分解和垂直分解常用的分解方法有两种:水平分解和垂直分解 ※①①水平分解所谓水平分解是指把一个关系模式水平分解所谓水平分解是指把一个关系模式R中的元组分为若中的元组分为若干子集合,定义每个子集合为一个子关系,以提高系统的效率干子集合,定义每个子集合为一个子关系,以提高系统的效率 ※例如有一个产品关系模式,其中包含有出口产品和内销产品两类例如有一个产品关系模式,其中包含有出口产品和内销产品两类数据由于不同的应用对应不同的产品,如一个应用只对应进口数据由于不同的应用对应不同的产品,如一个应用只对应进口产品,而另一个应用只对应内销产品。
因此,可将产品关系模式产品,而另一个应用只对应内销产品因此,可将产品关系模式进行水平分解,分解为两个关系模式,一个存放出口产品数据,进行水平分解,分解为两个关系模式,一个存放出口产品数据,另一个存放内销产品数据另一个存放内销产品数据产品号产品号产品名产品名型号规格型号规格………………………产品号产品号产品名产品名型号规格型号规格………………………出口产品出口产品内销产品内销产品关系模式的优化※②② 垂直分解所谓垂直分解是把一个关系模式垂直分解所谓垂直分解是把一个关系模式R的属性分解为的属性分解为若干子集合,形成若干子关系模式若干子集合,形成若干子关系模式 ※例如有一个职工关系模式,其中含有例如有一个职工关系模式,其中含有“职工号职工号”、、“职工名职工名”、、“性别性别”、、“职务职务”、、“职称职称”、、“出生日期出生日期”、、“地址地址”、、“邮编邮编”、、“”、、“所在部门所在部门”等描述属性等描述属性※如果应用中经常存取的数据是职工号、职工名、性别、职务以如果应用中经常存取的数据是职工号、职工名、性别、职务以及职称,而其他数据很少使用,则可以对职工关系模式进行垂及职称,而其他数据很少使用,则可以对职工关系模式进行垂直分解,即分解为两个关系模式,一个存放经常使用的数据,直分解,即分解为两个关系模式,一个存放经常使用的数据,另一个存放不常使用的数据。
另一个存放不常使用的数据职工号职工号职工名职工名性别性别职务职务……………………………职工号职工号出生日期出生日期地址地址邮编邮编……………………………职工职工1 1职工职工2 2关系模式的优化※垂直分解的原则为:凡是经常在一起使用的属性从垂直分解的原则为:凡是经常在一起使用的属性从R中分解出来形成一个子关系模式,这样也可以提高数中分解出来形成一个子关系模式,这样也可以提高数据操作的效率据操作的效率 ※垂直分解的好处是可以提高某些事务的效率;不足之垂直分解的好处是可以提高某些事务的效率;不足之处是可能会使得另一些事务不得不执行连接操作,从处是可能会使得另一些事务不得不执行连接操作,从而降低效率是否需要垂直分解,取决于分解后而降低效率是否需要垂直分解,取决于分解后R上上的所有事务的总效率是否得到了提高的所有事务的总效率是否得到了提高※垂直分解的方法可以采用简单的直观分解,也可以用垂直分解的方法可以采用简单的直观分解,也可以用关系模式分解算法进行分解关系模式分解算法进行分解※需要注意的是,垂直分解必须以不损失关系模式的语需要注意的是,垂直分解必须以不损失关系模式的语义(保持无损连接性和保持函数依赖性)为前提。
义(保持无损连接性和保持函数依赖性)为前提关系模式的优化※例例6.11 假设有一个选课关系:选修课程(学号,姓名,年龄,课假设有一个选课关系:选修课程(学号,姓名,年龄,课程名称,成绩,学分)请分析该关系属于第几范式?如果应用程名称,成绩,学分)请分析该关系属于第几范式?如果应用中需要常常对选修课程关系进行增、删、改操作,该关系存在什中需要常常对选修课程关系进行增、删、改操作,该关系存在什么问题?并对其设计进行优化么问题?并对其设计进行优化 ※解:由于每个学生可能选修多门课程,而每门课程对应一个成绩解:由于每个学生可能选修多门课程,而每门课程对应一个成绩因此,该关系的候选关键字为(学号,课程名称)因此,该关系的候选关键字为(学号,课程名称) ※根据数据的语义,该关系上存在的函数依赖集为:根据数据的语义,该关系上存在的函数依赖集为: ※(学号,课程名称)(学号,课程名称)→(姓名,年龄,成绩,学分),课程名称(姓名,年龄,成绩,学分),课程名称→学分,学号学分,学号→(姓名,年龄)姓名,年龄) ※由于(学号,课程名称)由于(学号,课程名称)→(姓名,年龄),而(学号,课程名(姓名,年龄),而(学号,课程名称)的子集称)的子集“学号学号”也能函数确定一个学生的姓名和年龄,即学也能函数确定一个学生的姓名和年龄,即学号号→(姓名,年龄)。
姓名,年龄)※该关系存在非主属性对候选键的部分函数依赖,因此,选修课程该关系存在非主属性对候选键的部分函数依赖,因此,选修课程关系属于第一范式,且存在以下问题:关系属于第一范式,且存在以下问题:关系模式的优化※ ⑴⑴ 数据冗余:如果同一门课程由多个学生选修,数据冗余:如果同一门课程由多个学生选修,“学分学分”就会重复多次;如果同一个学生选修了多门课就会重复多次;如果同一个学生选修了多门课程,该学生的姓名和年龄就会重复多次程,该学生的姓名和年龄就会重复多次 ※ ⑵⑵ 更新异常:若调整了某门课程的学分,则数据表更新异常:若调整了某门课程的学分,则数据表中该门课程所有行的中该门课程所有行的“学分学分”值都要更新,否则会出值都要更新,否则会出现同一门课程学分不同的情况.现同一门课程学分不同的情况. ※⑶⑶ 插入异常:假定要开设一门新的课程,暂时还没有插入异常:假定要开设一门新的课程,暂时还没有人选修此时,由于候选键中人选修此时,由于候选键中“学号学号”没有值,所以没有值,所以课程名称和学分也无法插入数据库课程名称和学分也无法插入数据库 ※⑷⑷ 删除异常:假设有一批学生已经完成课程的选修,删除异常:假设有一批学生已经完成课程的选修,这些选修记录就应该从选修课程数据表中删除。
但与这些选修记录就应该从选修课程数据表中删除但与此同时,课程名称和学分信息也有可能被删除此同时,课程名称和学分信息也有可能被删除 由由于选修课程关系中的数据需要经常更新,所以必须解于选修课程关系中的数据需要经常更新,所以必须解决上述可能出现的操作异常通过对关系进行分解,决上述可能出现的操作异常通过对关系进行分解,可将选修课程关系分解为以下三个表:可将选修课程关系分解为以下三个表: 关系模式的优化※ 学生(学号,姓名,年龄)学生(学号,姓名,年龄) ※课程(课程名称,学分)课程(课程名称,学分) ※选课(学号,课程名称,成绩)选课(学号,课程名称,成绩)※其中,学生关系上的候选键为其中,学生关系上的候选键为“学号学号”,函数依赖集,函数依赖集为:为: ※ {学号学号→姓名,学号姓名,学号→年龄年龄} ※ 由于不存在非主属性对候选键的部分函数依赖和传递由于不存在非主属性对候选键的部分函数依赖和传递函数依赖,因此,学生关系属于第三范式函数依赖,因此,学生关系属于第三范式 ※课程关系上的候选键为课程关系上的候选键为“课程名称课程名称”,函数依赖为:,函数依赖为: ※课程名称课程名称→学分学分 ※由于不存在非主属性对候选键的部分函数依赖和传递由于不存在非主属性对候选键的部分函数依赖和传递函数依赖,因此,课程关系也属于第三范式。
函数依赖,因此,课程关系也属于第三范式关系模式的优化※选课关系上的候选键为选课关系上的候选键为{学号,课程名称学号,课程名称},,※函数依赖为:函数依赖为: {学号,课程名称学号,课程名称}→成绩成绩 ※由于不存在非主属性对候选键的部分函数依赖和传递函数依赖,由于不存在非主属性对候选键的部分函数依赖和传递函数依赖,因此,选课关系也属于第三范式因此,选课关系也属于第三范式 ※如果需要增加、删除以及修改学生信息,则只需对学生关系进行如果需要增加、删除以及修改学生信息,则只需对学生关系进行操作 ※如果需要增加、删除以及修改课程信息,则只需对课程关系进行如果需要增加、删除以及修改课程信息,则只需对课程关系进行操作 ※如果需要增加、删除以及选课信息,则只需对选课关系进行操作如果需要增加、删除以及选课信息,则只需对选课关系进行操作 ※另外,如果应用中的查询常常是统计学生的选课情况,则分解后另外,如果应用中的查询常常是统计学生的选课情况,则分解后带来的自然连接操作很少因此,这样的设计是合理的带来的自然连接操作很少因此,这样的设计是合理的 ※ 以上通过对关系选修课程的分解,各关系上的函数依赖集以及不以上通过对关系选修课程的分解,各关系上的函数依赖集以及不同关系模式之间的函数依赖已是最小函数依赖集,并且消除了数同关系模式之间的函数依赖已是最小函数依赖集,并且消除了数据冗余和操作异常。
因此,关系模式得到了优化据冗余和操作异常因此,关系模式得到了优化6.5 物理结构设计物理结构设计物理设计过程示意图物理设计过程示意图不满意不满意数据库模式数据库模式 操作模式操作模式 存储设备特征存储设备特征 DBMS特征特征物理结构设计物理结构设计是否需要修正是否需要修正结束结束满意满意※对于给定的基本数据模式选取一个最适合应用环境的物理对于给定的基本数据模式选取一个最适合应用环境的物理结构的过程,称为物理结构设计结构的过程,称为物理结构设计※ 数据库的物理结构主要指数据库的存储记录格式、存储记数据库的物理结构主要指数据库的存储记录格式、存储记录安排和存取方法显然,数据库的物理设计是完全依赖录安排和存取方法显然,数据库的物理设计是完全依赖于给定的硬件环境和数据库产品的数据库的物理设计示于给定的硬件环境和数据库产品的数据库的物理设计示意图如下图所示意图如下图所示物理结构设计物理设计的步骤:物理设计的步骤: ※⑴⑴ 存储记录结构设计:包括记录的组成、数据项的类存储记录结构设计:包括记录的组成、数据项的类型、长度,以及逻辑记录到存储记录的映射。
型、长度,以及逻辑记录到存储记录的映射※⑵⑵ 确定数据存放位置:可以把经常同时被访问的数据确定数据存放位置:可以把经常同时被访问的数据组合在一起,组合在一起,“记录聚簇(记录聚簇(Clus-Ter))”技术能满足技术能满足这个要求这个要求 ※⑶⑶ 存取方法的设计:存取路径分为主存取路径与辅存存取方法的设计:存取路径分为主存取路径与辅存取路径,前者用于主键检索,后者用于辅助键检索取路径,前者用于主键检索,后者用于辅助键检索 ※⑷⑷ 完整性和安全性考虑:设计者应在完整性、安全性、完整性和安全性考虑:设计者应在完整性、安全性、有效性和效率方面进行分析,作出权衡有效性和效率方面进行分析,作出权衡 ※⑸⑸ 程序设计:在逻辑数据库结构确定后,应用程序设程序设计:在逻辑数据库结构确定后,应用程序设计就应当随之开始物理数据独立性的目的是消除由计就应当随之开始物理数据独立性的目的是消除由于物理结构的改变而引起对应用程序的修改当物理于物理结构的改变而引起对应用程序的修改当物理独立性未得到保证时,可能会发生对程序的修改独立性未得到保证时,可能会发生对程序的修改 6.6 数据库的实现6.6 数据库的实现 ※根据逻辑设计和物理设计的结果,在计算机系统上建根据逻辑设计和物理设计的结果,在计算机系统上建立起实际数据库结构、装入数据、测试和试运行的过立起实际数据库结构、装入数据、测试和试运行的过程称为数据库的实现阶段。
程称为数据库的实现阶段数据库的实现阶段主要有三项工作:数据库的实现阶段主要有三项工作: ※ ⑴⑴ 建立实际数据库结构对描述逻辑设计和物理设建立实际数据库结构对描述逻辑设计和物理设计结果的程序(即计结果的程序(即“源模式源模式”)经)经DBMS编译成目标编译成目标模式和执行后建立了实际的数据库结构模式和执行后建立了实际的数据库结构 ※ ⑵⑵ 装入试验数据对应用程序进行调试试验数据可装入试验数据对应用程序进行调试试验数据可以是实际数据,也可由手工生成或用随机数发生器生以是实际数据,也可由手工生成或用随机数发生器生成应使测试数据尽可能覆盖现实世界的各种情况应使测试数据尽可能覆盖现实世界的各种情况 ※⑶⑶ 装入实际数据,进入试运行状态测试系统的性能装入实际数据,进入试运行状态测试系统的性能指标,是否符合设计目标如果不符合,则返回前面指标,是否符合设计目标如果不符合,则返回前面几步修改数据库的物理结构,甚至逻辑结构几步修改数据库的物理结构,甚至逻辑结构6.7 数据库的运行与维护6.7 数据库的运行与维护 数据库系统运行维护阶段的主要任务有四项:数据库系统运行维护阶段的主要任务有四项: ※⑴⑴ 维护数据库的安全性与完整性。
检查系统安全性是维护数据库的安全性与完整性检查系统安全性是否受到侵犯,及时调整授权和密码,实施系统转储与否受到侵犯,及时调整授权和密码,实施系统转储与备份,发生故障后及时恢复备份,发生故障后及时恢复 ※⑵⑵ 监测并改善数据库运行性能对数据库的存储空间监测并改善数据库运行性能对数据库的存储空间状况及响应时间进行分析评价,结合用户反应确定改状况及响应时间进行分析评价,结合用户反应确定改进措施,实施再构造或再格式化进措施,实施再构造或再格式化 ※⑶⑶ 根据用户要求对数据库现有功能进行扩充根据用户要求对数据库现有功能进行扩充 ※⑷⑷ 及时改正运行中发现的系统错误要充分认识到,及时改正运行中发现的系统错误要充分认识到,数据库系统只要在运行,就要不断地进行评价、调整、数据库系统只要在运行,就要不断地进行评价、调整、修改※如果应用变化太大,再组织工作已无济于事,那么表如果应用变化太大,再组织工作已无济于事,那么表明原数据库应用系统生存期已结束,应该设计新的数明原数据库应用系统生存期已结束,应该设计新的数据库应用系统了据库应用系统了对ER模型的理解※ ER模型是人们认识客观世界的一种方法、工模型是人们认识客观世界的一种方法、工具。
具ER模型具有客观性和主观性两重含义模型具有客观性和主观性两重含义ER模型是在客观事物或系统的基础上形成的,模型是在客观事物或系统的基础上形成的,在某种程度上反映了客观现实,反映了用户的在某种程度上反映了客观现实,反映了用户的需求,因此需求,因此ER模型具有客观性但模型具有客观性但ER模型又模型又不等同于客观事物的本身,它往往反映事物的不等同于客观事物的本身,它往往反映事物的某一方面,至于选取哪个方面或哪些属性,如某一方面,至于选取哪个方面或哪些属性,如何表达则决定于观察者本身的目的与状态,从何表达则决定于观察者本身的目的与状态,从这个意义上说,这个意义上说,ER模型又具有主观性模型又具有主观性对ER模型的理解 ER模型的设计过程,基本上是两大步:模型的设计过程,基本上是两大步:※先设计实体类型(此时不要涉及到先设计实体类型(此时不要涉及到“联系联系”););※再设计联系类型(考虑实体间的联系)再设计联系类型(考虑实体间的联系)※具体设计时,有时具体设计时,有时“实体实体”与与“联系联系”两者之两者之间的界线是模糊的数据库设计者的任务就是间的界线是模糊的数据库设计者的任务就是要把现实世界中的数据以及数据间的联系抽象要把现实世界中的数据以及数据间的联系抽象出来,用出来,用“实体实体”与与“联系联系”来表示。
来表示※另外,设计者应注意,另外,设计者应注意,ER模型应该充分反映模型应该充分反映用户需求,用户需求,ER模型要得到用户的认可才能确模型要得到用户的认可才能确定下来。
