
数据库设计与实现基础ER图.ppt
89页1第2章:基础 E-R图l本章要求 – 理解E-R图是什么 – 掌握基本E-R图的画法l本章的主要内容 – 2.1:E-R图概览及在软件开发中的位置 – 2.2:基础E-R图及其要素 – 2.3:基础E-R图的几个复杂问题讨论l属性详解l联系的约束详解l使用实体还是使用属性l使用实体还是使用联系*22.1:E-R图概览l一个E-R图示例:仓库存放供应商零件生产项目供应职工管理 属参与 属领导 属领导员工*32.1:E-R图在软件开发中的位置lE-R 图的位置 – 数据分析、描述的工具 – 数据分析、描述以E-R 图为主 – 需要其它文档辅助lE-R图的作用 – 帮助澄清用户数据需求分析员和用户对数据需求达成高度一致 – 数据逻辑模型设计的基础lE-R图的要求和评价标准 – 清晰、易懂 – 完整、精确、无二义转换、设计理解、表达现实世界概念模型:E-R逻辑模型: DBSchema2.1E-R图基本概念l历史 – E-R模型:Entity-Relationship Model – 1976年,P.P.S.Chen提出E-R模型,用E- R图来描述概念模型l观点 – 世界是由一组称作实体实体(entities)(entities)的基本对象 和这些对象之间的联系联系(relationships)(relationships)构成的*52.2:基础E-R图及其要素l2.2.1实体 – 实体的概念 – 实体的属性 – 实体的标识l2.2.2联系 – 联系的概念 – 联系和实体的关系 – 联系的度 – 联系的属性 – 二元联系的基数l基础E-R练习*62.2.1实体的概念l实体: 可以相互区分的事物 – 事物:事件、物体、概念 – 学生:甲、乙、丙… – 课程:DB、DS、SE…l实体集:同类型实体的集合 – {二年级一班的学生} – {DB,DS,SE}…l实体型:类型的特性和性质 – 学生、教师、课程、图书、货物订单…*72.2.1实体的属性l属性 – 来源于域,域是同类型值的集合 – 用来刻画实体的特征院系dnodname课程cnocname学生agesnonamepid*82.2.1实体的标识属性 l标识属性的必要性 – 概念上,实体互异 – 数据库上,实体必须用属性区分、标识l标识属性、码 – 实体的标识属性,称为实体的码(Key) – 能唯一标识实体的属性/属性组称作超码(Superkey) – 其任意真子集都不能成为超码的最小超码称为候选 码(Candidate Key) – 实体可以有多个候选码 – 例如:sno、pid都是学生的候选码学生agesnonamepid2.2.1主码l主码– 多候选码时,选择一个候选码,作为主码 – 一个实体集中任两个实体在主码上的取值不能相同 – 在E-R图中,主码使用下划线表示 – 多候选码时,一般选变化少的或习惯上的候选码作 为主码 – 主码一旦选择,整个组织有效*9院系dnodname课程cnocname学生agesnonamepid*102.2.2联系的概念 l联系 – 多个实体之间的关联关系 – 如:选课联系l联系实例 – 一个具体的多个实体间的相互关系 – 如:(甲,DS),(甲,OS),(乙,DS)…l联系集 – 同类型联系的集合 – {(甲,DS)(甲,OS)(乙,DS)…}甲乙丙丁DBDSOS…*112.2.2联系和实体的关系l实体和联系的关系 – 实体参与联系,扮演角色 – 一般地,扮演的角色是明确的,不需要显式指明l同型实体间的联系 – 同型实体间可以有联系 – 称作自环联系(recursive) – 联系扮演的角色需要指明仓库存 放供应商零件生 产项目供 应职工管 理参 与领 导 属领导员工*122.2.2联系的度l联系的度 – 两个实体参与的联系,称作二元联系 – 三个实体参与的联系,称作三元联系 – 三元以上(含三元)联系,习惯称作多元联系仓库存放供应商零件生产项目供应职工管理参与领导 属领导员工*13数据库系统概念----E-R6.2.2联系的属性l联系可以有属性 – 属性是描述性属性 – 属性是一个联系所具有的某种性质 – 例如,选课联系可以有属性:成绩l思考:下列特征,是选课联系的属性吗? – 选课门数 – 选课学生的学号 – 所选课程的编号8580甲 乙 丙 丁DB DS OS …学生课程学习 属snonamecnocnamescore*14数据库系统概念----E-R2.2.2联系的属性l联系属性 – 属性是描述性属性l下述内容,不是联系的属性 – 实体参与联系的数目 – 参与联系的实体的属性(包括实体的主码)8580甲 乙 丙 丁DB DS OS …学生课程学习 属snonamecnocnamescore2.2.2联系的属性l假设联系集R是由实体集E1,E2,…En形成的 。
联系集的属性包括:primary(E1) ∪ primary(E2) ∪… ∪ primary(En) ∪{a1,a2,…,am}*162.2.2二元联系的基数 l多对多,m:n – A中一个实体可以与B中多个实体相关联 – 反之亦然l一对多,1:m – A中一个实体可以与B中多个实体相关联 – B中一个实体至多可与A中一个实体相关联l多对一,m:1l一对一,1:1 – A中一个实体至多可与B中一个实体相关联 – 反之亦然 – 不一定是完美对集 l基数对联系的约束限制 – m:n不对联系产生约束 – 1:m,m:1,1:1是联系的约束课程学习学生院系隶属院长领导2.2.2二元联系的基数表示方式多方实体集单方实体集联系R从A到B是一 对一或多对一ABR联系R从A到B是多对 多或一对多ABR18数据库系统概念----ER模型2.2.2二元联系的基数表示方式-示例One-To-ManyOne-To- One19数据库系统概念----ER模型2.2.2二元联系的基数表示方式-示例Many-To-ManyMany-To-One*20数据库系统概念----E-R2.2.2联系的全部参与约束l全部参与vs部分参与 – 如果每个实体,至少参与某联系集的一个联 系中,称全部参与 – 否则,称作部分参与 – 全部参与是联系的一种约束 – 部分参与不是联系的约束 – 全部参与使用双线段表示作者编著图书出版社出版*21数据库系统概念----E-R2.2.2联系基数的上下界约束l基数约束 – 基本的基数约束:l1:1,m:1,m:n – 更精确的基数约束:l给出上下界约束 l..hl0..*等价于“多”l0..1等价于“一”l示例: – 一个学生要学3到5门课l..hABR3..5学生课程学习*222.2练习一:一个简单学校系统lStep1:希望建设一个学校管理系统 – 学校下设若干院系,开设若干课程 – 院系有院系名称,并有院系编号作为标识 – 课程有课程名称,同时有课程编号 – 关注学校教师的姓名、年龄、教师编号及身 份证号,并关注哪个教师能够上哪些课 – 每个教师,均隶属于一个院系l请画出E-R图*232.2练习一:一个简单学校系统lStep1:希望建设一个学校管理系统 –参考E-R图(一)age院系隶属 属教师课程讲授 属dnodnametnonamecnocnamepid学校隶属隶属开设*242.2练习一:一个简单学校系统lStep1:希望建设一个学校管理系统 –参考E-R图(二)age院系隶属 属教师课程讲授 属dnodnametnonamecnocnamepidl参考E-R图(二)比(一)更合适 – 对一个机构建设系统,一般不必绘制机构本 身对应的实体*252.2练习一:一个简单学校系统lStep2:在前述系统的基础上 – 关注课程的先行课,即:要学习一门课,必 须先学习哪些课程; – 一门课,可以有一门先行课,也可以有多门 先行课,当然可以没有先行课。
l请画出E-R图 (请在step1的E-R图基础上绘制)*262.2练习一:一个简单学校系统lStep2:在前述系统的基础上,关注先行课 – 参考E-R图:age院系隶属 属教师课程讲授 属dnodnametnonamecnocnamepid先行课*272.2练习一:一个简单学校系统lStep3:在前述系统的基础上,绘制E-R图: – 关注学生、学生隶属院系的关系以及学生选 课情况 – 即将step2的E-R图与例题E-R图合并age院系隶属 属学生课程学习 属dnodnamesnonamecnocnametimescorepid参考E-R图:*282.2练习一:一个简单学校系统lStep3:增加关注学生、隶属院系、选课情况 – 参考E-R图:隶属 属学生 学习 属scoreage院系隶属 属教师课程讲授 属dnodnametnonamecnocnamepidagesnonamepid先行课*292.2练习一:一个简单学校系统lStep4:在前述系统的基础上 – 增加关注班级情况,即:学生分作若干班级 ,一个学生属于一个班级,一个班级属于一 个院系,一个班级有多名学生l请画出E-R图 (请在step3的E-R图基础上修改绘制)*302.2练习一:一个简单学校系统lStep4:在前述系统的基础上,关注班级情况 – 参考E-R图(一)隶属 属学生 学习 属scoreage院系隶属 属教师课程讲授 属dnodnametnonamecnocnamepidagesnonamepid先行课班级classnameclassno隶属 属隶属 属*312.2练习一:一个简单学校系统lStep4:在前述系统的基础上,关注班级情况 – 参考E-R图(二)学生 学习 属scoreage院系隶属 属教师课程讲授 属dnodnametnonamecnocnamepidagesnonamepid先行课班级classnameclassno隶属 属隶属 属*322.2练习一:一个简单学校系统lStep5:在前述系统的基础上 – 关注班主任情况:每个班级有一名教师任班 主任l请画出E-R图 (请在step4的E-R图基础上修改绘制)*332.2练习一:一个简单学校系统lStep5:在前述系统的基础上,关注班主任 – 参考E-R图:班主任 属学生 学习 属scoreage院系隶属 属教师课程讲授 属dnodnametnonamecnocnamepidagesnonamepid先行课班级classnameclassno隶属 属隶属 属2.2练习一:一个简单学校系统lStep6:在前述系统的基础上 – 关注学生之间的管理关系,即学生中有班长 和普通学生l请画出E-R图 (请在step5的E-R图基础上修改绘制)2.2练习一:一个简单学校系统lStep6:在前述系统的基础上,关注学生之间 的管理关系 – 参考E-R图:班主任 属学生 学习 属scoreage院系隶属 属教师课程讲授 属dnodnametnonamecnocnamepidagesnonamepid先行课班级classnameclassno隶属 属隶属 属管理*362.2练习二l一个工厂需要管理下列信息: – 工厂有许多职工,每个职工有职工号、姓名、年龄 、性别; – 工厂内有多个车间,每个车间有车间号、车间地址 和,一个车间有一名车间主任,多名职工,一 个职工不能同时属于多个车间; – 一个车间生产多种产品,产品有产品号和价格 – 一个产品由多种零件组成,一种零件也可以参与装 配多种产品; – 产品与零件均存入仓库中; – 一个工厂有多个仓库,仓库有仓库号、仓库地址和 ;每个仓库有一名仓库主任进行管理,同时可 以有多名职工担任仓库保管。
l请画出该系统的E-R图2.2练习二2.2练习三l一个网上书店需要管理下列信息: – 网上书店的的主营业务是图书销售,每本书由唯一的ISBN编号标 识,其余的信息包括书名、出版年份和价格; – 每本书有一个或者多个作者,每个作者也可以撰写多本书,作者 由作者的URL标识,其余的信息包括作者的姓名和住址; – 每本书都由一个出版社出版,一个出版社可以出版。












