第6章 数据库设计

上传人:re****.1 文档编号:592861594 上传时间:2024-09-23 格式:PPT 页数:111 大小:589KB
返回 下载 相关 举报
第6章 数据库设计_第1页
第1页 / 共111页
第6章 数据库设计_第2页
第2页 / 共111页
第6章 数据库设计_第3页
第3页 / 共111页
第6章 数据库设计_第4页
第4页 / 共111页
第6章 数据库设计_第5页
第5页 / 共111页
点击查看更多>>
资源描述

《第6章 数据库设计》由会员分享,可在线阅读,更多相关《第6章 数据库设计(111页珍藏版)》请在金锄头文库上搜索。

1、第六章第六章 数据库设计数据库设计 主要内容v 概述概述 v需求分析需求分析 v概念结构设计概念结构设计 v逻辑结构设计逻辑结构设计 v物理结构设计物理结构设计 v数据库的实现数据库的实现 v数据库的运行与维护数据库的运行与维护 9/23/20241主要章节主要章节n6.1 概述概述 n6.2 需求分析需求分析n6.3 概念结构设计概念结构设计 n6.4 逻辑结构设计逻辑结构设计n6.5 物理结构设计物理结构设计 n6.6 数据库的实现数据库的实现 n6.7 数据库的运行与维护数据库的运行与维护 9/23/20242本章重要概念本章重要概念 (1)(1)数据库设计的两种方法:生命周期法和快速原

2、型法。数据库设计的两种方法:生命周期法和快速原型法。(2)(2)概念设计的重要性、主要步骤。逻辑设计阶段的主要步骤。概念设计的重要性、主要步骤。逻辑设计阶段的主要步骤。(3)ER(3)ER模模型型的的基基本本元元素素,属属性性的的分分类类,联联系系的的元元数数、连连通通词词、基基数数。采用采用ERER方法的概念设计步骤。方法的概念设计步骤。(4)ER(4)ER模型到关系模型的转换规则。采用模型到关系模型的转换规则。采用ERER方法的逻辑设计步骤。方法的逻辑设计步骤。(5)ER(5)ER模型的扩充:弱实体,超类和子类。模型的扩充:弱实体,超类和子类。 9/23/202436.1 概述概述 主要内

3、容主要内容n数据库设计目标和方法数据库设计目标和方法n数据库设计的基本步骤数据库设计的基本步骤 9/23/20244数据库设计目标和方法数据库设计目标和方法 (1)z数据库设计数据库设计数据库设计是指对于给定的软、硬件环境,针对现实问题,设计数据库设计是指对于给定的软、硬件环境,针对现实问题,设计一个较优的数据模型,建立相应的数据库结构和数据库应用系统。一个较优的数据模型,建立相应的数据库结构和数据库应用系统。z数据库设计目标数据库设计目标 最大限度地满足用户的应用功能需求。主要是指用户可以将最大限度地满足用户的应用功能需求。主要是指用户可以将当前与可预知的将来应用所需要的数据及其联系,全部准

4、确地存放在当前与可预知的将来应用所需要的数据及其联系,全部准确地存放在数据库中。数据库中。 获得良好的数据库性能。即要求数据库设计保持良好的数据特获得良好的数据库性能。即要求数据库设计保持良好的数据特性以及对数据的高效率存取和资源的合理使用,并使建成的数据库具性以及对数据的高效率存取和资源的合理使用,并使建成的数据库具有良好的数据共享性、独立性、完整性及安全性等。有良好的数据共享性、独立性、完整性及安全性等。 9/23/20245对关系数据库而言主要有:对关系数据库而言主要有:l数据要达到一定的规范化程度,避免数据重复存储和异常操作。数据要达到一定的规范化程度,避免数据重复存储和异常操作。l保

5、持实体之间连接的完整性,避免数据库的不一致性。保持实体之间连接的完整性,避免数据库的不一致性。l满足对事务响应时间的要求。满足对事务响应时间的要求。l尽可能减少数据的存储量和内外存间数据的传输量。尽可能减少数据的存储量和内外存间数据的传输量。l便于数据库的扩充和移植,使系统有更好的适应性。便于数据库的扩充和移植,使系统有更好的适应性。 对现实世界模拟的精确度要高。对现实世界模拟的精确度要高。 数据库设计应充分利用和发挥现有数据库设计应充分利用和发挥现有DBMS的功能和性能。的功能和性能。 符合软件工程设计要求,因为应用程序设计本身就是数据库设计符合软件工程设计要求,因为应用程序设计本身就是数据

6、库设计任务的一部分。任务的一部分。 数据库设计目标和方法数据库设计目标和方法 (2)9/23/20246z数据库设计方法数据库设计方法 生命周期法生命周期法生命周期(生命周期(Life cycle)法)法就是将整个数据库应用系统的开发过程分就是将整个数据库应用系统的开发过程分解成若干个阶段,并对每个阶段的目标、任务、方法作出规定,使整个解成若干个阶段,并对每个阶段的目标、任务、方法作出规定,使整个数据库应用系统的开发过程具有合理的组织和科学的秩序。数据库应用系统的开发过程具有合理的组织和科学的秩序。可以分成四个主要阶段:系统分析、系统设计、系统实施、系统运行可以分成四个主要阶段:系统分析、系统

7、设计、系统实施、系统运行与维护。与维护。 主要遵循以下四条原则:主要遵循以下四条原则: 用户参与的原则。用户参与的原则。 先逻辑、后物理的原则。先逻辑、后物理的原则。 自顶向下的原则。自顶向下的原则。 工作成果描述标准化原则。工作成果描述标准化原则。 数据库设计目标和方法数据库设计目标和方法 (3)9/23/20247需求分析系统设计 系统实施 运行维护 生生命命周周期期法法确定开发的总目标确定开发的总目标,计划计划开发的软件系统功能、性开发的软件系统功能、性能、可靠性及接口等方面能、可靠性及接口等方面的设想。并提供一个可做的设想。并提供一个可做为设计基础的系统规格说为设计基础的系统规格说明书

8、,包括对软、硬件环明书,包括对软、硬件环境的需求和一整套完整的境的需求和一整套完整的数据流图。数据流图。 把需求分析阶段所确定的把需求分析阶段所确定的功能细化。主要工作是设功能细化。主要工作是设计模块结构图和系统的数计模块结构图和系统的数据结构。据结构。 以某一个或几种特定的以某一个或几种特定的程序设计语言表达上一阶程序设计语言表达上一阶段确定的各模块控制流程。段确定的各模块控制流程。编制时应遵循结构化程序编制时应遵循结构化程序设计。并对已编制好的程设计。并对已编制好的程序进行单元调试(分调),序进行单元调试(分调),整体调试(联调)和系统整体调试(联调)和系统测试(验收)。测试(验收)。 是

9、整个生存期中时间最是整个生存期中时间最长的阶段,重点是将系长的阶段,重点是将系统付诸使用,同时解决统付诸使用,同时解决开发过程中遗留问题,开发过程中遗留问题,改正和改善性能改正和改善性能.数据库设计目标和方法数据库设计目标和方法 (4)9/23/20248 快速原型法快速原型法 快速原型(快速原型(Rapid Prototyping)法)法的基本思想是在初步了解用户的基本思想是在初步了解用户的基本要求后,开发人员先建立一个他们认为符合用户要求的模式系统的基本要求后,开发人员先建立一个他们认为符合用户要求的模式系统交付用户检验,由于模型是可以执行的,所以为用户提供了获得感性认交付用户检验,由于模

10、型是可以执行的,所以为用户提供了获得感性认识的机会。识的机会。优点:优点: n用户可以测试具体实例,直接观察一个实际系统用户可以测试具体实例,直接观察一个实际系统 。n有利于准确地定义出用户需求,降低系统开发风险。有利于准确地定义出用户需求,降低系统开发风险。n适用于中小规模系统的开发。适用于中小规模系统的开发。 缺点:缺点:具有为用户需求快速生成软件的工具和环境。具有为用户需求快速生成软件的工具和环境。 数据库设计目标和方法数据库设计目标和方法 (5)9/23/20249 面向对象法面向对象法面向对象(面向对象(Object Oriented,简称,简称OO)法是针对面向过程提出的,)法是针

11、对面向过程提出的,是区别于传统的结构化方法的一种新方法、新思路,是一种基于数据抽是区别于传统的结构化方法的一种新方法、新思路,是一种基于数据抽象的类的组合的自底向上的开发方法,由四个基本步骤组成:象的类的组合的自底向上的开发方法,由四个基本步骤组成: 标识对象和定义类;标识对象和定义类; 组织类间关系;组织类间关系; 在类层中构造框架;在类层中构造框架; 建立可复用的类库和系统总框架。建立可复用的类库和系统总框架。 数据库设计目标和方法数据库设计目标和方法 (6)9/23/202410面向对象法主要有以下四个特征:面向对象法主要有以下四个特征:(1) 对象是有关数据和操作的封装体,突破了传统的

12、将数据与操作对象是有关数据和操作的封装体,突破了传统的将数据与操作分离的模式,较好地实现了数据抽象。分离的模式,较好地实现了数据抽象。(2) 面向对象法的继承性体现了概念分离抽象。在对象继承结构上,面向对象法的继承性体现了概念分离抽象。在对象继承结构上,下层对象继承上层对象的特征(属性和操作),因而便于软件系统的演下层对象继承上层对象的特征(属性和操作),因而便于软件系统的演化和功能扩充。化和功能扩充。(3) 面向对象法用消息将对象动态连接在一起。与结构化方法中的面向对象法用消息将对象动态连接在一起。与结构化方法中的模块调用不同,面向对象法采用了灵活的消息传递方式,便于在概念上模块调用不同,面

13、向对象法采用了灵活的消息传递方式,便于在概念上体现并行和分布式结构。体现并行和分布式结构。(4) 面向对象法具有封装性。对象将其实现细节封装在它的内部,面向对象法具有封装性。对象将其实现细节封装在它的内部,因此无论是对象功能的完善扩充还是对象实现的修改,影响仅限于该对因此无论是对象功能的完善扩充还是对象实现的修改,影响仅限于该对象内部而不会对外界产生影响,这就保证了软件系统的可复用性和可维象内部而不会对外界产生影响,这就保证了软件系统的可复用性和可维护性。护性。 数据库设计目标和方法数据库设计目标和方法 (7)9/23/202411数据库设计的基本步骤数据库设计的基本步骤运行和维护 实现 物理

14、设计逻辑设计概念设计需求分析 对用户提出的各种要求加以分析,对用户提出的各种要求加以分析,对各种原始数据加以综合、整理,是对各种原始数据加以综合、整理,是形成最终设计目标的首要阶段,也是形成最终设计目标的首要阶段,也是整个数据库设计过程中最困难的阶段。整个数据库设计过程中最困难的阶段。 概念结构设计是对用户需求进行概念结构设计是对用户需求进行进一步抽象、归纳,并形成独立于进一步抽象、归纳,并形成独立于DBMSDBMS和有关软、硬件的概念数据模型和有关软、硬件的概念数据模型的设计过程,这是对现实世界中具体的设计过程,这是对现实世界中具体数据的首次抽象,实现了从现实世界数据的首次抽象,实现了从现实

15、世界到信息世界的转化过程。到信息世界的转化过程。 逻辑结构设计是将概念结构转逻辑结构设计是将概念结构转化为某个化为某个DBMSDBMS所支持的数据模型,所支持的数据模型,并进行优化的设计过程。由于逻辑并进行优化的设计过程。由于逻辑结构设计是一个基于具体结构设计是一个基于具体DBMSDBMS的实的实现过程,所以选择什么样的数据模现过程,所以选择什么样的数据模型尤为重要,其次是数据模型的优型尤为重要,其次是数据模型的优化。化。 物理结构设计是将逻辑结构设计物理结构设计是将逻辑结构设计阶段所产生的逻辑数据模型,转换为阶段所产生的逻辑数据模型,转换为某一计算机系统所支持的数据库物理某一计算机系统所支持

16、的数据库物理结构的实现过程。结构的实现过程。 数据库实施阶段,即数据库调试、数据库实施阶段,即数据库调试、试运行阶段。一旦数据库物理结构形试运行阶段。一旦数据库物理结构形成,就可以用已选定的成,就可以用已选定的DBMSDBMS来定义、来定义、描述相应的数据库结构,装入相应的描述相应的数据库结构,装入相应的数据,以生成完整的数据库。数据,以生成完整的数据库。 数据库实施阶段结束,标志着数数据库实施阶段结束,标志着数据库系统投入正常运行工作的开始。据库系统投入正常运行工作的开始。数据库运行及维护的过程,是一个调数据库运行及维护的过程,是一个调整、修改和不断完善的运行过程。整、修改和不断完善的运行过

17、程。 9/23/2024126.2 需求分析需求分析 主要内容主要内容n需求分析的任务需求分析的任务n需求分析的步骤需求分析的步骤 9/23/202413需求分析的任务需求分析的任务 (一一)z需求分析阶段任务是需求分析阶段任务是对系统的整个应用情况作全面的、详细的调查,对系统的整个应用情况作全面的、详细的调查,确定企业组织的目标,收集支持系统总的设计目标的基础数据和对这些确定企业组织的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户的需求,并把这些要求写成用户和数据库设计者数据的要求,确定用户的需求,并把这些要求写成用户和数据库设计者都能够接受的文档。都能够接受的文档。z

18、需求分析中调查分析的方法需求分析中调查分析的方法很多,通常的办法是对不同层次的企业很多,通常的办法是对不同层次的企业管理人员进行个人访问,内容包括业务处理和企业组织中的各种数据。管理人员进行个人访问,内容包括业务处理和企业组织中的各种数据。访问的结果应该包括数据的流程、过程之间的接口以及访问者和职员两访问的结果应该包括数据的流程、过程之间的接口以及访问者和职员两方面对流程和接口语义上的核对说明和结论。对于某些特殊的目标和数方面对流程和接口语义上的核对说明和结论。对于某些特殊的目标和数据库的要求,可以从企业组织中的最高层机构得到。据库的要求,可以从企业组织中的最高层机构得到。z设计人员还应该了解

