数据库设计与实现基础ER图课件_第1页
数据库设计与实现基础ER图课件_第2页
数据库设计与实现基础ER图课件_第3页
数据库设计与实现基础ER图课件_第4页
数据库设计与实现基础ER图课件_第5页
已阅读5页,还剩84页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

06六月20231第2章:基础E-R图本章要求理解E-R图是什么掌握基本E-R图的画法本章的主要内容2.1:E-R图概览及在软件开发中的位置2.2:基础E-R图及其要素2.3:基础E-R图的几个复杂问题讨论属性详解联系的约束详解使用实体还是使用属性使用实体还是使用联系06六月202322.1:E-R图概览一个E-R图示例:仓库存放供应商零件生产项目供应职工管理属参与属领导属领导员工06六月202332.1:E-R图在软件开发中的位置E-R图的位置数据分析、描述的工具数据分析、描述以E-R图为主需要其它文档辅助E-R图的作用帮助澄清用户数据需求

分析员和用户对数据需求达成高度一致数据逻辑模型设计的基础E-R图的要求和评价标准清晰、易懂完整、精确、无二义转换、设计理解、表达现实世界概念模型:E-R逻辑模型:DBSchema2.1E-R图基本概念历史E-R模型:Entity-RelationshipModel1976年,P.P.S.Chen提出E-R模型,用E-R图来描述概念模型观点世界是由一组称作实体(entities)的基本对象和这些对象之间的联系(relationships)构成的06六月202352.2:基础E-R图及其要素2.2.1实体实体的概念实体的属性实体的标识2.2.2联系联系的概念联系和实体的关系联系的度联系的属性二元联系的基数基础E-R练习06六月202362.2.1实体的概念实体:可以相互区分的事物事物:事件、物体、概念学生:甲、乙、丙…课程:DB、DS、SE…实体集:同类型实体的集合{二年级一班的学生}{DB,DS,SE}…实体型:类型的特性和性质学生、教师、课程、图书、货物订单…06六月202372.2.1实体的属性属性来源于域,域是同类型值的集合用来刻画实体的特征院系dnodname课程cnocname学生agesnonamepid06六月202382.2.1实体的标识属性标识属性的必要性概念上,实体互异数据库上,实体必须用属性区分、标识标识属性、码实体的标识属性,称为实体的码(Key)能唯一标识实体的属性/属性组称作超码(Superkey)其任意真子集都不能成为超码的最小超码称为候选码(CandidateKey)实体可以有多个候选码例如:sno、pid都是学生的候选码学生agesnonamepid2.2.1主码主码多候选码时,选择一个候选码,作为主码一个实体集中任两个实体在主码上的取值不能相同在E-R图中,主码使用下划线表示多候选码时,一般选变化少的或习惯上的候选码作为主码主码一旦选择,整个组织有效06六月20239院系dnodname课程cnocname学生agesnonamepid06六月2023102.2.2联系的概念联系多个实体之间的关联关系如:选课联系联系实例一个具体的多个实体间的相互关系如:(甲,DS),(甲,OS),(乙,DS)…联系集同类型联系的集合{(甲,DS)(甲,OS)(乙,DS)…}甲乙丙丁DBDSOS…06六月2023112.2.2联系和实体的关系实体和联系的关系实体参与联系,扮演角色一般地,扮演的角色是明确的,不需要显式指明同型实体间的联系同型实体间可以有联系称作自环联系(recursive)联系扮演的角色需要指明仓库存放供应商零件生产项目供应职工管理参与领导属领导员工06六月2023122.2.2联系的度联系的度两个实体参与的联系,称作二元联系三个实体参与的联系,称作三元联系三元以上(含三元)联系,习惯称作多元联系仓库存放供应商零件生产项目供应职工管理参与领导属领导员工06六月202313数据库系统概念----E-R6.2.2联系的属性联系可以有属性属性是描述性属性属性是一个联系所具有的某种性质例如,选课联系可以有属性:成绩思考:下列特征,是选课联系的属性吗?选课门数选课学生的学号所选课程的编号8580甲乙丙丁DBDSOS…学生课程学习属snonamecnocnamescore06六月202314数据库系统概念----E-R2.2.2联系的属性联系属性属性是描述性属性下述内容,不是联系的属性实体参与联系的数目参与联系的实体的属性(包括实体的主码)8580甲乙丙丁DBDSOS…学生课程学习属snonamecnocnamescore2.2.2联系的属性假设联系集R是由实体集E1,E2,…En形成的。联系集的属性包括:primary(E1)∪primary(E2)∪…∪primary(En)∪{a1,a2,…,am}06六月2023162.2.2二元联系的基数多对多,m:nA中一个实体可以与B中多个实体相关联反之亦然一对多,1:mA中一个实体可以与B中多个实体相关联B中一个实体至多可与A中一个实体相关联多对一,m:1一对一,1:1A中一个实体至多可与B中一个实体相关联反之亦然不一定是完美对集基数对联系的约束限制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-One06六月202320数据库系统概念----E-R2.2.2联系的全部参与约束全部参与vs部分参与如果每个实体,至少参与某联系集的一个联系中,称全部参与否则,称作部分参与全部参与是联系的一种约束部分参与不是联系的约束全部参与使用双线段表示作者编著图书出版社出版06六月202321数据库系统概念----E-R2.2.2联系基数的上下界约束基数约束基本的基数约束:1:1,m:1,m:n更精确的基数约束:给出上下界约束l..h0..*等价于“多”0..1等价于“一”示例:一个学生要学3到5门课l..hABR3..5学生课程学习06六月2023222.2练习一:一个简单学校系统Step1:希望建设一个学校管理系统学校下设若干院系,开设若干课程院系有院系名称,并有院系编号作为标识课程有课程名称,同时有课程编号关注学校教师的姓名、年龄、教师编号及身份证号,并关注哪个教师能够上哪些课每个教师,均隶属于一个院系请画出E-R图06六月2023232.2练习一:一个简单学校系统Step1:希望建设一个学校管理系统参考E-R图(一)age院系隶属属教师课程讲授属dnodnametnonamecnocnamepid学校隶属隶属开设06六月2023242.2练习一:一个简单学校系统Step1:希望建设一个学校管理系统参考E-R图(二)age院系隶属属教师课程讲授属dnodnametnonamecnocnamepid参考E-R图(二)比(一)更合适对一个机构建设系统,一般不必绘制机构本身对应的实体06六月2023252.2练习一:一个简单学校系统Step2:在前述系统的基础上关注课程的先行课,即:要学习一门课,必须先学习哪些课程;一门课,可以有一门先行课,也可以有多门先行课,当然可以没有先行课。请画出E-R图(请在step1的E-R图基础上绘制)06六月2023262.2练习一:一个简单学校系统Step2:在前述系统的基础上,关注先行课参考E-R图:age院系隶属属教师课程讲授属dnodnametnonamecnocnamepid先行课06六月2023272.2练习一:一个简单学校系统Step3:在前述系统的基础上,绘制E-R图:关注学生、学生隶属院系的关系以及学生选课情况即将step2的E-R图与例题E-R图合并age院系隶属属学生课程学习属dnodnamesnonamecnocnametimescorepid参考E-R图:06六月2023282.2练习一:一个简单学校系统Step3:增加关注学生、隶属院系、选课情况参考E-R图:隶属属学生学习属scoreage院系隶属属教师课程讲授属dnodnametnonamecnocnamepidagesnonamepid先行课06六月2023292.2练习一:一个简单学校系统Step4:在前述系统的基础上增加关注班级情况,即:学生分作若干班级,一个学生属于一个班级,一个班级属于一个院系,一个班级有多名学生。请画出E-R图(请在step3的E-R图基础上修改绘制)06六月2023302.2练习一:一个简单学校系统Step4:在前述系统的基础上,关注班级情况参考E-R图(一)隶属属学生学习属scoreage院系隶属属教师课程讲授属dnodnametnonamecnocnamepidagesnonamepid先行课班级classnameclassno隶属属隶属属06六月2023312.2练习一:一个简单学校系统Step4:在前述系统的基础上,关注班级情况参考E-R图(二)学生学习属scoreage院系隶属属教师课程讲授属dnodnametnonamecnocnamepidagesnonamepid先行课班级classnameclassno隶属属隶属属06六月2023322.2练习一:一个简单学校系统Step5:在前述系统的基础上关注班主任情况:每个班级有一名教师任班主任请画出E-R图(请在step4的E-R图基础上修改绘制)06六月2023332.2练习一:一个简单学校系统Step5:在前述系统的基础上,关注班主任参考E-R图:班主任属学生学习属scoreage院系隶属属教师课程讲授属dnodnametnonamecnocnamepidagesnonamepid先行课班级classnameclassno隶属属隶属属2.2练习一:一个简单学校系统Step6:在前述系统的基础上关注学生之间的管理关系,即学生中有班长和普通学生请画出E-R图(请在step5的E-R图基础上修改绘制)2.2练习一:一个简单学校系统Step6:在前述系统的基础上,关注学生之间的管理关系参考E-R图:班主任属学生学习属scoreage院系隶属属教师课程讲授属dnodnametnonamecnocnamepidagesnonamepid先行课班级classnameclassno隶属属隶属属管理06六月2023362.2练习二一个工厂需要管理下列信息:工厂有许多职工,每个职工有职工号、姓名、年龄、性别;工厂内有多个车间,每个车间有车间号、车间地址和电话,一个车间有一名车间主任,多名职工,一个职工不能同时属于多个车间;一个车间生产多种产品,产品有产品号和价格一个产品由多种零件组成,一种零件也可以参与装配多种产品;产品与零件均存入仓库中;一个工厂有多个仓库,仓库有仓库号、仓库地址和电话;每个仓库有一名仓库主任进行管理,同时可以有多名职工担任仓库保管。请画出该系统的E-R图2.2练习二2.2练习三一个网上书店需要管理下列信息:网上书店的的主营业务是图书销售,每本书由唯一的ISBN编号标识,其余的信息包括书名、出版年份和价格;每本书有一个或者多个作者,每个作者也可以撰写多本书,作者由作者的URL标识,其余的信息包括作者的姓名和住址;每本书都由一个出版社出版,一个出版社可以出版很多书籍,出版社有唯一的URL标识,其余信息包括出版社名称、地址和电话;网上书店拥有多个仓库,每个仓库存储大量图书,仓库由仓库编号唯一标识,其余的信息包括仓库地址和电话网上书店拥有自己的客户,每个客户用电子邮件进行唯一标识,其余的信息包括姓名、住址和电话。客户在网上书店购物时,需要使用购物车,一个客户只能拥有一个活动的购物车,用于存放挑选好的多本书籍,购物车由购物车编号唯一标识请画出网上书店的ER图2.2练习三06六月2023402.3基础E-R图的若干问题研究本节主要讨论:2.3.1属性详解2.3.2多元联系2.3.3使用实体?还是使用属性?还是使用联系?06六月2023412.3.1属性详解属性分类简单属性vs复合属性 单值属性vs多值属性基属性vs派生属性birthdayage学生snonamerelativepidnamerelationcitystreetaddrtelnopostal_code2.3.1简单属性vs复合属性简单属性

