第3章实体联系模型(E-R模型)本章要点:三个世界的概念E-R模型的基本要素——实体、属性、联系E-R模型转换为关系模式的方法3.1E—R模型3.1.1三个世界概念模型:把现实世界转换为信息世界的模型,E-R模型实施模型:把信息世界转化为数据世界使用的模型,关系模型事物类事物性质实体集实体属性文件记录数据项现实世界信息世界数据世界3.1.2E-R模型的组成要素及表示方法1.E-R图的组成要素及其画法实体名联系名属性名实体表示属性表示联系表示3.1.2E-R模型的组成要素及表示方法2.实体间不同联系情况的E-R图表示法联系分为:一对一(1:1)、一对多(1:n)、多对多(m:n)【例3-1】两个实体集之间的一对一的联系的绘制方法。假设某学院有若干个系,每个系只有一个主任。则主任和系之间是一对一的关系。主任和系的属性分别如下:主任——编号,姓名,年龄,学历;系——系编号,系名主任和系之间是一个管理关系解:描述主任和系之间的E-R图可如下图:1主任系管理1姓名年龄学历编号系编号系名任职时间【例3-2】两个实体集之间的一对多的联系的绘制方法。假设在某仓库管理系统中,有两个实体集:仓库和商品。仓库用来存放商品,且规定一类商品只能存放在一个仓库中,一个仓库可以存放多件商品。仓库和商品之间是一对多的联系。仓库和商品的属性分别如下:仓库——仓库号,地点,面积联单商品——商品号,商品名,价格在存放联系中要反映出存放商品的数量。解:描述仓库和商品之间的E-R图可如下图所示1仓库商品存放n地点面积仓库号商品号价格数量商品名【例3-3】两个实体集之间的多对多的联系的绘制方法。假设在某教务管理系统中,一个教师可以上多门课,一门课也可以由多个老师去上。教师和课程之间是多对多的联系。教师和课程可用以下属性来描述:教师——教师号,教师名,职称课程——课程号,课程名,班级在“讲授”联系中应能反映出教师的授课质量。解:描述教师和课程之间的E-R图可如下图所示。m教师课程讲授n教师名职称教师号课程号班级质量课程名3.2E—R图的设计方法E-R图通常都应经过以下两个阶段:(1)针对每一用户画出该用户信息的局部E—R图,确定该用户视图的实体、属性和联系。需注意的是:能作为属性的就不要作为实体,这有利于E—R图的简化。(2)综合局部E—R图,生成总体E—R图。在综合过程中,同名实体只能出现一次,还要去掉不必要的联系,以便消除冗余。一般来说,从总体E—R图必须能导出原来的所有局部视图,包括实体、属性和联系。【例3-4】某学校管理系统中有三个部门:后勤部、学生处和财务处。后勤部用来管理学生的住宿;教务处用来管理学生选课和教师任课;财务处用来管理发放教师的工资。后勤部涉及到的实体及实体之间的联系如下:学生:属性有学号、姓名、性别、年龄、专业和入学时间宿舍:楼号、房间、档次学生与宿舍的联系是一个学生只能住在一个宿舍,一个宿舍能住多个学生,学生住宿要交租金。教务处涉及到的实体及实体之间的联系如下:学生:属性有学号、姓名、性别、年龄、专业和入学时间教师:属性有教师号、姓名、性别、职称、专业课程:属性有课程号、课程名、学时数、专业各实体关系描述如下:一个学生可以选多门课,一门课可以由多个学生选修;一个教师可以教多门课,一门课也可以由多个老师教;学生选修某门课有一个成绩;教师教某门课有一个质量评价。财务处涉及到的实体及实体之间的联系如下:教师:属性有教师号、姓名、性别、职称、专业工资:属性有基本工资、加班工资、扣税、工资编号教师和工资的联系是:一个教师只能领一份工资,一份工资只能由一个教师领,领工资时应注明是某月工资。解:先根据题意设计出各部门的局部E-R图n学生宿舍住1租金学生姓名专业学号宿舍楼号档次年龄性别入学时间房间号(a)后勤部的局部E-R图教师姓名职称教师号课程课程号学时数课程名性别专业专业m教师课程讲授n质量学生选修mn成绩(b)教务处的局部E-R图(学生同(a)图)工资扣税基本工资加班工资工资编号工资教师领11月份1m学生住宿舍n1教师课程选修mn讲授n领工资1(c)财务处的局部E-R图(教师同(b)图)某学校管理系统的全局E-R图3.3E—R模型到关系模型的转换把E-R图转换为关系模型可遵循如下原则:(1)对于E—R图中每个实体集,都应转换为一个关系,该关系应包括对应实体的全部属性,并应根据关系所表达的语义确定哪个属性或哪几个属性组作为“主关键字”,主关键字用来标识实体。(2)对于E—R图中的联系,情况比较复杂,要根据实体联系方式的不同,采取不同的手段加以实现。下面着重讨论联系的转换方法。3.3.1两实体集间1:n联系两实体集间1:n联系,可将“一方”实体的主关键字纳入“n方”实体集对应的关系中作为“外部关键字”,同时把联系的属性也一并纳入“n方”对应的关系中。3.3.2两实体集间m:n联系对于两实体集间m:n联系,必须对“联系”单独建立一个关系,用来联系双方实体集。该关系的属性中至少要包括被它所联系的双方实体集的“主关键字”,并且如果联系有属性,也要归入这个关系中。3.3.3两实体集间的1:1的联系假设A实体集与B实体集是1:1的联系,联系的转换有三种方法:①把A实体集的主关键字加入到B实体集对应的关系中,如果联系有属性也一并加入;②把B实体集的主关键字加入到A实体集对应的关系中,如果联系有属性也一并加入;③建立第三个关系,关系中包含两个实体集的主关键字,如果联系有属性也一并加入。小结把现实世界转换成为计算机能够处理的数据世界,需经过两个阶段:第一个阶段需使用概念模型把现实世界抽象成信息世界,第二阶段是使用实施模型把信息世界转换为数据世界。最常用的概念模型为E-R模型,E-R模型的三个基本要素是实体、属性和联系。设计E-R图一般经过两个步骤,第一步是抽象出各部门的局部E-R图,第二步是把局部E-R图组合成全局E-R图。E-R图只是信息的一种抽象表示,还需把它转化成相应的实施数据模型才能转化为数据库中的数据。把E-R图转化为关系模型,不但要把实体转化成关系,而且在关系中还应反映出E-R图中各实体集之间的联系。