19、系统将来要发生的变化设计人员还应该了解系统将来要发生的变化,收集未来应用所涉及,收集未来应用所涉及的数据,充分考虑到系统可能的扩充和变动,使系统设计更符合未来发的数据,充分考虑到系统可能的扩充和变动,使系统设计更符合未来发展的趋向,并且易于改动,以减少系统维护的代价。展的趋向,并且易于改动,以减少系统维护的代价。 9/23/202414z 这一阶段的任务如图这一阶段的任务如图 需求分析的任务需求分析的任务 (二二)总体信息需求总体信息需求处理需求处理需求第第1步:需求分析步:需求分析z总体信息需求定义了未来系统用到的所有信息,描述了数据之间本质总体信息需求定义了未来系统用到的所有信息,描述了数

20、据之间本质上和概念上的联系,描述了实体、属性、组合及联系的性质。上和概念上的联系,描述了实体、属性、组合及联系的性质。 z这一阶段的结果是这一阶段的结果是“需求说明书需求说明书”,其主要内容是系统的数据流图和,其主要内容是系统的数据流图和数据字典。需求说明书应是一份既切合实际,又具有远见的文档,是一个数据字典。需求说明书应是一份既切合实际,又具有远见的文档,是一个描述新系统的轮廓图。描述新系统的轮廓图。 9/23/202415需求分析的步骤需求分析的步骤 (一一) 分析用户活动,产生用户活动图。分析用户活动,产生用户活动图。这一步主要了解用户当前的业务活动和职能,搞清其处理流程(即这一步主要了

21、解用户当前的业务活动和职能,搞清其处理流程(即业务流程)。如果一个处理流程比较复杂,就要把这个处理流程分解成业务流程)。如果一个处理流程比较复杂,就要把这个处理流程分解成若干个子处理流程,使每个处理流程功能明确、界面清楚,分析之后画若干个子处理流程,使每个处理流程功能明确、界面清楚,分析之后画出用户活动图(即用户的业务流程图)。出用户活动图(即用户的业务流程图)。 确定系统范围,产生系统范围图。确定系统范围,产生系统范围图。这一步是确定系统的边界。在和用户经过充分讨论的基础上,确定这一步是确定系统的边界。在和用户经过充分讨论的基础上,确定计算机所能进行数据处理的范围,确定哪些工作由人工完成,哪

