首页 理论教育 实体联系模型中的属性用什么显示

实体联系模型中的属性用什么显示

时间:2022-02-28 理论教育 版权反馈
【摘要】:数据库概念设计的目的是分析数据间内在语义关联,在此基础上建立一个数据的抽象模型。数据库概念设计所使用的方法很多,有E-R法、EE-R法以及面向对象方法等,目前常用的方法是E-R方法。

4.4.3 数据库概念设计概述

数据库概念设计的目的是分析数据间内在语义关联,在此基础上建立一个数据的抽象模型。数据库概念设计所使用的方法很多,有E-R法、EE-R法以及面向对象方法等,目前常用的方法是E-R方法。在这节中我们采用E-R方法,它有五种基本概念,必须将其区分出来,它们是属性、实体、联系、嵌套与继承,属性与实体是基本对象,而联系、嵌套与继承则是属性与实体间的语义关联。

一个部门或单位有大有小,有简单有复杂,其内在逻辑关系与语义关联可以非常复杂,如何在需求调查基础上,设计出一个数据概念模型一般有两种方法,它们是:

1.集中式模式设计法

这是一种统一的模式设计方法,它根据需求由一个统一机构或人员设计一个综合的全局模式,这种方法设计简单方便,它强调统一与一致,它适用于小型或并不复杂的单位或部门,而对大型的或语义关联复杂的单位则并不适合。

2.视图集成设计法

这种方法是将一个单位分解成若干个部分,先对每个部分作局部模式设计,建立各个部分的视图,然后以各视图为基础进行集成,在集成过程中可能会出现一些冲突,这是由于视图设计的分散性形成的不一致所造成的,因此需对视图作修正,最终形成全局模式。

视图集成设计法是一种由分散到集中的方法,它的设计过程复杂但它能较好的反映需求,适合于大型与复杂的单位,避免设计的粗糙与不周到,目前此种方法使用较多,在本章中我们主要介绍此种方法。

数据库概念设计的过程可以用EE-R方法与视图集成法进行设计,其具体步骤如下:

(1)分解

首先对用户单位作分解,分解成若干个具有一定独立逻辑功能的用户组,并针对该用户组的需求分析作视图设计,一般讲每个用户单位不宜太大与太复杂,其实体保持在“7+2”个左右为原则。

(2)视图设计

视图设计一般有三种设计次序,它们是:

①自顶向下:这种方法是先从抽象级别高且普遍性强的对象开始逐步细化、具体化与特殊化,如学生这个视图可先从一般学生开始,再分成大学生、研究生等,进一步再由大学生细化为大学本科与专科,研究生细化为硕士生与博士生等,还可以再细化成学生姓名、年龄、专业等细节。

②由底向上:这种设计方法是先从具体的对象开始,逐步抽象,普遍化与一般化,最后形成一个完整的视图设计。

③由内向外:这种设计方法是先从最基本与最明显的对象着手逐步扩充至非基本、不明显的其他对象,如学生视图可从最基本的学生开始逐步扩展至学生所读的课程、上课的教室与任课的教师等其他对象。

上面三种方法为做视图设计提供了具体的操作方法,设计者可根据实际情况灵活掌握,可以单独使用也可混合使用各种方法。

在视图设计中还要注意下面几种情况:

(1)区分实体与属性:实体与属性是视图中的基本单位,它们之间无明确区分标准,一般讲可以有下面的一些原则作分析时参考:

①描述信息原则:一般讲实体需有进一步的性质描述,而属性则无。

②依赖性原则:一般讲属性仅单向依赖于某个实体,且此种依赖是包含性依赖,如学生实体中的学号、学生姓名等均单向依赖于学生。

③一致性原则:实体由若干个属性组成,这些属性间有内在的关联性与一致性,如学生实体有学号、学生姓名、年龄、专业等属性,它们分别独立表示实体的某种独特个性,并在总体上协调一致,互相配合,构成了一个完整的整体。

上述三个原则仅供分析时参考,在具体操作时还要灵活掌握使用,特别是那些有嵌套功能的属性,在某实体中是属性,而在另一种描述时它又是实体。

(2)区分联系、嵌套与继承:联系、嵌套与继承建立了视图中属性与实体间的语义关联,从理论上看这三者语义是很清楚的,我们将它们列出供设计时比较与参考。

①继承:是实体间的分类关系与包含关系。

②嵌套:是实体对属性的依赖关系,它反映了实体间的聚合与分解关系。

③联系:是实体间的一种广泛语义联系,它反映了实体间的内在逻辑关联。

