第7章数据库设计分析_第1页
第7章数据库设计分析_第2页
第7章数据库设计分析_第3页
第7章数据库设计分析_第4页
第7章数据库设计分析_第5页
已阅读5页,还剩69页未读 继续免费阅读

下载本文档

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

文档简介

1、第7章数据库设计分析 数据库系统概论数据库系统概论 An Introduction to Database System 第七章第七章 数据库设计数据库设计( (续续-1)-1) 第7章数据库设计分析 7.3 概念结构设计概念结构设计 7.3.1 概念结构设计概述 7.3.2 概念结构设计的方法与步骤 7.3.3 数据抽象与局部视图设计 7.3.4 视图的集成 第7章数据库设计分析 7.3.1 概念结构概念结构 n什么是概念结构设计 n需求分析阶段描述的用户应用需求是现实世 界的具体需求 n将需求分析得到的用户需求抽象为信息结构 即概念模型的过程就是概念结构设计 n概念结构是各种数据模型的共同

2、基础,它比 数据模型更独立于机器、更抽象,从而更加 稳定。 n概念结构设计是整个数据库设计的关键 第7章数据库设计分析 概念结构(续)概念结构(续) 现实世界现实世界 机器世界机器世界 信息世界信息世界 需求分析需求分析 概念结构设计概念结构设计 第7章数据库设计分析 概念结构(续)概念结构(续) n概念结构设计的特点 (1)能真实、充分地反映现实世界,包括事物 和事物之间的联系,能满足用户对数据的处理 要求。是对现实世界的一个真实模型。 (2)易于理解,从而可以用它和不熟悉计算机 的用户交换意见,用户的积极参与是数据库的 设计成功的关键。 第7章数据库设计分析 概念结构(续)概念结构(续)

3、n概念结构设计的特点(续) (3)易于更改,当应用环境和应用要求改变时, 容易对概念模型修改和扩充。 (4)易于向关系、网状、层次等各种数据模型 转换。 第7章数据库设计分析 概念结构(续)概念结构(续) n描述概念模型的工具 nE-R模型 第7章数据库设计分析 7.3 概念结构设计概念结构设计 7.3.1 概念结构设计概述概念结构设计概述 7.3.2 概念结构设计的方法与步骤概念结构设计的方法与步骤 7.3.3 数据抽象与局部视图设计数据抽象与局部视图设计 7.3.4 视图的集成视图的集成 第7章数据库设计分析 7.3.2 概念结构设计的方法与步骤概念结构设计的方法与步骤 n设计概念结构的四

4、类方法 n自顶向下 n 首先定义全局概念结构的框架,然后逐 步细化 n自底向上 n 首先定义各局部应用的概念结构,然后 将它们集成起来,得到全局概念结构 第7章数据库设计分析 概念结构设计的方法与步骤(续)概念结构设计的方法与步骤(续) n逐步扩张 n 首先定义最重要的核心概念结构,然后 向外扩充,以滚雪球的方式逐步生成其他 概念结构,直至总体概念结构 n混合策略 n 将自顶向下和自底向上相结合,用自顶 向下策略设计一个全局概念结构的框架, 以它为骨架集成由自底向上策略中设计的 各局部概念结构。 第7章数据库设计分析 概念结构设计的方法与步骤(续)概念结构设计的方法与步骤(续) 自顶向下策略

5、第7章数据库设计分析 概念结构设计的方法与步骤(续)概念结构设计的方法与步骤(续) 自底向上策略 第7章数据库设计分析 概念结构设计的方法与步骤(续)概念结构设计的方法与步骤(续) 逐步扩张逐步扩张 第7章数据库设计分析 概念结构设计的方法与步骤(续)概念结构设计的方法与步骤(续) n常用策略常用策略 n自顶向下地进行需求分析自顶向下地进行需求分析 n自底向上地设计概念结构自底向上地设计概念结构 n自底向上设计概念结构的步骤自底向上设计概念结构的步骤 n第第1步:抽象数据并设计局部视图步:抽象数据并设计局部视图 n第第2步:集成局部视图,得到全局概念结构步:集成局部视图,得到全局概念结构 第7