22、些工作计算机所能进行数据处理的范围,确定哪些工作由人工完成,哪些工作由计算机系统完成,即确定人机界面。由计算机系统完成,即确定人机界面。 分析用户活动所涉及的数据,产生数据流图。分析用户活动所涉及的数据,产生数据流图。深入分析用户的业务处理,以数据流图形式表示出数据的流向和对深入分析用户的业务处理,以数据流图形式表示出数据的流向和对数据所进行的加工。数据所进行的加工。 9/23/202416数据流图(数据流图(Data Flow Diagram,简记为,简记为DFD)是从是从“数据数据”和和“对数据的加工对数据的加工”两方面表达数据处理系统工作过程的一种图形表示法。两方面表达数据处理系统工作过

23、程的一种图形表示法。特点:特点:具有直观、易于被用户和软件人员双方都能理解的一种表达具有直观、易于被用户和软件人员双方都能理解的一种表达系统功能的描述方式。系统功能的描述方式。 DFD有四个基本成分:有四个基本成分:数据流(用箭头表示),加工或处理(用圆数据流(用箭头表示),加工或处理(用圆圈表示),文件(用双线段表示)和外部实体(数据流的源点或终点,圈表示),文件(用双线段表示)和外部实体(数据流的源点或终点,用方框表示)。用方框表示)。 需求分析的步骤需求分析的步骤 (二二)教师教师原始输入原始输入输入输入处理处理成绩成绩登录登录输出输出处理处理教务处教务处输入输入格式化格式化输出输出输出

24、输出格式化格式化成绩文件成绩文件9/23/202417DFD可作为自顶向下逐步细化时描述对象的工具。顶层的每一个圆可作为自顶向下逐步细化时描述对象的工具。顶层的每一个圆圈(加工处理)都可以进一步细化为第二层;第二层的每一个圆圈又可圈(加工处理)都可以进一步细化为第二层;第二层的每一个圆圈又可以进一步细化为第三层以进一步细化为第三层;直到最底层的每一个圆圈已表示一个最基;直到最底层的每一个圆圈已表示一个最基本的处理动作为止。本的处理动作为止。DFD可以形象地表示数据流与各业务活动的关系,它是需求分析的可以形象地表示数据流与各业务活动的关系,它是需求分析的工具和分析结果的描述手段。工具和分析结果的

25、描述手段。例例6.1 在选课业务的处理流程中,假设开发人员收集到以下数据:在选课业务的处理流程中,假设开发人员收集到以下数据:学生基本信息表、课程表、选课单、选课情况一览表、成绩单等。学生基本信息表、课程表、选课单、选课情况一览表、成绩单等。通过分析,确认学生基本信息表、课程表、选课单是输入选课系统通过分析,确认学生基本信息表、课程表、选课单是输入选课系统的原始数据,而选课情况一览表以及成绩单等是选课系统最终需要输出的原始数据,而选课情况一览表以及成绩单等是选课系统最终需要输出的数据,如下图所示。的数据,如下图所示。 需求分析的步骤需求分析的步骤 (三三)9/23/202418需求分析的步骤需

26、求分析的步骤 (四四)系统原始数据输入系统原始数据输入学生学生选课系统选课系统学生基本信息学生基本信息学生选课信息学生选课信息课程成绩课程成绩课程信息课程信息个人成绩单个人成绩单选课情况一览表选课情况一览表 某课程成绩单某课程成绩单系统输出数据系统输出数据学生选课系统是如何对系统的原始数据进行处理最后得到系统的学生选课系统是如何对系统的原始数据进行处理最后得到系统的输出数据呢?下面图给出了学生选课系统的整个数据流图,它是前面图输出数据呢?下面图给出了学生选课系统的整个数据流图,它是前面图的进一步分解和细化。数据流图是一种从数据的角度描述数据作为输入的进一步分解和细化。数据流图是一种从数据的角度

27、描述数据作为输入进入系统,经受若干加工处理,或者合并,或者分解,或者存储,最后进入系统,经受若干加工处理,或者合并,或者分解,或者存储,最后输出的整个过程。输出的整个过程。 9/23/202419需求分析的步骤需求分析的步骤 (五五)课程信息课程信息学生基本信息学生基本信息个人成绩单个人成绩单选课情况一览表选课情况一览表某课程成绩单某课程成绩单查询结果查询结果查询结果查询结果查询结果查询结果系统原始数据系统原始数据系统输出数据系统输出数据学生基本信息学生基本信息课程信息课程信息学生选课信息学生选课信息学生信学生信息录入息录入选课信选课信息录入息录入成绩录入成绩录入查询个人查询个人所有课程所有课

28、程成绩成绩课程信课程信息录入息录入查询课程查询课程的的选课情况选课情况查询某查询某门课程的门课程的所所有成绩有成绩学生选课系统的学生选课系统的0 0层数据流图层数据流图 9/23/202420 分析系统数据,产生数据字典。分析系统数据,产生数据字典。 数据字典提供了对数据库数据描述的集中管理,它的功能是存储和数据字典提供了对数据库数据描述的集中管理,它的功能是存储和检索各种数据描述(称为元数据检索各种数据描述(称为元数据Metadata),如叙述性的数据定义等,),如叙述性的数据定义等,并且为并且为DBA提供有关的报告。提供有关的报告。 数据字典中通常包括数据字典中通常包括 : 数据项数据项

29、数据项是数据的最小单位,对数据项的描述,通常包括数据项名、数据项是数据的最小单位,对数据项的描述,通常包括数据项名、含义、别名、类型、长度、取值范围以及与其他数据项的逻辑关系。含义、别名、类型、长度、取值范围以及与其他数据项的逻辑关系。 例例6.2 在上图中有一个数据在上图中有一个数据流查询个人所有课程成绩,每个流查询个人所有课程成绩,每个人的成绩单有一个数据项为学生人的成绩单有一个数据项为学生的学号的学号SNO。在数据字典中对此。在数据字典中对此数据项如下描述。数据项如下描述。数据项名:数据项名:SNOSNO说说 明:标识每张成绩单明:标识每张成绩单类类 型:型:CHAR(9)CHAR(9)

30、长长 度:度:9 9别别 名:学生学号名:学生学号取值范围:取值范围:000000000000000000999999999999999999需求分析的步骤需求分析的步骤 (六六)9/23/202421 数据结构数据结构数据结构反映了数据之间的组合关系。数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,也可以由若干个数据结构一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项和数据结构混合而成。组成,或由若干个数据项和数据结构混合而成。它包括数据结构名、含义及组成该数据结构的数据项名或数据结构它包括数据结构名、含义及组成该数据结构的数据项名或数据

31、结构名。名。 需求分析的步骤需求分析的步骤 (七七)9/23/202422 数据流数据流数据流可以是数据项,也可以是数据结构,表示某一加工处理过程数据流可以是数据项,也可以是数据结构,表示某一加工处理过程的输入或输出数据。对数据流的描述应包括数据流名、说明、流出的加的输入或输出数据。对数据流的描述应包括数据流名、说明、流出的加工名、流入的加工名以及组成该数据流的数据结构或数据项。工名、流入的加工名以及组成该数据流的数据结构或数据项。例例6.3 在上图中成绩查询是一个数据流,在数据字典中可作如下描在上图中成绩查询是一个数据流,在数据字典中可作如下描述。述。 需求分析的步骤需求分析的步骤 (八八)

32、数据流名:个人成绩查询数据流名:个人成绩查询说说 明:学生可以根据所学专业、班级号、学生姓名、明:学生可以根据所学专业、班级号、学生姓名、 课程名称来查询个人成绩课程名称来查询个人成绩来来 源:学生选课信息源:学生选课信息去去 向:输出到个人成绩单向:输出到个人成绩单数据结构:个人成绩查询数据结构:个人成绩查询 所学专业所学专业 班级号班级号 学生姓名学生姓名 课程名称课程名称9/23/202423 数据存储数据存储数据存储是处理过程中要存储的数据,它可以是手工凭证、手工文档或数据存储是处理过程中要存储的数据,它可以是手工凭证、手工文档或计算机文档。对数据存储的描述应包括:数据存储名、说明、输

33、入数据流、计算机文档。对数据存储的描述应包括:数据存储名、说明、输入数据流、输出数据流、数据量(每次存取多少数据)、存取频度(单位时间内存取次输出数据流、数据量(每次存取多少数据)、存取频度(单位时间内存取次数)和存取方式(是批处理,还是联机处理;是检索,还是更新;是顺序存数)和存取方式(是批处理,还是联机处理;是检索,还是更新;是顺序存取,还是随机存取)。取,还是随机存取)。 例例6.4 上图中课程是个数据存储,在数据字典中可对其作如下描述。上图中课程是个数据存储,在数据字典中可对其作如下描述。 需求分析的步骤需求分析的步骤 (九九)数据存储名:课程说 明:对每门课程的名称、学分、先行课程号

34、和摘要的描述输出数据流:课程介绍数 据 描 述:课程号、课程名、学分数、先行课程号、摘要数 量:每年328种 存 取 方 式:随机存取9/23/202424 加工过程加工过程 对加工处理的描述包括加工过程名、说明、输入数据对加工处理的描述包括加工过程名、说明、输入数据流、输出数据流,并简要说明处理工作、频度要求、数据量及响应时间流、输出数据流,并简要说明处理工作、频度要求、数据量及响应时间等。等。 需求分析的步骤需求分析的步骤 (十十)处理过程:确定选课名单处理过程:确定选课名单说说 明:对选某门课程的每一个学生,根据已选修课程确定其是否可明:对选某门课程的每一个学生,根据已选修课程确定其是否

35、可 选该课程。再根据学生选课的人数选择适当的教室,制定选课单。选该课程。再根据学生选课的人数选择适当的教室,制定选课单。输输 入:学生选课、可选课程、已选课程入:学生选课、可选课程、已选课程输输 出:选课单程序提要:出:选课单程序提要: a a对所选课程在选课表中查找其是否已选此课程;对所选课程在选课表中查找其是否已选此课程; b b若未选过此课程,则在选课表中查找是否已选此课程的先行课程;若未选过此课程,则在选课表中查找是否已选此课程的先行课程; c c若若a a、b b都满足,则在选课表中增加一条选课记录;都满足,则在选课表中增加一条选课记录; d d处理完全部学生的选课后,形成选课单。处

36、理完全部学生的选课后,形成选课单。9/23/2024256.3概念结构设计概念结构设计 主要内容主要内容n概念结构设计任务和概念结构设计任务和ER模型的特点模型的特点n概念结构设计的基本方法概念结构设计的基本方法n概念结构设计的主要步骤概念结构设计的主要步骤n局部局部ER模型的设计模型的设计n全局全局ER模型的设计模型的设计n概念结构设计实例概念结构设计实例9/23/202426概念结构设计任务和概念结构设计任务和ER模型的特点模型的特点 数据库的概念结构设计是整个数据库设计的关键阶段,其主要任务是数据库的概念结构设计是整个数据库设计的关键阶段,其主要任务是通过对用户需求进行综合、归纳与抽象,

37、形成一个独立于具体通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的的概念模式。概念模式。 实体实体-联系(联系(Entity Rela-tionship,ER)模型具有以下特点:)模型具有以下特点: 能真实、充分地反映现实世界,包括事物和事物之间的联系,并能真实、充分地反映现实世界,包括事物和事物之间的联系,并能满足用户对数据的处理要求;能满足用户对数据的处理要求; 易于理解。可以利用它在设计人员、编程人员以及最终用户之间易于理解。可以利用它在设计人员、编程人员以及最终用户之间进行交流,使得用户能够积极参与,保证数据库设计的成功;进行交流,使得用户能够积极参与,保证数据库设计的

38、成功; 易于更改。当应用环境和应用要求发生改变时,容易对模式进行易于更改。当应用环境和应用要求发生改变时,容易对模式进行修改和扩充;修改和扩充; 易于向关系、网状、层次等各种数据模型转换。易于向关系、网状、层次等各种数据模型转换。 9/23/202427 自底向上的设计方法自底向上的设计方法:有时也称为属性综合法。这种方法的基本点是将前面需求分析中收有时也称为属性综合法。这种方法的基本点是将前面需求分析中收集到的数据元素作为基本输入,通过对这些元素的分析,把它们综合成集到的数据元素作为基本输入,通过对这些元素的分析,把它们综合成相应的实体或联系。相应的实体或联系。 自底向上的设计方法适合于较小

39、单位的较为简单的设计对象,而对自底向上的设计方法适合于较小单位的较为简单的设计对象,而对于中等规模以上的设计对象,数据元素常常多到几百甚至几千个。此时于中等规模以上的设计对象,数据元素常常多到几百甚至几千个。此时要对这么多的数据元素进行分析,再综合成相应的实体或联系是一件非要对这么多的数据元素进行分析,再综合成相应的实体或联系是一件非常困难的事情。常困难的事情。 自顶向下的设计方法:自顶向下的设计方法:它是从分析组织的事务活动开始,首先识别用户所关心的实体及实它是从分析组织的事务活动开始,首先识别用户所关心的实体及实体间的联系,建立一个初步的数据模型框架,然后再以逐步求精的方式体间的联系,建立

40、一个初步的数据模型框架,然后再以逐步求精的方式加上必需的描述属性形成一个完整的局部加上必需的描述属性形成一个完整的局部ER模型,最后再将这些局部模型,最后再将这些局部ER模型集成为一个统一的全局模型集成为一个统一的全局ER模型。模型。 概念结构设计的基本方法概念结构设计的基本方法 9/23/202428概念结构设计的主要步骤概念结构设计的主要步骤 进行数据抽象,设计局部概念模式进行数据抽象,设计局部概念模式 局部用户的信息需求是构造全局概念模式的基础。在建立局部概念局部用户的信息需求是构造全局概念模式的基础。在建立局部概念结构时,常常要对需求分析的结果进行细化、补充和修改,如有的数据结构时,常

41、常要对需求分析的结果进行细化、补充和修改,如有的数据项要分为若干子项,有的数据定义要重新核实等。项要分为若干子项,有的数据定义要重新核实等。 将局部概念模式综合成全局概念模式将局部概念模式综合成全局概念模式 综合各局部概念结构就可得到反映所有用户需求的全局概念结构。综合各局部概念结构就可得到反映所有用户需求的全局概念结构。在综合过程中,主要处理各局部模式对各种对象定义的不一致问题,包在综合过程中,主要处理各局部模式对各种对象定义的不一致问题,包括同名异义、异名同义和同一事物在不同模式中被抽象为不同类型的对括同名异义、异名同义和同一事物在不同模式中被抽象为不同类型的对象(例如,有的作为实体,有的

42、又作为属性)等问题。把各个局部结构象(例如,有的作为实体,有的又作为属性)等问题。把各个局部结构合并,还会产生冗余问题,或导致对信息需求的再调整与分析,以确定合并,还会产生冗余问题,或导致对信息需求的再调整与分析,以确定确切的含义。确切的含义。 评审评审 消除了所有冲突后,就可把全局结构提交评审。评审分为用户评审消除了所有冲突后,就可把全局结构提交评审。评审分为用户评审与与DBA及应用开发人员评审两部分。及应用开发人员评审两部分。 9/23/202429局部局部ER模型的设计模型的设计 (1)1. 确定局部结构范围确定局部结构范围设计局部设计局部ER模型时,首先需要根据系统的具体情况,在多层的

43、数据模型时,首先需要根据系统的具体情况,在多层的数据流图中选择一个适当层次的数据流图,让这组图中每一部分对应一个局流图中选择一个适当层次的数据流图,让这组图中每一部分对应一个局部应用,然后以这一层次的数据流图为出发点,设计局部部应用,然后以这一层次的数据流图为出发点,设计局部ER图。图。 在确定局部在确定局部ER模型的设计范围时,有两条原则可供参考:模型的设计范围时,有两条原则可供参考: 把那些关系最密切的若干功能所涉及到的数据尽可能地包含在一把那些关系最密切的若干功能所涉及到的数据尽可能地包含在一个局部个局部ER模型内;模型内; 一个局部一个局部ER模型中所包含的实体数不能太多,以免过于复杂

44、,不模型中所包含的实体数不能太多,以免过于复杂,不便理解和管理。便理解和管理。 9/23/202430局部局部ER模型设模型设计的流程图如下:计的流程图如下:局部局部ER模型的设计模型的设计 (2)需求分析结果需求分析结果确定局部确定局部ER模型范围模型范围实体定义实体定义联系定义联系定义属性分配属性分配还有局部还有局部结构待分析结构待分析无无 进入全局进入全局ER模型设计模型设计有9/23/202431需求分析结果确定局部结构范围实体定义联系定义属性分配还有局部结构待分析有无进入全局ER模式设计局部ER模式设计流程图范围的划分要自然,易于管理;范围的大小要适度。太小了,会造成局部结构过多,设

45、计过程繁琐,综合困难;太大了,则容易造成内部结构复杂,不便分析 范围之间的界面要清晰,相互影响要小采用人们习惯的划分;避免冗余,在一个局部结构中,对一个对象只取一种抽象形式,不要重复;依据用户的信息处理需求 确定属性的原则: 属性应该是不可再分解的语义单位;实体与属性之间的关系只能是1:N的;不同实体类型的属性之间应无直接关联关系。 属性分配的原则: 当多个实体类型用到同一属性时, 一般把属性分配给那些使用频率最高的实体类型,或分配给实体值少的实体类型。 有些属性不宜归属于任一实体类型,只说明实体之间联系的特性 局部局部ER模型的设计模型的设计 (3)9/23/202432下面以学校的教务管理

46、信息系统为例来说明局部概念结构设计范围下面以学校的教务管理信息系统为例来说明局部概念结构设计范围的确定。教务管理信息系统的顶层数据流图如下图所示。的确定。教务管理信息系统的顶层数据流图如下图所示。 教务管理教务管理信息系统信息系统学生学籍数据学生学籍数据课程数据课程数据选课数据选课数据成绩数据成绩数据学籍变动表学籍变动表课程表课程表选课一览表选课一览表成绩单成绩单局部局部ER模型的设计模型的设计 (4)下面图给出了教务管理信息系统的下面图给出了教务管理信息系统的0层数据流图,该图描述了教务管层数据流图,该图描述了教务管理信息系统的组成部分以及各部分的输入和输出数据。理信息系统的组成部分以及各部

47、分的输入和输出数据。 9/23/202433局部局部ER模型的设计模型的设计 (5)课程管理课程管理22成绩管理成绩管理44学生基本信息学生基本信息课程表课程表课程数据课程数据成绩单成绩单成成绩绩数数据据选课一览表选课一览表选课管理选课管理3学生基本信息学生基本信息课程信息课程信息选课信息选课信息学籍变动表学籍变动表学生学籍数据学生学籍数据学生学籍学生学籍管理管理1选选课课数数据据9/23/2024342. 确定实体及实体的主键确定实体及实体的主键 确定实体确定实体 实体(实体(Entity)是一个数据对象,指应用中可以区别的客观存在的是一个数据对象,指应用中可以区别的客观存在的事物,如人、部

48、门、表格、物体、项目等。同一类实体构成事物,如人、部门、表格、物体、项目等。同一类实体构成实体集实体集(Entity Set)。ER模型中的实体往往是指实体集。模型中的实体往往是指实体集。学生选课子系统局部应用中,学生是一个实体,学生张平、李玲是学生选课子系统局部应用中,学生是一个实体,学生张平、李玲是学生实体中的两个实例。课程是一个实体,操作系统、数据库原理及应学生实体中的两个实例。课程是一个实体,操作系统、数据库原理及应用是课程实体中的两个实例。用是课程实体中的两个实例。课程管理子系统的局部应用中,课程是一个实体,每门课程是课程课程管理子系统的局部应用中,课程是一个实体,每门课程是课程实体

49、中的一个实例。上课的教师是一个实体,每位上课的教师都是教师实体中的一个实例。上课的教师是一个实体,每位上课的教师都是教师实体中的一个实例。实体中的一个实例。成绩管理子系统的局部应用中,学生是一个实体。一个学生,选修成绩管理子系统的局部应用中,学生是一个实体。一个学生,选修一门课程并参加了考试,就会有这门课程的成绩。因此,可以把成绩视一门课程并参加了考试,就会有这门课程的成绩。因此,可以把成绩视为选课联系的一个属性。为选课联系的一个属性。 局部局部ER模型的设计模型的设计 (6)9/23/202435 确定实体的主键确定实体的主键 主键是确定实体的唯一标志。主键是确定实体的唯一标志。学生实体的主

50、键是学号;课程实体的主键是课程号;学生实体的主键是学号;课程实体的主键是课程号;学籍变动实体的主键是学号学籍变动实体的主键是学号+变动日期;变动日期;教师实体的主键是教师号;教师实体的主键是教师号;成绩实体的主键是学号成绩实体的主键是学号+课程号。课程号。 区分实体与属性的一般原则:区分实体与属性的一般原则: u实体一般需要描述信息,而属性不需要。例如,学生需要描述实体一般需要描述信息,而属性不需要。例如,学生需要描述属性(学号、姓名、性别、出生年月等),所以学生是实体。而属性(学号、姓名、性别、出生年月等),所以学生是实体。而性别不需要描述属性,所以性别是属性。性别不需要描述属性,所以性别是

51、属性。u多值的属性可考虑作为实体。例如,教师的职务是一个多值的多值的属性可考虑作为实体。例如,教师的职务是一个多值的属性,即一个教师可能担任多个职务。此时职务可考虑作为一个属性,即一个教师可能担任多个职务。此时职务可考虑作为一个独立的实体,否则数据库表中就会出现大量空值。独立的实体,否则数据库表中就会出现大量空值。 局部局部ER模型的设计模型的设计 (7)9/23/202436 实体与属性是相对而言的。实体与属性是相对而言的。同一事物,在一种应用环境中作为同一事物,在一种应用环境中作为“属性属性”,在另一种应用环境中,在另一种应用环境中就必须作为就必须作为“实体实体”。例如,学校中的系,在某种

52、应用环境中,它只是作为例如,学校中的系,在某种应用环境中,它只是作为“学生学生”实体实体的一个属性,表明一个学生属于哪个系;而在另一种环境中,由于需要的一个属性,表明一个学生属于哪个系;而在另一种环境中,由于需要考虑一个系的系主任、教师人数、学生人数、办公地点等,这时系就需考虑一个系的系主任、教师人数、学生人数、办公地点等,这时系就需要作为实体了。要作为实体了。 3. 定义实体间的联系定义实体间的联系 联系是实体集之间关系的抽象表示,即对现实世界中事物之间关系联系是实体集之间关系的抽象表示,即对现实世界中事物之间关系的描述。的描述。如教师实体集与学生实体集间的如教师实体集与学生实体集间的“讲授

53、讲授”联系,公司实体集与职工联系,公司实体集与职工实体集之间的实体集之间的“聘任聘任”联系等。联系等。 在局部在局部ER图设计时,需要对已识别出的实体确定不同实体间的联系图设计时,需要对已识别出的实体确定不同实体间的联系是属于什么类型的联系,是二元联系还是多元联系?是属于什么类型的联系,是二元联系还是多元联系? 局部局部ER模型的设计模型的设计 (8)9/23/202437 一对一(一对一(1:1)联系)联系若两个实体集中的每一个实体至多和另一个实体集中的一个实体有若两个实体集中的每一个实体至多和另一个实体集中的一个实体有联系,则称两个实体集具有联系,则称两个实体集具有1:1的联系。的联系。

54、一对多(一对多(1:N)联系)联系设有两个实体集,若第一个实体集中每个实体与第二个实体集中多设有两个实体集,若第一个实体集中每个实体与第二个实体集中多(大于(大于1)个实体相联系,而第二个实体中的每个实体至多和第一个实体)个实体相联系,而第二个实体中的每个实体至多和第一个实体集中的一个实体有联系,则称第一个实体集与第二个实体集是一对多的集中的一个实体有联系,则称第一个实体集与第二个实体集是一对多的联系,记为联系,记为1:N。 多对多(多对多(M:N)联系)联系若两个实体集中的每一个实体都和另一个实体集中多(大于若两个实体集中的每一个实体都和另一个实体集中多(大于1)个实)个实体有联系,则称这两

55、个实体集是多对多的联系,记为体有联系,则称这两个实体集是多对多的联系,记为M:N。 局部局部ER模型的设计模型的设计 (9)9/23/202438定义实体联系时应注意几点定义实体联系时应注意几点 : 消除冗余联系。在确定联系类型时,应注意防止出现冗余联系消除冗余联系。在确定联系类型时,应注意防止出现冗余联系(即可以从其他联系导出的联系)。(即可以从其他联系导出的联系)。 假定每一个技术员必须参加一个工程;每个工程有多个技术员参加;假定每一个技术员必须参加一个工程;每个工程有多个技术员参加;每个工程必须使用一种技术。由于联系具有传递性,因此,隐含了每一每个工程必须使用一种技术。由于联系具有传递性

56、,因此,隐含了每一个技术员必须掌握一种技术。该问题设计到三个实体,即技术员、工程个技术员必须掌握一种技术。该问题设计到三个实体,即技术员、工程以及技术。以及技术。 局部局部ER模型的设计模型的设计 (10)技术员技术员技术技术参与参与1掌握掌握工程工程使用使用N111N冗余联系冗余联系9/23/202439 正确鉴别二元及多元联系。正确鉴别二元及多元联系。在局部在局部ER图设计中,不同实体间应建立二元还是多元联系,应该根图设计中,不同实体间应建立二元还是多元联系,应该根据问题说明来确定。据问题说明来确定。问题问题1:任何一个供应商可向任何一个顾客供应任何一种零件。任何一个供应商可向任何一个顾客

57、供应任何一种零件。 在这个问题中,给定一个供应商,不能够确定该供应商向哪个顾客供在这个问题中,给定一个供应商,不能够确定该供应商向哪个顾客供应了哪种零件。给定一个顾客,也不能够确定该顾客是向哪个供应商购应了哪种零件。给定一个顾客,也不能够确定该顾客是向哪个供应商购买了哪种零件。同样,给定一个零件,也不能确定哪个顾客在哪个供应买了哪种零件。同样,给定一个零件,也不能确定哪个顾客在哪个供应商处购买的。如果想知道哪一个供应商向哪一个顾客提供了哪一种零件,商处购买的。如果想知道哪一个供应商向哪一个顾客提供了哪一种零件,则必须构建一个三元联系,且供应商、顾客以及零件三个实体之间的联则必须构建一个三元联系

58、,且供应商、顾客以及零件三个实体之间的联系是多对多的。系是多对多的。 局部局部ER模型的设计模型的设计 (11)供应商供应商零件零件供供-顾顾-零零顾客顾客NPM9/23/202440问题问题2:任何一个供应商可向任何一个顾客供应零件,但每个顾客订:任何一个供应商可向任何一个顾客供应零件,但每个顾客订购的零件是一定的。购的零件是一定的。 在这个问题中,同样地,给定一个供应商,却不能确定向哪个顾客供在这个问题中,同样地,给定一个供应商,却不能确定向哪个顾客供应零件;给定一个顾客,也不能确定向哪个供应商购买零件。但是,顾应零件;给定一个顾客,也不能确定向哪个供应商购买零件。但是,顾客确定了,该顾客

59、所购买的零件就可以确定。客确定了,该顾客所购买的零件就可以确定。 因此,供应商和顾客之间是二元的多对多联系;而零件和顾客之间是因此,供应商和顾客之间是二元的多对多联系;而零件和顾客之间是二元的一对多联系。二元的一对多联系。局部局部ER模型的设计模型的设计 (12)供应商供应商顾客顾客供应供应MN零件零件购买购买M1只有供应商和顾客确定了,才能确定一个供应联系值;而顾客确定只有供应商和顾客确定了,才能确定一个供应联系值;而顾客确定了,可以有一个唯一的零件值。了,可以有一个唯一的零件值。 9/23/202441 问题问题3:任何一个供应商可向任何一个顾客提供零件,但某个供应商:任何一个供应商可向任

60、何一个顾客提供零件,但某个供应商对某个顾客供应的零件是确定的。对某个顾客供应的零件是确定的。 这个问题表示,当供应商和顾客确定了,供应商供应给顾客的零件也这个问题表示,当供应商和顾客确定了,供应商供应给顾客的零件也就确定了。对此只需定义一个二元联系,而零件则可作为供应联系的一就确定了。对此只需定义一个二元联系,而零件则可作为供应联系的一个属性个属性 。局部局部ER模型的设计模型的设计 (13)M供应商供应商顾客顾客供应供应N由以上讨论可知,对于多个实体,是否应该定义成一个多元联系的问由以上讨论可知,对于多个实体,是否应该定义成一个多元联系的问题,不可一概而论,应该具体问题做具体分析,所定义的模

61、式要能够确题,不可一概而论,应该具体问题做具体分析,所定义的模式要能够确切地表达问题的语义。切地表达问题的语义。 9/23/202442 防止存在语义上的缺陷。防止存在语义上的缺陷。主要原因是定义联系时没有弄清问题的语义,定义的结构无法提供主要原因是定义联系时没有弄清问题的语义,定义的结构无法提供所需要的信息。所需要的信息。 例如,一个学院拥有多名教教师以及一个学院包含多个系。例如,一个学院拥有多名教教师以及一个学院包含多个系。问题问题1:如果给定一个职工号,并查询该职工属于哪一个系,那么:如果给定一个职工号,并查询该职工属于哪一个系,那么由下图可以确定该职工是哪一个学院的,但不能确定属于该学

62、院的哪一由下图可以确定该职工是哪一个学院的,但不能确定属于该学院的哪一个系。个系。局部局部ER模型的设计模型的设计 (14)学院学院系系拥有拥有N包含包含教职工教职工11N9/23/202443解决上述问题的方法是对解决上述问题的方法是对ER图作适当变换。图作适当变换。 局部局部ER模型的设计模型的设计 (15)系系教职工教职工拥有拥有1包含包含学院学院N1N系与教职工之间直接发生联系,而且是一对多联系。现在,给定一系与教职工之间直接发生联系,而且是一对多联系。现在,给定一个职工号就可以确定该职工属于哪一个系。个职工号就可以确定该职工属于哪一个系。 9/23/202444问题问题2:如果某些教

63、职工不属于任何系而是直属于学院的,那么就不:如果某些教职工不属于任何系而是直属于学院的,那么就不能提供这方面的信息。因此这种结构仍缺乏语义信息。能提供这方面的信息。因此这种结构仍缺乏语义信息。 解决的方法是增加一个联系(如增加学院解决的方法是增加一个联系(如增加学院教职工间的教职工间的“直属直属”联联系),为直属学院的教职工提供一个路径。系),为直属学院的教职工提供一个路径。 局部局部ER模型的设计模型的设计 (16)系系教职工教职工拥有拥有1包含包含学院学院N1N直属直属添加添加“直属直属”联系联系通过添加新的联系解决了一些语义问题,但对有些情况,增加新的通过添加新的联系解决了一些语义问题,

64、但对有些情况,增加新的联系会带来新的语义问题。联系会带来新的语义问题。 9/23/202445问题问题3:假定每个学生可在多名教师指导下参加多项工程。每位教师:假定每个学生可在多名教师指导下参加多项工程。每位教师可指导多名学生,但只允许一位教师指导一个学生参加一项工程,而不可指导多名学生,但只允许一位教师指导一个学生参加一项工程,而不允许多位教师指导一名学生参加某项工程。允许多位教师指导一名学生参加某项工程。 局部局部ER模型的设计模型的设计 (17)教师教师学生学生指导指导N工程工程参加参加MN职工号职工号T001T002学号学号ST001ST002工程号工程号P001P002指导指导参加参

65、加具体事例为:具体事例为:这个实例中无法得到关于哪位教师指导哪个学生参加哪项工程的这个实例中无法得到关于哪位教师指导哪个学生参加哪项工程的信息(如教师信息(如教师T001T001和和T002T002指导学生指导学生ST001ST001参加工程参加工程P001P001和和P002P002)。)。 改进的一种方法是再增加一个教师对工程的改进的一种方法是再增加一个教师对工程的“服务服务”联系。联系。9/23/202446局部局部ER模型的设计模型的设计 (18)学生学生工程工程指导指导N参加参加教师教师MMN服务服务添加添加“服务服务”联系联系MN参加参加服务服务指导指导职工号职工号T001T002

66、学号学号ST001ST002工程号工程号P001P0029/23/202447添加了添加了“服务服务”联系后的结构能够确切地提供如下信息:职工号为联系后的结构能够确切地提供如下信息:职工号为T001的教师指导学号为的教师指导学号为ST001的学生参加工程号为的学生参加工程号为P001的工程。职工的工程。职工号为号为T002的教师指导学号为的教师指导学号为ST002的学生参加工程号为的学生参加工程号为P001的工程。的工程。但是,从上图却无法确定职工号为但是,从上图却无法确定职工号为T002的教师指导学号为的教师指导学号为ST001的学生的学生究竟参加了那一项工程。可见,有时增加了一个新的联系虽

67、然可以化解究竟参加了那一项工程。可见,有时增加了一个新的联系虽然可以化解原来的语义问题,却又产生了新的语义问题。原来的语义问题,却又产生了新的语义问题。 解决该问题的方法是将教师、学生以及工程三个实体间的联系定义解决该问题的方法是将教师、学生以及工程三个实体间的联系定义成一个三元联系成一个三元联系 。局部局部ER模型的设计模型的设计 (19)学生学生工程工程教教-学学-工工教师教师NPM 三元联三元联系系ER图图9/23/202448局部局部ER模型的设计模型的设计 (20)职工号职工号+学号学号+工程号工程号T001+ST001+P001T001+ST002+P002T002+ST001+P

68、002T002+ST002+P001学号学号ST001ST002职工号职工号T001T002工程号工程号P001P0029/23/2024494. 给实体及联系加上描述属性给实体及联系加上描述属性 为局部视图中的每个实体和联系加上所有必需的其他描述属性。为局部视图中的每个实体和联系加上所有必需的其他描述属性。 在需求分析阶段,已收集了所有的数据对象。除了主键属性外,还需将在需求分析阶段,已收集了所有的数据对象。除了主键属性外,还需将其他属性分配给有关的实体或联系。为使这种分配更合理,必须研究属其他属性分配给有关的实体或联系。为使这种分配更合理,必须研究属性之间的函数依赖关系并考虑其他一些准则,

69、而这些不易于一般用户理性之间的函数依赖关系并考虑其他一些准则,而这些不易于一般用户理解。因此在概念结构设计阶段,应该避免涉及这类问题,而主要应从用解。因此在概念结构设计阶段,应该避免涉及这类问题,而主要应从用户需求的概念上去识别实体或联系应该有哪些描述属性。户需求的概念上去识别实体或联系应该有哪些描述属性。 例如,例如,“学生学生”实体的描述属性除了实体的描述属性除了“学号学号”以外,还需要以外,还需要“姓名姓名”、“性别性别”、“出生年月出生年月”、“家庭地址家庭地址”、“入学时间入学时间”、“系别系别”、“专业专业”等属性;而等属性;而“课程课程”实体的描述属性除了实体的描述属性除了“课程

70、号课程号”属性属性以外,还需要以外,还需要“课程名课程名”、“学时数学时数”、“学分学分”、“开设学期开设学期”、“课程类型课程类型”(必修或选修)等属性。(必修或选修)等属性。 局部局部ER模型的设计模型的设计 (21)9/23/202450联系本身也可以有描述属性。联系本身也可以有描述属性。 局部局部ER模型的设计模型的设计 (22)学生学生学号学号姓名姓名专业专业课程课程课程号课程号课程名课程名课程类型课程类型选修选修MN成绩成绩9/23/2024515. ER模型的操作模型的操作 在数据库设计过程中,常常要对在数据库设计过程中,常常要对ER图进行种种变化。这种变化称为图进行种种变化。这

71、种变化称为ER模型的操作,包括实体类型、联系类型和属性的分裂、合并、增删等。模型的操作,包括实体类型、联系类型和属性的分裂、合并、增删等。 例例6.6 分裂方式有水平分裂和垂直分裂两种。把教师分裂成男教师分裂方式有水平分裂和垂直分裂两种。把教师分裂成男教师与女教师两个实体类型,这是水平分裂。也可把教师中经常变化的属性与女教师两个实体类型,这是水平分裂。也可把教师中经常变化的属性组成一个实体类型,而把固定不变的属性组成另一个实体类型,这是垂组成一个实体类型,而把固定不变的属性组成另一个实体类型,这是垂直分裂直分裂 。局部局部ER模型的设计模型的设计 (23)教师教师职务职务姓名姓名教师号教师号出

72、生日期出生日期工资工资奖金奖金教师不变信息教师不变信息姓名姓名教师号教师号出生日期出生日期教师变动信息教师变动信息职务职务工资工资奖金奖金教师号教师号9/23/202452联系类型也可分裂。下图是教师担任教学任务的联系类型也可分裂。下图是教师担任教学任务的ER图,而图,而“担任担任”联系类型可以分裂为联系类型可以分裂为“主讲主讲”和和“辅导辅导”两个新的联系类型。两个新的联系类型。 局部局部ER模型的设计模型的设计 (24)教师教师课程课程担任担任MN教师教师课程课程主讲主讲辅导辅导1MNN9/23/202453合并是分裂操作的逆过程。合并是分裂操作的逆过程。例如,有一个例如,有一个“产品销售

73、产品销售”实体,其属性有实体,其属性有“产品号产品号”和和“销售额销售额”,另一个,另一个“产品生产产品生产”实体,其属性有实体,其属性有“产品号产品号”和和“产量产量”,把它,把它们合并操作如以下图。们合并操作如以下图。 局部局部ER模型的设计模型的设计 (25)产品销售产品销售产品号产品号销售量销售量产品生产产品生产产品号产品号产量产量产品产品产品号产品号产量产量销售量销售量9/23/202454但必须注意,对于联系的合并,其类型必须是定义在相同的实体类但必须注意,对于联系的合并,其类型必须是定义在相同的实体类型组合中,否则是不合法的合并,下图所示的合并就是不合法的合并。型组合中,否则是不

74、合法的合并,下图所示的合并就是不合法的合并。 局部局部ER模型的设计模型的设计 (26)(a)(b)AA-CB-CBCAA-B-CBC9/23/2024556. 弱实体与弱联系弱实体与弱联系 在现实世界中,有时某些实体对于另一些实体具有很强的依赖联系,在现实世界中,有时某些实体对于另一些实体具有很强的依赖联系,例如一个实体的存在必须以另一实体的存在为前提。例如一个实体的存在必须以另一实体的存在为前提。一个实体对于另一些实体具有很强的依赖联系,而且该实体主键的一个实体对于另一些实体具有很强的依赖联系,而且该实体主键的部分或全部从其依赖实体中获得,称该实体为弱实体。在部分或全部从其依赖实体中获得,

75、称该实体为弱实体。在ER模型中,弱模型中,弱实体用双线矩形框表示。与弱实体的联系,称为弱联系,用双线菱形框实体用双线矩形框表示。与弱实体的联系,称为弱联系,用双线菱形框表示。表示。 局部局部ER模型的设计模型的设计 (27)例例6.7 6.7 在人事管理系统中,在人事管理系统中,社会关系的存在是以职工的存社会关系的存在是以职工的存在为前提,即社会关系对于职在为前提,即社会关系对于职工具有依赖联系。又如商业应工具有依赖联系。又如商业应用系统中,顾客地址与顾客之用系统中,顾客地址与顾客之间也有类似的联系间也有类似的联系( (一般顾客可一般顾客可以有若干个联系地址以有若干个联系地址) )。 1N职工

76、职工具有具有社会关系社会关系1N顾客顾客通讯通讯地址地址9/23/2024567. 子类和超类子类和超类子类和超类的概念最先出现在面向对象技术中。在现实世界中,实体子类和超类的概念最先出现在面向对象技术中。在现实世界中,实体类型之间可能存在着抽象与具体的联系。譬如学校人事系统中有人员、教师、类型之间可能存在着抽象与具体的联系。譬如学校人事系统中有人员、教师、学生、本科生和研究生等实体类型。这些概念之间,学生、本科生和研究生等实体类型。这些概念之间,“人员人员”是比是比“教师教师”、“学生学生”更为抽象,而更为抽象,而“教师教师”、“学生学生”是比是比“人员人员”更为具体的概念。更为具体的概念。

77、当低层上较具体的实体类型表达了与之联系的较高层上的更为一般实当低层上较具体的实体类型表达了与之联系的较高层上的更为一般实体类型的特殊情况时,就称较高层上实体类型为体类型的特殊情况时,就称较高层上实体类型为超类型(超类型(supertype),),简简称超类;较低层上实体类型为称超类;较低层上实体类型为子类型(子类型(subtype),),简称子类。简称子类。 性质:性质:子类与超类之间具有继承性特点,即子类实体继承超类实体的所子类与超类之间具有继承性特点,即子类实体继承超类实体的所有属性。但子类实体本身还可以包含比超类实体更多的属性。有属性。但子类实体本身还可以包含比超类实体更多的属性。继承性

78、是通过子类实体和超类实体具有相同的实体标识符实现的。继承性是通过子类实体和超类实体具有相同的实体标识符实现的。 局部局部ER模型的设计模型的设计 (28)9/23/202457在在ER图中,超类以两端双线的矩形框表示,并用加圈的弧线与其子图中,超类以两端双线的矩形框表示,并用加圈的弧线与其子类相连,子类本身仍用普通矩形框表示。类相连,子类本身仍用普通矩形框表示。例如例如 学校人事管理系统中实体之间的联系可用图表示。相邻的上层学校人事管理系统中实体之间的联系可用图表示。相邻的上层实体称为超类实体,下层实体称为子类实体。譬如实体称为超类实体,下层实体称为子类实体。譬如“学生学生”是是“人员人员”的

79、子类实体,但又是的子类实体,但又是“本科生本科生”和和“研究生研究生”的超类实体。的超类实体。 局部局部ER模型的设计模型的设计 (29)教师教师本科生本科生研究生研究生人员人员学生学生9/23/202458全局全局ER模型的设计流程模型的设计流程无 局部ER模式确定公共实体类型合并两个局部ER模式检查并消除冲突还有未合并的局部模式有还有冲突吗有属性冲突 :如,重量单位有的用公斤,有的用克。 结构冲突 :同一对象在不同应用中的不同抽象 ;同一实体在不同局部ER图中属性的个数或次序不同 ;实体之间的联系在不同的局部ER图中呈现不同的类型 命名冲突 :属性名、实体名、联系名之间存在同名异义或异名同

80、义冲突9/23/202459全局全局ER模型的设计模型的设计(1) 所有局部所有局部ER模型都设计好后,接下来就是把它们综合成单一的全局模型都设计好后,接下来就是把它们综合成单一的全局概念结构。概念结构。 1. 确定公共实体类型确定公共实体类型 确定各局部结构中的公共实体类型。当系统较大时,可能有很多局确定各局部结构中的公共实体类型。当系统较大时,可能有很多局部模式,这些局部部模式,这些局部ER模型是由不同的设计人员确定的,模型是由不同的设计人员确定的,问题有:问题有: n同一现实世界的对象可能给予不同的描述同一现实世界的对象可能给予不同的描述 ,有的作为实体类型,有的作为实体类型,有的又作为

81、联系类型或属性。有的又作为联系类型或属性。 n实体类型名和键也可能不同。实体类型名和键也可能不同。 处理方法:处理方法:根据实体类型名和键来认定公共实体类型。根据实体类型名和键来认定公共实体类型。n把同名实体类型作为公共实体类型的一类候选。把同名实体类型作为公共实体类型的一类候选。n把具有相同键的实体类型作为公共实体类型候选。把具有相同键的实体类型作为公共实体类型候选。 9/23/2024602. 局部局部ER模型的合并模型的合并 合并的顺序有时会影响处理效率和结果。合并的顺序有时会影响处理效率和结果。合并原则是:合并原则是:首先进行两两合并;先合并那些现实世界中有联系的局首先进行两两合并;先

82、合并那些现实世界中有联系的局部结构;合并从公共实体类型开始,最后再加入独立的局部结构。部结构;合并从公共实体类型开始,最后再加入独立的局部结构。n进行两两合并是为了减少合并工作的复杂性;进行两两合并是为了减少合并工作的复杂性;n合并原则是为了使合并结果的规模尽可能小。合并原则是为了使合并结果的规模尽可能小。3. 消除冲突消除冲突 局部局部ER模型之间的不一致的地方,称之为模型之间的不一致的地方,称之为冲突冲突。 属性冲突属性冲突属性域的冲突,即属性值的类型、取值范围或取值集合不同。例如,属性域的冲突,即属性值的类型、取值范围或取值集合不同。例如,重量单位有的用公斤,有的用克。重量单位有的用公斤

83、,有的用克。全局全局ER模型的设计模型的设计(2) 9/23/202461 结构冲突结构冲突同一对象在不同应用中的不同抽象,类型有:同一对象在不同应用中的不同抽象,类型有: 如职工,在某个应用中为实体,而在另一应用中为属性。如职工,在某个应用中为实体,而在另一应用中为属性。 同一实体在不同局部同一实体在不同局部ER图中属性组成不同,包括属性个数、次序图中属性组成不同,包括属性个数、次序等。等。 实体之间的联系在不同的局部实体之间的联系在不同的局部ER图中呈现不同的类型。如实体图中呈现不同的类型。如实体E1与与E2在某一应用中是多对多联系,而在另一应用中是一对多联系;又如在某一应用中是多对多联系

84、,而在另一应用中是一对多联系;又如在某一应用中实体在某一应用中实体E1与与E2发生联系,而在另一应用中,实体发生联系,而在另一应用中,实体E1、E2、E3三者之间有联系等等。三者之间有联系等等。 全局全局ER模型的设计模型的设计(3) 9/23/202462对于解决结构冲突,有下列常用方法:对于解决结构冲突,有下列常用方法:u对于同一对象在不同的局部对于同一对象在不同的局部ER模型中产生不同的抽象,其解模型中产生不同的抽象,其解决方式是:决方式是:把属性变为实体或把实体变为属性,使同一对象具有把属性变为实体或把实体变为属性,使同一对象具有相同的抽象。相同的抽象。u对于同一个实体在不同对于同一个

85、实体在不同ER模型中属性组成不同,其解决方式模型中属性组成不同,其解决方式为:为:取两个分取两个分ER模型属性的并,作为合并后的该实体属性。模型属性的并,作为合并后的该实体属性。u对于实体间的相同联系呈现的不同的类型,其解决方式为:对于实体间的相同联系呈现的不同的类型,其解决方式为:根根据具体应用的语义,对实体键的联系作适当的综合或调整。据具体应用的语义,对实体键的联系作适当的综合或调整。 全局全局ER模型的设计模型的设计(4) 9/23/202463例例6.8 在教务管理信息系统中的系,在某一局部在教务管理信息系统中的系,在某一局部ER模型中为学生实模型中为学生实体的属性,而在另一局部体的属

86、性,而在另一局部ER模型中为一个单独的实体,其实学生和系之模型中为一个单独的实体,其实学生和系之间存在从属关系,应该调整、合并为如图所示。间存在从属关系,应该调整、合并为如图所示。 全局全局ER模型的设计模型的设计(5) 系系名称名称联系电话联系电话系主任系主任所在地点所在地点编号编号姓名姓名所在系所在系所学专业所学专业学号学号学生学生性别性别属于属于1N9/23/202464例例6.9 在教务管理信息系统中的学生实体,在某一局部在教务管理信息系统中的学生实体,在某一局部ER模型由学模型由学号、姓名、性别、所在系、所学专业组成,其号、姓名、性别、所在系、所学专业组成,其ER模型如图模型如图 (

87、a)所示。而所示。而在另一局部在另一局部ER模型则由姓名、政治面貌、籍贯、家庭住址组成,其模型则由姓名、政治面貌、籍贯、家庭住址组成,其ER模模型如图型如图 (b)所示,合并后如图所示,合并后如图 (c)所示。所示。 全局全局ER模型的设计模型的设计(6) (a)姓名姓名所在系所在系所学专业所学专业学号学号学生学生性别性别学生学生籍贯籍贯政治面貌政治面貌家庭住址家庭住址姓名姓名(b)(c)家庭住址家庭住址姓名姓名所在系所在系所学专业所学专业学号学号学生学生性别性别籍贯籍贯政治面貌政治面貌9/23/202465例例6.10 在工程管理系统中,产品与零件之间的多对多联系如图在工程管理系统中,产品与

88、零件之间的多对多联系如图(a)所示。产品、零件和供应商三者实体间多对多联系如图()所示。产品、零件和供应商三者实体间多对多联系如图(b)所示。)所示。因为它们的语义不同,所以不具有包含关系。将它们综合起来合并成如因为它们的语义不同,所以不具有包含关系。将它们综合起来合并成如图的图的ER模型。模型。 (a)产品产品数量数量组成组成零件零件MN供应商供应商产品产品数量数量供应供应零件零件MNP(b)组成组成(c)MN供应数量供应数量组成数量组成数量供应商供应商产品产品零件零件组成组成NMP全局全局ER模型的设计模型的设计(7) 9/23/202466 命名冲突命名冲突包括属性名、实体名、联系名之间

89、的冲突。包括属性名、实体名、联系名之间的冲突。n同名异义,即不同意义的对象具有相同的名字;同名异义,即不同意义的对象具有相同的名字;n异名同义,即同一意义的对象具有不同的名字。异名同义,即同一意义的对象具有不同的名字。属性冲突和命名冲突通常采用讨论、协商等行政手段解决,结构冲属性冲突和命名冲突通常采用讨论、协商等行政手段解决,结构冲突则要认真分析后才能解决。突则要认真分析后才能解决。 全局全局ER模型的设计模型的设计(8) 设计全局设计全局ERER模型的目的不在于把若于局部模型的目的不在于把若于局部ERER模型形式上合并为一个模型形式上合并为一个ERER模型,而在于消除冲突,使之成为能够被全系

90、统中所有用户共同理解和模型,而在于消除冲突,使之成为能够被全系统中所有用户共同理解和接受的统一的概念模式。接受的统一的概念模式。 9/23/2024674. 全局模式的优化全局模式的优化在得到全局在得到全局ER模型后,为了提高数据库系统的效率,还应进一步依模型后,为了提高数据库系统的效率,还应进一步依据处理需求对据处理需求对ER模型进行优化。模型进行优化。一个好的全局一个好的全局ER模型,除能准确、全面地反映用户功能需求外,还模型,除能准确、全面地反映用户功能需求外,还应满足下列条件:应满足下列条件:n实体类型的个数尽可能少;实体类型的个数尽可能少;n实体类型所含属性个数尽可能少;实体类型所含

91、属性个数尽可能少;n实体类型间无冗余联系。实体类型间无冗余联系。这些条件不是绝对的,要视具体的信息需求与处理需求而定。这些条件不是绝对的,要视具体的信息需求与处理需求而定。 全局全局ER模型的设计模型的设计(9) 9/23/202468全局全局ER模型的优化原则:模型的优化原则: 相关实体类型的合并相关实体类型的合并这里的合并不是前面的这里的合并不是前面的“公共实体类型公共实体类型”的合并,而是指相关实体的合并,而是指相关实体类型的合并。类型的合并。n一般在权衡利弊后可以把一般在权衡利弊后可以把1:1联系的两个实体类型合并。联系的两个实体类型合并。n具有相同键的实体类型常常是从不同角度刻画现实

92、世界,如具有相同键的实体类型常常是从不同角度刻画现实世界,如果经常需要同时处理这些实体类型,那么也有必要合并成一个实体果经常需要同时处理这些实体类型,那么也有必要合并成一个实体类型。类型。但这时可能会产生大量空值,因此,要对存储代价、查询效率进行但这时可能会产生大量空值,因此,要对存储代价、查询效率进行权衡。权衡。 全局全局ER模型的设计模型的设计(10) 9/23/202469 冗余属性的消除冗余属性的消除在综合成全局在综合成全局ER模型后,可能产生全局范围内的冗余属性。模型后,可能产生全局范围内的冗余属性。例如,在教育统计数据库的设计中,一个局部结构含有高校毕业生例如,在教育统计数据库的设

93、计中,一个局部结构含有高校毕业生数、招生数、在校学生数和预计毕业生数;另一局部结构中含有在校学数、招生数、在校学生数和预计毕业生数;另一局部结构中含有在校学生数、分年级在校学生数、各专业在校学生数和各专业的预计毕业生数。生数、分年级在校学生数、各专业在校学生数和各专业的预计毕业生数。各局部结构自身都无冗余,但综合成一个全局各局部结构自身都无冗余,但综合成一个全局ER模型时,在校学生数即模型时,在校学生数即成为冗余属性,应予消除。成为冗余属性,应予消除。一般同一非键的属性出现在几个实体类型中,或者一个属性值可从一般同一非键的属性出现在几个实体类型中,或者一个属性值可从其他属性值导出,此时,应把这

94、些冗余的属性从全局模式中去掉。其他属性值导出,此时,应把这些冗余的属性从全局模式中去掉。 冗余属性消除与否,也取决于它对存储空间、访问效率和维护代价冗余属性消除与否,也取决于它对存储空间、访问效率和维护代价的影响。的影响。有时为了兼顾访问效率,有意保留冗余属性。有时为了兼顾访问效率,有意保留冗余属性。 全局全局ER模型的设计模型的设计(11) 9/23/202470 冗余联系的消除冗余联系的消除在全局模式中可能存在有冗余的联系,通常利用规范化理论中函数依在全局模式中可能存在有冗余的联系,通常利用规范化理论中函数依赖的概念消除冗余联系。赖的概念消除冗余联系。把所有局部把所有局部ER模型综合成最终

95、的全局概念结构应满足如下要求:模型综合成最终的全局概念结构应满足如下要求:n全局概念结构内部必须具有一致性,不再存在各种冲突;全局概念结构内部必须具有一致性,不再存在各种冲突;n全局概念结构能准确地反映原各局部视图结构,包括属性、实全局概念结构能准确地反映原各局部视图结构,包括属性、实体及实体间的联系;体及实体间的联系;n全局概念结构能满足需求分析阶段所确定的所有需求。全局概念结构能满足需求分析阶段所确定的所有需求。 全局概念结构最终还应该提交给用户,征求用户和有关人员的意见,全局概念结构最终还应该提交给用户,征求用户和有关人员的意见,进行评审、修改和调整,最后确定的全局概念结构为数据库的逻辑

96、设计进行评审、修改和调整,最后确定的全局概念结构为数据库的逻辑设计提供依据。提供依据。 全局全局ER模型的设计模型的设计(12) 9/23/202471概念结构设计实例概念结构设计实例 (1)实例实例1 教务管理信息系统的全局教务管理信息系统的全局ER图。图。 教务管理信息系统(简化的)全局教务管理信息系统(简化的)全局ER图是由学生学籍管理图是由学生学籍管理ER图、学图、学生选课生选课ER图、课程管理图、课程管理ER图以及成绩管理图以及成绩管理ER图组成。根据本章前面讨图组成。根据本章前面讨论的局部论的局部ER图,教务管理信息系统的全局图,教务管理信息系统的全局ER图模式如图所示。图模式如图

97、所示。 学籍变动学籍变动学号学号变动日期变动日期专业专业学生学生学号学号课程号课程号课程课程变动日期变动日期奖金奖金教师号教师号教师教师讲课讲课成绩成绩M选课选课N11变动变动9/23/202472实例实例2 某厂产品生产及库存综合管理系统的概念结构设计。某厂产品生产及库存综合管理系统的概念结构设计。根据概念结构设计的步骤,先进行局部概念结构设计,然后再对各根据概念结构设计的步骤,先进行局部概念结构设计,然后再对各个局部概念进行综合。个局部概念进行综合。 局部概念结构设计局部概念结构设计 确定局部概念结构的设计范围。为讨论简单起见,对该综合管理确定局部概念结构的设计范围。为讨论简单起见,对该综

98、合管理系统进行了简化,只讨论产品的设计、生产和存储。系统进行了简化,只讨论产品的设计、生产和存储。 识别实体与实体的主键。产品及库存综合管理系统识别出的实体识别实体与实体的主键。产品及库存综合管理系统识别出的实体应有以下几种:产品(主键:产品号或编号)、零件(主键:零件号)、应有以下几种:产品(主键:产品号或编号)、零件(主键:零件号)、材料(主键:材料名)、仓库(主键:仓库号)。材料(主键:材料名)、仓库(主键:仓库号)。 定义实体间的联系。定义实体间的联系。在技术部门的设计中,在技术部门的设计中,“产品产品”实体由实体由“零件零件”实体组成,实体组成,“零件零件”实体和实体和“材料材料”实

99、体通过消耗发生联系,而且都是多对多联系。可得实体通过消耗发生联系,而且都是多对多联系。可得技术部门局部模式图,如下图所示。技术部门局部模式图,如下图所示。 概念结构设计实例概念结构设计实例 (2)9/23/202473在生产部门的生产中,在生产部门的生产中,“产品产品”实体与实体与“材料材料”实体通过实体通过“使用使用”联系在一起,而且是多对多联系。可得生产部门局部联系在一起,而且是多对多联系。可得生产部门局部ER模型,如下图所模型,如下图所示。示。 概念结构设计实例概念结构设计实例 (3)产品产品零件零件组成组成MN材料材料消耗消耗MN产品产品材料材料使用使用MN 在材料库存中,在材料库存中

100、,“材料材料”实体与实体与“仓库仓库”实体通过实体通过“存放存放”联系在联系在一起。而且是多对多联系。可得工厂材料库存局部一起。而且是多对多联系。可得工厂材料库存局部ERER模型,如图所示。模型,如图所示。 材料材料仓库仓库存放存放MN 给实体及联系加上描述属性给实体及联系加上描述属性给实体和联系加上描述属性应根据具体的应用需求而定,本书的实例给实体和联系加上描述属性应根据具体的应用需求而定,本书的实例内容是简化的,在具体的系统设计中根据需求分析来确定。如下图内容是简化的,在具体的系统设计中根据需求分析来确定。如下图 (a)、 (b)、 (c)分别是技术部门的分别是技术部门的ER图、生产部门的

101、图、生产部门的ER图、材料库存管理的图、材料库存管理的ER图。图。 9/23/202474概念结构设计实例概念结构设计实例 (4)耗用量耗用量组成组成产品产品性能参数性能参数产品号产品号零件零件零件号零件号规格规格材料材料材料名材料名消耗消耗零件数零件数(a)使用量使用量使用使用产品产品编号编号价格价格库存量库存量材料材料材料名材料名价格价格仓库号仓库号(b)(c)存放量存放量存放存放材料材料编号编号价格价格材料名材料名库存量库存量仓库号仓库号仓库仓库面积面积地点地点9/23/202475 全局概念结构设计全局概念结构设计 冲突问题冲突问题属性域冲突属性域冲突:属性值的类型、取值范围或取值集合

102、不相同等。该例中:属性值的类型、取值范围或取值集合不相同等。该例中没有涉及具体企业应用对象和实际数据,在实际应用时,可通过各部门没有涉及具体企业应用对象和实际数据,在实际应用时,可通过各部门或不同应用设计人员间相互讨论、协商的方式加以解决。或不同应用设计人员间相互讨论、协商的方式加以解决。 命名冲突命名冲突:分析产品实体在两个不同应用中的属性描述,这里编号就:分析产品实体在两个不同应用中的属性描述,这里编号就是产品号,将两个不同应用部门关于该属性的名称统一称为产品号。是产品号,将两个不同应用部门关于该属性的名称统一称为产品号。结构冲突结构冲突:显然,仓库对象在两个局部应用中具有不同的抽象,在生

103、:显然,仓库对象在两个局部应用中具有不同的抽象,在生产部门作为材料实体的属性,而在仓库管理的局部产部门作为材料实体的属性,而在仓库管理的局部ER模型中它是一个单模型中它是一个单独的实体,为使同一对象仓库具有相同的抽象,必须在合并时把仓库统独的实体,为使同一对象仓库具有相同的抽象,必须在合并时把仓库统一作为实体加以处理。本例中的另一个结构冲突,是产品实体在两个分一作为实体加以处理。本例中的另一个结构冲突,是产品实体在两个分ER模型中属性组成部分不同的问题,取分模型中属性组成部分不同的问题,取分ER模型产品实体属性的并,然模型产品实体属性的并,然后统一属性名称,形成对产品实体新的描述,如下图所示。

104、后统一属性名称,形成对产品实体新的描述,如下图所示。 概念结构设计实例概念结构设计实例 (5)9/23/202476在解决上述有关冲突后,综合各局部在解决上述有关冲突后,综合各局部ER模型可形成如下图所示初步模型可形成如下图所示初步的全局的全局ER模型。模型。 概念结构设计实例概念结构设计实例 (6)产品产品性能参数性能参数产品号产品号+编号编号产品产品价格价格产品产品性能参数性能参数产品号产品号价格价格合并合并9/23/202477概念结构设计实例概念结构设计实例 (7)耗用量耗用量存放存放存放量存放量仓库号仓库号仓库仓库地点地点面积面积使用量使用量产品产品性能参数性能参数产品号产品号价格价

105、格使用使用零件零件零件号零件号消耗消耗规格规格材料材料材料名材料名编号编号库存量库存量价格价格组成组成零件数零件数MMNN1N9/23/202478冗余问题。分析该冗余问题。分析该ER模型的数量属性可知,该初步模型的数量属性可知,该初步ER模型存在着模型存在着存放量、库存量、使用量等属性的冗余问题。消除这些冗余后,我们可存放量、库存量、使用量等属性的冗余问题。消除这些冗余后,我们可以得到下图所示的基本以得到下图所示的基本ER模型。模型。 概念结构设计实例概念结构设计实例 (8)存放量存放量产品产品性能参数性能参数产品号产品号价格价格组成组成零件数零件数存放存放仓库号仓库号仓库仓库地点地点面积面

106、积耗用量耗用量零件零件零件号零件号消耗消耗规格规格材料材料材料名材料名编号编号价格价格MN1N9/23/202479目前我们所产生的目前我们所产生的ER模型,仅仅是某企业工厂生产及材料库存管理模型,仅仅是某企业工厂生产及材料库存管理的一个基本概念模式,它表示了用户的数据处理要求,是沟通用户需求的一个基本概念模式,它表示了用户的数据处理要求,是沟通用户需求和系统设计的桥梁。和系统设计的桥梁。要想把它确定下来作为最终概念模式,设计者还应提交给用户,并与要想把它确定下来作为最终概念模式,设计者还应提交给用户,并与用户反复讨论、研究,同时征求用户和有关人员的意见,进行评审、修用户反复讨论、研究,同时征

107、求用户和有关人员的意见,进行评审、修改和优化等工作,在用户确认这一模式已正确无误地反映了他们的需求改和优化等工作,在用户确认这一模式已正确无误地反映了他们的需求后,才能作为最终的数据库概念结构,进入下一阶段的数据库设计工作。后,才能作为最终的数据库概念结构,进入下一阶段的数据库设计工作。 概念结构设计实例概念结构设计实例 (9)9/23/202480概念结构设计实例概念结构设计实例 (10)实例分析:实例分析:某大学教务管理系统中包含三个部分:某大学教务管理系统中包含三个部分:n教师管理子系统;教师管理子系统;n学籍管理子系统;学籍管理子系统;n课程管理子系统。课程管理子系统。在综合过程中:在

108、综合过程中:学籍管理中的班主任和导师实际上也属于教师,可以将其与课程管学籍管理中的班主任和导师实际上也属于教师,可以将其与课程管理中的理中的“教师教师”实体合并;实体合并;教师管理子系统中的实体项目教师管理子系统中的实体项目“负责人负责人”也属于也属于“教师教师”,所以也,所以也可以合并。可以合并。注意:这里尽管实体可以合并,但联系依然存在。注意:这里尽管实体可以合并,但联系依然存在。9/23/202481局部模式局部模式现有的教学管理系统初步分析系统的对象根据服务种类分析教师子模块局部ER图9/23/202482其他局部模式其他局部模式现有的教学管理系统初步分析系统的对象根据服务种类分析学生

109、子模块图5.21 学籍管理局部应用的分E-R图导师班级学生组成管理班主任档案材料宿舍住宿归档指导系有参加学会1N111NNN11NMN1具有社会关系1N局部ER图9/23/202483其他局部模式其他局部模式现有的教学管理系统初步分析系统的对象根据服务种类分析课程子模块局部ER图图5.22 课程管理局部应用分E-R图1教室M1教科书教师担任课程系开设N1学生选修NMN上课PN9/23/202484例子:三个局部例子:三个局部ER图合并成一个图合并成一个ER图图1图5.24 合并后的教学管理E-R图1N1P1N1N1N1MMNNNN社会关系具有1NNM1系聘用承接项目参加设置院长学院主管NN11

110、1教师评定职称分配工作量111N档案材料归档参加学会1宿舍住宿教科书担任指导课程选修教室上课有1班级学生组成N开设N管理11教师管理1 1合并后的教学管理ER图9/23/2024856.4逻辑结构设计逻辑结构设计 主要内容主要内容nER模型向关系模型的转换模型向关系模型的转换n关系模式的优化关系模式的优化 9/23/202486逻辑结构设计逻辑结构设计概念结构设计的结果是得到概念结构设计的结果是得到一个与一个与DBMS无关的概念模式。无关的概念模式。而而逻辑设计的目的是把概念结构逻辑设计的目的是把概念结构设计阶段设计好的全局设计阶段设计好的全局ER模型模型转换成与选用的具体机器上的转换成与选用

111、的具体机器上的DBMS所支持的数据模式相符合所支持的数据模式相符合的逻辑结构的逻辑结构(包括数据库模式和(包括数据库模式和外模式)。外模式)。逻辑结构设计可以运用关系逻辑结构设计可以运用关系数据库模式设计理论使设计过程数据库模式设计理论使设计过程形式化地进行,并且结果可以验形式化地进行,并且结果可以验证。关系数据库的逻辑结构设计证。关系数据库的逻辑结构设计的过程如右图所示。的过程如右图所示。 处理需求处理需求 ER模型模型 DBMS特征特征从从ER模型导出模型导出初始数据库模式初始数据库模式关系模式规范化关系模式规范化模式评价模式评价是否需要修正是否需要修正模式修正模式修正用用DBMS语法描述

112、语法描述进入物理设计阶段进入物理设计阶段是是否否9/23/202487ER模型向关系模式的转换模型向关系模式的转换 (1)将将ER模型转换为关系模式实际上就是要将实体、实体的属性和实体间模型转换为关系模式实际上就是要将实体、实体的属性和实体间的联系转换为关系模式的过程。的联系转换为关系模式的过程。 其原则是其原则是: 1. 实体类型的转换将每个实体类型转换成一个关系模式,实体的属性实体类型的转换将每个实体类型转换成一个关系模式,实体的属性即为关系的属性,实体标识符即为关系模式的键。即为关系的属性,实体标识符即为关系模式的键。 2. 联系类型的转换联系类型转换成关系模式是根据不同的情况做不同联系

113、类型的转换联系类型转换成关系模式是根据不同的情况做不同的处理。下面以两个实体的联系为例做如下说明:的处理。下面以两个实体的联系为例做如下说明: 若实体间的联系是若实体间的联系是1:1的,可以在两个实体类型转换成的两个关系的,可以在两个实体类型转换成的两个关系模式中的任意一个关系模式的属性中加入另一个关系模式的键和联系类型模式中的任意一个关系模式的属性中加入另一个关系模式的键和联系类型的属性。的属性。例如某学校管理中的实体例如某学校管理中的实体“校长校长”与与“学校学校”之间存在着之间存在着1:1的联系,的联系,在将其转化为关系模式时,在将其转化为关系模式时,“校长校长”与与“学校学校”各为一个

114、关系模式。如果各为一个关系模式。如果用户经常要在查询学校信息时同时查询其校长信息,那么可在学校模式中用户经常要在查询学校信息时同时查询其校长信息,那么可在学校模式中加入校长名和任职年月,其关系模式设计如下(加下划线者为主键,加波加入校长名和任职年月,其关系模式设计如下(加下划线者为主键,加波浪线者为外键):浪线者为外键):学校关系模式(学校关系模式(学校名学校名,地址,电话,地址,电话,校长名校长名,任职年月),任职年月)校长关系模式(校长关系模式(校长名校长名,年龄,性别,职称),年龄,性别,职称) 9/23/202488 若实体间的联系是若实体间的联系是1:N的,则在的,则在N端实体类型转

115、换成的关系模式中端实体类型转换成的关系模式中加入加入1端实体类型转换成的关系模式的键和联系类型的属性。端实体类型转换成的关系模式的键和联系类型的属性。例如某学校管理中的实体例如某学校管理中的实体“系系”与与“教师教师”之间存在着之间存在着1:N的联系,的联系,其转换成的关系模式如下:其转换成的关系模式如下: 系关系模式(系关系模式(系编号系编号,系名,电话,系主任),系名,电话,系主任) 教师关系模式(教师关系模式(教师编号教师编号,姓名,年龄,性别,职称,姓名,年龄,性别,职称,系编号系编号,聘用,聘用年月)年月) 弱实体:若实体间的联系是弱实体:若实体间的联系是1:N的,而且在的,而且在N

116、端实体类型为弱实体,端实体类型为弱实体,转换成的关系模式中将转换成的关系模式中将1端实体类型(父表)的键作为外键放在端实体类型(父表)的键作为外键放在N端的弱端的弱实体(子表)中。弱实体的主键由父表的主键与弱实体本身的候选键组实体(子表)中。弱实体的主键由父表的主键与弱实体本身的候选键组成。也可以为弱实体建立新的独立的标识符成。也可以为弱实体建立新的独立的标识符ID。例如例如 某学校管理中的实体某学校管理中的实体“学生学生”与弱实体与弱实体“社会关系社会关系”之间存在之间存在着着1:N的联系,其的联系,其ER图如下图所示。图如下图所示。ER模型向关系模式的转换模型向关系模式的转换 (2)9/2

117、3/202489ER模型向关系模式的转换模型向关系模式的转换 (3)1N学生学生具有具有社会关系社会关系班号班号姓名姓名所在系所在系学生编号学生编号年龄年龄性别性别家庭住址家庭住址姓名姓名年龄年龄称呼称呼政治面貌政治面貌工作单位工作单位转换成的关系模式如转换成的关系模式如下:下:学生关系模式学生关系模式(学生学生编号编号,姓名,年龄,姓名,年龄,性别,家庭住址,性别,家庭住址,所在系,班号)所在系,班号)社会关系模式社会关系模式(学生学生编号编号,称呼,姓名,称呼,姓名,年龄,政治面貌,年龄,政治面貌,工作单位)工作单位) 9/23/202490 若实体间的联系是若实体间的联系是M:N的,则将