(SampleAttribute)不可再分的属性如学号、年龄、性别

复合属性(CompositeAttribute)可以划分为更小的属性可以把相关属性聚集起来,使模型更清晰如:addr=city+street+postal_code复合属性的表示06六月202342学生snonamecitystreetaddrpostal_code2.3.1简单属性vs复合属性复合属性可以嵌套如:addr=city+street+postal_code street=street_name+street_number 思考:下列属性是简单属性,还是复合属性?姓名=姓+名电话号码=区号+本地号码06六月202343学生snonamecitystreetaddrpostal_codestreet_namestreet_number2.3.1简单属性vs复合属性简单属性vs复合属性多数情况下,界限并不清晰需要看应用环境关注的内容分析:姓名=姓+名如果不关注姓和名的区分,是简单属性如果只关注姓和名,不关注姓名组合含义,还可以看做两个简单属[姓]和[名],而不要复合属性[姓名]06六月2023442.3.1单值属性vs多值属性单值属性(Single-valuedAttribute)每一个特定的实体在该属性上的取值唯一如学生的学号、姓名、出生日期等多值属性(Multi-valuedAttribute)某个特定的实体在该属性上的有多个取值如学生实体集中的phone-number属性 多值属性的表示双椭圆06六月202345birthday学生snonametelno2.3.1基属性vs派生属性派生(Derived)属性与基(Base)属性可以从其他属性推出来的属性称为派生属性否则,称为基属性,或存储属性如年龄可以从出生日期推出,称age派生属性数据库中,可以只存基属性值,派生属性用到时再从基属性中计算出来;也可以基属性和派生属性均保存在数据库,以冗余换取效率派生属性的表示虚椭圆06六月202346birthdayage学生snoname2.3.1属性的表示属性在E-R图中表示方法总结复合属性 多值属性派生属性06六月202347birthdayage学生snonamerelativepidnamerelationcitystreetaddrtelnopostal_code06六月202348数据库系统概念----E-R练习:请分析论文实体的属性工作流应用研究甲(1)

