第二篇 管理信息系统的技术基础
实验三 数据库设计
——概念结构设计
【实验目的】
明确概念结构设计的方法和步骤,掌握画E—R图的方法。
【实验步骤】
1、 熟悉概念结构设计的方法
2、 熟悉概念结构设计的步骤
3、 掌握概念结构设计的第一步骤,绘制分E—R图
【实验内容】
一、概念模型和概念结构设计
1、概念模型的定义
也称信息模型,它是按用户的观点来对数据和信息建模。
概念模型是现实世界到机器世界的一个中间层次。
数据库设计的意义 表示概念模型最常用的是"实体-关系"图。
概念模型是对真实世界中问题域内的事物的描述,不是对软件设计的描述。
概念模型用于信息世界的建模,它是世界到信息世界的第一层抽象,它数据库设计的有力工具,也是数据库开发人员与用户之间进行交流的语言。
在管理信息系统中,概念模型:是设计者对现实世界的认识结果的体现,是对软件系统的整体概括描述。
2、概念结构设计
将需求分析得到的用户需求抽象信息结构即概念模型的过程就是概念结构设。它是整个数据库设计的关键。
二、概念结构设计的方法
(1)自项向下:根据用户要求,先定义全局概念结构的框架,然后分层展开,逐步细化。
(2)自底向上:根据用户的每一具体需求,先定义各局部应用的概念结构,然后将它们集成,逐步抽象化,最终产生全局概念结构。
(3)逐步扩张:先定义最重要的核心概念结构,然后向外扩允以滚雪球的方式逐步生成其他概念结构,直至全局概念结构。
(4)混合方式:将自顶向下和白底向下相结合,先用自顶向下方式设计—个全局概念结构框架,再以它为基础,采用自底向上法集成各局部概念结构。
在概念结构的设计过程中,自底向上是普遍采用的一种设计策略。因此,在对数据库的具体设计过程中,通常先采用自顶向下进行需求分析,得到每一个集体的应用需求,然后发过来根据每一个子需求,采用自底向上分布设计产生每一局部的 E—R模型,综合各局部E—R模型,逐层向上到顶端,最终产生全局E—R模型。
三、概念结构设计的步骤
概念结构设计的第一步就是抽象机制对需求分析阶段收集到的数据进行分类、组织(聚集),形成实体、实体的属性,标识实体的码,确定实体之间的联系类型(1:1,1:n,m:n),设计分E—R图。具体做法是:
1.选择局部应用
根据某个系统的具体情况,在多层的数据流图中选择一个适当层次的数据流图,作为设计分E—R图的出发点。让这组图中每一部分对应一个局部应用。
由于高层的数据流图只能反映系统的概貌,而中层的数据流图能较好地反映系统中各局部应用的子系统组成,因此,人们往往以午中数据流图作为设计分
E—R图的依据。
2.逐一设计分E—R图
选择好局部应用之后,就要对每个局部应用逐一设计分E—R图。
在前面选好的某一层次的数据流图中,每个局部应用都对应了一组数据流图,局部应用涉及的数据都已经收集在数据字典中了。现在就是要将这些数据从数据字典中抽取出来,参照数据流图,标定局部应用中的实体、实体的属性、标识实体的码,确定实体之间的联系及其类型。
事实上,在现实世界中具体的应用环境常常对实体和属性已经作了大体的自然的划分。在数据字典中,“数据结构”、“数据流”和“数据存储”都是若干属性有意义的聚合,就体现了这种划分。可以先从这些内容出发定义E—R图,然后再进行必要的调整。在调整中遵循的—条原则是:
为了简化E—R闯的处置,现实世界的事物能作为属性对待的,尽量作为属性对待。
那么符合什么条件的事物可以作为属性对待呢,本来,实体与属性之间并没有形式上可以截然划分的界限,但可以给出两条准则:
(1)作为“属性”,不能再具有需要描述的性质。“属性”必须是不可分的数据项,不能包含其他属性:
(2)“属性”不能与其他实体具有联系,即E—R图中所麦示的联系是实体之间的联系。
凡满足上述两条准则的事物,—般均可作为属性对待。
四、数据抽象与局部视图设计
概念结构是对现实世界的一种抽象。所谓抽象是对实际的人、物、事和概念进行人为处理,抽取所关心的共同特性,忽略非本质的细节,并把这些特性用各种概念精确地加以描述,这些概念组成了某种模型。
一般有三种抽象:
1.分类
定义某一类概念作为现实世界中一组对象的类型。这些对象具有某些共同的 和行为。它抽象了对象值和型之间的“is member of的语义。在E—R模型中,实体型就是这种抽象。例如,在学校环境中,张英是学生,表尔张英是学生中的一员,具有学生们共同的特性和行为:在某个班学习某种专业,选修某些课程o
2.聚集
定义某一类型的组成成分。它抽象了对象内部类型和成分之间“is part of”的语义。在E—R模型中若干属性的聚集组成了实体型,就是这种抽象。
3.概括
定义类型之间的一种子集联系。它抽象了类型之间的“is subset of”的语义。例如,学生是一个实体型,本科生、研究生也是实体型。本科生、研究生均是学生的子集。把学生称为超类,本科生、研究生称为学生的子类
概括有一个很重要的性质:继承性。子类继承超类上定义的所有抽象。这样,本科生、研究生继承了学生类型的属性。当然,子类对以增加自己的某些特殊属性。
五、视图的集成
概念结构设计的第一步是设计分E—R图,分E—R图完成以后,第二步就是要将所有的分E—R图综合成总E—R图。
一般说来,视图集成可以有两种方式:
(1)多个分E—R图一次集成.如图(a)所示。
(2)逐步集成,用累加的方式一次集成两个分E—R图,如图(b)所示。
第一种方法比较复杂,做起来难度较大。
第二种方法每次只集成两个分E—R图,可以降低复杂度。
无论采用哪种方式,每次集成局部E—R图时都需要分两步走:
(1)合并;解决各分E—R图之间的冲突,将各分E—R图合并起来生成初步E—R图。
(2)修改和重构。消除不必要的冗余,生成基本E—R图。
(一)合并分E—R图,生成初步E—B图
各个局部应用所面向的问题不同,且通常是由不同的设计人员进行局部视图设计,这就导致各个分E—R图之间必定会存在许多不一致的地方,称之为冲突。因此,合并分E—R图时并
不能简单地将各个分E—R图画到一起,而是必须着力消除各个分E—R图中的不一致,以形成一个能为全系统中所有用户共同理解和接受的统一的概念模型。合理消除各分E—R图的冲突是合并分E—R图的主要工作与关键所在。
各分E—B图之间的冲突主要有三类:属性冲突、命名冲突和结构冲突。
1、属性冲突
(1)属性域冲突,即属性值的类型、取值范围或取值集合不同。例如零件号,有的部门把它定义为整数,有的部门把它定义为字符型。不同的部门对零件号的编码也不同。又如年龄,某些部门以出生日朗形式表示职工的年龄,而另一些部门用整数表示职工的年龄。
(2)属性取值单位冲突。例如,零件的重量有的以公斤为单位,有的以斤为单位,有的以克为单位。
属性冲突理论上好解决,但实际上需要各部门讨论协商,解决起来并非易事。
2、命名冲突
(1)同名异义,即不同意义的对象在不同的局部应用中具有相同的名字。
(2)异名同义(一义多名),即同一意义的对象在不同的局部应用中具有不同的名字。
如对科研项目,财务科称为项目,科研处称为课题,生产管理处称为工程。
命名冲突可能发生在实体、联系一级上,也可能发生在属性一级上。其中属性的命名冲突更为常见。处理命名冲突通常也像处理属性冲突一样,通过讨论、协商等行政手段加以解决。
3、结构冲突
(1)同一对象在不同应用中具有不同的抽象。例如,职工在某一局部应用中被当作实体,而在另一局部应用中则被当作属性。
解决方法通常是把属性交换为实体或把实体变换为属性,使同一对象具有相同的抽象。但变换时仍要遵循上面讲述的两个准则。
(2)同一实体在不同分E—R图中所包含的属性个数和属性排列次序不完全相同。
这是很常见的一类冲突,原因是不同的局部应用关心的是该实体的不同侧面。解决方法是使该实体的属性取各分E—R图中属性的并集,再适当调整属性的次序。
实体间的联系在不同的分E—R图中为不向的类型,如实体E1与E2在一个分E—R图中是多对多联系,在另一个分E—R图中是一对多联系;又如在一个分E—R图中E1与E2发生联系,而在另一个分E—R图中E1、E2、E3三者之间有联系。
解决方法是根据应用的语义对实体联系的类型进行综合或调整。
(二)消除不必要的冗余,设计基本E—R图
在初步E—R图中,可能存在一些冗余的数据和实体间冗余的联系。所谓冗余的数据是指可由基本数据导出的数据,冗余的联系是指可由其他联系导出的联系。冗余数据和冗余联系容易破坏数据库的完整性,给数据库维护增加困难,应当予以消除。消除了冗余后的初步E—R图称为基本E—R图。
消除冗余主要采用分析方法.即以数据字典和数据流图为依据,根据数据字典中关于数据项之间逻辑关系的说明来消除冗余。
【实验练习】
1、某制造型企业生产多种产品,每种产品要使用多种零件,一种零件可能装在多种产品上。每种零件由一种材料制造,每种材料可用于不同零件的制作。有关产品、零件、材料的描述如下:每个产品都有产品编号和产品名称,并记录了产品单价;每个零件都零件编号和零件名称,并记录了单重和单价;每类材料也有材料编号和材料名称,并记录了计量单位、单价。
请画出反映产品生产过程的的E—R图。
2、某图书管理系统对图书。读者及读者借阅进行管理。系统要求记录图书的书号、书名、作者、出版日期、类型、页数、价格、出版社名称、读者姓名、借书证号、性别、出生日期、学历、住址、电话、借书日期和还书日期。请用E—R表示出该业务的概念模型,并设计出系统的关系模型。
3、下表是某学校学生的成绩报告单,如要开发学校的教务管理信息系统,请根据下表分
析该成绩单中的实体并绘制实体属性图。再根据实体属性图,分析该成绩单中各实体的联系并绘制总E—R图。
××学校成绩报告单
课程名称: 课程性质:必修 选修 考核形式:考试 考查 补考 重修
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论