118、联系类型也转换成关系模式,其属的,则将联系类型也转换成关系模式,其属性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。性为两端实体类型的键加上联系类型的属性,而键为两端实体键的组合。例如某学校管理中的实体例如某学校管理中的实体“学生学生”与与“课程课程”之间存在着之间存在着M:N的联系,的联系,其其ER图如图所示。图如图所示。ER模型向关系模式的转换模型向关系模式的转换 (4)MN选修选修学生学生班号班号姓名姓名所在系所在系学生编号学生编号年龄年龄性别性别家庭住址家庭住址开课系编号开课系编号开课学期开课学期课程课程课程名课程名课程编号课程编号课程性质课程性质学分数学分数先行课先行

119、课成绩成绩9/23/202491转换成的关系模式如下:转换成的关系模式如下: 学生关系模式学生关系模式(学生编号学生编号,姓名,年龄,性别,家庭地址,所在系,姓名,年龄,性别,家庭地址,所在系,班号)班号)课程关系模式课程关系模式(课程编号课程编号,课程名,课程性质,学分数,先行课,课程名,课程性质,学分数,先行课,开课学期,开课系编号)开课学期,开课系编号)选修关系模式选修关系模式(学生编号,课程编号学生编号,课程编号,成绩),成绩) ER模型向关系模式的转换模型向关系模式的转换 (5)9/23/2024923. 超类和子类的转换超类和子类的转换 将超类和子类各转换成一个关系模式,在子类转换