乙(1,2)丙(2)(1山东大学计算机学院2山东省计算中心)摘要 ………(摘要部分)

关键字:工作流,流程管理,应用

分类号:TP391 1引言

……… ………(正文部分)

参考文献

[1]E.JEllman,Researon…,ComputerAidedDesign,2005.10 [2]……06六月202349数据库系统概念----E-R2.3.1属性在E-R图中的表示方法一个E-R图示例:图中,只标出了一个实体的部分属性思考:如果标出全部属性,E-R图如何?仓库存放供应商零件生产项目供应职工管理属参与属领导属领导员工birthdayageEnonamerelativepidnamerelationcitystreetaddrtelno06六月202350数据库系统概念----E-R2.3.1属性在E-R图中的表示方法示例:一个实际E-R方案E-R图中,不标明属性属性使用表格另行描述(见下页)仓库存放供应商零件生产项目供应职工管理属参与属领导属领导员工06六月202351数据库系统概念----E-R2.3.1属性在E-R图中的表示方法需求条目字典是需求说明书的重要组成部分属性在条目字典中表述,作为对E-R的补充需求条目字典示例:条目类别条目名称条目内容实体职工Eno,name,birethday,telno*,Addr(city,street),Relative(pid,relation,name)*实体项目Id,name,…实体仓库…实体……联系供应Quantity,price…联系参与…约束约束职工的年龄要介于18到60岁之间2.3.1属性在E-R图中的表示方法属性在E-R图中的表示方法E-R图中直接表示属性E-R中省略属性,属性另行使用表格表示直接表示vs使用表格表示E-R直接表示属性,语义清晰,但图复杂省略属性,可以使E-R更好地突出逻辑模型的骨架,适用于全局E-R图或复杂E-R图在简单的局部E-R图中,可以直接在E-R中表示关键属性,帮助理解数据语义06六月202352练习:属性在E-R图中的表示对下面E-R图请画出省略属性E-R图,并给出表示属性的表格体会两种E-R图的优劣06六月202353班主任属学生学习属scoreage院系隶属属教师课程讲授属dnodnametnonamecnocnamepidsnonamepid先行课班级classnameclassno隶属属隶属属birthdayagerelativepidnamerelationcitystreetaddrtelnopostal_code2.3.2多元联系联系的度(元)参加联系的实体的数目,称作联系的度(元)两个实体参与的联系,称作二元联系三个实体参与的联系,称作三元联系三元以上(含三元)联系,习惯称作多元联系多元联系多个实体间的联系一个联系涉及多个实体思考:多元联系能有属性吗?06六月202354供应商零件项目供应2.3.2多元联系:练习请绘制排课系统的E-R图排课系统的业务,以自己理解为准排课要出两种课表,分别供教师和学生使用06六月202355山东大学2010-2011学年第二学期教师用本科课程表教师姓名:甲

