1、六章数据库设计六章数据库设计主要章节6.1 概述概述 6.2 需求分析需求分析6.3 概念结构设计概念结构设计 6.4 逻辑结构设计逻辑结构设计6.5 物理结构设计物理结构设计 6.6 数据库的实现数据库的实现 6.7 数据库的运行与维护数据库的运行与维护 数据库设计目标和方法数据库设计方法数据库设计方法 生命周期法生命周期法v生命周期(生命周期(Life cycle)法就是将整个数据库应用系统的开)法就是将整个数据库应用系统的开发过程分解成若干个阶段,并对每个阶段的目标、任务、方发过程分解成若干个阶段,并对每个阶段的目标、任务、方法作出规定,使整个数据库应用系统的开发过程具有合理的法作出规定
2、,使整个数据库应用系统的开发过程具有合理的组织和科学的秩序。组织和科学的秩序。阶段划分:系统分析、系统设计、系统实施、系统运阶段划分:系统分析、系统设计、系统实施、系统运行与维护。行与维护。主要遵循的原则:主要遵循的原则:v 用户参与的原则。用户参与的原则。v 先逻辑、后物理的原则。先逻辑、后物理的原则。v 自顶向下的原则。自顶向下的原则。v 工作成果描述标准化原则。工作成果描述标准化原则。需求分析系统设计 系统实施 运行维护 生生命命周周期期法法确定开发的总目标确定开发的总目标,计划计划开发的软件系统功能、开发的软件系统功能、性能、可靠性及接口等性能、可靠性及接口等方面的设想。并提供一方面的
3、设想。并提供一个可做为设计基础的系个可做为设计基础的系统规格说明书,包括对统规格说明书,包括对软、硬件环境的需求和软、硬件环境的需求和一整套完整的数据流图。一整套完整的数据流图。把需求分析阶段所确定的把需求分析阶段所确定的功能细化。主要工作是设功能细化。主要工作是设计模块结构图和系统的数计模块结构图和系统的数据结构。据结构。以某一个或几种特定的以某一个或几种特定的程序设计语言表达上一阶程序设计语言表达上一阶段确定的各模块控制流程。段确定的各模块控制流程。编制时应遵循结构化程序编制时应遵循结构化程序设计。并对已编制好的程设计。并对已编制好的程序进行单元调试(分调),序进行单元调试(分调),整体调
4、试(联调)和系统整体调试(联调)和系统测试(验收)。测试(验收)。是整个生存期中时间最是整个生存期中时间最长的阶段,重点是将系长的阶段,重点是将系统付诸使用,同时解决统付诸使用,同时解决开发过程中遗留问题,开发过程中遗留问题,改正和改善性能改正和改善性能.数据库设计目标和方法数据库设计目标和方法 快速原型法快速原型法 快速原型(快速原型(Rapid Prototyping)法的基本思想是在)法的基本思想是在初步了解用户的基本要求后,开发人员先建立一个他初步了解用户的基本要求后,开发人员先建立一个他们认为符合用户要求的模式系统交付用户检验,由于们认为符合用户要求的模式系统交付用户检验,由于模型是
5、可以执行的,所以为用户提供了获得感性认识模型是可以执行的,所以为用户提供了获得感性认识的机会。的机会。优点:优点:v用户可以测试具体实例,直接观察一个实际系统用户可以测试具体实例,直接观察一个实际系统。v有利于准确地定义出用户需求,降低系统开发风险。有利于准确地定义出用户需求,降低系统开发风险。v适用于中小规模系统的开发。适用于中小规模系统的开发。缺点:缺点:v具有为用户需求快速生成软件的工具和环境。具有为用户需求快速生成软件的工具和环境。数据库设计目标和方法 面向对象法面向对象法面向对象(面向对象(Object Oriented,简称,简称OO)法是)法是针对面向过程提出的,是区别于传统的结
6、构化针对面向过程提出的,是区别于传统的结构化方法的一种新方法、新思路,是一种基于数据方法的一种新方法、新思路,是一种基于数据抽象的类的组合的自底向上的开发方法。抽象的类的组合的自底向上的开发方法。基本步骤:基本步骤:v 标识对象和定义类;标识对象和定义类;v 组织类间关系;组织类间关系;v 在类层中构造框架;在类层中构造框架;v 建立可复用的类库和系统总框架。建立可复用的类库和系统总框架。数据库设计目标和方法面向对象法主要有以下四个特征:面向对象法主要有以下四个特征:(1)对象是有关数据和操作的封装体,突破了传统的对象是有关数据和操作的封装体,突破了传统的将数据与操作分离的模式,较好地实现了数
7、据抽象。将数据与操作分离的模式,较好地实现了数据抽象。(2)面向对象法的继承性体现了概念分离抽象。在对面向对象法的继承性体现了概念分离抽象。在对象继承结构上,下层对象继承上层对象的特征(属性象继承结构上,下层对象继承上层对象的特征(属性和操作),因而便于软件系统的演化和功能扩充。和操作),因而便于软件系统的演化和功能扩充。(3)面向对象法用消息将对象动态连接在一起。与结面向对象法用消息将对象动态连接在一起。与结构化方法中的模块调用不同,面向对象法采用了灵活构化方法中的模块调用不同,面向对象法采用了灵活的消息传递方式,便于在概念上体现并行和分布式结的消息传递方式,便于在概念上体现并行和分布式结构
8、。构。(4)面向对象法具有封装性。对象将其实现细节封装面向对象法具有封装性。对象将其实现细节封装在它的内部,因此无论是对象功能的完善扩充还是对在它的内部,因此无论是对象功能的完善扩充还是对象实现的修改,影响仅限于该对象内部而不会对外界象实现的修改,影响仅限于该对象内部而不会对外界产生影响,这就保证了软件系统的可复用性和可维护产生影响,这就保证了软件系统的可复用性和可维护性。性。数据库设计的基本步骤运行和维护 实现 物理设计逻辑设计概念设计需求分析 对用户提出的各种要求加以分析,对用户提出的各种要求加以分析,对各种原始数据加以综合、整理,是对各种原始数据加以综合、整理,是形成最终设计目标的首要阶
9、段,也是形成最终设计目标的首要阶段,也是整个数据库设计过程中最困难的阶段。整个数据库设计过程中最困难的阶段。概念结构设计是对用户需求进概念结构设计是对用户需求进行进一步抽象、归纳,并形成独立行进一步抽象、归纳,并形成独立于于DBMSDBMS和有关软、硬件的概念数据和有关软、硬件的概念数据模型的设计过程,这是对现实世界模型的设计过程,这是对现实世界中具体数据的首次抽象,实现了从中具体数据的首次抽象,实现了从现实世界到信息世界的转化过程。现实世界到信息世界的转化过程。逻辑结构设计是将概念结构转逻辑结构设计是将概念结构转化为某个化为某个DBMSDBMS所支持的数据模型,所支持的数据模型,并进行优化的
10、设计过程。由于逻辑并进行优化的设计过程。由于逻辑结构设计是一个基于具体结构设计是一个基于具体DBMSDBMS的实的实现过程,所以选择什么样的数据模现过程,所以选择什么样的数据模型尤为重要,其次是数据模型的优型尤为重要,其次是数据模型的优化。化。物理结构设计是将逻辑结构设计物理结构设计是将逻辑结构设计阶段所产生的逻辑数据模型,转换为阶段所产生的逻辑数据模型,转换为某一计算机系统所支持的数据库物理某一计算机系统所支持的数据库物理结构的实现过程。结构的实现过程。数据库实施阶段,即数据库调数据库实施阶段,即数据库调试、试运行阶段。一旦数据库物理试、试运行阶段。一旦数据库物理结构形成,就可以用已选定的结
11、构形成,就可以用已选定的DBMSDBMS来定义、描述相应的数据库结构,来定义、描述相应的数据库结构,装入相应的数据,以生成完整的数装入相应的数据,以生成完整的数据库。据库。数据库实施阶段结束,标志着数数据库实施阶段结束,标志着数据库系统投入正常运行工作的开始。据库系统投入正常运行工作的开始。数据库运行及维护的过程,是一个调数据库运行及维护的过程,是一个调整、修改和不断完善的运行过程。整、修改和不断完善的运行过程。6.2需求分析6.2需求分析主要内容主要内容需求分析的任务需求分析的任务需求分析的步骤需求分析的步骤 需求分析的任务需求分析阶段任务是对系统的整个应用情况作全面的、详需求分析阶段任务是
12、对系统的整个应用情况作全面的、详细的调查,确定企业组织的目标,收集支持系统总的设计细的调查,确定企业组织的目标,收集支持系统总的设计目标的基础数据和对这些数据的要求,确定用户的需求,目标的基础数据和对这些数据的要求,确定用户的需求,并把这些要求写成用户和数据库设计者都能够接受的文档。并把这些要求写成用户和数据库设计者都能够接受的文档。需求分析中调查分析的方法很多,通常的办法是对不同层需求分析中调查分析的方法很多,通常的办法是对不同层次的企业管理人员进行个人访问,内容包括业务处理和企次的企业管理人员进行个人访问,内容包括业务处理和企业组织中的各种数据。访问的结果应该包括数据的流程、业组织中的各种
13、数据。访问的结果应该包括数据的流程、过程之间的接口以及访问者和职员两方面对流程和接口语过程之间的接口以及访问者和职员两方面对流程和接口语义上的核对说明和结论。对于某些特殊的目标和数据库的义上的核对说明和结论。对于某些特殊的目标和数据库的要求,可以从企业组织中的最高层机构得到。要求,可以从企业组织中的最高层机构得到。设计人员还应该了解系统将来要发生的变化,收集未来应设计人员还应该了解系统将来要发生的变化,收集未来应用所涉及的数据,充分考虑到系统可能的扩充和变动,使用所涉及的数据,充分考虑到系统可能的扩充和变动,使系统设计更符合未来发展的趋向,并且易于改动,以减少系统设计更符合未来发展的趋向,并且
14、易于改动,以减少系统维护的代价。系统维护的代价。这一阶段的任务如图这一阶段的任务如图总体信息需求定义了未来系统用到的所有信息,总体信息需求定义了未来系统用到的所有信息,描述了数据之间本质上和概念上的联系,描述描述了数据之间本质上和概念上的联系,描述了实体、属性、组合及联系的性质。了实体、属性、组合及联系的性质。这一阶段的结果是这一阶段的结果是“需求说明书需求说明书”,其主要内,其主要内容是系统的数据流图和数据字典。需求说明书容是系统的数据流图和数据字典。需求说明书应是一份既切合实际,又具有远见的文档,是应是一份既切合实际,又具有远见的文档,是一个描述新系统的轮廓图。一个描述新系统的轮廓图。需求
15、分析的任务总体信息需求总体信息需求处理需求处理需求第第1步:需求分析步:需求分析需求分析的步骤 分析用户活动,产生用户活动图。分析用户活动,产生用户活动图。这一步主要了解用户当前的业务活动和职能,搞这一步主要了解用户当前的业务活动和职能,搞清其处理流程(即业务流程)。如果一个处理流程比清其处理流程(即业务流程)。如果一个处理流程比较复杂,就要把这个处理流程分解成若干个子处理流较复杂,就要把这个处理流程分解成若干个子处理流程,使每个处理流程功能明确、界面清楚,分析之后程,使每个处理流程功能明确、界面清楚,分析之后画出用户活动图(即用户的业务流程图)。画出用户活动图(即用户的业务流程图)。确定系统
16、范围,产生系统范围图。确定系统范围,产生系统范围图。这一步是确定系统的边界。在和用户经过充分讨这一步是确定系统的边界。在和用户经过充分讨论的基础上,确定计算机所能进行数据处理的范围,论的基础上,确定计算机所能进行数据处理的范围,确定哪些工作由人工完成,哪些工作由计算机系统完确定哪些工作由人工完成,哪些工作由计算机系统完成,即确定人机界面。成,即确定人机界面。分析用户活动所涉及的数据,产生数据流图。分析用户活动所涉及的数据,产生数据流图。深入分析用户的业务处理,以数据流图形式表示深入分析用户的业务处理,以数据流图形式表示出数据的流向和对数据所进行的加工。出数据的流向和对数据所进行的加工。需求分析
17、的步骤教师教师原始输入原始输入输入输入处理处理成绩成绩登录登录输出输出处理处理教务处教务处输入输入格式化格式化输出输出输出输出格式化格式化成绩文件成绩文件数据流图数据流图(Data Flow Diagram,简记为,简记为DFD):):是从是从“数据数据”和和“对数据的加工对数据的加工”两方面表达数据处理系两方面表达数据处理系统工作过程的一种图形表示法。统工作过程的一种图形表示法。特点特点具有直观、易于被用户和软件人员双方都能理解的一种表具有直观、易于被用户和软件人员双方都能理解的一种表达系统功能的描述方式。达系统功能的描述方式。DFD有四个基本成分:有四个基本成分:v数据流(用箭头表示)数据
18、流(用箭头表示)v加工或处理(用圆圈表示)加工或处理(用圆圈表示)v文件(用双线段表示)文件(用双线段表示)v外部实体(数据流的源点或终点,用方框表示)外部实体(数据流的源点或终点,用方框表示)需求分析的步骤DFD可作为自顶向下逐步细化时描述对象的工具。顶可作为自顶向下逐步细化时描述对象的工具。顶层的每一个圆圈(加工处理)都可以进一步细化为第层的每一个圆圈(加工处理)都可以进一步细化为第二层;第二层的每一个圆圈又可以进一步细化为第三二层;第二层的每一个圆圈又可以进一步细化为第三层层;直到最底层的每一个圆圈已表示一个最基本;直到最底层的每一个圆圈已表示一个最基本的处理动作为止。的处理动作为止。D
19、FD可以形象地表示数据流与各业务活动的关系,它可以形象地表示数据流与各业务活动的关系,它是需求分析的工具和分析结果的描述手段。是需求分析的工具和分析结果的描述手段。例例6.1 在选课业务的处理流程中,假设开发人员收集在选课业务的处理流程中,假设开发人员收集到以下数据:学生基本信息表、课程表、选课单、选到以下数据:学生基本信息表、课程表、选课单、选课情况一览表、成绩单等。课情况一览表、成绩单等。通过分析,确认学生基本信息表、课程表、选课单是通过分析,确认学生基本信息表、课程表、选课单是输入选课系统的原始数据,而选课情况一览表以及成输入选课系统的原始数据,而选课情况一览表以及成绩单等是选课系统最终
20、需要输出的数据,如下图所示。绩单等是选课系统最终需要输出的数据,如下图所示。需求分析的步骤系统原始数据输入系统原始数据输入学生学生选课系统选课系统学生基本信息学生基本信息学生选课信息学生选课信息课程成绩课程成绩课程信息课程信息个人成绩单个人成绩单选课情况一览表选课情况一览表 某课程成绩单某课程成绩单系统输出数据系统输出数据学生选课系统是如何对系统的原始数据进行处理最后得到系统的学生选课系统是如何对系统的原始数据进行处理最后得到系统的输出数据呢?下面图给出了学生选课系统的整个数据流图,它是前面输出数据呢?下面图给出了学生选课系统的整个数据流图,它是前面图的进一步分解和细化。数据流图是一种从数据的
21、角度描述数据作为图的进一步分解和细化。数据流图是一种从数据的角度描述数据作为输入进入系统,经受若干加工处理,或者合并,或者分解,或者存储,输入进入系统,经受若干加工处理,或者合并,或者分解,或者存储,最后输出的整个过程。最后输出的整个过程。需求分析的步骤课程信息课程信息学生基本信息学生基本信息个人成绩单个人成绩单选课情况一览表选课情况一览表某课程成绩单某课程成绩单查询结果查询结果查询结果查询结果查询结果查询结果系统原始数据系统原始数据系统输出数据系统输出数据学生基本信息学生基本信息课程信息课程信息学生选课信息学生选课信息学生信学生信息录入息录入选课信选课信息录入息录入成绩录入成绩录入查询个人查
22、询个人所有课程所有课程成绩成绩课程信课程信息录入息录入查询课程查询课程的的选课情况选课情况查询某查询某门课程的门课程的所所有成绩有成绩学生选课系统的学生选课系统的0 0层数据流图层数据流图 需求分析的步骤 分析系统数据,产生数据字典。分析系统数据,产生数据字典。数据字典提供了对数据库数据描述的集中管数据字典提供了对数据库数据描述的集中管理,它的功能是存储和检索各种数据描述(称理,它的功能是存储和检索各种数据描述(称为元数据为元数据Metadata),如叙述性的数据定义等,),如叙述性的数据定义等,并且为并且为DBA提供有关的报告。提供有关的报告。数据字典中通常包括数据字典中通常包括:v数据项数
23、据项v数据结构数据结构v数据流数据流v数据存储数据存储v加工过程加工过程 例例6.2 在上图中有一个数据在上图中有一个数据流查询个人所有课程成绩,每个流查询个人所有课程成绩,每个人的成绩单有一个数据项为学生人的成绩单有一个数据项为学生的学号的学号SNO。在数据字典中对此。在数据字典中对此数据项如下描述。数据项如下描述。数据项名:数据项名:SNOSNO说说 明:标识一名学生明:标识一名学生类类 型:型:CHAR(9)CHAR(9)长长 度:度:9 9别别 名:学生学号名:学生学号取值范围:取值范围:000000000000000000999999999999999999需求分析的步骤 数据项数据
24、项 数据项是数据的最小单位,对数据项的描述,数据项是数据的最小单位,对数据项的描述,通常包括数据项名、含义、别名、类型、长度、通常包括数据项名、含义、别名、类型、长度、取值范围以及与其他数据项的逻辑关系。取值范围以及与其他数据项的逻辑关系。需求分析的步骤 数据结构数据结构数据结构反映了数据之间的组合关系。数据结构反映了数据之间的组合关系。一个数据结构可以由若干个数据项组成,也可一个数据结构可以由若干个数据项组成,也可以由若干个数据结构组成,或由若干个数据项以由若干个数据结构组成,或由若干个数据项和数据结构混合而成。和数据结构混合而成。它包括数据结构名、含义及组成该数据结构的它包括数据结构名、含
25、义及组成该数据结构的数据项名或数据结构名。数据项名或数据结构名。需求分析的步骤数据流名:个人成绩查询数据流名:个人成绩查询说说 明:学生可以根据所学专业、班级号、学生姓名、明:学生可以根据所学专业、班级号、学生姓名、课程名称来查询个人成绩课程名称来查询个人成绩来来 源:学生选课信息源:学生选课信息去去 向:输出到个人成绩单向:输出到个人成绩单数据结构:个人成绩查询数据结构:个人成绩查询 所学专业所学专业 班级号班级号 学生姓名学生姓名 课程名称课程名称 数据流数据流数据流可以是数据项,也可以是数据结构,表示某一数据流可以是数据项,也可以是数据结构,表示某一加工处理过程的输入或输出数据。对数据流
26、的描述应加工处理过程的输入或输出数据。对数据流的描述应包括数据流名、说明、流出的加工名、流入的加工名包括数据流名、说明、流出的加工名、流入的加工名以及组成该数据流的数据结构或数据项。以及组成该数据流的数据结构或数据项。例例6.3 在上图中成绩查询是一个数据流,在数据字典在上图中成绩查询是一个数据流,在数据字典中可作如下描述。中可作如下描述。需求分析的步骤数据存储名:课程说 明:对每门课程的名称、学分、先行课程号和摘要的描述输出数据流:课程介绍数 据 描 述:课程号、课程名、学分数、先行课程号、摘要数 量:每年328种 存 取 方 式:随机存取 数据存储数据存储数据存储是处理过程中要存储的数据,
27、它可以是手工数据存储是处理过程中要存储的数据,它可以是手工凭证、手工文档或计算机文档。对数据存储的描述应凭证、手工文档或计算机文档。对数据存储的描述应包括:数据存储名、说明、输入数据流、输出数据流、包括:数据存储名、说明、输入数据流、输出数据流、数据量(每次存取多少数据)、存取频度(单位时间数据量(每次存取多少数据)、存取频度(单位时间内存取次数)和存取方式(是批处理,还是联机处理;内存取次数)和存取方式(是批处理,还是联机处理;是检索,还是更新;是顺序存取,还是随机存取)。是检索,还是更新;是顺序存取,还是随机存取)。例例6.4 上图中课程是个数据存储,在数据字典中可对上图中课程是个数据存储
28、,在数据字典中可对其作如下描述。其作如下描述。需求分析的步骤处理过程:确定选课名单处理过程:确定选课名单说说 明:对选某门课程的每一个学生,根据已选修课程确定其是否可明:对选某门课程的每一个学生,根据已选修课程确定其是否可 选该课程。再根据学生选课的人数选择适当的教室,制定选课单。选该课程。再根据学生选课的人数选择适当的教室,制定选课单。输输 入:学生选课、可选课程、已选课程入:学生选课、可选课程、已选课程输输 出:选课单程序提要:出:选课单程序提要:a a对所选课程在选课表中查找其是否已选此课程;对所选课程在选课表中查找其是否已选此课程;b b若未选过此课程,则在选课表中查找是否已选此课程的
29、先行课程;若未选过此课程,则在选课表中查找是否已选此课程的先行课程;c c若若a a、b b都满足,则在选课表中增加一条选课记录;都满足,则在选课表中增加一条选课记录;d d处理完全部学生的选课后,形成选课单。处理完全部学生的选课后,形成选课单。加工过程加工过程对加工处理的描述包括加工过程名、说明、输对加工处理的描述包括加工过程名、说明、输入数据流、输出数据流,并简要说明处理工作、入数据流、输出数据流,并简要说明处理工作、频度要求、数据量及响应时间等。频度要求、数据量及响应时间等。6.3概念设计6.3概念设计主要内容主要内容概念结构设计任务和概念结构设计任务和ER模型的特点模型的特点概念结构设
30、计的基本方法概念结构设计的基本方法概念结构设计的主要步骤概念结构设计的主要步骤局部局部ER模型的设计模型的设计全局全局ER模型的设计模型的设计概念结构设计实例概念结构设计实例概念结构设计任务和ER模型的特点 数据库的概念结构设计数据库的概念结构设计是整个数据库设计的关键阶段,是整个数据库设计的关键阶段,其主要任务是通过对用户需求进行综合、归纳与抽象,其主要任务是通过对用户需求进行综合、归纳与抽象,形成一个独立于具体形成一个独立于具体DBMS的概念模式。的概念模式。实体实体-联系(联系(Entity Rela-tionship,ER)模型具有)模型具有以下特点:以下特点:v 能真实、充分地反映现
31、实世界,包括事物和事物之间的能真实、充分地反映现实世界,包括事物和事物之间的联系,并能满足用户对数据的处理要求;联系,并能满足用户对数据的处理要求;v 易于理解。可以利用它在设计人员、编程人员以及最终易于理解。可以利用它在设计人员、编程人员以及最终用户之间进行交流,使得用户能够积极参与,保证数据库设用户之间进行交流,使得用户能够积极参与,保证数据库设计的成功;计的成功;v 易于更改。当应用环境和应用要求发生改变时,容易对易于更改。当应用环境和应用要求发生改变时,容易对模式进行修改和扩充;模式进行修改和扩充;v 易于向关系、网状、层次等各种数据模型转换。易于向关系、网状、层次等各种数据模型转换。
32、概念结构设计的基本方法 自底向上的设计方法:自底向上的设计方法:也称为属性综合法。也称为属性综合法。这种方法的基本点是将前这种方法的基本点是将前面需求分析中收集到的数据元素作为基本输入,面需求分析中收集到的数据元素作为基本输入,通过对这些元素的分析,把它们综合成相应的通过对这些元素的分析,把它们综合成相应的实体或联系。实体或联系。适合范围适合范围v较小单位的、较为简单的设计对象较小单位的、较为简单的设计对象不适合不适合于中等规模以上的设计对象于中等规模以上的设计对象概念结构设计的基本方法 自顶向下的设计方法:自顶向下的设计方法:从分析组织的事务活动开始,按下面步骤进行:从分析组织的事务活动开始
33、,按下面步骤进行:v首先识别用户所关心的实体及实体间的联系,建首先识别用户所关心的实体及实体间的联系,建立一个初步的数据模型框架;立一个初步的数据模型框架;v然后再以逐步求精的方式加上必需的描述属性形然后再以逐步求精的方式加上必需的描述属性形成一个完整的局部成一个完整的局部ER模型;模型;v最后再将这些局部最后再将这些局部ER模型集成为一个统一的全局模型集成为一个统一的全局ER模型。模型。概念结构设计的主要步骤 进行数据抽象,设计局部概念模式进行数据抽象,设计局部概念模式局部用户的信息需求是构造全局概念模式的基础。在建立局部用户的信息需求是构造全局概念模式的基础。在建立局部概念结构时,常常要对
34、需求分析的结果进行细化、补局部概念结构时,常常要对需求分析的结果进行细化、补充和修改,如有的数据项要分为若干子项,有的数据定义充和修改,如有的数据项要分为若干子项,有的数据定义要重新核实等。要重新核实等。将局部概念模式综合成全局概念模式将局部概念模式综合成全局概念模式 综合各局部概念结构就可得到反映所有用户需求的全局概综合各局部概念结构就可得到反映所有用户需求的全局概念结构。在综合过程中,主要处理各局部模式对各种对象念结构。在综合过程中,主要处理各局部模式对各种对象定义的不一致问题,包括同名异义、异名同义和同一事物定义的不一致问题,包括同名异义、异名同义和同一事物在不同模式中被抽象为不同类型的
35、对象(例如,有的作为在不同模式中被抽象为不同类型的对象(例如,有的作为实体,有的又作为属性)等问题。把各个局部结构合并,实体,有的又作为属性)等问题。把各个局部结构合并,还会产生冗余问题,或导致对信息需求的再调整与分析,还会产生冗余问题,或导致对信息需求的再调整与分析,以确定确切的含义。以确定确切的含义。评审评审 消除了所有冲突后,就可把全局结构提交评审。评审分为消除了所有冲突后,就可把全局结构提交评审。评审分为用户评审与用户评审与DBA及应用开发人员评审两部分。及应用开发人员评审两部分。局部ER模型的设计1.确定局部结构范围确定局部结构范围设计局部设计局部ER模型时,首先需要根据系统的具模型
36、时,首先需要根据系统的具体情况,在多层的数据流图中选择一个适当层体情况,在多层的数据流图中选择一个适当层次的数据流图,让这组图中每一部分对应一个次的数据流图,让这组图中每一部分对应一个局部应用,然后以这一层次的数据流图为出发局部应用,然后以这一层次的数据流图为出发点,设计局部点,设计局部ER图。图。在确定局部在确定局部ER模型的设计范围时,有两条原模型的设计范围时,有两条原则可供参考:则可供参考:v 把那些关系最密切的若干功能所涉及到的数据把那些关系最密切的若干功能所涉及到的数据尽可能地包含在一个局部尽可能地包含在一个局部ER模型内;模型内;v 一个局部一个局部ER模型中所包含的实体数不能太多
37、,模型中所包含的实体数不能太多,以免过于复杂,不便理解和管理。以免过于复杂,不便理解和管理。局部局部ER模型设模型设计的流程图如计的流程图如下:下:局部ER模型的设计需求分析结果需求分析结果确定局部确定局部ER模型范围模型范围实体定义实体定义联系定义联系定义属性分配属性分配还有局部还有局部结构待分析结构待分析无无 进入全局进入全局ER模型设计模型设计有需求分析结果确定局部结构范围实体定义联系定义属性分配还有局部结构待分析有无进入全局ER模式设计局部ER模式设计流程图范围的划分要自然,易于管理;范围的大小要适度。太小了,会造成局部结构过多,设计过程繁琐,综合困难;太大了,则容易造成内部结构复杂,
38、不便分析 范围之间的界面要清晰,相互影响要小采用人们习惯的划分;避免冗余,在一个局部结构中,对一个对象只取一种抽象形式,不要重复;依据用户的信息处理需求 确定属性的原则:属性应该是不可再分解的语义单位;实体与属性之间的关系只能是1:N的;不同实体类型的属性之间应无直接关联关系。属性分配的原则:当多个实体类型用到同一属性时,一般把属性分配给那些使用频率最高的实体类型,或分配给实体值少的实体类型。有些属性不宜归属于任一实体类型,只说明实体之间联系的特性 局部ER模型的设计下面以学校的教务管理信息系统为例来说明下面以学校的教务管理信息系统为例来说明局部概念结构设计范围的确定。教务管理信息系局部概念结
39、构设计范围的确定。教务管理信息系统的顶层数据流图如下图所示。统的顶层数据流图如下图所示。教务管理教务管理信息系统信息系统学生学籍数据学生学籍数据课程数据课程数据选课数据选课数据成绩数据成绩数据学籍变动表学籍变动表课程表课程表选课一览表选课一览表成绩单成绩单局部ER模型的设计下面图给出了教务管理信息系统的下面图给出了教务管理信息系统的0层数据流层数据流图,该图描述了教务管理信息系统的组成部分以图,该图描述了教务管理信息系统的组成部分以及各部分的输入和输出数据。及各部分的输入和输出数据。局部ER模型的设计课程管理课程管理22成绩管理成绩管理44学生基本信息学生基本信息课程表课程表课程数据课程数据成
40、绩单成绩单成成绩绩数数据据选课一览表选课一览表选课管理选课管理3学生基本信息学生基本信息课程信息课程信息选课信息选课信息学籍变动表学籍变动表学生学籍数据学生学籍数据学生学籍学生学籍管理管理1选选课课数数据据局部ER模型的设计2.确定实体及实体的主键确定实体及实体的主键 确定实体确定实体 实体(实体(Entity)是一个数据对象,指应用中可以区别的客观存在)是一个数据对象,指应用中可以区别的客观存在的事物,如人、部门、表格、物体、项目等。同一类实体构成实的事物,如人、部门、表格、物体、项目等。同一类实体构成实体集(体集(Entity Set)。)。ER模型中的实体往往是指实体集。模型中的实体往往
41、是指实体集。学生选课子系统局部应用中,学生选课子系统局部应用中,学生学生是一个实体,学生张平、李玲是一个实体,学生张平、李玲是学生实体中的两个实例。是学生实体中的两个实例。课程课程是一个实体,操作系统、数据库是一个实体,操作系统、数据库原理及应用是课程实体中的两个实例。原理及应用是课程实体中的两个实例。课程管理子系统的局部应用中,课程管理子系统的局部应用中,课程课程是一个实体,每门课程是课是一个实体,每门课程是课程实体中的一个实例。上课的程实体中的一个实例。上课的教师教师是一个实体,每位上课的教师是一个实体,每位上课的教师都是教师实体中的一个实例。都是教师实体中的一个实例。成绩管理子系统的局部
42、应用中,学生是一个实体。一个学生,选成绩管理子系统的局部应用中,学生是一个实体。一个学生,选修一门课程并参加了考试,就会有这门课程的成绩。因此,可以修一门课程并参加了考试,就会有这门课程的成绩。因此,可以把成绩视为选课联系的一个属性。把成绩视为选课联系的一个属性。局部ER模型的设计 确定实体的主键确定实体的主键 主键是确定实体的唯一标志。主键是确定实体的唯一标志。v学生实体的主键是学号;学生实体的主键是学号;v课程实体的主键是课程号;课程实体的主键是课程号;v教师实体的主键是教师号;教师实体的主键是教师号;局部ER模型的设计 区分实体与属性的一般原则:区分实体与属性的一般原则:实体一般需要描述
43、信息,而属性不需要。例如,实体一般需要描述信息,而属性不需要。例如,学生需要描述属性(学号、姓名、性别、出生学生需要描述属性(学号、姓名、性别、出生年月等),所以学生是实体。而性别不需要描年月等),所以学生是实体。而性别不需要描述属性,所以性别是属性。述属性,所以性别是属性。多值的属性可考虑作为实体。例如,教师的职多值的属性可考虑作为实体。例如,教师的职务是一个多值的属性,即一个教师可能担任多务是一个多值的属性,即一个教师可能担任多个职务。此时职务可考虑作为一个独立的实体,个职务。此时职务可考虑作为一个独立的实体,否则数据库表中就会出现大量空值。否则数据库表中就会出现大量空值。局部ER模型的设
44、计 实体与属性是相对而言的。实体与属性是相对而言的。同一事物,在一种应用环境中作为同一事物,在一种应用环境中作为“属性属性”,在另一种应用环境中就必须作为在另一种应用环境中就必须作为“实体实体”。例如,学校中的系,在某种应用环境中,它只例如,学校中的系,在某种应用环境中,它只是作为是作为“学生学生”实体的一个属性,表明一个学实体的一个属性,表明一个学生属于哪个系;而在另一种环境中,由于需要生属于哪个系;而在另一种环境中,由于需要考虑一个系的系主任、教师人数、学生人数、考虑一个系的系主任、教师人数、学生人数、办公地点等,这时系就需要作为实体了。办公地点等,这时系就需要作为实体了。局部ER模型的设
45、计3.定义实体间的联系定义实体间的联系 联系是实体集之间关系的抽象表示,即对现实联系是实体集之间关系的抽象表示,即对现实世界中事物之间关系的描述。世界中事物之间关系的描述。如教师实体集与学生实体集间的如教师实体集与学生实体集间的“讲授讲授”联系,联系,公司实体集与职工实体集之间的公司实体集与职工实体集之间的“聘任聘任”联系联系等。等。在局部在局部ER图设计时,需要对已识别出的实体图设计时,需要对已识别出的实体确定不同实体间的联系是属于什么类型的联系,确定不同实体间的联系是属于什么类型的联系,是二元联系还是多元联系?是二元联系还是多元联系?局部ER模型的设计 一对一(一对一(1:1)联系)联系若
46、两个实体集中的每一个实体至多和另一个实体集中若两个实体集中的每一个实体至多和另一个实体集中的一个实体有联系,则称两个实体集具有的一个实体有联系,则称两个实体集具有1:1的联系。的联系。一对多(一对多(1:N)联系)联系设有两个实体集,若第一个实体集中每个实体与第二设有两个实体集,若第一个实体集中每个实体与第二个实体集中多(大于个实体集中多(大于1)个实体相联系,而第二个实)个实体相联系,而第二个实体中的每个实体至多和第一个实体集中的一个实体有体中的每个实体至多和第一个实体集中的一个实体有联系,则称第一个实体集与第二个实体集是一对多的联系,则称第一个实体集与第二个实体集是一对多的联系,记为联系,
47、记为1:N。多对多(多对多(M:N)联系)联系若两个实体集中的每一个实体都和另一个实体集中多若两个实体集中的每一个实体都和另一个实体集中多(大于(大于1)个实体有联系,则称这两个实体集是多对)个实体有联系,则称这两个实体集是多对多的联系,记为多的联系,记为M:N。局部ER模型的设计技术员技术员技术技术参与参与1掌握掌握工程工程使用使用N111N冗余联系冗余联系定义实体联系时应注意定义实体联系时应注意:消除冗余联系。在确定联系类型时,应注意防止消除冗余联系。在确定联系类型时,应注意防止出现冗余联系(即可以从其他联系导出的联系)。出现冗余联系(即可以从其他联系导出的联系)。假定每一个技术员必须参加
48、一个工程;每个工程有多假定每一个技术员必须参加一个工程;每个工程有多个技术员参加;每个工程必须使用一种技术。由于联个技术员参加;每个工程必须使用一种技术。由于联系具有传递性,因此,隐含了每一个技术员必须掌握系具有传递性,因此,隐含了每一个技术员必须掌握一种技术。该问题设计到三个实体,即技术员、工程一种技术。该问题设计到三个实体,即技术员、工程以及技术。以及技术。局部ER模型的设计 正确鉴别二元及多元联系。正确鉴别二元及多元联系。在局部在局部ER图设计中,不同实体间应建立二元还是多元联系,应该图设计中,不同实体间应建立二元还是多元联系,应该根据问题说明来确定。根据问题说明来确定。问题问题1:任何
49、一个供应商可向任何一个顾客供应任何一种零件。任何一个供应商可向任何一个顾客供应任何一种零件。在这个问题中,给定一个供应商,不能够确定该供应商向哪个顾在这个问题中,给定一个供应商,不能够确定该供应商向哪个顾客供应了哪种零件。给定一个顾客,也不能够确定该顾客是向哪客供应了哪种零件。给定一个顾客,也不能够确定该顾客是向哪个供应商购买了哪种零件。同样,给定一个零件,也不能确定哪个供应商购买了哪种零件。同样,给定一个零件,也不能确定哪个顾客在哪个供应商处购买的。如果想知道哪一个供应商向哪一个顾客在哪个供应商处购买的。如果想知道哪一个供应商向哪一个顾客提供了哪一种零件,则必须构建一个三元联系,且供应商、个
50、顾客提供了哪一种零件,则必须构建一个三元联系,且供应商、顾客以及零件三个实体之间的联系是多对多的。顾客以及零件三个实体之间的联系是多对多的。供应商供应商零件零件供供-顾顾-零零顾客顾客NPM局部ER模型的设计问题问题2:任何一个供应商可向任何一个顾客供应零件,任何一个供应商可向任何一个顾客供应零件,但每个顾客订购的零件是一定的。但每个顾客订购的零件是一定的。在这个问题中,同样地,给定一个供应商,却不能确在这个问题中,同样地,给定一个供应商,却不能确定向哪个顾客供应零件;给定一个顾客,也不能确定定向哪个顾客供应零件;给定一个顾客,也不能确定向哪个供应商购买零件。但是,顾客确定了,该顾客向哪个供应