数据库系统概论 高等教育出版社chp7-2_第1页
数据库系统概论 高等教育出版社chp7-2_第2页
数据库系统概论 高等教育出版社chp7-2_第3页
数据库系统概论 高等教育出版社chp7-2_第4页
数据库系统概论 高等教育出版社chp7-2_第5页
已阅读5页,还剩56页未读 继续免费阅读

下载本文档

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

文档简介

AnIntroductiontoDatabaseSystem数据库系统概论AnIntroductiontoDatabaseSystem第七章数据库设计(续1)AnIntroductiontoDatabaseSystem7.3概念结构7.3.1什么是概念结构设计将需求分析得到的用户需求抽象为信息结构即概念模型的过程就是概念结构设计概念结构是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定概念结构设计是整个数据库设计的关键AnIntroductiontoDatabaseSystem概念结构设计的特点

(1)能真实、充分地反映现实世界

(2)易于理解

(3)易于更改

(4)易于向关系、网状、层次等各种数据模型转换AnIntroductiontoDatabaseSystem描述概念模型的工具要进行数据库的概念设计,首先必须选择适当的概念模型。用于概念设计的模型既要有足够的表达能力,可以表示各种类型的数据及其相互间的联系和语义,又要简明易懂,能够为非计算机专业人员所接受。目前应用得最广泛的是E―R模型及其扩充版本(EER)。E―R模型除了具有上述的特点外,还可以用E―R图表示数据模式,便于理解与交流。AnIntroductiontoDatabaseSystem7.3.2概念结构设计的方法与步骤设计概念结构的四类方法自顶向下

首先定义全局概念结构的框架,然后逐步细化自顶向下策略需求

全局概念模式

概念模式

概念模式

概念模式

概念模式

概念模式

概念模式………AnIntroductiontoDatabaseSystem7.3.2概念结构设计的方法与步骤自底向上

首先定义各局部应用的概念结构,然后将它们集成起来,得到全局概念结构自底向上策略需求需求需求需求

概念模式

概念模式

概念模式

概念模式

概念模式

概念模式

全局概念模式….AnIntroductiontoDatabaseSystem逐步扩张

首先定义最重要的核心概念结构,然后向外扩充,以滚雪球的方式逐步生成其他概念结构,直至总体概念结构逐步扩张策略核心需求需求核心概念结构概念结构全局概念结构…AnIntroductiontoDatabaseSystem混合策略将自顶向下和自底向上相结合,用自顶向下策略设计一个全局概念结构的框架,以它为骨架集成由自底向上策略中设计的各局部概念结构。AnIntroductiontoDatabaseSystem常用策略自顶向下地进行需求分析自底向上地设计概念结构AnIntroductiontoDatabaseSystem自底向上设计概念结构的步骤

