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

2.2 概念层数据模型

从图2-1可以看出,概念层数据模型是现实世界到机器世界的一个中间层,机器世界实现的最终目的是反映和描述现实世界。本节介绍概念层数据模型的基本概念及基本构建方法。

2.2.1 基本概念

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

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

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

常用的概念层数据模型有实体-联系(Entity-Relationship,ER)模型、语义对象模型。本节只介绍最基本的实体-联系模型,这也是最常使用的一种概念模型。

2.2.2 实体-联系模型

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

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

在ER模型中主要涉及三方面内容:实体、属性和联系。

1)实体。实体是具有公共性质并且可以相互区分的现实世界对象的集合,或者说是具有相同结构的对象的集合。实体是具体的,例如职工、学生、图书、商品都是实体。

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

实体中每个具体的记录值(一行数据)称为实体的一个实例,比如学生实体中的每个具体的学生就是学生实体中的一个实例。(注意,有些书也将实体称为实体集或实体类型,而将每行具体的记录称为实体。)

2)属性。属性是描述实体或联系的性质或特征的数据项,同一个实体的所有实例都具有相同的属性。比如学生的学号、姓名、性别等都是学生实体具有的特征,这些特征就是学生实体的属性。实体应具有多少个属性是由用户对信息的需求决定的。例如,假设用户还需要学生的出生日期信息,则在学生实体中再加一个“出生日期”属性。

在实体的属性中,将能够唯一标识实体的一个属性或最小的一组属性(称为属性集或属性组)称为实体的标识属性,这个属性或属性组也称为实体的码。例如,“学号”就是学生实体的码。

属性在ER图中用椭圆形框或圆角矩形框表示,在框内写上属性的名字,并用连线将属性框与它所描述的实体联系起来,如图2-2c所示。标识属性通常是通过在属性名上加下划线标识。

3)联系。在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界反映为实体内部的联系和实体之间的联系。实体内部的联系通常是指一个实体内部属性之间的联系,实体之间的联系通常是指不同实体属性之间的联系。比如在“职工”实体中,假设有职工号、姓名、所在部门和部门经理号等属性,其中“部门经理号”描述的是这个职工所在部门的经理的职工号。一般来说,部门经理也属于单位的职工,而且通常与职工采用的是一套职工编码方式,因此“部门经理号”与“职工号”之间有一种关联的关系,即“部门经理号”的取值在“职工号”的取值范围内。这就是实体内部的联系。而“学生”和“学院”之间就是实体之间的联系,“学生”是一个实体,假设该实体中有学号、姓名、所在学院等属性,“学院”也是一个实体,假设该实体中包含学院名、办公地点、联系电话等属性,则“学生”实体中的“所在学院”与“学院”实体中的“学院名”之间存在一种关联关系,即“学生”实体中“所在学院”属性的取值范围必须在“学院”实体中“学院名”属性的取值范围内。因此“学院”和“学生”间的联系就是实体之间的联系。通常情况下现实世界中的联系大多都是实体之间的联系。

图2-2 实体及联系的示例

联系是数据之间的关联关系,是客观存在的应用语义链。在ER图中联系用菱形框表示,框内写上联系名,并用连线将联系框与它所关联的实体连接起来,例如图2-2a中的“管理”联系。

联系也可以有自己的属性,比如图2-2c所示的“借阅”联系中有“借书日期”和“还书日期”属性。

两个实体之间的联系通常有以下三类。

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

例如,部门和经理(假设一个部门只允许有一个经理,一个人只允许担任一个部门的经理)、系和正系主任(假设一个系只允许有一个正主任,一个人只允许担任一个系的主任)都是一对一的联系。一对一联系示例如图2-2a所示。

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

例如,一个学院有若干学生,而一个学生只属于一个学院,则学院和学生之间就是一对多联系。一对多联系示例如图2-2b所示。

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

比如学生和图书,一个学生可以同时借阅多本图书,一本图书也可以在不同时间被多个学生借阅,因此学生和图书之间的联系是多对多的。多对多联系示例如图2-2c所示。

实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。

注意:实体之间联系的种类是与语义直接相关的,也就是由客观实际情况决定的。例如,部门和经理,如果客观情况是一个部门只有一个经理,一个人只担任一个部门的经理,则部门和经理之间是一对一联系。但如果客观情况是一个部门可以有多个经理,而一个人只担任一个部门的经理,则部门和经理之间就是一对多联系。如果客观情况是一个部门可以有多个经理,而且一个人也可以担任多个部门的经理,则部门和经理之间就是多对多联系。

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

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

ER图广泛用于数据库设计的概念结构设计阶段。用ER模型表示的数据库概念结构设计结果非常直观,易于用户理解,而且所设计的ER图与数据具体的组织方式无关,并可以被直观地转换为组织层数据模型。 lVa4KumEt1ZPBP4FmAC9Jc9iRM2DX1dbEdMk6E0g03u96qUvjRZIuV0WbF1ty551

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