购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.2 概念层数据模型

从图2-1可以看出,概念层数据模型实际上是现实世界到机器世界的一个中间层次。本节介绍概念层数据模型的基本概念及构建方法。

图2-1 从现实世界到机器世界的过程

2.2.1 基本概念

概念层数据模型:抽象现实系统中有应用价值的元素及其关联关系,反映现实系统中有应用价值的信息结构,并且不依赖于数据的组织层数据模型。

概念层数据模型用于对信息世界进行建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的工具,也是数据库设计人员和用户之间进行交流的工具,因此,该模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识;另一方面它还应该简单、清晰且易于被用户理解。

概念层数据模型是面向用户、面向现实世界的数据模型,它与具体的DBMS无关。采用概念层数据模型,设计人员可以在设计的开始把主要精力放在了解现实世界上,而把涉及DBMS的一些技术性问题推迟到后面去考虑。

常用的概念层数据模型有实体-联系(Entity-Relationship,E-R)模型、语义对象模型。我们这里只介绍实体-联系模型。

2.2.2 实体-联系模型

由于直接将现实世界按具体数据模型进行组织,必须同时考虑很多因素,设计工作非常复杂,并且效果也不太理想,因此需要一种方法来对现实世界的信息结构进行描述。事实上这方面已经有了一些方法,我们要介绍的是P.P.S. Chen于1976年提出的实体-联系(Entity-Relationship)方法,即通常所说的E-R方法。这种方法由于简单、实用,因此得到了广泛的应用,也是目前描述信息结构最常用的方法。

E-R方法使用的工具称为E-R图,它所描述的现实世界的信息结构称为企业模式(Enterprise Schema),也把这种描述结果称为E-R模型。

实体-联系方法试图定义许多数据分类对象,然后数据库设计人员就可以将数据项归类到已知的类别中。第8章将介绍如何将E-R模型转换为组织层数据模型。

1.实体

实体是具有公共性质的并可相互区分的现实世界对象的集合。实体是具体的,例如:职工、学生、教师、课程都是实体。

在E-R图中用矩形框表示具体的实体,把实体名写在框内。如图2-2a中的“经理”和“部门”实体。

实体中的每个具体的记录值(一行数据),比如学生实体中的每个具体的学生,我们称之为实体的一个实例。

注意:

有些书也将实体称为实体集或实体类型,而将每行具体的记录称为实体。

2.属性

每个实体都具有一定的特征或性质,这样我们才能根据实体的特征来区分一个个实例。属性就是描述实体或者联系的性质或特征的数据项,属于一个实体的所有实例都具有相同的性质,在E-R模型中,这些性质或特征就是属性。

比如学生的学号、姓名、性别等都是学生实体具有的特征,这些特征就构成了学生实例的属性。实体所具有的属性的多少是由用户对信息的需求决定的。例如,假设用户还需要学生的民族信息,则可以在学生实例中加一个“民族”属性。

属性在E-R图中用圆角矩形表示,在矩形框内写上属性的名字,并用连线将属性框与它所描述的实体联系起来,如图2-2c所示。

3.联系

在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界反映为实体内部的联系和实体之间的联系。实体内部的联系通常是指一个实体内部各属性之间的联系,实体之间的联系通常是指不同实体之间的联系。比如在职工实体中,假设有职工号、姓名、所在部门和部门经理号等属性,其中部门经理号描述的是管理这个职工的部门经理的职工号。一般来说,部门经理也属于单位的职工,因此,部门经理号和职工号通常采用的是一套编码方式,因此部门经理号与职工号之间有一种关联的关系,即部门经理号的取值在职工号取值范围内。这就是实体内部的联系。而学生和课程之间的关联关系是通过学生选课体现的,在学生选课中至少包含学生的学号以及学生所选的课程号,而且学生选课中的学号必须是学生实体中已经存在的学号,因为我们不允许为不存在的学生记录选课情况。同样,学生选课中的课程号也必须是课程实体中存在的课程号。这种关联到两个不同实体的联系就是实体之间的联系。通常情况下我们遇到的联系大多都是实体之间的联系。