第1步:抽象数据并设计局部视图 第2步:集成局部视图,得到全局概念结构AnIntroductiontoDatabaseSystem概念结构设计的主要步骤(1)进行数据抽象,设计局部概念模式。(2)将局部概念模式综合成全局概念模式。(3)评审。AnIntroductiontoDatabaseSystem概念模型的基本概念现实世界机器世界信息世界需求分析概念结构设计AnIntroductiontoDatabaseSystem1.实体型实体型用带有实体名的矩形框表示。学生课程AnIntroductiontoDatabaseSystem2.属性一般属性:用带有属性名的椭圆形框表示。多值属性:用双椭圆形框表示。派生属性:用虚椭圆形框表示。复合属性:可以进一步划分为更小部分的属性。属性与其对应的实体型之间用直线连接。学号E-mail人数请按键★家庭地址城市街道区邮政编码AnIntroductiontoDatabaseSystem例:课程(课程号,课程名,学分,周学时),该实体集及其属性的表示方法如图所示,其中带下划线的属性“课程号”是实体集的键课程课程名学分课程号周学时AnIntroductiontoDatabaseSystem例:教师(教师号,姓名,性别,职称,E-mail地址,电话号码,家庭地址)实体集表示方法如图。E-mail:多值属性家庭地址:复合属性家庭地址城市街道区邮政编码教师性别姓名教师号电话号码e-mail地址职称请按键★AnIntroductiontoDatabaseSystem3.实体集之间的联系用带有联系名的菱形框表示,并用直线将联系与相应的实体相连接,且在直线靠近实体的那端标上1或n等,以表明联系的类型(1:1、1:n或m:n)。若一个联系的某个参与者是全部的,则用双线将联系与该参与者相连。学生姓名性别学号年龄班级班级号人数班级名属于n1请按键★AnIntroductiontoDatabaseSystem课程实体集、教师实体集及相互间的多对多联系。AnIntroductiontoDatabaseSystem7.3.3E-R模型的设计问题1.确定实体集和属性2.确定实体集间的联系AnIntroductiontoDatabaseSystem1.确定实体集和属性作为属性的事物应符合的原则:①除了复合属性,其他属性都不能具有需要描述的特性。②属性不能与其它实体发生联系。③符合上述原则的事物应作为属性,其余的应作为实体。AnIntroductiontoDatabaseSystem例:分析课程实体:课程实体:课程号,课程名,学分,周学时应作为属性;若课程类型与课程的上课周数有关,则应把“课程类型”作为一个实体,而将“周数”作为它的属性。AnIntroductiontoDatabaseSystem课程类型与课程课程课程名学分课程号周学时课程类型课程课程名学分

课程号周学时类型名类型号周数课程类型分类n1课程类型作为属性课程类型作为实体请按键★AnIntroductiontoDatabaseSystem2.确定实体集间的联系确定课程、教师和学生实体集相互之间的联系增加课程和教师联系的描述性属性增加课程,教师和学生的联系mp时间教室号上课学生性别学号姓名年龄nmn教授家庭地址城市街道区邮政编码电话号码e-mail地址性别姓名教师号职称教师课程课程名学分课程号周学时请按键★AnIntroductiontoDatabaseSystem课程、教师和学生实体集相互之间的联系将“教授”和“上课”联系和并为如下的“教授”(冗余)请按键★AnIntroductiontoDatabaseSystem将学生的考试成绩用“上课”联系中增加的“成绩”属性表示出来学生性别学号姓名年龄mp时间教室号上课nmn教授家庭地址城市街道区邮政编码电话号码e-mail地址性别姓名教师号职称教师课程课程名学分课程号周学时成绩请按键★AnIntroductiontoDatabaseSystem将学生的考试成绩在学生和课程实体间增加的“考试”联系中作为属性表示出来学生性别学号姓名年龄mp时间教室号上课nmn教授家庭地址城市街道区邮政编码电话号码e-mail地址性别姓名教师号职称教师课程课程名学分课程号周学时考试m成绩请按键★AnIntroductiontoDatabaseSystem将学生,课程之间的联系作进一步修改学生性别学号姓名年龄mp时间教室号上课nmn教授家庭地址城市街道区邮政编码电话号码e-mail地址性别姓名教师号职称教师课程课程名学分课程号周学时考试m成绩AnIntroductiontoDatabaseSystempmn教授家庭地址城市街道区邮政编码电话号码e-mail地址性别姓名教师号职称教师课程课程名学分课程号周学时学生性别学号姓名年龄考试成绩mnAnIntroductiontoDatabaseSystem7.3.3数据抽象与局部视图设计

数据抽象:抽象是对实际的人、物、事和概念中抽取所关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述。概念结构是对现实世界的一种抽象AnIntroductiontoDatabaseSystem几个重要概念:1.特殊化(specialization)

一个实体集是具有某些共性的实体的集合。这些实体一方面具有共性,另一方面还具有各自的特殊性。一个实体集可以按照某一特征区分为几个子实体集。这是一个从普遍到特殊的过程,这个过程叫做特殊化。AnIntroductiontoDatabaseSystem分析:课程实体具有课程号、课程名、学分和周学时等属性。假设课程实体可以进一步划分为两大类:选修课和必修课。这两类课程都具有课程实体所具有的所有属性这两类课程也分别具有区别于其他课程的一些独特的属性。