120、成的关系模式将超类和子类各转换成一个关系模式,在子类转换成的关系模式(子表)中加入超类转换成关系模式(父表)的键,从而实现父表与子(子表)中加入超类转换成关系模式(父表)的键,从而实现父表与子表的联系。由于父表与子表的主键相同,所以子表的主键也是外键。表的联系。由于父表与子表的主键相同,所以子表的主键也是外键。 下图为学校人事管理下图为学校人事管理系统中的人员、教师、学生、系统中的人员、教师、学生、本科生、研究生的继承性层本科生、研究生的继承性层次联系图。次联系图。, 教师教师本科生本科生研究生研究生人员人员学生学生这个结构转换成的关系模式如下:这个结构转换成的关系模式如下: 人员人员(身份证

121、号,姓名,年龄,性(身份证号,姓名,年龄,性别)别) 教师教师(身份证号身份证号,教师编号,职称),教师编号,职称) 学生(学生(身份证号身份证号,学号,系别,专,学号,系别,专业)业) 本科生本科生(身份证号身份证号,入学年份),入学年份) 研究生研究生(身份证号身份证号,研究方向,导,研究方向,导师姓名)师姓名)ER模型向关系模式的转换模型向关系模式的转换 (6)9/23/202493关系模式的优化关系模式的优化 (1)在关系数据库的逻辑设计中,先是利用在关系数据库的逻辑设计中,先是利用ER模型向关系模式转换规则模型向关系模式转换规则初步得到一组关系模式集后,还应该再适当地修改、调整关系模

