1、CPU1 重点掌握:E-R模型 需求分析CPU2数据库设计是指对于一个给定的应用环境,构造优化的数据模型,并据此建立数据库及其应用系统,使之能够有效地存储和管理数据,满足各种用户的应用需求。CPU3 1、数据库设计方法 早期数据库设计主要采用手工试凑法,这种方法与设计人员的经验和水平有直接关系,因缺乏科学理论和工程方法的支持,设计质量难以保证,常常是数据库投入使用后才发现问题,不得不进行修改甚至重新设计,加大了系统的维护成本。通过不断的探索和实践,人们提出了各种数据库设计方法,这些方法运用软件工程的思想和方法,并提出各种设计准则和规程,都属于规范化设计方法。具体方法如下:(1)新奥尔良方法。该
2、方法把数据库设计分为四个阶段:需求分析、概念设计、逻辑设计和物理设计,其后,S.B.Yao等又将数据库设计分为五个步骤。还有I.R.Painler等把数据库设计看成一步接一步的过程,并采用一些辅助手段实现每一个过程。基于E-R模型的数据库设计方法。该方法用E-R模型设计数据库的概念模型,是数据库概念设计阶段所采用的方法。(常用)基于3NF(第三范式)的设计方法。该方法用关系理论指导数据库逻辑模型的设计,是数据库逻辑设计阶段所采用的方法。CPU4 图3.1 数据库设计的步骤 概念结构设计需求分析阶段 逻辑结构设计 物理结构设计 数据库实施阶段 数据库运行与维护 CPU53数据库设计过程中的各级模
3、式 在数据库设计的不同阶段产生数据库的各级模式。在需求分析阶段,综合各个用户的应用需求;在概念结构设计阶段,则产生独立于计算机硬件和DBMS的概念模式,它从用户需求的观点描述了数据库的全局逻辑结构;在逻辑结构设计阶段,产生了依赖于DBMS的逻辑模式,它是由概念模式转换而来,从计算机实现的观点描述了数据库的全局逻辑结构;并根据用户使用数据的要求及安全性,可为不同的用户建立不同的视图,即产生外模式,它是从用户使用的观点描述数据库的局部逻辑结构;在物理结构设计阶段,根据DBMS特点和处理需要,进行物理存储设计,产生内模式。如图3-1所示(见书)。CPU6需求分析阶段需求分析阶段1.需求分析阶段需求分
4、析阶段 需求是用户要求数据库应用系统必须满足的所有功能和限制,它包括:功能要求、性能要求、可靠性要求、安全性和完整性要求及开发费用、开发周期等限制。其中功能要求又包括信息要求和处理要求。需求分析就是通过与用户的沟通和交流获取用户的需求,并对需求进行分析和整理,最终形成需求文档。CPU7需求分析阶段需求分析阶段1.需求获取需求获取1 1)调查组织结构:要建立数据库应用系统,首先要清楚当前系统的组织结构情)调查组织结构:要建立数据库应用系统,首先要清楚当前系统的组织结构情况,即了解该组织各部门的划分及其相互关系、各部门的职责、人员配备、况,即了解该组织各部门的划分及其相互关系、各部门的职责、人员配
5、备、业务分工等。调查结果可用组织结构图来描述。业务分工等。调查结果可用组织结构图来描述。(2 2)调查管理功能:功能指的是完成某项工作的能力。每个系统都有一个总目)调查管理功能:功能指的是完成某项工作的能力。每个系统都有一个总目标,为了达到总目标,必须完成各个子系统的功能,子系统的功能又依赖于标,为了达到总目标,必须完成各个子系统的功能,子系统的功能又依赖于其下面各项更具体功能的实现。在调查中,可以用功能层次图来描述从系统其下面各项更具体功能的实现。在调查中,可以用功能层次图来描述从系统目标到各项功能的层次关系。目标到各项功能的层次关系。CPU8需求分析阶段需求分析阶段 1.需求获取需求获取(
6、3 3)调查各部门的业务流程:调查各部门的处理业务、信息来源、处理方法、)调查各部门的业务流程:调查各部门的处理业务、信息来源、处理方法、计算方法、信息流经去向、提供信息的时间和形态(报告、单据、屏幕显示计算方法、信息流经去向、提供信息的时间和形态(报告、单据、屏幕显示等)以及安全性和完整性要求。调查结果可用业务流程图来描述。等)以及安全性和完整性要求。调查结果可用业务流程图来描述。(4 4)确定新系统的边界:一个组织业务活动的管理不可能全部由计算机来完成)确定新系统的边界:一个组织业务活动的管理不可能全部由计算机来完成,所以设计人员通过对上述调查结果的分析来确定系统的边界,即确定哪些,所以设
7、计人员通过对上述调查结果的分析来确定系统的边界,即确定哪些功能由计算机完成或将来准备让计算机完成,哪些活动由人工完成。由计算功能由计算机完成或将来准备让计算机完成,哪些活动由人工完成。由计算机完成的功能就是新系统要实现的功能机完成的功能就是新系统要实现的功能。CPU9需求分析阶段需求分析阶段 2.需求分析需求分析 分析的内容有:分析的内容有:(1 1)分析业务流程)分析业务流程 了解某项业务的具体处理过程,发现和处理系统调查工作中的错误和疏漏,了解某项业务的具体处理过程,发现和处理系统调查工作中的错误和疏漏,修改和删除原系统的不合理部分,在新系统基础上优化业务处理流程。修改和删除原系统的不合理
8、部分,在新系统基础上优化业务处理流程。(2 2)分析系统数据)分析系统数据 在调查的基础上,进一步收集和分析数据,主要工作包括:在调查的基础上,进一步收集和分析数据,主要工作包括:a.a.明确用户在数据库中需要存储哪些数据,即确定各实体集以及各实体集所明确用户在数据库中需要存储哪些数据,即确定各实体集以及各实体集所包含的属性。包含的属性。b.b.明确实体集之间的联系,即确定联系的类型。明确实体集之间的联系,即确定联系的类型。c.c.明确各属性的组成,即属性的名称、类型、长度、值域、使用特点等。明确各属性的组成,即属性的名称、类型、长度、值域、使用特点等。d.d.明确各数据的来源及不同来源数据是
9、否有矛盾;数据之间的联系;哪些是明确各数据的来源及不同来源数据是否有矛盾;数据之间的联系;哪些是基本数据;哪些是导出数据;数据的重要性;及数据可能发生的变化等。基本数据;哪些是导出数据;数据的重要性;及数据可能发生的变化等。e.e.明确用户对数据处理的要求,即要完成的具体处理内容、响应时间、安全明确用户对数据处理的要求,即要完成的具体处理内容、响应时间、安全性和完整性等要求。性和完整性等要求。CPU10需求分析阶段需求分析阶段数据流程图(数据流程图(Data Flow DiagramData Flow Diagram,DFDDFD)是一种能全面地描述信息系统逻辑模型)是一种能全面地描述信息系统
10、逻辑模型的主要工具,它可以用少数几种符号综合地反映出信息在系统中的流动、处的主要工具,它可以用少数几种符号综合地反映出信息在系统中的流动、处理和存储情况。理和存储情况。DFDDFD不涉及技术细节,所描述的内容是面向用户的,它是分不涉及技术细节,所描述的内容是面向用户的,它是分析人员与用户进行交流的有效手段。析人员与用户进行交流的有效手段。具体内容及绘制方法将在“信息系统分析与设计”课程中介绍,在此只给出最简单的数据流程图。外部实体处理过程数据存储数据流向CPU11需求分析阶段需求分析阶段 数据流程图是以图形的方式描述了新系统的逻辑模型框架,对每个图形符号不能给出详细的定义,为此可通过表格或文字
11、对数据流程图中的每个成分都给出详细的描述和定义,这些描述和定义所组成的集合就是数据字典。数据字典主要是对数据流程图中的数据项、数据结构、数据流、处理逻辑、数据存储、外部实体6个元素进行具体的定义。下面分别介绍(见下一):CPUF1 F1 教学计划教学计划P3成绩鉴定成绩鉴定F2 F2 学生名册学生名册留级学生名单学 生学 生处处教师P1核对学生成绩单学生成绩单F3 F3 学生成绩表学生成绩表补考和留级学生名单P2成绩登录成绩登录院 系院 系办 公办 公室室CPU13需求分析阶段需求分析阶段 数据项数据项又称数据元素,是数据的最小单位,描述数据的静态特性。其定义包含如下内容:数据项的描述=数据项
12、编号,数据项名称,别名,简述,类型及宽度,取值范围,取值含义,存储处例如:“学号”数据项的定义如下:数据项编号:I0201数据项名称:学号别名:学生编号简述:学号是学生的标识符,每个学生都有惟一的学号。类型及宽度:字符型,9位取值范围:“000000001”“999999999”取值含义:前4位代表学生入学年份,后3位是序号,中间2位系编号。存储处:学生名册和学生成绩CPU14需求分析阶段需求分析阶段 数据结构数据结构描述某些数据项之间的关系。一个数据结构可以由若干个数据项组成;也可以由若干个数据结构组成;还可以由若干个数据项和数据结构组成。其定义包含如下内容:数据结构的描述=数据结构编号,数
13、据结构名称,简述,数据结构组成例如:“成绩”数据结构的定义如下:数据结构编号:DS01-12 数据结构名称:学生成绩单 简述:教师所填学生的成绩单 数据结构组成:姓名+课程名+分数CPU15需求分析阶段需求分析阶段 数据流数据流由一个或一组固定的数据项组成。其定义内容如下:数据流的描述=数据流编号,数据流名称,简述,数据流来源,数据流去向,数据流组成,平均数据流量,高峰流量例如:“留级学生名单”数据流的定义如下:数据流编号:D3数据流名称:留级学生名单简述:列出所有留级学生名单数据流来源:成绩鉴定模块数据流去向:学生处数据流组成:学号+姓名+院系+班级+原因平均数据流量:10份/学年高峰流量:
14、30份/学年CPU16需求分析阶段需求分析阶段 数据存储数据存储在数据字典中只描述数据的逻辑存储结构,而不涉及它的物理组织。其内容如下:数据存储的描述=数据存储编号,数据存储名称,简述,数据存储组成,关键字,相关联的处理例如:“学生成绩表”数据存储的定义如下:数据存储编号:F3数据存储名称:学生成绩表简述:存放学生所选课程的考试成绩数据存储组成:学号+课程号+分数关键字:学号+课程号相关联的处理:P2、P3CPU17需求分析阶段需求分析阶段 处理逻辑处理逻辑的定义仅对数据流程图中最底层的处理逻辑加以说明。内容如下:处理逻辑的描述=处理逻辑编号,处理逻辑名称,简述,输入的数据流,处理,输出的数据
15、流,处理频率例如:“核对”处理逻辑的定义如下:处理逻辑编号:P1处理逻辑名称:核对简述:对教师提交的成绩单按有关约定进行核对输入的数据流:学号和姓名,来源于数据存储“学生名册表”;课程号和课程名,来源于数据存储“教学计划”;分数来源于外部实体“教师”。处理:根据数据流“学号”和“姓名”,检索学生名册,确定该学生是本校学生;再根据数据流“课程号”和“课程名”,检索数据存储教学计划,以确定该学生的选课;再根据教师输入的分数,得到正确的成绩单。输出的数据流:数据流“正确的成绩单”去下一个处理逻辑“成绩登录”。处理频率:每学期处理一次。CPU18需求分析阶段需求分析阶段 外部实体外部实体的描述=外部实
16、体编号,外部实体名称,简述,输入的数据流,输出的数据流例如:“教师”外部实体的定义如下:外部实体编号:S1外部实体名称:教师简述:任课教师输入的数据流:无输出的数据流:D1CPU19需求分析阶段需求分析阶段3编写需求说明书在调查分析的基础上,编写需求规格说明书,它的内容主要包括:系统的概况、目标、范围、背景、历史和现状;系统总体结构与子系统结构说明;系统功能说明;系统的软硬件支持环境的选择及规格要求;组织结构图、组织之间联系图等;数据流程图、功能模块图和数据字典等。CPU20 在概念结构设计阶段,设计人员从用户需求的观点出发对数据进行建模,产生一个独立于计算机硬件和DBMS的概念模型。概念模型
17、是现实世界到信息世界的第一级抽象,也是设计人员与用户交流的工具之一,因此要求概念模型简单、清晰、易于理解,同时还应具备较强的语义表达能力,可以直接表达用户的各种需求,并易于向数据模型的转换。概念模型的表示方法有很多,目前常用的是:用实体-联系方法(Entity Relationship Approach)来表示概念模型。CPU21 321 E-R方法 实体-联系方法是用E-R图来描述现实世界的概念模型,E-R图是实体-联系图(Entity Relationship Diagram)的简称,它是1976年由PPChen提出的一种常用的概念模型设计工具。用E-R方法建立的概念模型也称为E-R模型。
18、PPChen Welcome to the home page of Dr.Peter Chen(陳品山)at Louisiana State University。http:/www.csc.lsu.edu/chen/.CPU221E-R图的基本组成 E-R图是用图形化的方法直观地描述概念模型,它使用不同的图形分别表示实体型、属性和联系。用矩形表示实体型(或实体集),在数据库中实体往往指的是某类事务的集合,即实体集;用椭圆表示属性;用菱形表示联系;并在各在图形框内写上相应的名字,如图3-5所示。所以E-R图的基本组成是实体型、属性和联系。学生 选课姓名CPU23 实体是现实世界中可区别于其他
19、对象的“事件”或“物体”。属性是实体集中每一个实体所具有的性质,它是对实体特征的描述。例如,在学生实体集中,每一名学生(实体)都具有学号、姓名、性别、专业名称、入学年月、籍贯等特征,则称这些特征为学生实体集的属性。CPU24 2E-R图 用线段(无向边)将实体型与属性或实体型与联系或联系与属性连接起来,并在线段旁标注联系的类型,由此而形成E-R图。CPU25322 属性和联系概念的扩展1属性第一章中介绍的是最简单的且只能取一个值的属性,下面从不同的角度对属性进行划分。(1)简单属性和复合属性。根据属性是否可以再分,将属性分为简单属性和复合属性。简单属性是指不能划分为更小部分的属性,例如性别属性
20、就是简单属性。复合属性是指可以再划分为更小部分的属性。(2)单值属性和多值属性 根据属性的取值特点,将属性分为单值属性和多值属性。单值属性是指对一个特定实体只能有一个值的属性,例如学号等都是单值属性。多值属性是指对一个特定实体可能对应一组值的属性。CPU商品商品编码商品名生产厂家生产日期保质期价格图3-9 多值属性的表示CPU27 在将具有多值属性的E-R模型转换为逻辑模型时,会产生大量的数据冗余,所以在实际应用中需要将多值属性转换为单值属性,以减少数据冗余。转换方法有如下两种:方法一:增加属性,即将多值属性的每个取值单独作为一个属性,如图3-10所示。方法二:增加实体,即增加一个新的实体集,
21、该实体集的属性由原实体集的主码和相应的多值属性组成。如图3-11所示。CPU商品商品编码商品名生产厂家生产日期保质期图3-10 多值属性的转换方法一进价批发价零售价CPU商品商品编码商品名生产厂家生产日期保质期进价图3-11 多值属性的转换方法二有售价商品编码销售类型价格日期CPU30 (3 3)派生属性。派生属性是指属性的值可以从其他的相关属性或实体派生出)派生属性。派生属性是指属性的值可以从其他的相关属性或实体派生出来,例如某类商品的销售额,就可通过销售量来,例如某类商品的销售额,就可通过销售量*单价得到,其中销售量属性和单价得到,其中销售量属性和单价属性称为基属性或存储属性,派生属性的值
22、不存储,需要时可根据某种单价属性称为基属性或存储属性,派生属性的值不存储,需要时可根据某种算法推导出来。算法推导出来。在在E-RE-R图中用虚线将派生属性与其实体相连,如图图中用虚线将派生属性与其实体相连,如图3-123-12所示。所示。CPU商品商品编码商品名销售额图3-12 派生属性的表示单价销售量CPU32 2联系联系联系的元数是指参与联系的实体集的数目。联系的元数是指参与联系的实体集的数目。1)1)一元联系一元联系2)2)二元联系二元联系3)3)N N元联系元联系CPU33 1 1)一元联系)一元联系 参与联系集的实体集数目是1,称为一元联系,也称递归联系。一元联系是指在同一个实体集内
23、部一个实体与另一个实体之间存在的联系。例如,在职工实体集中一些人是经理,而另一些人是职员,经理与职员之间存在领导与被领导的联系。CPU34(2)N元联系 N元联系是指参与联系的实体集数目为N(N2)。例如某学校规定:每名教师只能讲授一门课程,而每门课程可以有多名教师讲授;教师讲课时可指定一本教材,每本教材只供一门课程使用,则教师、课程和教材之间的联系如图3-14所示。类似3元联系还有旅行社、游客和景点之间的联系及供应商、零件和项目之间的联系,请读者自行假设相关的约束(语义),并画出相应的E-R图。三元联系在E-R图中易于表示,但在数据库实现时却很麻烦,为此通常将N元联系(N2)转换为一组等价的
24、二元联系,如图3-15所示。CPU35 (b)一元联系的表示方法 (c)角色的表示方法 职工领导职工领导经理职工CPU36 3 33 31 1 概念结构设计方法和步骤概念结构设计方法和步骤1 1概念结构设计方法概念结构设计方法设计概念结构的方法有四种,它们是:设计概念结构的方法有四种,它们是:(1 1)自顶向下方法。首先定义全局概念结构的框架,然后逐步细化,)自顶向下方法。首先定义全局概念结构的框架,然后逐步细化,形成各局部应用的概念结构。形成各局部应用的概念结构。(2 2)自低向上方法。首先定义各局部应用的概念结构,然后将它们集)自低向上方法。首先定义各局部应用的概念结构,然后将它们集成,得
25、到全局概念结构。成,得到全局概念结构。(3 3)由里向外方法。首先定义最重要的核心概念结构,然后向外扩张,)由里向外方法。首先定义最重要的核心概念结构,然后向外扩张,生成其他概念结构,直至得到全局概念结构。生成其他概念结构,直至得到全局概念结构。CPU37(4 4)混合方法。将自顶向下和自低向上相结合的方法,用自顶向下方)混合方法。将自顶向下和自低向上相结合的方法,用自顶向下方法设计一个全局概念结构的框架,以它为骨架集成由自低向上方法中法设计一个全局概念结构的框架,以它为骨架集成由自低向上方法中设计的各局部应用的概念结构。设计的各局部应用的概念结构。2 2概念结构设计步骤概念结构设计步骤概念结
26、构设计是在需求分析的基础上,设计出系统的概念模型,而概概念结构设计是在需求分析的基础上,设计出系统的概念模型,而概念模型一般用念模型一般用E-RE-R模型表示,所以概念结构设计就是设计模型表示,所以概念结构设计就是设计E-RE-R模型。设模型。设计计E-RE-R模型采用自低向上方法,具体步骤是首先设计各局部应用的模型采用自低向上方法,具体步骤是首先设计各局部应用的E-RE-R模型,然后将局部模型,然后将局部E-RE-R模型集成为全局模型集成为全局E-RE-R模型,最后对全局模型,最后对全局E-RE-R模型模型进行优化。进行优化。CPU383 33 32 2 局部局部E-RE-R模型的设计模型的
27、设计 根据需求分析,设计对应于每一部门或每一应用的局部根据需求分析,设计对应于每一部门或每一应用的局部E-RE-R模型。设模型。设计时首先要确定局部应用,然后确定各应用中的实体集、联系集和属计时首先要确定局部应用,然后确定各应用中的实体集、联系集和属性,最后画出性,最后画出E-RE-R图。图。1.1.确定局部应用确定局部应用 一般可按照一个组织的组织机构确定局部应用,如学校中的教务处、一般可按照一个组织的组织机构确定局部应用,如学校中的教务处、学生处等;也可按照某一应用层次确定局部应用,如学校各项管理工学生处等;也可按照某一应用层次确定局部应用,如学校各项管理工作中的学籍管理、成绩管理、课程管
28、理等。确定好局部应用后,就可作中的学籍管理、成绩管理、课程管理等。确定好局部应用后,就可分别对每个局部应用设计局部分别对每个局部应用设计局部E-RE-R模型。模型。2.2.确定实体集及其属性确定实体集及其属性 在设计局部在设计局部E-RE-R模型时最大的问题是如何正确划分实体集和属性。一模型时最大的问题是如何正确划分实体集和属性。一般先按照实际应用环境的结构和被讨论属性的相关语义来定义实体集般先按照实际应用环境的结构和被讨论属性的相关语义来定义实体集和属性,然后再根据实际应用进行必要的调整。调整的原则是:和属性,然后再根据实际应用进行必要的调整。调整的原则是:CPU(1)实体集和描述它的属性之
29、间保持1:1或n:1的联系。例如一名教师只能有一个出生日期,一种性别,一个职称,所以教师实体和其属性出生日期、性别和职称就符合这个原则。但可能会出现实体集和属性之间是1:n联系,即属性为多值属性。例如,一名教师可能有基本工资、岗位工资、奖金等多种工资,此时就需要按前面介绍过的方法进行调整,调整结果如图3-16所示。CPU1n教师有工资教师编号姓名性别职称出生日期类别号基本工资奖金岗位工资图3-16 将工资属性调整为实体集CPU(2)作为“属性”,不能再有需要描述的性质,即属性是不可分的数据项,不能包含其他属性。例如教材实体集中的作者属性,若作者不需要详细描述,则作者可作为教材的一个属性,若需要
30、进一步描述,则将作者调整为实体集,如图3-17所示。CPU1n教材编著作者ISBN书名出版社版次单价姓名单位电话图3-17 将作者属性调整为实体集编号CPU 3.确定实体集之间的联系 4.画出局部E-R图 CPU 333 局部E-R模型设计案例 经调查得到某高校的组织机构和主要业务活动如下:该高校下设若干个学院和行政管理部门(如教务处、学生处、招生办公室等),每个学院设置若干个系,每个系有若干名教师;每个系有若干个班级,每个班级有若干名学生。CPU 新生入学后填写的学生情况登记表报各系、院后,再上报教务处教务科,教务科将这些报表汇总后与学校招生办公室进行核对,准确无误后存档以备使用。每年各个专
31、业在制定完教学计划后,由教学秘书交系教学办公室进行审核,然后上报教务科,教务处和教务科出面组织全校进行讨论,协调各专业的教学执行计划,最后形成年度教学执行计划下发各系组织落实。各系将落实后的教师任务分配表汇总再报教务科。各系教学办公室根据教学执行计划、教师任务分配表和教室情况排出本系课程表,再报教务科,由教务科进行统一协调,最后制定出全校课程表下发各院、系。学校实施了学分制管理,在每学期开学以前还要进行学生选课工作。期末考试结束后,各系将学生成绩归档并进行学籍处理,然后将成绩及学籍处理结果报教务科审批执行。另外教务科还要根据教师任课情况、学生情况制定各种报表上报教委、学校及各有关单位。CPU
32、可见,学校的管理工作很复杂,要处理的信息也很繁杂,因此必须详细调查各部门具体的业务规则和数据管理的需求,并将其抽象成数据模型。在此我们从系管理角度出发以学籍管理和课程管理两个简单的局部应用为例,设计局部E-R模型。CPU1确定局部应用确定学籍管理和课程管理两个局部应用。2确定实体集及其属性(1)学籍管理的业务规则每个系有多个班,每个班只属于一个系;每个班有多名学生,每名学生只属于一个班;每个班由一名班主任负责日常管理工作,并且每名班主任只负责一个班;每个班还有多名指导教师,负责指导学生的专业学习,每名教师可指导多名学生,每名学生只能由一名教师指导。学籍管理中的实体集有:系、班级、学生、教师、班
33、主任各实体集的属性分别为:系(系号,系名,系主任名)班级(班号,班名)学生(学号,姓名,性别,出生日期)教师(教师编号,姓名,职称)班主任(班主任编号,姓名,职称)CPU(2)课程管理的业务规则 每个系开设了若干门课程,每门课程可以由多名教师讲授,每名教师可以讲授多门课程,教师在讲授课程时可选择一本教材,因实行学分制,学生可自由选课,一名学生可选多门课程,一门课程可由多名学生选修,学生通过考试可获得所选课程的成绩。课程管理的实体集有:系、课程、学生、教材、教师 各实体集的属性分别为:系(系号,系名,系主任名)课程(课程号,课程名,学时,开课学期)学生(学号,姓名,性别,年龄)教师(教师编号,姓
34、名,职称)教材(ISBN,书名,作者,出版社,单价,版次)CPU(3)教师管理的业务规则 每个系设置了多个教研室,每个教研室有多名教师,每名教师只属于一个教研室。各实体集的属性分别为:系(系号,系名,系主任名)教研室(教研室编号,教研室名,教研室主任)教师(教师编号,姓名、性别,出生日期,职称,工资)确定实体集之间的联系 根据各业务规则可确定实体集之间的联系,比如系与班级之间是一对多联系,班级与班主任之间是一对一联系,其他联系如图3-18、3-19和3-20所示。CPU 4画出局部E-R图 为了简便,在后面所画的E-R图中均省略了属性。(1)学籍管理的E-R图如图3-18所示。(2)课程管理的
35、E-R图如图3-19所示。(3)教师管理的E-R图如图3-20所示。CPU 334 全局E-R模型的设计 对各局部E-R模型进行集成形成全局E-R模型,集成方法有两种:第一种方法是将多个局部E-R模型一次集成;第二种方法是逐步集成,每次集成两个局部E-R模型,直至完成所有局部E-R模型的集成。第一种方法比较复杂,集成难度较大;第二种方法因两两集成,所以降低了集成的复杂度和难度。无论采用哪种集成方法,集成过程都要分如下两步进行:合并。解决各局部E-R模型之间的冲突问题,生成初步的全局E-R模型。优化。消除不必要的冗余,生成最终的全局E-R模型。CPU无有无有各局部E-R模型确定公共实体集集成两个
36、局部E-R模型检查并消除冲突有冲突码?有未集成的?进行优化图3-21初步全局E-R模型的设计CPU 初步的全局E-R模型的设计过程 1确定公共实体集 2集成两个局部E-R模型 3消除冲突 CPU 冲突主要有三种类型:属性冲突、结构冲突和命名冲突。(1)属性冲突 属性冲突主要体现在如下两方面:属性域冲突。即属性值的类型、取值范围或取值集合不同。例如,“学号”属性,有的设计人员将其定义为“整数型”,而有的设计人员则将其定义为“字符型”。再如“工资”属性,有的设计人员将其范围设定为05000,而有的设计人员则其范围设定为10005000。对“职称”属性,有的设计人员将其取值集合设定为“助教”,“讲师
37、”,“副教授”,“教授”,而有的设计人员则将其取值集合设定为“助教”,“讲师”,“副教授”,“教授”,“实验员”,“高级实验员”,“高级工程师”。属性取值单位冲突,例如重量,有的以公斤为单位,有的以斤为单位,还有的以克为单位。再如“学时”属性有的以小时为单位,有的以分钟为单位。CPU(2)结构冲突 结构冲突主要体现在如下三方面:同一事物不同的抽象。即同一个事物在不同的应用中进行了不同的抽象,例如,“教材”在某一局部应用中被抽象为实体集,而在其他局部应用中则被抽象为属性。消除该冲突的方法是:使同一事物具有相同的抽象,即把属性变为实体集或把实体集变为属性。同一实体集在不同的应用中其属性个数和属性排
38、列次序不同。例如,在设计案例中,学籍管理和课程管理应用,对指导学生专业学习的教师和任课教师,只关心教师的编号、姓名和职称,对其他信息不必管理;而在教师管理应用中,则需要对教师的详细信息进行管理,所以“教师”实体集在不同应用中其属性个数不同。消除该冲突的方法是:取各局部E-R模型中存在冲突的实体集属性的并集,再适当调整属性的次序,形成该实体集的属性组成。CPU 同一联系,在不同的应用中呈现不同的类型,“教师”实体集与“课程”实体集之间的联系,有的是一对一联系,有的是一对多联系,有的是多对多联系;还有的是二元联系,有的是三元联系。消除该冲突的方法是:根据应用的语义对实体集联系的类型进行综合或调整。
39、(3)命名冲突 命名冲突主要体现在如下两方面:同名异义。即不同意义的事物在不同应用中具有相同的名称。异名同义。同一意义的事物在不同应用中具有不同的名称。在设计案例中,学籍管理中的学生,表示学生年龄大小使用的是“出生日期”,而在课程管理中则使用“年龄”。命名冲突既可能是实体集命名的冲突,也可能是联系命名的冲突,还可能是属性命名的冲突。消除命名冲突的方法是:各个部门协商解决。CPU 335 全局E-R模型设计案例 1首先将学籍管理的局部E-R模型(图3-18)和课程管理的局部E-R模型(图3-19)集成形成如图3-22所示的E-R模型。2再将图3-22和教师管理的的局部E-R模型(图3-20)集成
40、形成如图3-23所示的全局E-R模型。CPU 336 优化全局E-R模型 优化全局E-R模型就是在必要时应对全局E-R图进行修改、重构和优化,得到最佳的全局E-R图方案,使其既能满足所有用户的需求又能减少冗余属性和冗余联系,因为冗余属性和冗余联系容易破坏数据库的完整性,增加数据库维护难度。冗余属性是指可以由其他属性值推导出来的属性,冗余联系是指可以由其他联系推导出来的联系。减少冗余属性和冗余联系可采用分析方法,即以需求阶段所建立的数据字典和数据流程图为依据,根据其中有关数据项之间的逻辑关系确定冗余数据项,从而消除不必要的冗余属性和冗余联系,但有时为了提高效率需要保留必要的冗余。另外,还可用规范化理论消除冗余。