6、章数据库设计分析 7.3 概念结构设计概念结构设计 7.3.1 概念结构设计概述概念结构设计概述 7.3.2 概念结构设计的方法与步骤概念结构设计的方法与步骤 7.3.3 数据抽象与局部视图设计数据抽象与局部视图设计 7.3.4 视图的集成视图的集成 第7章数据库设计分析 一、数据抽象一、数据抽象 n概念结构是对现实世界的一种抽象 n从实际的人、物、事和概念中抽取所关心的 共同特性,忽略非本质的细节 n把这些特性用各种概念精确地加以描述 n这些概念组成了某种模型 第7章数据库设计分析 数据抽象(续)数据抽象(续) n三种常用抽象 1. 分类(Classification) n定义某一类概念作为

7、现实世界中一组对象的 类型 n这些对象具有某些共同的特性和行为 n它抽象了对象值和型之间的“is member of” 的语义 n在E-R模型中,实体型就是这种抽象 例:P216图6.10 第7章数据库设计分析 学生 张英 王平刘勇 第7章数据库设计分析 数据抽象(续)数据抽象(续) 2. 聚集(Aggregation) n定义某一类型的组成成分 n它抽象了对象内部类型和成分之间“is part of”的语义 n在E-R模型中若干属性的聚集组成了实体型, 就是这种抽象 例:P217图6.11,图6.12 第7章数据库设计分析 学生 学号姓名 性别年龄 系 第7章数据库设计分析 数据抽象(续)数

8、据抽象(续) 3. 概括(Generalization) n定义类型之间的一种子集联系 n它抽象了类型之间的“is subset of”的语义 n概括有一个很重要的性质:继承性。子类继 承超类上定义的所有抽象。 第7章数据库设计分析 数据抽象(续)数据抽象(续) 注:原E-R模型不具有概括,本书对E-R模型作了 扩充,允许定义超类实体型和子类实体型。 n 用双竖边的矩形框表示子类, n 用直线加小圆圈表示超类-子类的联系 第7章数据库设计分析 学生 本科生 研究生 第7章数据库设计分析 数据抽象(续)数据抽象(续) n数据抽象的用途 n对需求分析阶段收集到的数据进行分类、组织 (聚集),形成

9、n实体 n实体的属性,标识实体的码 n确定实体之间的联系类型(1:1,1:n,m:n) 第7章数据库设计分析 二、局部视图设计二、局部视图设计 设计分E-R图的步骤: 选择局部应用 逐一设计分E-R图 第7章数据库设计分析 选择局部应用选择局部应用 n需求分析阶段,已用多层数据流图和数据字典 描述了整个系统。 n设计分E-R图首先需要根据系统的具体情况, 在多层的数据流图中选择一个适当层次的数据 流图,让这组图中每一部分对应一个局部应用, 然后以这一层次的数据流图为出发点,设计分 E-R图。 第7章数据库设计分析 选择局部应用(续)选择局部应用(续) n通常以中层数据流图作为设计分E-R 图的