课程名称班级学分教室上课时间周一周二周三周四周五数据库系统概论2008-3班

2008-4班51区2081—2

1—2

软件工程2008.1班35区307

5—6上课时间:上午8:00下午2:00(国庆节后,下午上课时间改为1:30)2.3.2多元联系:练习(续)山东大学软件学院2010级工程硕士第二学期课程表

适用班级:脱产班(全日制班)

序号课程名称学分课时教室任课教师上课时间(节次)备注一二三四五1数据库设计345区308甲

1-4

2软件需求分析345区308乙

1-4

3商务智能245区308丙5-8

06六月202356学生用课程表示例:2.3.2多元联系:练习排课系统参考答案(一)注:忽略了实体的属性06六月202357教师课程班级上课classroomtime2.3.2多元联系:练习排课系统参考答案(二)注:忽略了实体的属性06六月202358教师课程班级上课time教室2.3.2多元联系:练习排课系统参考答案(三)注:忽略了实体的属性06六月202359教师课程班级上课教室上课节次2.3.2多元联系:参考答案分析排课系统参考答案分析几种方案均可以接受各有利弊,哪个更好?请体会分析的过程实际分析过程中,用户不会专门陈述数据的关系,然后我们去画E-R图;很多时候需要分析用户的表单、报表等文件,理解含义,认知数据关系,然后使用E-R图进行表述06六月2023602.3.2多元联系的基数约束多元联系中多对一的含义对n个实体集E1,E2,…,En

之间的联系R,若对于E1,…

,Ei-1,Ei+1

,…,En,分别给定实体e1,…

,ei-1,ei+1,…,en时,至多有一个实体ei∈

Ei与之相联系,则称R是从E1,…

,Ei-1,Ei+1