122、式的结初步得到一组关系模式集后,还应该再适当地修改、调整关系模式的结构,以进一步提高数据库应用系统的性能,这个过程称为构,以进一步提高数据库应用系统的性能,这个过程称为关系模式的优关系模式的优化化。 优化关系模式的方法:优化关系模式的方法: 确定函数依赖确定函数依赖根据需求分析阶段所得到的数据的语义,分别写出每个关系模式内根据需求分析阶段所得到的数据的语义,分别写出每个关系模式内部各属性之间的函数依赖以及不同关系模式属性之间函数依赖。部各属性之间的函数依赖以及不同关系模式属性之间函数依赖。 例如,学生关系模式内部存在下列函数依赖:例如,学生关系模式内部存在下列函数依赖: 学号学号姓名,学号姓名

123、,学号性别,学号性别,学号出生年月,学号出生年月,学号所在系,学号所在系,学号班级,班级,。 课程关系模式内部存在下列函数依赖:课程关系模式内部存在下列函数依赖: 课程号课程号课程名,课程号课程名,课程号学时数,课程号学时数,课程号学分,课程号学分,课程号开设开设学期,学期,。 选修关系模式中存在下列函数依赖:选修关系模式中存在下列函数依赖: (学号,课程号)(学号,课程号)成绩成绩 学生关系模式的学号与选修关系模式的学号之间存在函数依赖:学生关系模式的学号与选修关系模式的学号之间存在函数依赖: 学生学生.学号学号选修选修.学号学号 9/23/202494 可用实体候选键之间的函数依赖来表示不