10、依据。原因: n高层数据流图只能反映系统的概貌 n中层数据流图能较好地反映系统中各局部应 用的子系统组成 n低层数据流图过细 第7章数据库设计分析 逐一设计分逐一设计分E-R图图 n任务任务 n标定局部应用中的实体、属性、码,实体间标定局部应用中的实体、属性、码,实体间 的联系的联系 n将各局部应用涉及的数据分别从数据字典将各局部应用涉及的数据分别从数据字典 中抽取出来,参照数据流图,标定各局部中抽取出来,参照数据流图,标定各局部 应用中的实体、实体的属性、标识实体的应用中的实体、实体的属性、标识实体的 码,确定实体之间的联系及其类型(码,确定实体之间的联系及其类型(1:1, 1:n,m:n)

11、 第7章数据库设计分析 逐一设计分逐一设计分E-R图(续)图(续) n如何抽象实体和属性如何抽象实体和属性 n实体:现实世界中一组具有某些共同特性和实体:现实世界中一组具有某些共同特性和 行为的对象就可以抽象为一个实体。对象和行为的对象就可以抽象为一个实体。对象和 实体之间是实体之间是“is member of的关系。的关系。 例:在学校环境中,可把张三、李四等对象抽例:在学校环境中,可把张三、李四等对象抽 象为学生实体。象为学生实体。 第7章数据库设计分析 逐一设计分逐一设计分E-R图(续)图(续) n属性:对象类型的组成成分可以抽象为实体属性:对象类型的组成成分可以抽象为实体 的属性。组成

12、成分与对象类型之间是的属性。组成成分与对象类型之间是“is part of的关系。的关系。 例:学号、姓名、专业、年级等可以抽象为学例:学号、姓名、专业、年级等可以抽象为学 生实体的属性。其中学号为标识学生实体的码。生实体的属性。其中学号为标识学生实体的码。 第7章数据库设计分析 逐一设计分逐一设计分E-R图(续)图(续) n如何区分实体和属性如何区分实体和属性 n实体与属性是相对而言的。同一事物,在一种应实体与属性是相对而言的。同一事物,在一种应 用环境中作为用环境中作为“属性属性”,在另一种应用环境中就,在另一种应用环境中就 必须作为必须作为“实体实体”。 例:学校中的系,在某种应用环境中

13、,它只是作例:学校中的系,在某种应用环境中,它只是作 为为“学生学生”实体的一个属性,表明一个学生属于实体的一个属性,表明一个学生属于 哪个系;而在另一种环境中,由于需要考虑一个哪个系;而在另一种环境中,由于需要考虑一个 系的系主任、教师人数、学生人数、办公地点等,系的系主任、教师人数、学生人数、办公地点等, 这时它就需要作为实体了。这时它就需要作为实体了。 第7章数据库设计分析 逐一设计分逐一设计分E-R图(续)图(续) n一般原则一般原则 n属性不能再具有需要描述的性质。即属性必属性不能再具有需要描述的性质。即属性必 须是不可分的数据项,不能再由另一些属性须是不可分的数据项,不能再由另一些

14、属性 组成。组成。 n属性不能与其他实体具有联系。联系只发生属性不能与其他实体具有联系。联系只发生 在实体之间。在实体之间。 n符合上述两条特性的事物一般作为属性对待。符合上述两条特性的事物一般作为属性对待。 n为了简化为了简化E-R图的处置,现实世界中的事物凡能图的处置,现实世界中的事物凡能 够作为属性对待的,应尽量作为属性。够作为属性对待的,应尽量作为属性。 第7章数据库设计分析 逐一设计分逐一设计分E-R图(续)图(续) n举例 例1:“学生”由学号、姓名等属性进一步描述, 根据准则,“学生”只能作为实体,不能作 为属性。 例2:职称通常作为教师实体的属性,但在涉及 住房分配时,由于分房

15、与职称有关,也就是说 职称与住房实体之间有联系,根据准则,这 时把职称作为实体来处理会更合适些。(教程 194图6-10) 第7章数据库设计分析 职工 职工号姓名年龄职称 职工 职工号姓名年龄 职称 职称代码工资住房标准附加福利 聘任 第7章数据库设计分析 逐一设计分逐一设计分E-R图(续)图(续) n设计分E-R图的步骤 n(1)以数据字典为出发点定义E-R图。 n 数据字典中的“数据结构”、“数据流”和 “数据存储”等已是若干属性的有意义的聚 合 n(2)按上面给出的准则进行必要的调整。 第7章数据库设计分析 7.3 概念结构设计概念结构设计 7.3.1 概念结构 7.3.2 概念结构设计

16、的方法与步骤 7.3.3 数据抽象与局部视图设计 7.3.4 视图的集成 第7章数据库设计分析 7.3.4 视图的集成视图的集成 n各个局部视图即分E-R图建立好后,还需 要对它们进行合并,集成为一个整体的 数据概念结构即总E-R图。 第7章数据库设计分析 视图的集成(续)视图的集成(续) n视图集成的两种方式 n一次集成(P224图6.25(a)) n一次集成多个分E-R图 n通常用于局部视图比较简单时 n逐步累积式(P224图6.25(b)) n首先集成两个局部视图(通常是比较关键 的两个局部视图) n以后每次将一个新的局部视图集成进来 第7章数据库设计分析 视图的集成(续)视图的集成(续

17、) n集成局部E-R图的步骤 1. 合并:消除局部冲突,生成初步E-R图 2. 修改与重构:消除不必要的冗余,设计生成基 本E-R图 第7章数据库设计分析 视图的集成(续)视图的集成(续) 第7章数据库设计分析 一、合并分一、合并分E-R图,生成初步图,生成初步E-R图图 n各分图存在冲突 n各个局部应用所面向的问题不同 由不同的设计人员进行设计 各个分E-R图之间必定会存在许多不一致的 地方 n合并分E-R图的主要工作与关键所在:合理 消除各分E-R图的冲突 第7章数据库设计分析 合并分合并分E-R图,生成初步图,生成初步E-R图(续)图(续) n冲突的种类 n属性冲突 n命名冲突 n结构冲

18、突 第7章数据库设计分析 属性冲突属性冲突 n两类属性冲突两类属性冲突 n属性域冲突:属性值的类型、取值范围或取值属性域冲突:属性值的类型、取值范围或取值 集合不同。集合不同。 例例1, 由于学号是数字,因此某些部门(即局部由于学号是数字,因此某些部门(即局部 应用)将学号定义为整数形式,而由于学号不用应用)将学号定义为整数形式,而由于学号不用 参与运算,因此另一些部门(即局部应用)将学参与运算,因此另一些部门(即局部应用)将学 号定义为字符型形式。号定义为字符型形式。 例例2, 某些部门(即局部应用)以出生日期形式某些部门(即局部应用)以出生日期形式 表示学生的年龄,而另一些部门(即局部应用

19、)表示学生的年龄,而另一些部门(即局部应用) 用整数形式表示学生的年龄。用整数形式表示学生的年龄。 第7章数据库设计分析 属性冲突(续)属性冲突(续) 属性取值单位冲突。属性取值单位冲突。 n例:学生的身高,有的以米为单位,有的以例:学生的身高,有的以米为单位,有的以 厘米为单位,有的以尺为单位。厘米为单位,有的以尺为单位。 n属性冲突的解决方法属性冲突的解决方法 n通常用讨论、协商等行政手段加以解决通常用讨论、协商等行政手段加以解决 第7章数据库设计分析 命名冲突命名冲突 n两类命名冲突两类命名冲突 n同名异义:不同意义的对象在不同的局部应同名异义:不同意义的对象在不同的局部应 用中具有相同

20、的名字用中具有相同的名字 例,局部应用例,局部应用A中将教室称为房间中将教室称为房间 局部应用局部应用B中将学生宿舍称为房间中将学生宿舍称为房间 n异名同义(一义多名):同一意义的对象在异名同义(一义多名):同一意义的对象在 不同的局部应用中具有不同的名字不同的局部应用中具有不同的名字 例,有的部门把教科书称为课本例,有的部门把教科书称为课本 有的部门则把教科书称为教材有的部门则把教科书称为教材 第7章数据库设计分析 命名冲突(续)命名冲突(续) n命名冲突可能发生在属性级、实体级、命名冲突可能发生在属性级、实体级、 联系级上。其中属性的命名冲突更为常联系级上。其中属性的命名冲突更为常 见。见

21、。 n命名冲突的解决方法命名冲突的解决方法 n通过讨论、协商等行政手段加以解决通过讨论、协商等行政手段加以解决 第7章数据库设计分析 结构冲突结构冲突 n三类结构冲突三类结构冲突 n同一对象在不同应用中具有不同的抽象同一对象在不同应用中具有不同的抽象 例,例,“课程课程”在某一局部应用中被当作实体在某一局部应用中被当作实体 在另一局部应用中则被当作属性在另一局部应用中则被当作属性 n解决方法:通常是把属性变换为实体或把解决方法:通常是把属性变换为实体或把 实体变换为属性,使同一对象具有相同的实体变换为属性,使同一对象具有相同的 抽象。变换时要遵循两个准则。抽象。变换时要遵循两个准则。 第7章数

22、据库设计分析 结构冲突(续)结构冲突(续) n同一实体在不同局部视图中所包含的属性不同一实体在不同局部视图中所包含的属性不 完全相同,或者属性的排列次序不完全相同。完全相同,或者属性的排列次序不完全相同。 n产生原因:不同的局部应用关心的是该实产生原因:不同的局部应用关心的是该实 体的不同侧面。体的不同侧面。 n解决方法:使该实体的属性取各分解决方法:使该实体的属性取各分E-R图图 中属性的并集,再适当设计属性的次序中属性的并集,再适当设计属性的次序。 第7章数据库设计分析 结构冲突(续)结构冲突(续) 学生学生 学号学号 姓名姓名性别性别 平均成绩平均成绩 (a)在局部应用在局部应用A中中

23、第7章数据库设计分析 结构冲突(续)结构冲突(续) 学生学生 学号学号 姓名姓名 出生日期出生日期 年级年级 (b)在局部应用在局部应用B中中 所在系所在系 第7章数据库设计分析 结构冲突(续)结构冲突(续) 学生学生 学号学号 姓名姓名 政治面貌政治面貌 (c)在局部应用在局部应用C中中 第7章数据库设计分析 结构冲突(续)结构冲突(续) 学生学生 政治政治 面貌面貌 学号学号 出生出生 日期日期 年级年级 (d)合并后合并后 所在系所在系 平均平均 成绩成绩 姓名姓名 性别性别 第7章数据库设计分析 结构冲突(续)结构冲突(续) n实体之间的联系在不同局部视图中呈现不同的类型实体之间的联系

24、在不同局部视图中呈现不同的类型 例例1, 实体实体E1与与E2在局部应用在局部应用A中是多对多联系,中是多对多联系, 而在局部应用而在局部应用B中是一对多联系中是一对多联系 例例2, 在局部应用在局部应用X中中E1与与E2发生联系,而在局发生联系,而在局 部应用部应用Y中中E1、E2、E3三者之间有联系。三者之间有联系。 n解决方法:根据应用语义对实体联系的类型进解决方法:根据应用语义对实体联系的类型进 行综合或调整。行综合或调整。 第7章数据库设计分析 产品 产品 供应 数量 n m 供应商 p 产品 产品 构成 数量 n m 产品 产品 构成 n m 产品 构成数量 供应 供应数量 供应商

25、 n m p 第7章数据库设计分析 二、修改与重构二、修改与重构 n基本任务基本任务 n消除不必要的冗余,设计生成基本消除不必要的冗余,设计生成基本E-R图图 合并合并 初步初步E-R图图 分分E-R图图 可能存在冗余的数据可能存在冗余的数据 和冗余的实体间联系和冗余的实体间联系 基本基本E-R图图 消除不必要的冗余消除不必要的冗余 第7章数据库设计分析 修改与重构(续)修改与重构(续) 1冗余 2消除冗余的方法 第7章数据库设计分析 1冗余冗余 n冗余的数据是指可由基本数据导出的数据,冗余的数据是指可由基本数据导出的数据, 冗余的联系是指可由其他联系导出的联系。冗余的联系是指可由其他联系导出

26、的联系。 n冗余数据和冗余联系容易破坏数据库的完整性,冗余数据和冗余联系容易破坏数据库的完整性, 给数据库维护增加困难给数据库维护增加困难 n并不是所有的冗余数据与冗余联系都必须加以并不是所有的冗余数据与冗余联系都必须加以 消除,有时为了提高某些应用的效率,不得不消除,有时为了提高某些应用的效率,不得不 以冗余信息作为代价。以冗余信息作为代价。 二二.消除不必要的冗余,设计基本消除不必要的冗余,设计基本E_R图图 第7章数据库设计分析 第7章数据库设计分析 冗余(续)冗余(续) n设计数据库概念结构时,哪些冗余信息必须消 除,哪些冗余信息允许存在,需要根据用户的 整体需求来确定。 n消除不必要

27、的冗余后的初步E-R图称为基本E-R 图。 第7章数据库设计分析 2消除冗余的方法消除冗余的方法 n分析方法分析方法 n以数据字典和数据流图为依据,根据数据字典中以数据字典和数据流图为依据,根据数据字典中 关于数据项之间逻辑关系的说明来消除冗余。关于数据项之间逻辑关系的说明来消除冗余。 第7章数据库设计分析 消除冗余的方法消除冗余的方法(续续) 例,教师工资单中包括该教师的基本工资、各种补例,教师工资单中包括该教师的基本工资、各种补 贴、应扣除的房租水电费以及实发工资。贴、应扣除的房租水电费以及实发工资。 由于实发工资可以由前面各项推算出来,因此可以由于实发工资可以由前面各项推算出来,因此可以

28、 去掉,在需要查询实发工资时根据基本工资、各种去掉,在需要查询实发工资时根据基本工资、各种 补贴、应扣除的房租水电费数据临时生成。补贴、应扣除的房租水电费数据临时生成。 第7章数据库设计分析 系 课程 开设 mn 系号系名电话 课号课名学分 学时 课程开设局部E-R图 第7章数据库设计分析 学生 课程 选课 m 年龄籍贯所在系 学号姓名性别 成绩课号课名 学分 先修课 n 学生选课局部E-R图 第7章数据库设计分析 系 教师 任职 mn 系号系名电话 教师号姓名性别 职称 所在系 讲授 课程 课号 课名 学分学时 m n 教师局部E-R图 第7章数据库设计分析 系 学生 课程 教师任职 开设 讲授 选课 学习 n1 n n n 1 m m m n 初步全局E-R图 第7章数据库设计分析 结构冲突: 课程组成不同(采用并集);系(一个是实体,一个是属性) 去除教师所在系,去除“开设”联系,可由“任职”,“讲 授”联系导出

温馨提示

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

评论

0/150

提交评论