项目1.2 构建E-R概念模型
模型,特别是具体的实物模型,人们并不陌生。例如,一张地图、一组建筑设计沙盘、一架精致的航模飞机,都是具体的模型。模型是对现实世界特征的模拟和抽象。数据模型也是一种模型,它是对现实世界数据特征的抽象,是对客观事物及其联系的数据描述,是对现实世界(存在于人脑之外的客观世界)的模拟。在数据库中用数据模型来抽象、表示和处理现实世界中的数据和信息。
数据模型主要可分为三种类型:概念模型、逻辑模型和物理模型。概念模型是按用户的观点来对数据和信息建模,主要用于数据库设计;逻辑模型是按计算机系统的观点对数据进行建模,主要用于DBMS的实现;物理模型是对数据最底层的抽象,它描述数据在磁盘上的存储方式和存取方法。
要将现实世界转变为机器能够识别的形式,必须经过两次抽象,即先使用某种概念模型为客观事物建立概念级的模型,将现实世界抽象为信息世界,再把概念模型转变为计算机上某一DBMS支持的逻辑模型,将信息世界转变为机器世界,如图1-3所示。
1 构建ER概念模型
图1-3 数据的转换
概念模型用于信息世界的建模,是现实世界到信息世界的第一层抽象,是数据库设计人员进行数据库设计的有力工具,也是数据库设计人员和用户之间进行交流的语言。因此,概念模型一方面应该具有较强的语义表达能力,能够方便、直接地表达应用中的各种语义知识,另一方面,它还应该简单、清晰、易于理解。
概念模型的表示方法很多,其中最为著名、最为常用的是P.P.S.Chen于1976年提出的实体-联系方法(Entity-Relationship Approach)。该方法用E-R图(实体-联系图)来描述现实世界的概念模型,E-R方法也称为E-R概念模型。下面介绍E-R概念模型中涉及的主要概念及E-R图的绘制方法。
任务1.2.1 认识实体
客观存在并可以相互区分的事物叫实体。从具体的人、物、事件到抽象的状态与概念,都可以用实体抽象地表示。例如,在学校里,一个学生、一个教师、一门课程都可称为实体。同类的多个实体可以构成实体集,如多个学生实体可构成学生实体集。在不引起混淆的情况下,本书有时用实体来表示实体集的概念。
【例1-1】 在教学管理系统所描述的数据内容中,有哪些可作为实体?
分析:在该教学管理系统中,作为具体存在的人(如:学生、教师)和作为抽象的概念(如:学院、课程等)都应视为实体。
任务1.2.2 理解属性
属性是实体所具有的某些特性,通过属性对实体进行刻画。实体由属性组成。一个实体本身具有很多属性,能够唯一标识实体的属性称为该实体的键。例如,学号是学生实体的键,每个学生都有一个属于自己的学号,通过学号可以唯一确定是哪位学生,在一个学校里,不可能有两个学生具有相同的学号。实体由哪些属性组成取决于人们所关心的内容。例如,高校学生实体可由学号、姓名、年龄、性别、籍贯、专业和学院等组成,常表示为:学生(学号、姓名、年龄、性别、籍贯、专业、学院编号)。有了这个表示后,将(“2019130143”“马力华”“19”“男”“重庆”“信息安全”“01”)这些属性值组合起来用于表示马力华这个学生。
【例1-2】 教学管理系统中各实体分别有哪些属性?
分析:可根据问题描述和对用户调研获取的信息,总结出各实体的属性集合。
学院(学院编号、学院名称、学院院长、办公室、办公电话)
学生(学号、姓名、年龄、性别、籍贯、专业、学院编号)
教师(教工号、姓名、性别、职称、专业方向)
课程(课程号、课程名、学时数、学分、教材)
任务1.2.3 判别联系的类型
现实世界中的事物之间是有联系的,这些联系必然要在信息世界加以反映。例如,教师实体与学生实体之间存在着教和学的联系。实体之间的联系可分为以下三类。
1.一对一联系(1:1)
设有两个实体集A和B。如果A中至多有一个实体与B中的一个实体有联系,且B中至多有一个实体与A中的一个实体有联系,则称A和B之间存在一对一联系,记作1:1。例如,看电影时,观众和座位之间就是一对一联系,因为一个人只能坐一个座位,一个座位只能由一个人来坐。
2.一对多联系(1:n)
设有两个实体集A和B。如果A中的一个实体与B中的若干实体有联系,但B中每个实体只与A中的一个实体相联系,则称A和B之间存在一对多联系,记作1:n。例如,班级与学生之间是一对多联系,因为一个班中可以有若干学生,但一个学生只能属于一个班。
3.多对多联系(m:n)
设有两个实体集A和B。如果A中的一个实体与B中的若干实体相联系,且B中每个实体也与A中的多个实体相联系,则称A和B之间存在多对多联系,记作m:n。例如,学生与课程之间是多对多联系,因为一个学生可以选修若干课程,一门课程可以被若干学生选修。
【例1-3】 指出教学管理系统中学院和教师、学院和学生、学院和课程、教师和学生、学生和课程、教师和课程等实体间各种联系的类型。
分析:一个学院有多个教师,但一个教师只能属于一个学院,所以,学院和教师是(1:n);同理,学院和学生是(1:n);一个学院可开设多门课程,一门课程只能由一个学院开设,所以,学院和课程是(1:n);一位教师可同时辅导多个学生,而一个学生在某一个时间只能由一位教师辅导,所以,教师和学生是(1:n);一个学生可以选修多门课程,一门课程可以被多个学院选修,所以,学生和课程是(m:n);一位教师可以讲授多门课程,一门课程可以被多位教师讲授,所以,教师和课程是(m:n)。
【课堂实践1】
判断下列实体间联系的类型。
1)班级和正班长2)班级和班委3)班级和学生4)供应商和商品
5)商店和顾客6)工厂和产品7)出版社和作者8)商品和超市
任务1.2.4 绘制E-R图
E-R图(实体-联系图)是抽象描述现实世界的有力工具。它通过绘图将实体及实体间的联系刻画出来,为客观事物建立概念模型。
1.建立实体联系图的步骤
下面以某高校的教学管理系统为例,说明E-R图的绘制方法。
第1步:确定现实系统可能包含的实体。
为简单起见,假设该教学管理系统所涉及的实体有学院、教师、学生、课程。
第2步:确定每个实体的属性,特别要注明每个实体的键。
键是一个实体的属性集合中可唯一确定具体个体的某一个或几个属性的集合。教学信息管理系统的实体包含的属性和键如下。
1)对学院实体,属性有学院编号、学院名称、院长、办公室、办公电话,其中学院编号是键。
2)对教师实体,属性有教工号、姓名、性别、年龄、职称、专业方向,其中教工号是键。
3)对学生实体,属性有学号、姓名、性别、年龄、籍贯、专业、学院编号,其中学号是键。
4)对课程实体,属性有课程号、课程名、学时、学分、教材,其中课程号是键。
第3步:确定实体之间可能存在的联系,并结合实际情况给每个联系命名。
教学管理系统中各实体之间存在如下联系。
1)一位教师可以讲授多门课程,一门课程可以被多位教师讲授,这里将教师与课程之间的联系命名为“讲授”。
2)一个学生可以选修多门课程,一门课程可以被多位学生选修。这里将学生与课程之间的联系命名为“选修”。
3)在某个时间和地点,一位教师可指导多位学生,但每个学生在某个时间和地点只能被一位教师指导。这里把教师和学生之间的联系命名为“指导”。
4)一个学院有多名教师,一个教师归属于一个学院。这里将学院与教师之间的联系命名为“聘用”。
5)一个学院录取多名学生,一个学生归属于一个学院。这里将学院与学生之间的联系命名为“录取”。
6)一个学院开设多门课程,一门课程由一个学院管理。这里将学院与课程之间的联系命名为“开课”。
在对联系进行命名时,一般使用动词,当使用该动词连接两边的实体时,通常能表达一个符合逻辑的且比较完整的意思。例如,使用动词“讲授”为教师与课程的联系命名,且教师“讲授”课程是一个符合逻辑的完整句子。这也是判断实体之间是否有联系和对联系命名是否恰当的简单标准。
第4步:确定每个联系的种类和可能有的属性。
有时为了更好地刻画联系的某些特性,需要对联系指定属性。根据教学管理系统中实体间的联系情况,可以确定以下联系的类型。
1)教师和课程之间的“讲授”是m:n联系。
2)学生和课程之间的“选修”是m:n联系。为了更好地刻画选修的结果,为“选修”联系指定成绩属性。
3)教师和学生之间的“指导”是1:n联系。为了更好地刻画指导的环境因素,为“指导”联系指定时间和地点属性。
4)学院与教师之间的“聘用”为1:n联系。为了说明聘用的关系,为“聘用”联系指定条件、年限属性。
5)学院与学生之间的“录取”为1:n联系。为了明确录取的时间和年级,为“录取”联系指定时间、年级属性。
6)学院和课程之间的“开课”为1:n联系。
第5步:绘制E-R图,建立概念模型,完成现实世界到信息世界的第一次抽象。
2.绘制E-R图的方法
在E-R图中有如下规定。
1)用长方形表示实体,在框内写上实体名。
2)用椭圆形表示实体的属性,并用下画线标注实体的键,用无向边把实体与其属性连接起来。
例如:学院、教师、学生、课程四个实体及属性可以表示成如图1-4所示的形式。
3)用菱形表示实体之间的联系,菱形内写上联系名。用无向边把菱形与有关的实体连接,在无向边旁标上联系的类型。若实体之间的联系也有属性(实体以外的属性),则把属性和菱形也用无向边连接起来。
例如,图1-5是教学管理中教师、学生、课程三个实体的E-R图(为了使图形简洁,这里未将学院实体表达在里面)。
4)如果实体的属性太多,为了使E-R图更清楚明了,可以在E-R图中只绘制实体之间的联系,如图1-6所示,而将实体及属性放到另一幅图中表示,如图1-4所示。这样,教学管理的E-R图则由图1-4和图1-6组成。
图1-4 E-R图中实体及属性的表示
图1-5 教学管理E-R图
图1-6 实体联系E-R图
3.注意事项
在建立实体-联系模型时,应注意以下几个问题。
1)实体-联系模型要全面正确地刻画客观事物,各类命名要清楚明了,易于理解。
2)实体中的键应注意确保唯一性,即作为键的属性应该是能够唯一识别实体的属性(不一定是单个属性,也可以是某几个属性的组合)。
3)实体间的联系常常通过实体中某些属性的关系来表达,因此在选择组成实体的属性时,应考虑到如何更好地实现实体间的联系。
4)有些属性是通过实体间的联系反映出来的,如选修中的分数属性,对这些属性应特别注意,因为它们经常是在将概念模型向逻辑模型转换时的重要数据项。
5)前面给出的教学管理例子中,联系都是存在于两个实体之间的,且实体之间只存在一种联系,这是最简单的情况。实际中,联系可能存在于多个实体之间,实体之间可能有多种联系。
6)E-R概念模型具有客观性和主观性两重含义。E-R概念模型是在客观事物或系统的基础上形成的,在某种程度上反映了客观现实,反映了用户的需求,因此E-R概念模型具有客观性。但E-R概念模型又不等同于客观事物本身,它往往反映事物的某一方面,至于选取哪个方面或哪些属性以及如何表达则取决于观察者本身的目的与状态。从这个意义上说,E-R概念模型又具有主观性。
【课堂实践2】
1)在如图1-6所示的E-R图中加入学院实体,添加聘用、开课、录取三个联系,并注明属性和联系类型。
2)设有商店和顾客两个实体。商店有属性:商店编号、商店名、地址、电话。顾客有属性:顾客编号、姓名、地址、年龄、性别。假设一个商店有多个顾客购物,一个顾客可以到多个商店购物,顾客每一次去商店购物有消费金额和日期。试绘制E-R图,并注明属性和联系类型。