124、同实体间的一对一、一可用实体候选键之间的函数依赖来表示不同实体间的一对一、一对多、多对多的联系,然后对函数依赖进行最小化处理,消除冗余的联对多、多对多的联系,然后对函数依赖进行最小化处理,消除冗余的联系。系。 根据规范化理论对关系模式逐一进行分析,检查是否存在部分函根据规范化理论对关系模式逐一进行分析,检查是否存在部分函数依赖、传递函数依赖等,确定各关系模式分别属于第几范式。数依赖、传递函数依赖等,确定各关系模式分别属于第几范式。 根据需求分析阶段得到的各种应用及对数据处理的要求,分析所根据需求分析阶段得到的各种应用及对数据处理的要求,分析所在的应用环境中这些关系模式是否合适,确定是否要对它们

125、进行合并或在的应用环境中这些关系模式是否合适,确定是否要对它们进行合并或分解。分解。 关系模式的优化关系模式的优化 (2)9/23/202495关系模式的优化关系模式的优化 (3)关于关系模式的规范化问题,做如下两点说明:关于关系模式的规范化问题,做如下两点说明:u并不是规范化程度越高的关系就越好。当一个应用的查询中经常涉及并不是规范化程度越高的关系就越好。当一个应用的查询中经常涉及到两个或多个关系模式的属性时,系统必须经常地进行连接运算,而连到两个或多个关系模式的属性时,系统必须经常地进行连接运算,而连接运算的代价是相当高的,可以说关系模式操作低效的主要原因就是做接运算的代价是相当高的,可以

126、说关系模式操作低效的主要原因就是做连接运算引起的。在这种情况下,第二范式甚至第一范式也许是最好的。连接运算引起的。在这种情况下,第二范式甚至第一范式也许是最好的。u如果一个关系模式在实际应用中只是提供查询,并不提供更新操作,如果一个关系模式在实际应用中只是提供查询,并不提供更新操作,或者很少提供更新操作,此时不会存在更新异常问题或更新异常不是主或者很少提供更新操作,此时不会存在更新异常问题或更新异常不是主要问题,可以不对关系模式进行分解。要问题,可以不对关系模式进行分解。 9/23/202496例如例如,在关系模式学生成绩单(学号,英语,数学,语文,平均成绩),在关系模式学生成绩单(学号,英语

127、,数学,语文,平均成绩)中存在下列函数依赖:中存在下列函数依赖: 学号学号英语,学号英语,学号数学,学号数学,学号语文,学号语文,学号平均成绩,(英语,平均成绩,(英语,数学,语文)数学,语文)平均成绩平均成绩 根据合并规则可得:根据合并规则可得: 学号学号(英语,数学,语文英语,数学,语文) 因此,因此,“学号学号平均成绩平均成绩”是传递函数依赖。是传递函数依赖。由于关系模式中存在传递函数依赖,所以是由于关系模式中存在传递函数依赖,所以是2NF关系。关系。 虽然平均成绩可以由其他属性推算出来,但如果应用中需要经常查询虽然平均成绩可以由其他属性推算出来,但如果应用中需要经常查询学生的平均成绩,

128、为了提高查询效率,关系模式中仍然可保留该冗余数学生的平均成绩,为了提高查询效率,关系模式中仍然可保留该冗余数据,对关系模式不再做进一步分解。据,对关系模式不再做进一步分解。 对于一个具体应用来说,规范化应进行到什么程度,需要根据具体情对于一个具体应用来说,规范化应进行到什么程度,需要根据具体情况而定。一般来说,关系模式达到第三范式就能获得比较满意的效果。况而定。一般来说,关系模式达到第三范式就能获得比较满意的效果。 关系模式的优化关系模式的优化 (4)9/23/202497关系模式的优化关系模式的优化 (5) 对关系模式进行必要的分解,以提高数据操作的效率和存储空间的对关系模式进行必要的分解,

129、以提高数据操作的效率和存储空间的利用率。利用率。 常用的分解方法有两种:水平分解和垂直分解。常用的分解方法有两种:水平分解和垂直分解。 水平分解水平分解。所谓水平分解是指把一个关系模式。所谓水平分解是指把一个关系模式R中的元组分为若干子中的元组分为若干子集合,定义每个子集合为一个子关系,以提高系统的效率。集合,定义每个子集合为一个子关系,以提高系统的效率。 例如例如有一个产品关系模式,其中包含有出口产品和内销产品两类数据。有一个产品关系模式,其中包含有出口产品和内销产品两类数据。由于不同的应用对应不同的产品,如一个应用只对应进口产品,而另一个应由于不同的应用对应不同的产品,如一个应用只对应进口

130、产品,而另一个应用只对应内销产品。因此,可将产品关系模式进行水平分解,分解为两个关用只对应内销产品。因此,可将产品关系模式进行水平分解,分解为两个关系模式,一个存放出口产品数据,另一个存放内销产品数据。系模式,一个存放出口产品数据,另一个存放内销产品数据。产品号产品号产品名产品名型号规格型号规格产品号产品号产品名产品名型号规格型号规格出口产品出口产品内销产品内销产品9/23/202498 垂直分解垂直分解。所谓垂直分解是把一个关系模式。所谓垂直分解是把一个关系模式R的属性分解为若干子的属性分解为若干子集合,形成若干子关系模式。集合,形成若干子关系模式。 例如有一个职工关系模式,其中含有例如有一

131、个职工关系模式,其中含有“职工号职工号”、“职工名职工名”、“性性别别”、“职务职务”、“职称职称”、“出生日期出生日期”、“地址地址”、“邮编邮编”、“电话电话”、“所在部门所在部门”等描述属性。等描述属性。如果应用中经常存取的数据是职工号、职工名、性别、职务以及职称,如果应用中经常存取的数据是职工号、职工名、性别、职务以及职称,而其他数据很少使用,则可以对职工关系模式进行垂直分解,即分解为而其他数据很少使用,则可以对职工关系模式进行垂直分解,即分解为两个关系模式,一个存放经常使用的数据,另一个存放不常使用的数据。两个关系模式,一个存放经常使用的数据,另一个存放不常使用的数据。职工号职工号职

132、工名职工名性别性别职务职务职工号职工号出生日期出生日期地址地址邮编邮编职工职工1 1职工职工2 2关系模式的优化关系模式的优化 (6)9/23/202499垂直分解的原则为:垂直分解的原则为:凡是经常在一起使用的属性从凡是经常在一起使用的属性从R中分解出来形成中分解出来形成一个子关系模式,这样也可以提高数据操作的效率。一个子关系模式,这样也可以提高数据操作的效率。 垂直分解的好处垂直分解的好处是可以提高某些事务的效率;不足之处是可能会使得是可以提高某些事务的效率;不足之处是可能会使得另一些事务不得不执行连接操作,从而降低效率。是否需要垂直分解,另一些事务不得不执行连接操作,从而降低效率。是否需