所要注意的是联系与嵌套间的区别,实际上用联系也可以实现嵌套,联系是一种语义上更为广泛的一种关联,但有时为求得设计上的完整与独立可以用嵌套表示,而联系与继承则是两种完全不同的概念,两者不能互相替代,不过近年来有人用联系“模拟”继承,这是允许的,但“模拟”毕竟不是“替代”,两者在概念上还是有本质区别的。

(3)实体与属性的详细描述:在确定了实体与属性后需对下述几个问题作详细描述。

①实体与属性名:实体与属性的命名需有一定原则,它们应清晰明了便于记忆,并尽可能采用用户所熟悉的名字,名字还要有特点,减少冲突,方便使用,并要遵守缩写规则。

②确定实体标识:实体标识即是该实体的主关键字,首先要列出实体的所有候选关键字,在此基础上选择一个作为主关键字。

③非空值原则:在属性中可能会出现空值,这并不奇怪,重要的是在主关键字中不允许出现有空值。

(4)联系的详细描述

①联系的种类大致有三种,它们是:

●存在性联系。如学校有教师、教师有学生等。

●功能性联系。如教师授课、教师参与管理学生等。

●事件联系。如学生借书、学生打网球等。

●用上面三种可以检查需求中联系是否有遗漏。

②实体间联系的对应关系:它们包括1:1,1:n,n:m三种对应关系。

③实体间联系的元数:实体间联系常用的是两个实体间的联系称二元联系,偶然也会用到三个及三个以上联系称多元联系,特殊情况是一个实体内部的联系称一元联系。

(5)继承的详细描述

①部分继承与全继承,如果子实体继承实体全部属性,此种继承称全继承,而有时子实体仅继承超实体的部分属性,此种继承称部分继承。

②单继承与多重继承:一个实体仅有一个超实体,此种继承称单继承,而如果一个实体有多于一个超实体,此种继承称多重继承。

(6)嵌套的详细描述

①嵌套的递归性:嵌套关系一般是非递归的,即有严格的层次性,但是偶尔会产生一定的递归性,如汽车制造厂(经理)嵌套职工(拥有的汽车)嵌套汽车(生产厂家) 嵌套汽车制造厂。

②嵌套的直接递归与间接递归:嵌套关系的递归有通过多个嵌套而形成递归,此种递归称为间接递归,而实体的属性与该实体自己所形成的递归则称为直接递归。如实体“课程”有属性“预修课号”,而“预修课号”也是“课程”,因此它与实体——“课程”构成嵌套关系,这就是直接递归。

3.视图集成

(1)原理与策略:视图集成的实质是所有局部视图的统一与合并成一个完整的数据模式。在此过程中主要使用三种集成概念与方法,它们是:等同(Identity)、聚合(Aggregation)与抽取(Generalization)。

这三种概念与方法的大致含义是:

①等同:等同是指两个或多个数据对象有相同的语义,它包括简单的属性等同,实体等同以及语义关联的等同,等同的对象其语法形式表示可能不一致,如某单位职工按身份证号编号,属性“职工编号”与属性“职工身份证号”有相同语义。等同具有同义同名或同义异名两种含义。

②聚合:聚合表示数据对象间的一种组成关系,如实体“学生”可由学号、姓名、性别等聚合而成,通过聚合可将不同实体聚合成一体或将它们连接起来。

③抽取:抽取即是将不同实体中的相同属性提取成一个新的实体并构造成具有继承关系的结构。

(2)视图集成步骤:视图集成一般分为两步,它们是预集成步骤与最终集成步骤。

①预集成步骤的主要任务:

●确定总的集成策略,包括集成优先次序、一次集成视图数及初始集成序列等。

●检查集成过程需要用到的信息是否齐全。

●揭示和解决冲突,为下阶段视图归并奠定基础。

②最终集成步骤的主要任务:

●完整性和正确性。全局视图必须是每个局部视图的正确全面的反映。

●最小化原则。原则上现实同一概念只在一个地方表示。

●可理解性。即应选择最为用户理解的模式结构。

(3)冲突和解决:在集成过程中由于每个局部视图在设计时的不一致性因而会产生矛盾,引起冲突,常见冲突有下列几种:

①命名冲突:命名冲突有同名异义和同义异名两种。

②概念冲突:同一概念在一处为实体而在另一处为属性或联系。

③域冲突:相同的属性在不同视图中有不同的域,如学号在某视图中的域为字符串,而在另一个视图中可为整数,有些属性采用不同度量单位也属域冲突。

④约束冲突:不同视图可能有不同约束。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