暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

第七章 数据库设计(3)——概念结构设计(上)

凯哥的故事 2020-05-31
1542


概念结构设计



将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程就是概念结构设计。它是整个数据库设计的关键。本节讲解概念模型的特点,以及用E-R模型来表示概念模型的方法。

概念模型

在需求分析阶段所得到的应用需求应该首先抽象为信息世界的结构,然后才能更好、更准确地用某一数据库管理系统实现这些需求。

概念模型的主要特点是:

(1)能真实、充分地反映现实世界,包括事物和事物之间的联系,能满足用户对数据的处理要求,是现实世界的一个真实模型。

(2)易于理解,可以用它和不熟悉计算机的用户交换意见。用户的积极参与是数据库设计成功的关键。

(3)易于更改,当应用环境和应用要求改变时容易对概念模型修改和扩充。

(4)易于向关系、网状、层次等各种数据模型转换。

概念模型是各种数据模型的共同基础,它比数据模型更独立于机器、更抽象,从而更加稳定。描述概念模型的有力工具是E-R模型。

E-R模型

P.P.S.Chen提出的E-R模型是用E-R图来描述现实世界的概念模型。前面已经简单介绍了E-R模型涉及的主要概念,包括实体、属性、实体之间的联系等,指出了实体应该区分实体集和实体型,初步讲解了实体之间的联系。下面首先对实体之间的联系做进一步介绍,然后讲解E-R图。

①实体之间的联系

在现实世界中,事物内部以及事物之间是有联系的。实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体型的实体集之间的联系。

(1)两个实体型之间的联系

两个实体型之间的联系可以分为以下三种:

①一对一联系(1:1)

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

例如,学校里一个班级只有一个正班长,而一个班长只在一个班中任职,则班级与班长之间具有一对一联系。

②一对多联系(1:n)

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

例如,一个班级中有若干名学生,而每个学生只在一个班级中学习,则班级与学生之间具有一对多联系。

③多对多联系(m:n)

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

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

可以用图形来表示两个实体型之间的这三类联系,如下图所示。

(2)两个以上的实体型之间的联系

一般地,两个以上的实体型之间也存在着一对一、一对多和多对多联系。

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

又如,有三个实体型:供应商、项目、零件,一个供应商可以供给多个项目多种零件,而每个项目可以使用多个供应商供应的零件,每种零件可由不同供应商供给,由此看出供应商、项目、零件三者之间是多对多的联系,如上图(b)所示。

(3)单个实体型内的联系

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

一般地,把参与联系的实体型的数目称为联系的度。两个实体型之间的联系度为2,也称为二元联系;三个实体型之间的联系度为3,称为三元联系;N个实体型之间的联系度为N,也称为N元联系

②E-R图

E-R图提供了表示实体型、属性和联系的方法。

(1)实体型用矩形表示,矩形框内写明实体名。

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

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

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

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

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

③一个实例

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

物资管理涉及以下几个实体。

  • 仓库:属性有仓库号、面积、电话号码;

  • 零件:属性有零件号、名称、规格、单价、描述;

  • 供应商:属性有供应商号、姓名、地址、电话号码、账号;

  • 项目:属性有项目号、预算、开工日期;

  • 职工:属性有职工号、姓名、年龄、职称。

这些实体之间的联系如下:

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

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

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

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

下面给出此工厂的物资管理E-R图,如下图所示。其中,图(a)为实体属性图,图(b)为实体联系图,图(c)为完整的E-R图。这里把实体的属性单独画出仅仅是为了更清晰地表示实体及实体之间的联系。

ISA联系

E-R方法是抽象和描述现实世界的有力工具。用E-R图表示的概念模型独立于具体的数据库管理系统所支持的数据模型,是各种数据模型的共同基础,因而比数据模型更一般、更抽象、更接近现实世界。E-R模型得到了广泛的应用,人们在基本E-R模型的基础上进行了某些方面的扩展,使其表达能力更强。

用E-R方法构建一个项目的模型时,经常会遇到某些实体型是某个实体型的子类型。例如,研究生和本科生是学生的子类型,学生是父类型。这种父类-子类联系称为ISA联系,表示“is a”的语义。例如,下图中研究生is a学生,本科生is a学生。ISA联系用三角形来表示。

ISA联系一个重要的性质是子类继承了父类的所有属性,当然子类也可以有自己的属性。例如,本科生和研究生是学生实体的子类型,他们具有学生实体的全部属性,研究生子实体型还有“导师姓名”和“研究方向”两个自己的属性。

ISA联系描述了对一个实体型中实体的一种分类方法,下面对分类方法做进一步说明。

①分类属性

根据分类属性的值把父实体型中的实体分派到子实体型中。例如上图中,在ISA联系符号三角形的右边加了一个分类属性“学生类别”,它说明一个学生是研究生还是本科生由“学生类别”这个分类属性的值决定。

②不相交约束与可重叠约束

不相交约束描述父类中的一个实体不能同时属于多个子类中的实体集,即一个父类中的实体最多属于一个子类实体集,用ISA联系三角形符号内加一个叉号“X”来表示。例如,下图表明一个学生不能既是本科生又是研究生。如果父类中的一个实体能同时属于多个子类中的实体集,则称为可重叠约束,子类符号中没有叉号表示是可重叠的。

③完备性约束

完备性约束描述父类中的一个实体是否必须是某一个子类中的实体,如果是,则叫做完全特化(total specialization),否则叫做部分特化(partial specialization)。完全特化用父类到子类的双线连接来表示,单线连接则表示部分特化。假设学生只有两类,要么是本科生,要么是研究生,二者必居其一,这就是完全特化的例子,如上图所示。


文章转载自凯哥的故事,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论