,…,en到Ei的多对一联系在E-R图中,使用指向Ei的箭头表示06六月2023612.3.2多元联系的基数约束示例一个班的一门课只能有一个老师讲授06六月202362教师课程班级上课2.3.2多元联系的基数约束思考:下图表示的基数约束语义是什么?06六月202363教师课程班级上课2.3.2多元联系的基数约束上图表示的基数约束是:(class,course)→teacher(teacher,class)→course06六月202364教师课程班级上课2.3.2三元联系vs二元联系思考:三元联系能被多个二元联系代替吗?高元联系能被多个低元联系代替吗?教师课程班级上课2.3.2三元联系vs二元联系分析示例:上课(T-S-C)教师班级课程甲1DB甲2DS乙1DS乙2DB教师课程T-C班级上课S-TS-CS-TS-CT-C教师班级班级课程教师课程甲11DB甲DB甲22DS甲DS乙11DS乙DS乙22DB乙DB2.3.2三元联系vs二元联系二元Vs多元多元转换为二元新构建一个实体集E,若R有属性,则将其赋予E,为E添加一个标识属性作为主码,构造三个新联系集RA,RB,RC,对每个(ai,bi,ci)R,在E中创建一个新实体ei,然后在RA,RB,RC中分别加入联系(ei,ai),(ei,bi),(ei,ci)BCARBCARAERBRC2.3.2三元联系vs二元联系ABC123427483EA112434EB122238EC1327332.3.2高元联系vs低元联系三元联系vs二元联系三元联系不能被多个二元联系代替高元联系vs低元联系高元联系不能被多个低元联系代替三元(高元)联系的判定方法基本方法按照语义判定辅助方法试着用多个二元联系表示能被多个二元联系表示,则不是三元联系能用多个低元联系表示,则不是高元联系2.3.2三元联系vs二元联系练习:请用E-R表述孩子和父母的关系思考:如何看待孩子和父母的联系?是三元联系还是两个二元联系?06六月2023702.3.2三元联系vs二元联系孩子和父母是两个二元联系一句话中涉及三个实体并不一定是三元联系孩子和父母之间的关系不是三元联系06六月202371父亲母亲孩子父子母子06六月2023722.3.3实体vs属性vs联系实体vs属性vs联系E-R中应当使用实体?还是属性?或者应该使用联系?很多时候并不清晰本节分别讨论:使用实体还是使用属性?使用实体还是使用联系?使用联系还是使用属性?2.3.3.1实体vs属性使用实体还是使用属性?很多情况下,实体和属性都可以接受;能用属性,一般不用实体,可以简化E-R图用属性不足以清晰表述时,要用实体

①使用属性:②使用实体:学生电话拥有snonameTelno…学生snonameTelno732.3.3.1实体vs属性重新研究排课系统的几种方案,思考:教室应该用实体还是属性?上课节次该用实体还是属性?教师课程班级上课classroomtime教师课程班级上课time教室教师课程班级上课教室上课节次742.3.3.1实体vs属性排课系统的几种方案,哪个更好?答案并不明确,需要看关注的内容教室应该用实体,还是用属性?如果关注教室的条件、能容纳的学生数量等信息,教室需要用实体表示如果不关注上述信息,教室可以是实体,也可以是属性,此时使用属性,E-R会略微简洁、易懂上课节次该用实体,还是属性?一般意义下,用实体的必要性不是太强,用属性表示更合适一些如果需要以节次为核心研究某些议题,也许节次用实体表示会显得更好752.3.3.1实体vs属性练习:请在如下描述学校数据关系的E-R图中,增加排课信息,即增加关注哪个老师给哪个班级上哪门课;为简单起见,可以省略属性表示06六月202376班主任属学生学习属院系隶属属教师课程讲授属先行课班级隶属属隶属属班主任属学生学习属院系隶属属教师课程讲授属先行课班级隶属属隶属属上课2.3.3.2实体vs联系使用实体还是使用联系?很多情况下,实体和联系都可以接受;此时能用联系不用实体,以图简化E-R;①使用联系:②使用实体:用联系不足以清晰表述时,要用实体学生课程学习属score学生修课记录课程idscore772.3.3.2实体vs联系练习对排课系统,假设E-R图如下所示:如果[上课]联系,被看作是[上课条目]实体,试给出相应的E-R图,并对比说明二图的优缺点06六月202378教师课程班级上课2.3.3.2实体vs联系排课系统中,[上课]看作实体,相应的E-R图(参考答案)思考:实体[上课条目]有哪些属性?06六月202379教师课程班级上课条目2.3.3.2实体vs联系请分析:对上述课表中,2008-3、4班同时上课,在上述两张E-R图中,分别是如何表示的?哪个更清晰?综合分析两图的优缺点06六月202380山东大学2010-2011学年第二学期教师用本科课程表教师姓名:甲

课程名称班级学分教室上课时间周一周二周三周四周五数据库系统概论2008-3班

2008-

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论