第6章数据库设计内容摘要:
析得到的结果 ( 数据流图 、 数据字典等 ) 对现实世界进行抽象 , 设计各个局部 ER模型。 返回 返回 40 图 概念结构设计的方法 … … … … 概念模式 … … (b) 自底向上的设计方法 概念模式 概念模式 概念模式 子需求 概念模式 概念模式 全局概念模式 子需求 子需求 子需求 … 全局概念模式 … … 概念模式 概念模式 概念模式 概念模式 概念模式 (a) 自顶向下的设计方法 概念模式 需求 (c) 逐步扩张的设计方法 核心需求 需求 核心概念结构 全局概念结构 … 返回 返回 41 图 自底向上方法的设计步骤 需求分析 数据抽象、 局部视图设计 视图集成 征求用户意见 DFD、 DD 局部 E- R图 全局 E- R图 逻辑结构设计 返回 返回 42 (1) ER方法 ER方法是 “ 实体 联系方法 ” ( EntityRelationship Approach) 的简称。 它是描述现实世界概念结构模型的有效方法。 用 ER方法建立的概念结构模型称为 ER模型 ,或称为 ER图。 ER图基本成分包含实体型 、 属性和联系。 ( 在第 1章已经介绍过它们的基本概念 , 这里只给出它们的表示方法。 ) ① 实体型:用矩形框表示 , 框内标注实体名称。 如图 ( a) 所示。 ② 属性:用椭圆形框表示 , 框内标注属性名称。 如图 ( b) 所示。 ③ 联系:指实体之间的联系 , 有一对一 ( 1: 1) , 一对多 ( 1: n)或多对多 ( m : n) 三种联系类型。 例如系主任领导系 , 学生属于某一系 , 学生选修课程 , 工人生产产品 , 这里 “ 领导 ” 、 “ 属于 ” 、 “ 选修 ” 、 “ 生产 ” 表示实体间的联系 , 可以作为联系名称。 联系用菱形框表示 , 框内标注联系名称。 如图 ( c) 所示。 返回 返回 43 现实世界的复杂性导致实体联系的复杂性。 表现在 ER图上可以归结为图 : ① 两个实体之间的联系 , 如图 ( a) 所示。 ② 两个以上实体间的联系 , 如图 ( b) 所示。 ③ 同一实体集内部各实体之间的联系 , 例如一个部门内的职工有领导与被领导的联系 , 即某一职工 ( 干部 ) 领导若干名职工 ,而一个职工 ( 普通员工 ) 仅被另外一个职工直接领导 , 这就构成了实体内部的一对多的联系。 如图 ( c) 所示。 需要注意的是,因为联系本身也是一种实体型,所以联系也可以有属性。 如果一个联系具有属性,则这些联系也要用无向边与该联系连接起来。 例如,学生选修的课程有相应的成绩。 这里的 “ 成绩 ” 既不是学生的属性,也不是课程的属性,只能是学生选修课程的联系的属性。 图 ( b)中 “ 供应数量 ” 是 “ 供应 ”联系的属性。 返回 返回 44 ER图的基本思想就是分别用矩形框、椭圆形框和菱形框表示实体、属性和联系,使用无向边将属性与其相应的实体连接起来,并将联系分别和有关实体相连接,注明联系类型。 图 ER图的例子,只给出了实体及其 ER图,省略了实体的属性。 图 ER图。 返回 返回 45 ER图的三种基本成份及其图形的表示方法 学生 选修 学号 (a)实体 (b)属性 (c)联系 返回 返回 46 图 实体及其联系图 (a)两个实体之间的联系 学生 选修 成绩 课程 系主任 领导 系 学生 属于 系 1 1 n 1 m n (c)实体集内部的联系 m 职工 领导 1 n 供应商 供应 数量 零件 项目 m n n (b)多个实体之间的联系 返回 返回 47 图 学生与课程联系的完整的 E- R图 课程名 学生 学号 姓名 性别 年龄 系别 课程 课程号 学分 n 选修 成绩 m 返回 返回 48 (2) 数据抽象 在系统需求分析阶段 , 最后得到了多层数据流图 、 数据字典和系统分析报告。 建立局部 ER模型 , 就是根据系统的具体情况 , 在多层的数据流图中选择一个适当层次的数据流图 , 作为设计分 ER图的出发点 , 让这组图中毎一部分对应一个局部应用。 在前面选好的某一层次的数据流图中 , 每个局部应用都对应了一组数据流图 , 局部应用所涉及的数据存储在数据字典中。 现在就是要将这些数据从数据字典中抽取出来 , 参照数据流图 , 确定每个局部应用包含哪些实体 , 这些实体又包含哪些属性 , 以及实体之间的联系及其类型。 设计局部 ER模型的关键就是正确划分实体和属性。 实体和属性之间在形式上并无可以明显区分的界限 ,通常是按照现实世界中事物的自然划分来定义实体和属性 , 将现实世界中的事物进行数据抽象 , 得到实体和属性。 一般有两种数据抽象:分类和聚集。 返回 返回 49 ① 分类 ( Classification) 分类定义某一类概念作为现实世界中一组对象的类型 , 将一组具有某些共同特性和行为的对象抽象为一个实体。 对象和实体之间是 “ is member of”的关系。 例如 , 在教学管理中 , “ 赵亦 ” 是一名学生 , 表示“ 赵亦 ” 是学生中的一员 , 她具有学生们共同的特性和行为。 ② 聚集 ( Aggregation) 聚集定义某一类型的组成成份 , 将对象类型的组成成份抽象为实体的属性。 组成成份与对象类型之间是 “ is part of”的关系。 例如 , 学号 、 姓名 、 性别 、 年龄 、 系别等可以抽象为学生实体的属性 , 其中学号是标识学生实体的主键。 返回 返回 50 (2) 局部 ER模型设计 数据抽象后得到了实体和属性 , 实际上实体和属性是相对而言的 , 往往要根据实际情况进行必要的调整。 在调整中要遵循两条原则: ① 实体具有描述信息 , 而属性没有。 即属性必须是不可分的数据项 , 不能再由另一些属性组成。 ② 属性不能与其他实体具有联系 , 联系只能发生在实体之间。 例如:学生是一个实体 , 学号 、 姓名 、 性别 、 年龄 、 系别等是学生实体的属性 , 系别只表示学生属于哪个系 , 不涉及系的具体情况 , 换句话说 , 没有需要进一步描述的特性 , 即是不可分的数据项 , 则根据原则 ① 可以作为学生实体的属性。 但如果考虑一个系的系主任 、 学生人数 、 教师人数 、 办公地点等 , 则系别应看作一个实体。 如图。 又如, “ 职称 ” 为教师实体的属性,但在涉及住房分配时,由于分房与职称有关,即职称与住房实体之间有联系,则根据原则②,职称应作为一个实体。 如图。 返回 返回 51 图 系别作为一个属性或实体 学生 学生 系别 属于 n 1 m 姓名 性别 年龄 系别 学号 姓名 性别 年龄 系主任 学生人数 教师人数 办公地点 返回 返回 52 图 职称作为一个属性或实体 聘任 教师 教师 n 1 职称 分配 住房 姓名 性别 职称 姓名 性别 返回 返回 53 此外 , 我们可能会遇到这样的情况 , 同一数据项 , 可能由于环境和要求的不同 , 有时作为属性 , 有时则作为实体 , 此时必须根据实际情况而定。 一般情况下 ,凡能作为属性对待的 , 应尽量作为属性 , 以简化 ER图的处理。 下面举例说明局部 ER模型设计。 在简单的教务管理系统中 , 有如下语义约束。 ① 一个学生可选修多门课程 , 一门课程可为多个学生选修 , 因此学生和课程是多对多的联系; ② 一个教师可讲授多门课程 , 一门课程可为多个教师讲授 , 因此教师和课程也是多对多的联系; ③ 一个系可有多个教师 , 一个教师只能属于一个系 , 因此系和教师是一对多的联系 , 同样系和学生也是一对多的联系。 根据上述约定,可以得到如图 部E-R图和如图 -R图。 形成局部 ER模型后,应该返回去征求用户意见,以求改进和完善,使之如实地反映现实世界。 ER图的优点就是易于被用户理解,便于交流。 返回 返回 54 图 学生选课局部E-R图 m m n m 1 名称 系 拥有 1 学生 学号 姓名 性别 年龄 开课 课程 教师号 课程号 课程名 选修 成绩 平均成绩 返回 返回 55 图 教师任课局部E-R图 1 m 教师号 姓名 性别 职称 课程号 教师 讲授 课程 n 属于 单位 单位名 电话 m 返回 返回 56 4. 全局 ER模型设计 局部 ER模型设计完成之后 , 下一步就是集成各局部 ER模型 , 形成全局 ER模型 , 即视图的集成。 视图集成的方法有两种: ① 多元集成法 , 一次性将多个局部 ER图合并为一个全局 ER图 , 如图 ( a) 所示。 ② 二元集成法 , 首先集成两个重要的局部视图 , 以后用累加的方法逐步将一个新的视图集成进来 , 如图( b) 所示。 在实际应用中 , 可以根据系统复杂性选择这两种方案。 一般采用逐步集成的方法 , 如果局部视图比较简单 , 可以采用多元集成法。 一般情况下 , 采用二元集成法 , 即每次只综合两个视图 ,这样可降低难度。 无论使用哪一种方法 , 视图集成均分成两个步骤 , 如图。 ① 合并 , 消除各局部 ER图之间的冲突 , 生成初步 ER图。 ② 优化 , 消除不必要的冗余 , 生成基本 ER图。 返回 返回 57 图 局部视图合并成全局视图 (a) 多元集成法 局部 E- R图 1 … 局部 E- R图 2 局部 E- R图 n 初步 E- R图 基本 E- R图 局部 E- R图 1 局部 E- R图 2 合并 E- R图 12 局部 E- R图 3 … 初步 E- R图 基本 E- R图 (b) 二元集成法 返回 返回 58 图 视图集成 局部E-R图 合并 ( 消 除冲 突) 修改 与重 构( 消 除不 必要的冗余 ) 集成视图 基本E-R图 初步E-R图 分析 规范化理论 返回 返回 59 (1) 合并局部 ER图 , 生成初步 ER图 这个步骤将所有的局部 ER图综合成全局概念结构。 全局概念结构它不仅要支持所有的局部 ER模型 , 而且必须合理地表示一个完整 、 一致的数据库概念结构。 由于各个局部应用不同 , 通常由不同的设计人员进行局部 ER图设计 , 因此 , 各局部 ER图不可避免地会有许多不一致的的地方 , 我们称之为 冲突。 合并局部 ER图时并不能简单地将各个 ER图画到一起 ,而必须消除各个局部 ER图中的不一致 , 使合并后的全局概念结构不仅支持所有的局部 ER模型 , 而且必须是一个能为全系统中所有用户共同理解和接受的完整的概念模型。 合并局部 ER图的关键就是合理消除各局部 ER图中的冲突。 返回 返回 60 ER图中的冲突有三种:属性冲突 、 命名冲突和结构冲突。 ① 属性冲突 属性冲突又分为属性值域冲突和属性的取值单位冲突。 , 即属性值的类型 、 取值范围或取值集合不同。 比如学号 , 有些部门将其定义为数值型 , 而有些部门将其定义为字符型。 又如年龄 , 有的可能用出生年月表示 , 有的则用整数表示。 比如零件的重量 , 有的以公斤为单位 , 有的以斤为单位 , 有的则以克为单位。 属性冲突属于用户业务上的约定 , 必须与用户协商后解决。 返回 返回 61 ② 命名冲突 命名不一致可能发生在实体名 、 属性名或联系名之间 ,其中属性的命名冲突更为常见。 一般表现为同名异义或异名同义 ( 实体 、 属性 、 联系名 )。 , 即同一名字的对象在不同的部门中具有不同的意义。 比如 , “ 单位 ” 在某些部门表示为人员所。第6章数据库设计
本资源仅提供20页预览,下载后可查看全文
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。
用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。
相关推荐
第6章查询处理和优化
符 ) 将第一层查询所涉及 R1表中的每条记录,代入虚线框所标出查询体, 此时 ,判断该记录是否满足查询条件。 存在什么问题。 能否再进行优化。 注意: 采用代入法时,尽可能作 “ 部分选择 ”。 SELECT A1 FROM R1 WHERE 比较符 CONST1 AND IN (SELECT A4 FROM R2 WHERE 比较符 ) RE R1. 比较符 CONST1 AND FROM
第6章server对象
% CreateObject方法 • 这是 Server对象最主要的方法,它用于创建组件、应用程序或脚本对象的实例,利用它就可以调用其它外部程序或组件的功能了。 • 语法如下: – (progID) – 其中 progID表示组件、应用程序或脚本对象的对象类型。 – 比如下面的语句将创建一个数据库连接对象实例: % Set conn=() % HTMLEncode方法 •