133、要垂直分解,取决于分解后取决于分解后R上的所有事务的总效率是否得到了提高。上的所有事务的总效率是否得到了提高。垂直分解的方法垂直分解的方法可以采用简单的直观分解,也可以用关系模式分解算可以采用简单的直观分解,也可以用关系模式分解算法进行分解。法进行分解。需要注意的是需要注意的是,垂直分解必须以不损失关系模式的语义(保持无损连,垂直分解必须以不损失关系模式的语义(保持无损连接性和保持函数依赖性)为前提。接性和保持函数依赖性)为前提。 关系模式的优化关系模式的优化 (7)9/23/2024100关系模式的优化关系模式的优化 (8)例例6.11 假设有一个选课关系:选修课程(学号,姓名,年龄,课程假

134、设有一个选课关系:选修课程(学号,姓名,年龄,课程名称,成绩,学分)。请分析该关系属于第几范式?如果应用中需要常名称,成绩,学分)。请分析该关系属于第几范式?如果应用中需要常常对选修课程关系进行增、删、改操作,该关系存在什么问题?并对其常对选修课程关系进行增、删、改操作,该关系存在什么问题?并对其设计进行优化。设计进行优化。 解:由于每个学生可能选修多门课程,而每门课程对应一个成绩。因解:由于每个学生可能选修多门课程,而每门课程对应一个成绩。因此,该关系的候选关键字为(学号,课程名称)。此,该关系的候选关键字为(学号,课程名称)。 根据数据的语义,该关系上存在的函数依赖集为:根据数据的语义,该

135、关系上存在的函数依赖集为: (学号,课程名称)(学号,课程名称)(姓名,年龄,成绩,学分),课程名称(姓名,年龄,成绩,学分),课程名称学学分,学号分,学号(姓名,年龄)。(姓名,年龄)。 由于(学号,课程名称)由于(学号,课程名称)(姓名,年龄),而(学号,课程名称)(姓名,年龄),而(学号,课程名称)的子集的子集“学号学号”也能函数确定一个学生的姓名和年龄,即学号也能函数确定一个学生的姓名和年龄,即学号(姓名,(姓名,年龄)。年龄)。该关系存在非主属性对候选键的部分函数依赖,因此,选修课程关系该关系存在非主属性对候选键的部分函数依赖,因此,选修课程关系属于第一范式,且存在以下问题:属于第一

136、范式,且存在以下问题: 9/23/2024101关系模式的优化关系模式的优化 (9) 数据冗余:如果同一门课程由多个学生选修,数据冗余:如果同一门课程由多个学生选修,“学分学分”就会重复就会重复多次;如果同一个学生选修了多门课程,该学生的姓名和年龄就会重复多次;如果同一个学生选修了多门课程,该学生的姓名和年龄就会重复多次。多次。 更新异常:若调整了某门课程的学分,则数据表中该门课程所有更新异常:若调整了某门课程的学分,则数据表中该门课程所有行的行的“学分学分”值都要更新,否则会出现同一门课程学分不同的情况值都要更新,否则会出现同一门课程学分不同的情况 插入异常:假定要开设一门新的课程,暂时还没

137、有人选修。此时,插入异常:假定要开设一门新的课程,暂时还没有人选修。此时,由于候选键中由于候选键中“学号学号”没有值,所以课程名称和学分也无法插入数据库。没有值,所以课程名称和学分也无法插入数据库。 删除异常:假设有一批学生已经完成课程的选修,这些选修记录删除异常:假设有一批学生已经完成课程的选修,这些选修记录就应该从选修课程数据表中删除。但与此同时,课程名称和学分信息也就应该从选修课程数据表中删除。但与此同时,课程名称和学分信息也有可能被删除。有可能被删除。 由于选修课程关系中的数据需要经常更新,所以必须由于选修课程关系中的数据需要经常更新,所以必须解决上述可能出现的操作异常。通过对关系进行

138、分解,可将选修课程关解决上述可能出现的操作异常。通过对关系进行分解,可将选修课程关系分解为以下三个表:系分解为以下三个表: 9/23/2024102 学生(学号,姓名,年龄)学生(学号,姓名,年龄) 课程(课程名称,学分)课程(课程名称,学分) 选课(学号,课程名称,成绩)选课(学号,课程名称,成绩)其中,学生关系上的候选键为其中,学生关系上的候选键为“学号学号”,函数依赖集为:,函数依赖集为: 学号学号姓名,学号姓名,学号年龄年龄 由于不存在非主属性对候选键的部分函数依赖和传递函数依赖,因由于不存在非主属性对候选键的部分函数依赖和传递函数依赖,因此,学生关系属于第三范式。此,学生关系属于第三

139、范式。 课程关系上的候选键为课程关系上的候选键为“课程名称课程名称”,函数依赖为:,函数依赖为: 课程名称课程名称学分学分 由于不存在非主属性对候选键的部分函数依赖和传递函数依赖,因由于不存在非主属性对候选键的部分函数依赖和传递函数依赖,因此,课程关系也属于第三范式。此,课程关系也属于第三范式。 关系模式的优化关系模式的优化 (10)9/23/2024103关系模式的优化关系模式的优化 (11)选课关系上的候选键为选课关系上的候选键为学号,课程名称学号,课程名称,函数依赖为:函数依赖为: 学号,课程名称学号,课程名称成绩成绩 由于不存在非主属性对候选键的部分函数依赖和传递函数依赖,因此,由于不

140、存在非主属性对候选键的部分函数依赖和传递函数依赖,因此,选课关系也属于第三范式。选课关系也属于第三范式。 如果需要增加、删除以及修改学生信息,则只需对学生关系进行操作。如果需要增加、删除以及修改学生信息,则只需对学生关系进行操作。 如果需要增加、删除以及修改课程信息,则只需对课程关系进行操作。如果需要增加、删除以及修改课程信息,则只需对课程关系进行操作。 如果需要增加、删除以及选课信息,则只需对选课关系进行操作。如果需要增加、删除以及选课信息,则只需对选课关系进行操作。 另外,如果应用中的查询常常是统计学生的选课情况,则分解后带来的另外,如果应用中的查询常常是统计学生的选课情况,则分解后带来的

141、自然连接操作很少。因此,这样的设计是合理的。自然连接操作很少。因此,这样的设计是合理的。 以上通过对关系选修课程的分解,各关系上的函数依赖集以及不同关系以上通过对关系选修课程的分解,各关系上的函数依赖集以及不同关系模式之间的函数依赖已是最小函数依赖集,并且消除了数据冗余和操作异常。模式之间的函数依赖已是最小函数依赖集,并且消除了数据冗余和操作异常。因此,关系模式得到了优化。因此,关系模式得到了优化。 9/23/20241046.5 物理结构设计物理结构设计 对于给定的基本数据模式选取一个最适合应用环境的物理结构对于给定的基本数据模式选取一个最适合应用环境的物理结构的过程,称为的过程,称为物理结

142、构设计物理结构设计。 9/23/2024105物理结构设计物理结构设计(1) 数据库的物理结构主要指数据库的存储记录格式、存储记录安排和数据库的物理结构主要指数据库的存储记录格式、存储记录安排和存取方法。显然,数据库的物理设计是完全依赖于给定的硬件环境和数存取方法。显然,数据库的物理设计是完全依赖于给定的硬件环境和数据库产品的。数据库的物理设计示意图如下图所示。据库产品的。数据库的物理设计示意图如下图所示。 物理设计过程示意图物理设计过程示意图不满意不满意数据库模式数据库模式 操作模式操作模式 存储设备特征存储设备特征 DBMS特征特征物理结构设计物理结构设计是否需要修正是否需要修正结束结束满

143、意满意9/23/2024106物理结构设计物理结构设计(2)物理设计的步骤:物理设计的步骤: 存储记录结构设计存储记录结构设计:包括记录的组成、数据项的类型、长度,以:包括记录的组成、数据项的类型、长度,以及逻辑记录到存储记录的映射。及逻辑记录到存储记录的映射。 确定数据存放位置确定数据存放位置:可以把经常同时被访问的数据组合在一起,:可以把经常同时被访问的数据组合在一起,“记录聚簇(记录聚簇(Clus-Ter)”技术能满足这个要求。技术能满足这个要求。 存取方法的设计:存取方法的设计:存取路径分为主存取路径与辅存取路径,前者存取路径分为主存取路径与辅存取路径,前者用于主键检索,后者用于辅助键

144、检索。用于主键检索,后者用于辅助键检索。 完整性和安全性考虑:完整性和安全性考虑:设计者应在完整性、安全性、有效性和效设计者应在完整性、安全性、有效性和效率方面进行分析,作出权衡。率方面进行分析,作出权衡。 程序设计:程序设计:在逻辑数据库结构确定后,应用程序设计就应当随之在逻辑数据库结构确定后,应用程序设计就应当随之开始。物理数据独立性的目的是消除由于物理结构的改变而引起对应用开始。物理数据独立性的目的是消除由于物理结构的改变而引起对应用程序的修改。当物理独立性未得到保证时,可能会发生对程序的修改程序的修改。当物理独立性未得到保证时,可能会发生对程序的修改 。9/23/20241076.6

145、数据库的实现数据库的实现 根据逻辑设计和物理设计的结果,在计算机系统上建立起实际数据根据逻辑设计和物理设计的结果,在计算机系统上建立起实际数据库结构、装入数据、测试和试运行的过程称为库结构、装入数据、测试和试运行的过程称为数据库的实现阶段数据库的实现阶段。数据库的实现阶段主要有三项工作:数据库的实现阶段主要有三项工作: 建立实际数据库结构建立实际数据库结构。对描述逻辑设计和物理设计结果的程序。对描述逻辑设计和物理设计结果的程序(即(即“源模式源模式”)经)经DBMS编译成目标模式和执行后建立了实际的数据编译成目标模式和执行后建立了实际的数据库结构。库结构。 装入试验数据对应用程序进行调试装入试

146、验数据对应用程序进行调试。试验数据可以是实际数据,。试验数据可以是实际数据,也可由手工生成或用随机数发生器生成。应使测试数据尽可能覆盖现实也可由手工生成或用随机数发生器生成。应使测试数据尽可能覆盖现实世界的各种情况。世界的各种情况。 装入实际数据,进入试运行状态装入实际数据,进入试运行状态。测试系统的性能指标,是否符。测试系统的性能指标,是否符合设计目标。如果不符合,则返回前面几步修改数据库的物理结构,甚合设计目标。如果不符合,则返回前面几步修改数据库的物理结构,甚至逻辑结构。至逻辑结构。 9/23/20241086.7 数据库的运行与维护数据库的运行与维护 数据库系统运行维护阶段数据库系统运

147、行维护阶段的主要任务有四项:的主要任务有四项: 维护数据库的安全性与完整性维护数据库的安全性与完整性。检查系统安全性是否受到侵犯,。检查系统安全性是否受到侵犯,及时调整授权和密码,实施系统转储与备份,发生故障后及时恢复。及时调整授权和密码,实施系统转储与备份,发生故障后及时恢复。 监测并改善数据库运行性能监测并改善数据库运行性能。对数据库的存储空间状况及响应时。对数据库的存储空间状况及响应时间进行分析评价,结合用户反应确定改进措施,实施再构造或再格式化。间进行分析评价,结合用户反应确定改进措施,实施再构造或再格式化。 根据用户要求对数据库现有功能进行扩充根据用户要求对数据库现有功能进行扩充。

148、及时改正运行中发现的系统错误及时改正运行中发现的系统错误。要充分认识到,数据库系统只。要充分认识到,数据库系统只要在运行,就要不断地进行评价、调整、修改。要在运行,就要不断地进行评价、调整、修改。如果应用变化太大,再组织工作已无济于事,那么表明原数据库应如果应用变化太大,再组织工作已无济于事,那么表明原数据库应用系统生存期已结束,应该设计新的数据库应用系统了。用系统生存期已结束,应该设计新的数据库应用系统了。 9/23/2024109对对ER模型的理解模型的理解(1) ER模型是人们认识客观世界的一种方法、工具。模型是人们认识客观世界的一种方法、工具。ER模型具有客模型具有客观性和主观性两重含

149、义。观性和主观性两重含义。ER模型是在客观事物或系统的基础上形成模型是在客观事物或系统的基础上形成的,在某种程度上反映了客观现实,反映了用户的需求,因此的,在某种程度上反映了客观现实,反映了用户的需求,因此ER模模型具有客观性。但型具有客观性。但ER模型又不等同于客观事物的本身,它往往反映模型又不等同于客观事物的本身,它往往反映事物的某一方面,至于选取哪个方面或哪些属性,如何表达则决定事物的某一方面,至于选取哪个方面或哪些属性,如何表达则决定于观察者本身的目的与状态,从这个意义上说,于观察者本身的目的与状态,从这个意义上说,ER模型又具有主观模型又具有主观性。性。 9/23/2024110对对

150、ER模型的理解模型的理解(2) ER模型的设计过程,基本上是两大步:模型的设计过程,基本上是两大步: 先设计实体类型(此时不要涉及到先设计实体类型(此时不要涉及到“联系联系”);); 再设计联系类型(考虑实体间的联系)。再设计联系类型(考虑实体间的联系)。 具具体体设设计计时时,有有时时“实实体体”与与“联联系系”两两者者之之间间的的界界线线是是模模糊糊的的。数数据库设计者的任务就是要把现实世界中的数据以及数据间的联系抽据库设计者的任务就是要把现实世界中的数据以及数据间的联系抽象出来,用象出来,用“实体实体”与与“联系联系”来表示。来表示。 另外,设计者应注意,另外,设计者应注意,ER模型应该充分反映用户需求,模型应该充分反映用户需求,ER模型模型要得到用户的认可才能确定下来。要得到用户的认可才能确定下来。 9/23/2024111

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业/管理/HR > 营销创新

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号