图2-2 联系的示例

联系是数据之间的关联集合,是客观存在的应用语义链。在E-R图中联系用菱形框表示,框内写上联系名,并用连线将联系框与它所关联的实体连接起来,比如图2-2c中的“选课”联系。联系也可以有自己的属性,比如图2-2c中“选课”联系有“成绩”属性。

两个实体之间的联系可以分为三类:

(1)一对一联系(1:1)

如果实体A中的每个实例在实体B中至多有一个(也可以没有)实例与之关联,反之亦然,则称实体A与实体B具有一对一联系,记作:1:1。

例如,部门和经理(假设一个部门只有一个经理,一个人只能担任一个部门的经理)、系和正系主任(假设一个系只有一个主任,一个人只能担任一个系的主任)都是一对一联系。

一对一联系的E-R图示例如图2-2a所示。两个实体之间实例的一对一对应关系如图2-3所示,注意这个图中“销售部”在“经理”实体中没有对应的实例,表明该部门还没有经理。

图2-3 一对一联系中两个实体中实例间的对应关系

(2)一对多联系(1: n

如果实体A中的每个实例在实体B中有 n 个实例( n ≥0)与之联系,而实体B中每个实例在实体A中最多只有一个实例与之联系,则称实体A与实体B是一对多联系,记作:1: n

例如,假设一个部门有若干职工,而一个职工只在一个部门工作,则部门和职工之间就是一对多联系。又比如,假设一个系有多名教师,而一个教师只在一个系工作,则系和教师之间也是一对多联系。一对多联系如图2-2b所示。两个实体之间实例的一对多对应关系如图2-4所示,注意这个图中的“人事部”在“职工”实体中没有对应的实例,表明该部门还没有职工,“职工”实体中的“李海”实例在“部门”实体中也没有对应的实例,表明该职工还没有被分配到具体部门。

图2-4 一对多联系中两个实体中实例间的对应关系

(3)多对多联系( m : n

如果对于实体A中的每个实例,实体B中有 n 个实例( n ≥0)与之联系,而对实体B中的每个实例,在实体A中也有 m 个实例( m ≥0)与之联系,则称实体A与实体B的联系是多对多的,记为 m : n

比如学生和课程,一个学生可以选多门课程,一门课程也可以被多个学生选,因此学生和课程之间是多对多的联系,如图2-2c所示。两个实体之间实例的多对多对应关系如图2-5所示。

图2-5 多对多联系中两个实体中实例间的对应关系

实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。实体之间联系的种类与语义直接相关。

例如,部门和经理。如果一个部门只有一个经理,一个人只担任一个部门的经理,则部门和经理之间是一对一联系;如果一个部门可以有多个经理,而一个人只担任一个部门的经理,则部门和经理之间就是一对多联系;如果一个部门可以有多个经理,而且一个人也可以担任多个部门的经理,则部门和经理之间就是多对多联系。

E-R图不仅能描述两个实体之间的联系,而且还能描述两个以上实体之间的联系。比如有顾客、商品、售货员三个实体,并且有语义:每个顾客可以从多个售货员那里购买商品,并且可以购买多种商品;每个售货员可以向多名顾客销售商品,并且可以销售多种商品;每种商品可以由多个售货员销售,并且可以销售给多名顾客。描述顾客、商品和售货员之间的关联关系的E-R图如图2-6所示,这里联系被命名为“销售”。

注意如果将顾客、商品和售货员之间的关联关系描述成如图2-7所示的形式,则其描述的是售货员、顾客和商品两两之间的联系,因此不符合语义上所要求的三者之间共同有联系的要求。

图2-6 多个实体之间的联系示例

图2-7 不符合语义要求的联系 LbBi2wpy5hCEAPhNnxqzYIj9gvlkDSliRQjmspv7lQMTEyVKJlPiK1qKWDiLMmGv

点击中间区域
呼出菜单
上一章
目录
下一章
×