Chapter04概念结构设计_第1页
Chapter04概念结构设计_第2页
Chapter04概念结构设计_第3页
Chapter04概念结构设计_第4页
Chapter04概念结构设计_第5页
已阅读5页,还剩71页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第4章概念结构设计 电子教案版本6 0 数据库技术 内容概述 4 1概念结构设计的内容4 2概念结构的表示方法4 3概念结构设计的方法4 4概念结构设计的步骤4 5实例分析4 6本章小结 第4章概念结构设计 重点 概念结构设计 根据系统规划和需求分析阶段确定的用户需求 利用需求分析的数据流图和数据字典 对用户需求进行综合 归纳和抽象 使用概念结构设计工具 设计出适合系统的概念模型 E R图 从而形成独立于具体DBMS的整体概念结构的过程 概念结构设计的任务 根据数据流图和数据字典设计系统的整体概念结构E R图 是整个数据库系统设计的关键 4 1概念结构设计的内容 通过需求分析 最终确定了用户的实际需求 为了能够在选择的DBMS下实现用户需求 需要进一步对用户需求进行抽象 使用合理的表达工具 按照指定的表达方法 以独立于具体DBMS的表达方式 表示出数据库系统的整体结构 而这种系统整体结构的最终表达就是概念模型 概念模型为数据库的逻辑设计提供可靠的理论依据 1实体与联系 1 实体 Entity 指客观存在的并且能够相互区别的事物 实体可以是具体的人 事 物或者某种抽象 数据字典中的具体事物均可抽象为实体例如 张三 2008010101 张三 男 16 计算机系 是表示人信息的实体 计算机系 01 计算机系 信息大楼 28806666 是表示系信息的实体 数据库原理 1999010101 数据库原理 3 是表示课程信息的实体 实体集 诸同类实体组成的实体集合 例 由学生信息和课程信息组成的实体集 学生信息表 课程信息表 2008010101 张三 男 20 数学系 2008010102 李四 女 19 数学系 2008020103 王五 男 16 计算机系 2008020104 孙六 女 18 计算机系 2008030105 马七 女 17 外语系 2008030106 刘八 男 19 外语系 1990010101 高等数学 1990030101 6 1990030101 英语 1990010101 4 1992020101 数据结构 1990010101 3 1992020102 数据库原理 1992020101 3 2006020216 IDL 1990010101 2 1实体与联系 属性 同类实体所具有的特性 因为每一类实体组成的实体集通常具有一系列的特性 且实体集的这些特性通常使用相应的属性来表示 所以实体集的每一个特性称为一个属性 一个实体集可以由多个属性来描述的 例如 学生实体集是由学号 姓名 性别 年龄和系别等属性组成 并且可以表示为 学生 学号 姓名 性别 年龄 系别 课程实体集是由课程号 课程名 先修课和学分等组成 并且可以表示为 课程 课程号 课程名 先修课 学分 对于指定的实体集 属性的取值范围称为属性的域 例如 学号的域为 10位数字组成的字符串 性别的域为 男 女 候选键 对于指定的实体集 能够区分每一个实体的属性集称为候选键 CandidateKey CK 候选键可以是一个属性 也可以是多个属性 例如 学生实体集的候选键为学号 课程实体集的候选键为课程号 温馨提示 在学生实体集中 如果学生的姓名中只有两个学生重名 而且正好是一个男生一个女生 则 姓名 性别 两个属性的组合也可以作为候选键 主键 在实际使用时 如果一个实体集中存在多个候选键 则选择其中的一个进行使用 那么被选中的候选键 称为主键 PrimaryKey PK 如果实体集的所有属性组成这个实体集的候选键 称为全键 AllKey AK 根据主键的定义可知主键的取值不能相同 候选键的诸属性称为主属性 不包含在任何候选码中的属性称为非主属性 同类实体中的每一个属性均拥有共同的特性 并且具有相同的数据类型 因此给每一个属性命名一个名称来表示该属性的本质特性 即 属性名 而同时为同类实体命名一个名称来表示该类实体的本质特性 即 实体集名 实体集名和属性名二者一起共同组成了实体集的结构 即 实体集的型 例如 每一个学生组成的实体集的名称学生和学生实体集的诸属性 学号 姓名 性别 年龄 系别等共同组成了学生实体集的型 即 学生 学号 姓名 性别 年龄 系别 约定 属性型 名 代替属性 属性的顺序不影响实体 实体的顺序不影响实体集 实体型 名 代替实体 实体集型 名 代替实体集 实体代替实体集 2 联系 Relationship 联系 实体之间或者实体内部的关联关系 在实际应用种 实体与实体之间或者实体内部通常存在一定的关联关系 实体间的联系是指不同实体之间的联系 实体内部的联系通常是指用于组成实体的各元组之间的联系 即 自联系 例如 学生和课程之间存在学生选修课程的联系 学生内部存在班长领导学生的联系 两个实体集之间的联系如下 一对一联系 1 1 对于实体集A中的每一个实体 实体集B中有且只能有一个实体与之联系 反之亦然 例如 班级与班长之间的联系 学校与校长之间的联系等 一对多联系 1 n 对于实体集A中的每一个实体 实体集B中有n n 1 个实体与之联系 反之 对于实体集B中的每一个实体 实体集A中有且只能有一个实体与之联系 例如 学院与班级之间的联系 班级与学生之间的联系等 多对多联系 m n 对于实体集A中的每一个实体 实体集B中有n n 1 个实体与之联系 反之 对于实体集B中的每一个实体 实体集A中有n n 1 实体与之联系 多对多联系 例如 学生与选课之间的联系 因为一门课可以供多个学生选修 而且一个学生可以同时选修多门课 下面是六个学生实体选修多个课程实体产生的一个选课联系 即 选课信息表 2008010101 1990010101 99 2008010102 1990030101 98 2008020103 1992020101 97 2008020104 1992020102 96 2008030105 2006020216 96 2008030106 2006020216 98 联系也可以拥有属性 联系和它的所有属性构成了联系的一个完整描述 因此联系与属性间也有关系 例如 选课联系产生一个新属性 成绩 概念模型可以描述为 把数据字典记录的用户需求综合 归纳和抽象为属性 实体和联系 并综合利用属性 实体和联系表示出的数据库系统的整体结构模型 2概念结构设计的内容 1 对表达用户最终需求的数据流图和数据字典进行综合 归纳和抽象 2 确定数据库系统的实体 组成实体的属性和实体之间的联系 3 选择合理的概念模式描述工具 例如 实体 联系方法 E R方法 4 描述概念模型 形成概念结构 例如 实体 联系模型 E R模型 E R图 注意 1 应用与实际保持一致 2 实体与联系抽象保持一致 3 实体主键的合理性 4 易于理解 5 易于修改 6 易于转换 结论 属性 实体和联系构成了概念结构设计的三要素 4 2概念结构的表示方法 概念结构的表示方法较多 其中P P S Chen于1976年提出的实体 联系方法 Entity RelationshipApproach E R方法 是目前最著名 最直观 最常用的表示方法 E R方法是使用E R图 Entity RelationshipDiagram 来描述数据库系统的概念结构 E R图也称为E R模型 1E R方法 E R方法 使用抽象后的实体 组成实体的属性以及实体之间的一对一 一对多和多对多关系等来表示数据库系统的整体结构的方法 E R图 使用E R方法约定的图形符号和连接方法绘制的表示数据库系统的整体结构的图形集合称为E R图 E R图的图形符号和连接方法约定 1 属性 椭圆表示属性 椭圆中的标识是属性名 是主键的属性使用下划线标识 2 实体 矩形表示属性 矩形中的标识是实体名 3 联系 菱形表示联系 菱形中的标识是联系名 4 连接线 连接线表示实体与属性 联系与属性的连接关系 具体含义是属性属于实体或者属性属于联系 5 单箭头 单箭头表示实体与实体的一对一联系 箭头一端连接实体 非箭头一端连接联系 6 双箭头 双箭头表示实体与实体的多对多联系 箭头一端连接实体 非箭头一端连接联系 E R图的基本图形符号和连接方法示意图 两种常用的表示方法 方法1 实体与实体之间的联系也使用连接线 但是需要在连接线上使用1 1 1 n和n m分别注明实体与实体之间的一对一 一对多和多对多联系 表示方法示意图如图所示 两种常用的表示方法 方法2 使用连接线表示实体与实体的多对多联系 使用单箭头表示实体与实体的一对一联系 箭头一端连接实体 非箭头一端连接联系 表示方法示意图如图所示 本书采用图4 1的表示方法 如果读者需用它法 请自行调整 2E R图设计的基本规则与实例分析 1 实体 属性和联系的命名应该尽量与系统的用户需求保持一致 确保无二义性 2 严格区分实体 属性和联系 确定应用对象是实体 属性还是联系 3 严格确定实体与属性的隶属关系 4 严格确定实体与实体之间的联系是一对一 一对多还是多对多 5 严格确定联系本身是否包含属性 即 实体之间的联系是否有新属性 6 严格按照E R图的基本图形符号和连接方法约定绘制E R图 7 绘制E R图可以属性 实体和联系一起绘制在一张图中 也可以属性 实体和联系分开绘制 即实体和联系一起绘制 而实体和属性一起绘制 联系和属性一起绘制 前者适用于简单应用 后者适用于复杂应用 当然也可以采用混合方式绘制E R图 即按照E R图的区域或者应用的功能模块 分块绘制E R图 这是需要注意使用圆型连接点给出分块E R图之间的连接标识 如图所示 例4 2 已知学校实体的属性包括校名 地址和电话 校名是主键 即 学校 校名 地址 电话 校长实体的属性包括工号 姓名 年龄和职称 工号是主键 即 校长 工号 姓名 年龄 职称 同时规定一个学校只能有一个校长任职 任职后需要给出任职日期 要求绘制学校校长E R图 分析 根据已知条件可知 E R图中包含两个实体 学校和校长 同时按照规定学校和校长的联系是一对一联系 并且联系任职需要产生一个新属性 任职日期 则学校校长E R图如图4 5所示 图4 5学校校长E R图 例4 3 已知学校的系实体的属性包括系号 系名 地址 电话 系号是主键 即 系 系号 系名 地址 电话 教师实体的属性包括工号 姓名 性别和年龄 工号是主键 即 教师 工号 姓名 性别 年龄 同时规定一个系可以聘任多名教师 一个教师只能属于一个系 并且聘用教师后 需要给出联系Email 要求绘制系教师E R图 分析 根据已知条件可知 E R图中包含两个实体 系和教师 同时按照规定系和教师的联系是一对多联系 并且联系聘用需要产生一个新属性 Email 则系教师E R图如图4 6所示 提示 系教师E R图中有两个电话属性 在使用时 一般不会产生问题 因为它是实体自身的属性 是两个没有关系的不同的属性 当然为了避免发生错误 可以尽量使用不同的名称命名 比如 把电话分别改为 办公电话和教师电话 图4 6系教师E R图 例4 4 已知学生实体的属性包括学号 姓名 年龄 性别 学号是主键 即 学生 学号 姓名 年龄 性别 课程实体的属性包括课程号 课程名 学分和教师名 课程号是主键 即 课程 课程号 课程名 学分 教师名 同时规定一个学生可以选修多门课程 一门课程可以被多名学生选修 学生选课后 需要产生一个成绩属性 要求绘制学生选课E R图 分析 根据已知条件可知 E R图中包含两个实体 学生和课程 同时按照规定学生和课程的联系是多对多联系 并且联系选课需要产生一个新属性 成绩 则学生选课E R图如图4 7所示 图4 7学生选课E R图 例4 5 已知出版社实体的属性包括社号 社名 地址 电话 社号是主键 即 出版社 社号 社名 地址 电话 图书馆实体的属性包括馆号 馆名和Email 馆号是主键 即 图书馆 馆号 馆名 Email 图书实体的属性包括书号 书名和定价 书号是主键 即 图书 书号 书名 定价 同时规定一个出版社可以供应多本图书给多家图书馆 一个图书馆可以接收多家出版社供应的对本图书 接收图书后 需要给出接收的数量 要求绘制出版社供应图书E R图 分析 根据已知条件可知 E R图中包含三个实体 出版社 图书馆和图书 同时按照规定出版社 图书馆和图书的联系是多对多联系 并且联系供应需要产生一个新属性 数量 则出版社供应图书E R图如图4 8所示 或者如图4 9所示 图4 8出版社供应图书E R图 图4 9出版社供应图书分解E R图 例4 6 蓝天集团物流中心的物资管理涉及实体 仓库 属性包括仓库号 面积 电话号码 零件 属性包括零件号 名称 规格 单价 职工 属性包括职工号 姓名 年龄 职称 仓库 零件和职工实体之间的联系如下 一个仓库可以存放多种零件 一种零件可以存放在多个仓库中 一个仓库有多个职工当管理员 一个职工只能在一个仓库工作 同时签约合同期限 职工之间具有领导与被领导关系 领导需要添加领导补贴 要求画出物资管理E R图 并在图中注明联系的类型 1 1 1 n m n 分析 E R图包含三个实体 仓库 零件和职工 仓库和零件的联系是多对多联系 仓库和职工的联系是一对多联系 职工自身的自联系是一对多联系 并且仓库和零件的联系需要产生一个新属性 库存量 则物资管理E R图如图4 10所示 4 3概念结构设计的方法 1 全局到局部 首先根据系统的全局需求 按照主要功能对应的局部需求设计局部概念结构 进而组成全局概念结构的整体框架 然后再对局部概念结构进行逐步细化 直到容易实现的局部概念结构 该方法也称为自上到下或者自顶向下 2 局部到全局 首先根据系统底层容易实现的局部需求设计局部概念结构 然后再依次对局部概念结构进行逐个逐层综合集成和优化 最终得到系的全局概念结构 也称为自下到上或者自底向上 3 内部到外部 首先根据系统内部的核心需求 设计最重要的内部核心概念结构 然后在此基础上按照系统功能模块的重要程度或者按照系统功能模块的容易实现程度等依次进行设计相应的局部概念结构 并且与核心概念结构进行综合集成 最终逐步扩充到全局概念结构 也称为自内而外或者逐步扩张 4 混合策略 混合策略是指在设计全局概念结构的框架和每一层的局部概念结构以及最后的局部概念结构按照全局概念结构框架设计的要求进行集成的各个重要步骤和环节上 均可以局部使用上述三种不同的方法或者相互融合 最终实现全局概念结构的设计 设计概念结构的四种方法中 对于复杂的数据库设计 通常采用混合策略进行设计 对于一般的应用系统 局部到全局的方法是经常采用的设计方法 综上所述 在数据库系统设计的需求分析和概念结构设计两个阶段中 通常采用的设计策略是 在需求分析阶段采用全局到局部的设计方法 而在概念结构设计阶段采用局部到全局的设计方法 即 首先利用全局到局部的方法进行需求分析 然后再利用局部到全局的方法设计概念结构 4 4概念结构设计的步骤 1 概念结构的抽象 2 局部E R图设计 3 全局E R图设计 4 概念结构的优化 1概念结构的抽象 概念结构的抽象 根据系统的用户需求以及所涉及到的应用对象 对需求分析的数据流图和数据字典进行抽象 抽取应用对象的与系统相关的本质特征信息 忽略应用对象的与系统无关的非本质数据 并最终把应用对象的特征信息精确描述为概念模型的实体 属性和联系等的抽象处理过程 概念结构抽象的内容主要包括 属性的抽象 实体的抽象和实体之间联系的抽象等 1 属性的抽象 属性 概念结构中不可拆分的最小的数据运算单位 即 原子性 该特征可以使数据库系统达到第一范式的规范化要求 注意 属性的抽象必须能够准确描述一组应用对象的共同特征 属性的特征信息具体包括 数据类型 取值范围 数据长度 约束条件 命名和隶属的实体等 例如 如果张三 李四 王五 上官国庆 欧阳建国等是一组表示学生名称的数据 体现学生实体的特征信息为 数据类型为字符型 取值范围为汉字 数据长度四个汉字 因此可以抽象该属性为学生的姓名 该属性隶属于学生实体 如果18 16 19 20等是一组表示学生年龄的数据 体现学生实体的特征信息为 数据类型为数值型 取值范围为6岁到99岁 数据长度2位数字 因此可以抽象该属性为学生的年龄 该属性隶属于学生实体 如果2008010101 2008010102 2008020103 2008020104 2008030105 2008030106等是一组表示学生学号的数据 体现学生实体的特征信息为 数据类型为字符型 取值范围为数字 数据长度10位数字 约束条件是入学年份 4位 系编号 2位 专业编号 2位 序号 2位 因此抽象该属性为学生的学号 该属性隶属于学生实体 1 属性的抽象 温馨提示 学号属性本身虽然是由几个部分组成的 但是在使用时 必须把它作为一个整体进行存取 不能拆分 但是如果取出后 把它赋值给一个变量 则可以取出它的一部分进行使用 这并不违背属性的原子性 例如 例4 1中的学生实体集可以抽象的属性如下 学号 姓名 性别 年龄 系别 课程实体集可以抽象的属性如下 课程号 课程名 先修课 学分 结论 在E R图中 属性的抽象等价于实体型的抽象以及实体型和实体值之间的隶属关系 2 实体的抽象 实体 是拥有一组确定属性的一类应用对象 实体用于描述一类应用对象的组成结构信息 实体所包含的属性成分是逻辑结构设计中关系模式的主要成分 实体是关系模式转换的基础 注意 实体的抽象必须能够准确描述一组应用对象的组成成分 实体的特征信息具体包括 包含的属性 属性的个数 主键 属性之间的依赖关系 命名以及与其它实体的联系等 例如 例4 1中的学生实体集的型的抽象如下 学生 学号 姓名 性别 年龄 系别 学生实体集包含学号 姓名 性别 年龄和系别等5个属性 主键是学号 姓名 性别 年龄和系别等均依赖于学号 学生实体集的学生实体可以选修课程实体集的多门课程实体 课程实体集的型的抽象如下 课程 课程号 课程名 先修课 学分 课程实体包含课程号 课程名 先修课和学分等4个属性 主键是课程号 课程名 先修课和学分等均依赖于课程号 课程实体集的课程可以被学生实体集的多个学生实体选修 结论 在E R图中 实体的抽象等价于实体型与属性的隶属关系的抽象 即属性隶属实体和实体包含属性的抽象 3 联系的抽象 联系 是确定实体与实体之间的一对一 一对多和多对多的关联关系 即 1 1 1 n m n 联系用于描述实体之间的关联信息 联系所包含的属性成分以及实体之间关联关系是逻辑结构设计中关系模式的主要成分之一 联系是关系模式转换的组成部分 注意 联系的抽象必须能够准确描述实体与实体之间的关联关系以及实体之间关联后所产生的新属性 联系的特征信息具体包括 所关联的实体 实体的个数 主键 属性之间的参照关系 命名以及与实体之间关联后产生的新属性等 例如 根据例4 1中抽象的学生实体和课程实体以及二者之间的关联关系 可以抽象一个联系选课 用于实现学生实体和课程实体之间的多对多关联关系 即 选课 学号 课程号 成绩 选课实体包含学号 课程号和成绩等3个属性 主键是学号和课程号 成绩依赖于学号和课程号 选课实体的学号必须参照学生实体的学号 选课实体的课程号必须参照课程实体的课程号 即 选课实体的学号必须是学生实体中存在的学号 选课实体的课程号必须是课程实体中存在的课程号 结论 在E R图中 联系的抽象等价于实体型之间的关联关系以及实体型之间关联后产生新属性的抽象 即 确定实体之间的联系类型 1 1 1 n m n Review 概念结构的抽象过程是对需求分析阶的数据流图和数据字典进行综合 分类 组织和抽象 从而严格确定和精确描述如下内容 1 概念结构包含的实体 2 每一个实体包含的属性 每一个实体的候选键 每一个实体的属性之间的依赖关系 3 实体之间的联系 1 1 1 n m n 4 实体之间的参照关系 5 联系包含的属性 温馨提示 在对属性 实体和联系抽象时 还应该注意以下几点 1 属性与实体隶属关系 不同的属性可以有相同的域 一个属性原则上只能隶属于一个实体 例如 对学生和教师的 姓名 如果均使用 姓名 则会出现一个属性隶属于两个实体 会一定程度上破坏数据完整性 应尽量使用 学生姓名 和 教师姓名 这样同时也避免了下面的抽象二义性和抽象冲突 2 宁属性不实体 应用对象在不同环境下 抽象的结果是属性还是实体也不同 这时能够按照属性使用 则不按照实体使用 例如 学校的系 在学生实体中需要按照属性使用 而在反映学校每一个系的详细信息时 则必须按照实体使用 这时学生的属性使用系名 实体的名称则使用 系 具体表示如下 学生 学号 姓名 性别 年龄 学生电话 学生Email 系别 系 系号 系名 教师人数 学生人数 办公地点 办公电话 办公Email 3 抽象二义性 属性 实体和联系的抽象必须有确切固定的含义 不能存在二义性 4 抽象冲突 抽象冲突包括属性 实体和联系的命名冲突 域冲突 约束冲突和结构冲突等 通常抽象冲突 抽象二义性以及属性与实体隶属关系三者之间又相互影响 因此需要认真考虑三者对概念结构抽象的影响 确保属性 实体和联系抽象的一致性和相容性 2局部E R图设计 局部E R图设计是指根据系统的整体需求 把系统分解成若干个局部应用 利用概念结构抽象的结果 设计诸局部应用所对应的E R图 即局部E R图 的过程 因此 局部E R图设计的内容包括确定局部应用的范围和设计局部应用对应的局部E R图 其中合理的选择局部应用是局部E R图设计的重点和难点 1 确定局部概念结构的范围 在实际应用中 通常根据应用系统的实际功能需求 把系统分成若干功能模块 因此需要根据系统的诸功能模块构成的层次结构 参考图4 14 选择一个合适的层次 然后按照数据字典记录的信息 从需求分析的数据流图中选择相应的层次 作为局部概念结构对应的层次 因而把其对应的应用作为局部概念结构的范围 即局部应用 局部应用的选取 在遵循局部应用选取规则的同时 在很大程度上取决于应用系统本身的需求和设计人员的经验 即局部E R图设计的难点 如果数据流图的层次选择过高 则其对应的应用功能相对较多 会增加局部E R图设计的难度 如果数据流图的层次选择过低 则其对应的应用功能相对较少 同时局部应用会增多 从而使得局部E R图的数目较多 最终会给局部E R图的集成增加负担 因此合理的选择局部应用 在很大程度上会提高E R图设计的效率和质量 即局部E R图设计的重点 2 设计局部E R图 对于已经确定的诸局部概念结构的范围 利用需求分析的数据字典记录的详细信息 根据概念结构抽象的结果 按照E R图设计的基本规则 设计局部概念结构对应的局部E R图 例4 7 在 例2 1 的教务信息管理系统中 根据需求分析的结果 选择学籍管理作为局部概念结构 该局部概念结构对应的应用包括学生 宿舍 班级和班主任四个实体 设计学籍管理的局部E R图 1 组成四个实体的属性如下 学生 学号 性别 姓名 生日 班级 班号 人数 宿舍 宿舍号 地址 人数 班主任 职工号 姓名 性别 是否优秀 2 四个实体之间的联系如下 宿舍 学生是1 n的联系 一个宿舍住多个学生 一个学生只能住在一个宿舍中 班级 学生是1 n的联系 一个班级有若干名学生 一个学生只能属于一个班级 班主任 学生是1 n 一个班主任指导多名学生 一个学生只对应一个班主任 班级 班主任是1 1 一个班主任管理一个班级 一个班级只对应一个班主任 根据上述分析 设计的学籍管理的局部E R图如图4 15所示 实体和联系的属性省略 请自行添加 例4 8 在 例2 1 的教务信息管理系统中 根据需求分析的结果 选择课程管理作为局部概念结构 该局部概念结构对应的应用包括学生 课程 教师 教科书和教室五个实体 设计课程管理的局部E R图 分析 根据需求分析的数据流图和数据字典可知 1 组成五个实体的属性如下 学生 姓名 学号 性别 年龄 所在系 年级 平均成绩 课程 课程号 课程名 学分 教师 职工号 姓名 性别 职称 教科书 书号 书名 价钱 教室 教室编号 地址 容量 2 五个实体之间的联系如下 课程与学生是n m的联系 一个学生可以选多门课程 一门课程可以由多个学生选修 学生选修某门课程有一个成绩 课程与教科书是1 n的联系 一门课程可以有多本教科书 一本教科书只能用于一门课程 课程与教师之间是n m的联系 一门课程可以由多个老师教 一个老师可以教多门课程 一个教师教某门课程有一个教学效果 课程与教室之间都是1 1的联系 一门课程在一个教室上课 一个教室只能上一门课程 根据上述分析 设计的课程管理的局部E R图如图4 16所示 实体和联系的属性省略 请自行添加 3全局E R图设计 全部E R图设计是指根据系统的整体需求 选择合理的集成方法 把诸局部E R图进行集成 同时消除属性冲突 实体冲突和联系冲突 并最终形成系统的整体概念结构 即全局E R图 的过程 全局E R图设计的内容 选择合理的集成方法和局部E R图的集成 其中局部E R图的集成是重点和难点 1 选择集成方法 1 整体集成法 2 逐步集成法 1 整体集成法 整体集成法是指根据应用系统的实际需求 对诸局部E R图进行统一综合 组织 归纳和融合 并一次性进行集成 从而形成系统的全局E R图的方法 针对具体的数据库应用系统 如果应用系统的局部E R图比较简单 而且局部E R图的数量也较少 在这种情况下 使用整体集成法进行局部E R图的集成合并比较有效 但是 如果应用系统的局部E R图比较复杂 而且局部E R图的数量也较多 此时 使用整体集成法一般难度较大 这种情况建议使用逐步集成法 2 逐步集成法 逐步集成法是指根据应用系统的主要功能需求 为了减少集成工作的复杂性 首先对若干核心局部E R图进行统一综合 组织 归纳和融合 并一次性进行集成 然后 再逐个把剩余的局部E R图合并到上一步的中间E R图中 从而最终形成系统的全局E R图的方法 温馨提示 若干核心局部E R图 一般是指两个到五个左右 具体可以根据局部E R图的复杂程度以及应用的复杂程度来具体确定 另外 在逐个合并剩余的局部E R图时 根据局部应用的复杂程度 也可以同时合并相对较为简单的局部E R图 逐步集成法的常用集成方法步骤是先合并两个核心局部E R图 然后再逐个地把剩余的局部E R图合并进来 最终形成系统的全局E R图 结论 整体集成法一般适用于先对简单的中小型数据库应用系统 逐步集成法一般适用于复杂的大型数据库应用系统 具体集成方法和集成过程要根据具体应用和集成经验而定 目前常用的集成方法是逐步集成法 2 局部E R图集成 针对具体的数据库应用系统 按照选定的集成方法 就可以把诸局部E R图 合并成为系统的全局E R图 但是针对一个大型数据库应用系统 由于不同的局部E R图通常是由不同的设计人员来完成设计的 从而难免出现属性 实体和联系等多种不同的冲突 因此在合并局部E R图时需要采取合理的办法解决冲突 这也是局部E R图集成的难点和重点 因此 在进行局部E R图集成的过程中 还应该注意的事项如下 1 属性冲突 属性冲突主要表现在属性的命名冲突 取值范围冲突 数据类型冲突 数据计算单位冲突等方面 例如 在不同的局部E R图中 学生的学号分别取名为 学生编号 与 学号 取值范围分别为 8位数字组成的数值型数据和10位数字组成的字符型数据 再如 在不同的局部E R图中 学生的成绩分别取名为 课程成绩 与 成绩 取值范围分别为 1到5的数值型数据和0到100的数值型数据 计算单位分别是 五级制 和 百分制 如果这样 那么在 五级制 的应用中查询到是1分的好学生 在 百分制 的应用中就成了考试1分差学生 属性冲突的解决方法是对于与属性冲突相关的局部E R图 通过协商和调整来达成一致 例如 上述例子中的学生的学号最终统一调整为 学号 10位数字 字符型 学生的成绩最终统一调整为 成绩 百分制 0 100 数值型 2 实体冲突 实体冲突主要表现在实体的命名冲突 结构冲突 概念冲突等方面 其中命名冲突主要是指同一个实体的名称不同 或者同一个名称 但是含义不同 即同名异义 异名同义 结构冲突是指同一个实体所包含的属性不同 概念冲突是指同一个实体虽然名称和属性均相同 但是它所描述的实体的内涵不同 例如 在不同的局部E R图中 学生的信息登记表分别取名为 学生 和 学生登记表 再如 在不同的局部E R图中 学生实体的结构冲突如图4 17所示 图中给出的学生实体的结构在三个不同的局部E R图中发生了冲突 图4 17实体冲突调整前 后 又如 如果对于一个规模比较大 员工比较多的大的企业单位 为了管理方便 把职工分为两大类行政人员和技术人员 而在两个不同的局部E R图中 均设计为 职工登记表 职工号 名称 性别 年龄 虽然实体的名称和所含属性均相同 但是很明显 这是两个内涵不同的实体 实体冲突的解决方法是对于与实体冲突相关的局部E R图 通过协商和调整来达成一致 例如 上述例子中的学生的信息登记表最终统一调整为 学生 学生实体的结构冲突最终统一调整为如图4 18所示的结构 而企业的职工登记表最终分别调整为 行政人员 职工号 职工名 职工性别 职工年龄 部门 和技术人员 员工号 员工名 员工性别 员工年龄 工种 3 联系冲突 联系冲突主要表现在联系的命名冲突 联系关联的实体间的对应关系冲突 即实体间的关联冲突 和联系的参照约束等方面 其中实体间的关联冲突是指 两个相同的实体在不同的局部E R图中对应关系不同 联系的参照约束是相同联系的本身的属性与其参照的实体的属性的参照约束不同 例如 在不同的局部E R图中 学生的选修课程联系分别取名为 选修 与 选课 再如 在不同的局部E R图中 学生和课程关联关系分别为 1 n与n m 又如 在不同的局部E R图中 选修 联系的属性学号 所参照的学生实体的学号不同 联系冲突的解决方法是对于与联系冲突相关的局部E R图 通过协商和调整来达成一致 例如 上述例子中的学生的选修课程联系最终统一调整为 选修 学生和课程关联关系冲突最终统一调整为 n m 选修 联系的属性学号的参照约束 则最终把其所参照的学生实体的学号调整一致 例4 9 在 例2 1 的教务信息管理系统中 根据学籍管理局部E R图和课程管理局部E R图 集成后的全局E R图如图4 19所示 4概念结构的优化 概念结构优化是指根据数据库应用系统的需求 在系统全局E R图的基础上 利用需求分析的数据流图和数据字典 通过检测系统全局E R图的属性冗余 实体冗余和联系冗余等冗余数据 从而消除相应的冗余数据 并最终形成独立于具体DBMS的整体概念结构的过程 概念结构优化的目标是在全面准确地反映用户需求的基础上 使得系统尽量满足 1 属性尽量少 即组成每一个实体的属性的个数尽量少 2 实体尽量少 即组成概念结构的实体的个数尽量少 3 联系尽量少 即组成概念结构的联系的个数尽量少 因此 概念结构优化的基本内容是消除不必要的冗余和重组概念结构 1 消除冗余数据 冗余数据是指可以利用全局E R图中已有的数据导出的数据 冗余数据主要包括属性冗余 实体冗余和关系冗余等 属性冗余 是指可以利用已有的属性导出的属性 例如 如果学生实体中同时包含属性生日和年龄 显然年龄可以通过生日的年份导出 因此年龄属性是冗余的属性 可以消除 如果工资实体中同时包含属性应发工资 应扣工资和实发工资 显然实发工资可以通过应发工资和应扣工资导出 份导出 因此实发工资属性是冗余的属性 可以消除 实体冗余 是指使用一个实体代替两个或者多个实体 即合并实体 或者对于极端的情况 可以利用多个实体导出的实体 对于合并实体 一般是指两个实体或者多个实体拥有相同的主键 则可以合并为一个实体 具体方法为 合并后实体的属性是参与合并的实体的属性的并集 合并后的主键是合并前的公共主键 对于由有多个实体导出的实体 则可以直接消除 例如 如果实体X包含属性 xy x y x1 x2 x3 其中xy是主键 实体Y包含属性 xy x y y1 y2 y3 其中xy是主键 则可以使用实体XY代替实体X和核实体Y 其中实体XY的属性为 xy x y x1 x2 x3 y1 y2 y3 这样就把两个实体转换成了一个实体 从而在一定程度上保护了数据库的完整性 减轻了数据库维护的负担 冗余联系 是指可以利用已有的联系导出的联系 例如 如果在学生选课的局部E R图中 同时建立了教师与学生两个实体之间的1对多 授课 联系 如图4 20所示 则不难证明 授课 联系可以由 讲授 和 选课 导出 因此 授课 联系是冗余联系 应该给予消除 冗余联系 消除冗余数据的通用方法是分析方法 也就是根据需求分析的数据流图和数据字典提供的 属性与实体以及实体之间的逻辑关系 在全局E R图中分析出存在的冗余数据 从而给予消除 消除冗余数据的另外一个有效的形式化工具方法是基于规范化理论的最小覆盖法 详细用法请参阅第5章 总之 冗余数据在一定程度上 很容易破坏数据库的完整性 同时增加了数据库的维护费用 但是 并不是所有的冗余数据都必须给予消除 有时为了提高应用系统的效率 不得不提供一定的冗余数据 冗余数据的取舍 通常需要根据系统用户的整体需求而定 对于应用系统保留的些冗余数据 则通常按照完整性约束条记录到数据字典中 用于管理冗余数据的一种更好的方法是把冗余数据定义在视图中 2 重组概念结构 重组概念结构是指对于消除数据冗余后的全局E R图 由于消除了不必要的冗余属性 冗余实体和冗余联系等 因此需要根据应用系统的整体需求 再对全局E R图进行整体统一的调整 重新组合和重新构造 从而形成优化的概念结构 最后 再根据需求分析的数据流图和数据字典提供的用户的最终需求 对优化的概念

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论