ⅰ每门选修课都具有选修人数上限和下限,根据这两个值,一方面可以限制选修课程的人数,另一方面如果选修人数太少,也可以取消某门选修课的上课计划。因此,选修课实体还具有人数上限和人数下限属性,而这些属性是必修课所没有的;

ⅱ每门必修课都具有一个课程负责人,而该属性也是选修课所不具有的。AnIntroductiontoDatabaseSystem在实体集内部进行分组的过程称为特殊化。对课程实体集进行特殊化可以产生如下实体集:

①选修课:具有人数上限和人数下限属性。

②必修课:具有课程负责人属性。AnIntroductiontoDatabaseSystem选修课还可以分成共同限选课和专业选修课两类共同限选课是面向全校学生开设的选修课专业选修课是面向某个专业学生的选修课,因此每门专业选修课都属于某个专业,并且不同专业队可以选修的课程数目有不同的规定。例如,信息系可能允许学生最多选修8门专业选修课,而会计系也许仅允许学会选修5门专业选修课。这样,对选修课实体集进行特殊化可以产生如下实体集:

①共同限选课②专业选修课:每门专业选修课都属于某个专业。相关专业允许学生可以选修的专业选修课的门数在专业实体集中描述。AnIntroductiontoDatabaseSystem课程号课程名学分周学时课程选修课必修课IsA人数下限人数上限课程负责人IsA共同限选课专业选修课选修课计划专业专业号专业名称选修门数1nAnIntroductiontoDatabaseSystem2.概括:与特殊化相反的过程,即把几个具有某些共性的实体集概括成一个更普遍的实体集。AnIntroductiontoDatabaseSystem概括分析:如先设计选修课和必修课选修课:课程号,课程名,学分,周学时,人数上限,人数下限必修课:课程号,课程名,学分,周学时,课程负责人它们之间的共性可以概括出课程实体集AnIntroductiontoDatabaseSystem属性继承特殊化和概括所产生的高层实体集和低层实体集的一个重要特性是属性继承。高层实体集的属性被低层实体集继承。低层实体集(或子类)同时还继承参与其高层实体集所参与的那些联系集。属性继承作用于低层实体集的所有联系中。同高层实体集相联系的所有属性和联系也适用于它的所有低层实体集;低层实体集特有的性质仅仅适用于某个特定的低层实体集。AnIntroductiontoDatabaseSystem

3弱实体集有些实体集的属性都不足以形成主键,这样的实体集称作弱实体集。与此相对,有主键实体集称作强实体集。弱实体集只有作为一对多联系的一部分才有意义,这时该联系集就应该不具有任何描述性属性,因为任何所需属性都可以同弱实体集相联系。存在依赖是一类重要的约束。具体地说,如果实体x的存在依赖于实体y的存在,那么就说x存在依赖于y。AnIntroductiontoDatabaseSystem

在操作上,如果y被删除,那么x也要被删除。实体y称作支配实体,实体x称作从属实体。

