1E-R图主讲老师:王文彬2实体-联系模型•2.1基本概念•2.2E-R图•2.3一个简单的综合示例•2.4E-R图设计剖析•2.5复杂系统E-R图示例•2.6E-R模型到关系模型的转换32.1基本概念•实体-联系模型•1976年,P.P.S.Chen提出E-R模型(Entity-RelationshipModel),用E-R图来描述概念数据模型.观点:世界是由一组称作实体的基本对象和这些对象之间的联系构成的.实体实体42.1基本概念(1)实体(Entity)客观存在并可相互区别的事物称为实体。可以是具体的人、事、物或抽象的概念。客观实体,如人,汽车,图书,……抽象实体,如帐户,贷款,……(2)属性(Attribute)实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。例如:学生实体可以由学号、姓名、性别、出生年份、系、入学时间等属性组成。某个学生实体的数据模型某个汽车实体的数据模型姓名性别年龄学号类型速度油耗张三男22S001保时捷12.5L/百公里150km/h52.1基本概念(3)实体集(EntitySet):具有相同类型和共享相同属性的实体的集合.如学生,课程.62.1基本概念(4)域(Domain)属性的取值范围称为该属性的域。(5)实体型(EntityType)用实体名及其属性名集合来抽象和刻画同类实体称为实体型例如:学生(学号、姓名、性别、出生年份、系、入学时间)就是一个实体型。(6)码(Key)唯一标识实体的属性集称为码。例如:学号是学生实体的码。72.1基本概念(7)联系(Relationship)现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系两个实体型间联系可以分为三类:一对一联系(1:1)一对多联系(1:n)多对多联系(m:n)8两个实体型间的联系实体型1联系名实体型2111:1联系实体型1联系名实体型2mnm:n联系实体型1联系名实体型21n1:n联系9两个实体型间的联系•一对一联系–如果对于实体集A中的每一个实体,实体集B中至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系。记为1:1。–实例班级与班长之间的联系:系与系主任之间的联系;部门与部门经理间的联系;领导系主任系11实体型A联系名实体型B1110两个实体型间的联系(续)•一对多联系–如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系记为1:n–实例班级与学生之间的联系:系与教职员工间的联系;公司员工与部门间的联系包括班级学生1n实体型A联系名实体型B1n11两个实体型间的联系(续)•多对多联系(m:n)–如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体B具有多对多联系。记为m:n–实例课程与学生之间的联系:教师与课程之间的联系;实体型B实体型A联系名mn选课学生课程MN12•两个以上实体型之间一对多联系课程讲授教师1m两个以上实体型间1:n联系参考书n两个以上实体型间m:n联系供应商供应项目mp零件n多个实体型间联系13•单个实体型内的一对多联系单个实体型联系职工领导1n单个实体型内部1:n联系14实体-联系模型•2.1基本概念•2.2E-R图•2.3一个简单的综合示例152.2E-R图•E-R图概念模型的表示工具•实体-联系方法(E-R方法)–用E-R图来描述现实世界的概念模型–E-R方法也称为E-R模型162.2E-R图•1.E-R图的组成要素符号含义实体,一般是名词属性,一般是名词关系,一般是动词172.2E-R图•2.实体间不同联系情况的E-R图表示法【例2-1】两个实体集之间的一对一的联系的绘制方法。假设某学院有若干个系,每个系只有一个主任。则主任和系之间是一对一的关系。主任和系的属性分别如下:主任——编号,姓名,年龄,学历;系——系编号,系名主任和系之间是一个管理关系18解:描述主任和系之间的E-R图可如下图:1主任系管理1姓名年龄学历编号系编号系名任职时间19两个实体集之间的一对多的联系的绘制方法•【例2-2】假设在某仓库管理系统中,有两个实体集:仓库和商品。仓库用来存放商品,且规定一类商品只能存放在一个仓库中,一个仓库可以存放多件商品。仓库和商品之间是一对多的联系。仓库和商品的属性分别如下:仓库——仓库号,地点,面积联单商品——商品号,商品名,价格在存放联系中要反映出存放商品的数量。20解:描述仓库和商品之间的E-R图可如下图所示1仓库商品存放n地点面积仓库号商品号价格数量商品名21两个实体集之间的多对多的联系的绘制方法。•【例2-3】假设在某教务管理系统中,一个教师可以上多门课,一门课也可以由多个老师去上。教师和课程之间是多对多的联系。•教师和课程可用以下属性来描述:教师——教师号,教师名,职称课程——课程号,课程名,班级在“讲授”联系中应能反映出教师的授课质量。22解:描述教师和课程之间的E-R图可如下图所示。m教师课程讲授n教师名职称教师号课程号班级质量课程名232.3一个简单的综合示例•E-R图实例:某工厂物资管理E-R图•例:为仓库管理设计一个ER模型。仓库主要管理零件的采购和供应等事项。仓库根据需要向外面供应商订购零件,而许多工程项目需要仓库提供零件。24E-R图实例:某工厂物资管理E-R图•ER图建立过程如下:Step1首先确定实体类型。仓库主要管理零件的采购和供应等事项。仓库根据需要向外面供应商订购零件,而许多工程项目需要仓库提供零件。本问题有四个实体类型:仓库,工程项目,零件,供应商。仓库工程项目零件供应商25E-R图实例:某工厂物资管理E-R图•Step2确定联系类型。项目和零件之间是M:N联系零件和供应商之间也是M:N联系仓库与零件关系是一对多关系1:N26E-R图实例:某工厂物资管理E-R图•Step3把实体类型和联系类型组合成ER图。保存供应项目仓库零件供应商需要1nnmnm27E-R图实例:某工厂物资管理E-R图•Step4确定实体类型和联系类型的属性。•Step5确定实体类型的关键码,在ER图中属于码的属性名下画一条横线。零件颜色数量保存供应项目仓库零件供应商需要1nnmnm项目编号项目名称立项日前零件型号零件名零件重量供应商名供应商号联系方式仓库编号仓库名所在地面积28研究所有若干个研究室,每一个研究室多位科研人员在指定的办公地点.每一位科研人员只属于一个研究室,有编号,姓名,性别和年龄.研究所承担了多个科研项目,包括负责人,项目号项目名和开工时间(每位科研人员可以参加多个科研项目).每个科研项目有多位科研人员参加.科研人员参加科研项目均有相应的工作量。画E—R图思考?29•实体:研究所,研究室,研究人员,项目•联系:–研究所,研究室之间联系–研究室,研究人员间联系–研究人员,项目之间联系30研究所E-R图是否需要研究所到科研项目间联系?工作量是放在实体上还是联系上?包含有0,n0,n研究所研究所编号研究所名地址piM研究室研究室编号研究室名办公地点piM研究员编号姓名性别年龄piM科研项目项目号项目名开工时间项目负责人piM参与工作量31ER模型-总结•优点–简单,容易理解,真实反应用户需求;–与计算机无关,用户容易接受。•遇到实际问题一般先设计一个ER模型,然后把ER模型转换成计算机能实现的数据模型——逻辑数据模型。32实体-联系模型•2.1基本概念•2.2E-R图•2.3一个简单的综合示例•2.4E-R图设计剖析•2.5复杂系统E-R图示例•2.6E-R模型到关系模型的转换332.4E-R图设计剖析•(1)实体与属性•(2)联系的属性•(3)实体与联系34实体or属性?•学生(学号,姓名,班级,地址,电话)•班长(学号,姓名,班级,地址,电话)•副班长(学号,姓名,班级,地址,电话)•教师(编号,姓名,爱好,住址)•系主任(编号,姓名,爱好,住址)•学生(学号,姓名,班级,地址,电话,职务)•教师(编号,姓名,爱好,住址,职务)35联系的属性课程学生选课课程名课程号教师姓名性别年龄mnm:n学号成绩成绩成绩36•(3)实体与联系–实体之间的联系类型并不取决于实体本身,而是取决于现实世界的管理方法,或者说取决于语义(业务规则),即同样两个实体,如果有不同的语义则可以得到不同的联系类型。37仓库和器件实体间的关联•如果规定一个仓库只能存放一种器件,并且一种器件只能存放在一个仓库,这时仓库和器件之间的联系是一对一的;•如果规定一个仓库可以存放多种器件,但是一种器件只能存放在一个仓库,这时仓库和器件之间的联系是一对多的;•如果规定一个仓库可以存放多种器件,同时一种器件可以存放在多个仓库,这时仓库和器件之间的联系是多对多的。38为什么要讨论实体之间的联系?实体之间的联系类型决定了数据库设计时的结果,与数据库的设计质量密切相关仓库号城市面积WH1北京500WH2上海450WH3广州200WH4重庆300器件号器件名称数量P1显示卡100P2声卡120P3解压卡180P4散热风扇20039仓库和器件是一对一联系仓库号城市面积器件号器件名称数量WH1北京500P1显示卡100WH2上海450P2声卡120WH3广州200P3解压卡180WH4重庆300P4散热风扇20040如果两表之间的联系是一对一的班级管理班长111:1联系学号姓名年龄性别年级2005004王小明19女20052005006李勇20男2005班级号班级名班长31105011班王小明31105022班李勇41仓库和器件间是一对多关系器件号器件名称数量仓库号P1显示卡100WH1P2声卡120WH1P3解压卡180WH2P4散热风扇200WH242如果两表之间的联系是一对多的学号姓名年龄性别年级班级号2005004王小明19女200531105012005006黄大鹏20男200531105012005008张文斌18女20053110502班级号班级名班长31105011班王小明31105022班李勇班级组成学生1n1:n联系43仓库和器件是多对多的关系仓库号器件号数量WH1P1100WH1P2120WH2P3180WH2P4200WH3P1150WH4P1180WH4P2200WH4P3100WH4P414044如果两表之间的联系是多对多的学号课程号成绩20020041922005004285200500438820050062902005006380………………课程选修学生mn成绩m:n联系45同样两个实体,如果赋予不同的语义则有不同的设计结果。也就是说我们在概念模型中讨论实体之间的联系类型直接影响着目标数据库的设计结果和设计质量。46实体-联系模型•2.1基本概念•2.2E-R图•2.3一个简单的综合示例•2.4E-R图设计剖析•2.5复杂系统E-R图示例•2.6E-R模型到关系模型的转换472.5复杂系统E-R图示例•复杂E-R图通常都应经过以下两个阶段:(1)针对每一用户画出该用户信息的局部E—R图,确定该用户视图的实体、属性和联系。需注意的是:能作为属性的就不要作为实体,这有利于E—R图的简化。(2)综合局部E—R图,生成总体E—R图。在综合过程中,同名实体只能出现一次,还要去掉不必要的联系,以便消除冗余。一般来说,从总体E—R图必须能导出原来的所有局部视图,包括实体、属性和联系。48分步设计E-R图•【例2-4】某学校管理系统中有三个部门:后勤部、教务处和财务处。后勤部用来管理学生的住宿;教务处用来管理学生选课和教师任课;财务处用来管理发放教师的工资;•一个学生只能住在一个宿舍,一个宿舍能住多个学生,学生住宿要交租金;•一个学生可以选多门课,一门课可以由多个学生选修;一个教师可以教多门课,一门课也可以由多个老师教;学生选修某门课有一个成绩;教师教某门课有一个质量评价;