第二章 数据模型和数据库系统结构改 联系客服

发布时间 : 星期五 文章第二章 数据模型和数据库系统结构改更新完毕开始阅读4117700ef12d2af90242e6ef

数据库管理系统及应用

③多对多联系(m:n)

如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥O)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体集B具有多对多联系,记为m:n。

例如,一门课程同时有若干个学生选修,而一个学生可以同时选修多门课程,则课程与学生之间具有多对多联系。

实际上,一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。 可以用图形来表示两个实体型之间的这三类联系,如图2.2所示。

实体型A 1 联系名 1 实体型B (a) 1:1联系

实体型A 1 联系名 n 实体型B (a) 1:n联系

实体型A m 联系名 n 实体型B (a) m:n联系

图 2.2 两个实体型之间的三种联系

一般地,两个以上的实体型之间也存在着一对一、一对多、多对多联系。 若实体集E1,E2,...,En存在联系,对于实体集Ej(j=1,2,...,i-1,i+1,..,n)中的给定实体,最多只和Ei中的一个实体相联系,则说Ei与El,E2,?,Ei-1,Ei+1,?,En之间的联系是一对多的。

例如,对于课程、教师与参考书三个实体型,如果一门课程可以有若干个教师讲授,使用若干本参考书,而每一个教师只讲授一门课程,每一本参考书只供一门课程使用,则课程与教师、参考书之间的联系是一对多的,如图2.3(a)所示。

课程 1 讲授 m 课程 (a)

n 参考书 n 项目 (b) 供应商 m 供应 p 零件 供应商 1 供应 m 图 2.3 三个实体型之间的联系示例

图 2.4 一个实体型之间 一对多联系示例

又如,有三个实体型:供应商、项目、零件,一个供应商可以供给多个项目多种零件,而每个项目可以使用多个供应商供应的零件,每种零件可由不同供应商供给,

— 19 —

第二章 数据模型和数据库系统结构

由此看出供应商、项目、零件三者之间是多对多的联系,如图2.3(b)所示。要注意,三个实体型之间多对多的联系和三个实体型两两之间的(三个)多对多联系的语义是不同的。

同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。例如职工实体集内部具有领导与被领导的联系,即某一职工(干部)“领导” 若干名职工,而一个职工仅被另外一个职工直接领导,因此这是一对多的联系,如图2.4所示。

二、概念模型的表示方法

概念模型是对信息世界建模,所以概念模型应该能够方便、准确地表示出上述信息世界中的常用概念。概念模型的表示方法很多,其中最为著名最为常用的是P.P.S.Chen于1976年提出的实体-联系方法 (Entity-Relationship Approach)。该方法用E-R图来描述现实世界的概念模型,E-R方法也称为E-R模型。

E-R图提供了表示实体型、属性和联系的方法: ·实体型:用矩形表示,矩形框内写明实体名。

·属性:用椭圆形表示,并用无向边将其与相应的实体连接起来。

例如:学生实体具有学号、姓名、性别、出生年份、系、入学时间等属性,用E-R图表示如图2.5所示。

学生 学号 姓名 性别 出生年份 系 入学时间 图 2.5 学生实体及其属性

·联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m: n)。

需要注意的是,如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。

例如图2.3(b)中,用“供应量”来描述联系“供应”的属性,表示某供应商供应了多少数量的零件给某个项目。那么这三个实体及其之间联系的E-R图表示可如图2.6所示。

下面用E-R图来表示某个工厂物资管理的概念模型。

— 20 —

项目 供应量 供应 零件 供应商 图 2.6 联系的属性示例

数据库管理系统及应用

物资管理涉及的实体有:

·仓库 属性有仓库号、面积、电话号码。 ·零件 属性有零件号、名称、规格、单价、描述。 ·供应商 属性有供应商号、姓名、地址、电话号码、账号。 ·项目 属性有项目号、预算、开工日期。 ·职工 属性有职工号、姓名、年龄、职称。 这些实体之间的联系如下:

(1)一个仓库可以存放多种零件,一种零件可以存放在多个仓库中,因此仓库和零件具有多对多的联系。用库存量来表示某种零件在某个仓库中的数量。

(2)一个仓库有多个职工当仓库保管员,一个职工只能在一个仓库工作,因此仓库和职工之间是一对多的联系。

(3)职工之间具有领导-被领导关系。即仓库主任领导若干保管员,因此职工实体集中具有一对多的联系。

(4)供应商、项目和零件三者之间具有多对多的联系。即一个供应商可以供给若干项目多种零件,每个项目可以使用不同供应商供应的零件,每种零件可由不同供应商供给。

下面给出此工厂的物资管理E-R图(如图2.7(c))。图2.7(a)为实体及其属性图,图2.7(b)为实体及其联系图。我们把实体的属性用另图画出仅仅是为了更清晰地表示实体及其实体之间的联系。

零件号 名称 规格 单价 描述 项目号 名称 开工日期 零件 供应商号 姓名 地址 电话号 项目 账号 零件 (a)实体及其属性图

图2.7 工厂物资管理E-R图

实体-联系方法是抽象和描述现实世界的有力工具。用E-R图表示的概念模型独立于具体的DBMS所支持的数据模型,它是各种其它数据模型的共同基础,因而比逻辑模型或物理模型更一般、更抽象、更接近现实世界。

— 21 —

第二章 数据模型和数据库系统结构

供应商 m 供应 n 项目 供应量 p 仓库 1 m 库存 n 零件 工作 n 1 职工 n 领导 库存量(b) 实体及其联系图 图2.7 工厂物资管理E-R图

姓名 地址 电话号仓库号面积 电话号职工号姓名 年龄 ngshan供应商号供应商 m 项目号ngshan账号 仓库 1 m 库存 p n 零件 零件号规格 ngshan工作 ngshann 1 职工 n 领导 职称 ngshang ngshann 项目 供应 库存量供应量 预算 开工日期名称 单价 描述 ngshang ngshan(c) 完整的实体联系图 图2.7 工厂物资管理E-R图

2.1.4 最常用的数据模型

目前,数据库领域中最常用的数据模型有四种,它们是: ·层次模型(Hierarchical Model) ·网状模型(Network Model) ·关系模型(Relational Model)

·面向对象模型(Object Oriented Model) 其中层次模型和网状模型统称为格式化模型。

格式化模型的数据库系统在20世纪70年代至80年代初非常流行,在数据库系统产品中占据了主导地位,现在已逐渐被关系模型的数据库系统取代,但在美国等一些国家,由于早期开发的应用系统都是基于层次数据库或网状数据库系统的,因此目前仍有不少层次数据库或网状数据库系统在继续使用。

— 22 —