全部参与同存在依赖紧密相关。强实体集的成员必然是支配实体,而弱实体集的成员是从属实体。弱实体集与其拥有者之间的联系称为标识性联系。例如,学生实体有社会关系这方面的特性,若将社会关系抽象为社会关系实体,那么该实体的存在依赖于学生实体,所以社会关系实体为弱实体,学生实体为对应的强实体。AnIntroductiontoDatabaseSystem图强实体集的主键和弱实体集的分辨符学生社会关系拥有社会关系号学号AnIntroductiontoDatabaseSystem注意:弱实体集的分辨符是使得我们能进行这种区分的属性集合。弱实体集的主键由该弱实体集所存在依赖的强实体集的主键和该弱实体集的分辨符共同组成。在某些情况下,数据库设计者会选择用拥有者实体集的多值、复合属性来表示弱实体集。如果弱实体集只参与标识性联系,而且其属性不多,那么在建模时将其表述为一个属性更恰当。相反地,如果弱实体集参与到标识性联系以外的联系中,或者其属性较多,则建模时将其表述为弱实体集更恰当。AnIntroductiontoDatabaseSystem局部视图设计设计分E-R图的步骤:⒈选择局部应用⒉逐一设计分E-R图AnIntroductiontoDatabaseSystem1局部E-R模型的设计步骤需求分析结果确定局部结构的范围还有局部结构要设计?全局E-R模型的设计有无设计局部E-R模型确定局部结构的实体定义局部结构的属性定义局部结构的联系请按键★AnIntroductiontoDatabaseSystem①

设计教学管理子系统的E-R模型AnIntroductiontoDatabaseSystem②设计工资及福利管理子系统的E-R模型AnIntroductiontoDatabaseSystem2.全局E-R模型的设计全局E-R模型的设计过程

⑴合并局部E-R模型⑵消除冗余数据和冗余联系局部E-R模型合并两个局部E-R模型检查并消除冲突检查并消除冗余逻辑结构设计无有无还有未合并的局部E-R模型吗?还有冲突吗?还有冗余吗?无有有请按键★AnIntroductiontoDatabaseSystem

依次取出所有的局部E-R模型,进行合并,直至所有的局部E-R模型都合并完为止。在合并过程中要检查并消除局部E-R模型间的一些冲突。

冲突的种类:

①属性冲突

②命名冲突

③结构冲突⑴合并局部E-R模型AnIntroductiontoDatabaseSystem①属性冲突

包括属性域冲突和属性取值单位的冲突。属性域的冲突:指同一属性在不同局部E-R模型中有不同数据类型、取值范围或取值集合。AnIntroductiontoDatabaseSystem②命名冲突

同名异义:

是指具有不同意义的对象在不同的局部E-R模型中却使用了相同的名字。

异名同义:

是指具有同一意义的对象在不同的局部E-R模型中却使用了不同的名字。AnIntroductiontoDatabaseSystem③结构冲突

既指同一对象在不同的局部E-R模型中具有不同的抽象,也指同一实体在不同的局部E-R模型中包含不同的属性个数和排列次序,又指实体间的联系在不同的局部E-R模型中具有不同的类型。AnIntroductiontoDatabaseSystem例:教学管理与工资及福利管理子系统中,教师的职工号存在命名冲突;教师实体存在结构冲突。教师教师号工龄养老金公积金基本工资家庭地址城市街道区邮政编码统一与合并后教师电话号码e-mail地址性别姓名教师号职称家庭地址城市街道区邮政编码教学管理子系统教师教师编号姓名性别工龄公积金养老金基本工资工资及福利子系统e-mail地址性别姓名电话号码请按键★AnIntroductiontoDatabaseSystem课程实体存在结构冲突,进行合并课程课程名学分课程号周学时课程课程名课程号总课时教学管理子系统工资及福利子系统合并后课程类型周数类型号类型名分类1n课程课程名学分课程号周学时请按键★AnIntroductiontoDatabaseSystem教授联系的合并教学管理子系统工资及福利子系统教授课程nm教师时间教室号时间评教等级教授课程nm教师时间教室号评教等级教授课程nm教师合并后请按键★AnIntroductiontoDatabaseSystem⑵消除冗余数据和冗余联系在初步E―R图中,可能存在一些冗余的数据和实体间冗余的联系。所谓冗余的数据是指可由基本数据导出的数据冗余的联系是指可由其他联系导出的联系冗余数据和冗余联系容易破坏数据库的完整性,给数据库的维护增加困难,应当予以消除。消除了冗余后的初步E―R图称为基本E―R图。消除冗余主要采用分析方法,即以数据字典和数据流图为依据,根据数据字典中关

温馨提示

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

评论

0/150

提交评论