chp7数据库设计(2)之ER模型_第1页
chp7数据库设计(2)之ER模型_第2页
chp7数据库设计(2)之ER模型_第3页
chp7数据库设计(2)之ER模型_第4页
chp7数据库设计(2)之ER模型_第5页
已阅读5页,还剩126页未读 继续免费阅读

下载本文档

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

文档简介

1、1提纲一基本概念二映射的基数(联系的种类)三扩展ER特性四ER模型设计要点2一、基本概念n实体(Entity)n客观存在并可相互区分的事物叫实体n如学生张三、工人李四、计算机系、数据库概论n属性(Attribute)n实体所具有的某一特性n一个实体可以由若干个属性来刻画n例如,学生可由学号、姓名、年龄、系等组成n域(Domain)n属性的取值范围n例如,性别的域为(男、女),月份的域为1到12的整数3基本概念n实体型(Entity Type)n实体名与其属性名集合共同构成实体型n例,学生(学号、姓名、年龄、性别、系、年级)n注意实体型与实体(值)之间的区别,后者是前者的一个特例n如(98081

2、00,王平,21,男,计算机系,2)是一个实体n实体集(Entity Set)n同型实体的集合称为实体集n如全体学生4基本概念n联系(Relationship)n实体之间的相互关联n如学生与老师间的授课关系,学生与学生间有班长关系n联系也可以有属性,如学生与课程之间有选课联系,每个选课联系都有一个成绩作为其属性n元或度(Degree)n参与联系的实体集的个数称为联系的元n如学生选修课程是二元联系,供应商向工程供应零件则是三元联系5基本概念n码(Key)n能唯一标识实体的属性或属性组称作n超码的任意超集也是超码n其任意真子集都不能成为超码的最小超码称为n从所有候选码中选定一个用来区别同一实体集中

3、的不同实体,称作n一个实体集中任意两个实体在主码上的取值不能相同n如学号是学生实体的码n通讯录(姓名,邮编,地址,电话,Email,BP)6小试牛刀ABC123234145326有哪些超码?有哪些候选码?7基本-图表示例:学生选修课程学生学生课程课程选修选修姓名姓名学号学号系别系别课程名课程名先修课先修课学分学分成绩成绩用矩形表示实用矩形表示实体集,在框内体集,在框内写上实体名写上实体名用椭圆表示实用椭圆表示实体的属性体的属性用无向边用无向边把实体与把实体与其属性连其属性连接起来接起来用菱形表示实用菱形表示实体间的联系体间的联系将参与联系的实将参与联系的实体用线段连接体用线段连接联系的联系的数

4、量数量8基本-图表示n码在E-R图中的表示n实体集属性中作为主码的一部分的属性用下划线来标明学生学生课程课程选修选修姓名姓名学号学号系别系别课程名课程名先修课先修课学分学分9基本概念n参与(Participation)n实体集之间的关联称为参与,即实体参与联系n如王军选修“数据库”,表示实体“王军”与 “数据库”参与了联系“选修”n如果实体集E中的每个实体都参与到联系集R中的至少一个联系,则称E全部参与Rn如果实体集E中只有部分实体参与到联系集R的联系中,则称E部分参与Rn如“职工”与“部门”之间的“经理”联系,“职工”实体集部分参与,而“部门”实体集完全参与10参与在E-R图中的表示用双线连

5、接联系与完全参与的实体“职工”部分参与联系“经理”“部门”完全参与联系“经理”职工职工部门部门管理管理姓名姓名职工号职工号工种工种部门号部门号部门名部门名地址地址11基本概念n存在依赖(Existence Dependency)n如果实体x的存在依赖于实体y的存在,则称x存在依赖于yny称作支配实体,x称作从属实体n如果y被删除,则x也要被删除n考虑分期付款的例子,对每一个“贷款”实体,有若干个“还款”实体与之关联,“还款”实体存在依赖于“贷款”实体(P222)n全部参与与存在依赖n设A R B,若A存在依赖于B,则A全部参与联系R12基本概念n角色(Role)n实体在联系中的作用称为实体的角

6、色n当同一个实体集不止一次参与一个联系集时,为区别各实体的参与联系的方式,需要显式指明其角色n如学生与学生间的班长关系,职工与职工之间的经理关系,课程之间的先修关系13角色在E-R图中的表示n角色的表示n当需要显式区分角色时,在连接菱形和矩形的线上加上说明性标注以区别不同的角色职员职员领导领导管理管理工作工作14属性的类型n简单属性 n不可再分的属性n如学号、年龄、性别n 复合(Composite)属性n可以划分为更小的属性n把相关属性聚集起来以反映更高层次的概念,可以使模型更清晰n如电话号码=区号+本地号码 出生日=年+月+日n1NF Vs 嵌套关系学生学生姓名姓名电话号码电话号码年龄年龄区

7、号区号本地号码本地号码学生学生姓名姓名年龄年龄区号区号本地号码本地号码15属性的类型n单值属性n每一个特定的实体在该属性上的取值唯一n如学生的学号,年龄、性别、系别等n多值属性n某个特定的实体在该属性上的有多于一个的取值n如学生(学号,所选课程,联系电话)学号所选课程 联系电话001数学1234001物理1234001数学5678001物理567816属性的类型nNULL属性nnull表示“无意义”,当实体在某个属性上没有值时设为null 如通讯录(姓名,email,电话,BP),若某人没有email地址,则在email属性上取值为nullnnull表示“值未知”,即值存在,但目前没有获得该信

8、息 如职工(姓名,部门,工种,身份证),如果目前不知道职工身份证号码,则设身份证值为null17属性的类型n派生(Derived)属性与基属性n可以从其他相关的属性或实体派生出来的属性值n如学生(学号,姓名,平均成绩),选课(学号,课程号,成绩),则平均成绩可由学生所选课程的总成绩除以课程总数来得到。称平均成绩为派生属性,而成绩为基属性,或存储属性n数据库中,一般只存基属性值,而派生属性只存其定义或依赖关系,用时再从基属性中计算出来18属性在E-R图中的表示n表示要点n多值属性用表示n派生属性用表示学生学生姓名姓名选修课程选修课程学生学生姓名姓名平均成绩平均成绩系别系别19联系的种类(映射基数

9、)n联系的种类n实体之间的联系的数量,即一个实体通过一个联系集能与另一实体集相关联的实体的数目n可以有一对一的(1:1),一对多的(1:m),多对多的(m:n)几种情况20联系种类在E-R图中的表示n表示要点n用箭头或线段来表示联系的种类每个每个A A只与一个只与一个B B发生联系发生联系多方实体集多方实体集单方实体集单方实体集ABR每个每个B B可以与多个可以与多个A A发生联系发生联系21m1联系的种类n二元联系集设有两个实体集E1, E2 ,n一对一 E1中的一个实体与E2中至多一个实体相联系,并且 E2中的一个实体与E1中至多一个实体相联系注:一对一不是一一对应职工职工部门部门管理管理

10、22联系的种类n一对多 E1中的一个实体与E2中n(n0)个实体相联系,并且 E2中的一个实体与E1中至多一个实体相联系教师教师学生学生班主任班主任23联系的种类n多对多 E1中的一个实体与E2中n(n0)个实体相联系,并且E2中的一个实体与E1中m(m0)一个实体相联系学生学生课程课程选修选修24联系的种类n一个实体集内的递归联系n一对一ei E,至多存在一个ej E与之相联系(ji)n一对多n多对多职工职工领导领导领导领导属下属下职工职工配偶配偶丈夫丈夫妻子妻子构成构成零件零件母零件母零件子零件子零件25n多个实体集间联系的情况n一对多设有n个实体集E1 , E2 , , En ,若对于

11、E1 , , Ei-1, Ei+1, ,En ,分别给定实体e1 , , ei-1 , ei+1 , , en 时,至多有一个实体ei Ei与之相联系,则称有一个从Ei到E1 , , Ei-1 , Ei+1 , ,En的一对多联系职工职工部门部门工作工作工种工种联系的种类26联系的种类职工职工部门部门工作工作工种工种27联系的势(P220 基数约束)n势表达了一个实体出现在联系中的次数教师教师课程课程教授教授(0,2)(1,4)学生学生课程课程选修选修(4,6)(10,50)设计实例n考虑一个学校数据库,它要存储以下信息:n教师有教工号、教工名、职称;n项目有项目号、项目名称、项目类型、起始年

12、份、资助额;n学生有学号、学生名、年龄、学位。n一个教工可以负责多个项目;每个项目只能有一个负责人;一个老师可以参与多个项目;一个学生只能参与一个项目;一个项目可以有多个学生和老师参与。 29设计实例教师项目学生教工参与学生参与m11n负责mn30扩展E-R表达n1. 弱实体集n2. 特殊化n3. 概括n4. 聚集311. 弱实体集(P222)n示例贷款(贷款号,金额),对应多个还款(还款号,还款日期,金额) 每个“贷款”的各个“还款”不同,但不同“贷款”之间的“还款”却可能相同贷款号贷款金额还款号还款日期 还款金额D12345000115.10.123000D12345000215.11.1

13、21000D12345000315.12.121000D56787000115.10.123000D56787000215.11.122000D56787000315.12.12200032弱实体集贷款贷款隶属隶属还款号还款号贷款号贷款号还款日期还款日期还款还款贷款金额贷款金额还款金额还款金额还款的所有属性都不能作为主码33弱实体集贷款号冗余贷款贷款隶属隶属还款号还款号贷款号贷款号还款金额还款金额贷款号贷款号还款还款贷款金额贷款金额还款日期还款日期34弱实体集贷款贷款还款号还款号贷款号贷款号还款金额还款金额贷款金额贷款金额还款日期还款日期还款概念消失了还款会和帐户发生支付联系账户账户支付支付3

14、5弱实体集贷款贷款贷款号贷款号贷款金额贷款金额还款还款还款号还款号还款金额还款金额还款日期还款日期帐户帐户支付支付36弱实体集n弱实体集(Weak Entity Set)n如果一个实体集的所有属性都不足以形成主码,则称这样的实体集为弱实体集n弱实体集与其拥有者之间的联系称作标识性联系(identifying relationship)n弱实体集与强实体集之间是一对多的联系37弱实体集n弱实体集示例n课程course(course_id,title,credits), 开课section(sec_id,semester,year),二者相关联。n产品(名称,价格),公司(名称,地址,联系电话),

15、“产品”与“公司”之间有“制造”联系,“产品”是一个弱实体集38弱实体集n弱实体集与存在依赖n弱实体集必然存在依赖于强实体集(Strong Entity Set)n存在依赖并不总会导致一个弱实体集,从属实体集可以有自己的主码如实体集信用卡(信用卡号,客户帐号,金额),它存在依赖于客户帐号实体集,但信用卡有自己的主码信用卡号39弱实体集n分辨符(Discriminator)n弱实体集中用于区别依赖于某个特定强实体集的属性集合。也称作部分码(partial key)如“还款”中的还款号,开课中的开课号n弱实体集的主码由该弱实体集所存在依赖的强实体集的主码和该弱实体集的分辨符组成n如“还款”主码贷款

16、号还款号nsection主码 = 课程号(course_id)+ 开课号(sec_id)n“产品”主码 = 产品名称 + 公司名称40弱实体集n为什么使用弱实体集? 通过为弱实体集加上合适的属性,可转变为强实体集,为什么还要使用弱实体集?n避免数据冗余(强实体集码重复),以及因此带来的数据的不一致性n弱实体集反映了一个实体对其它实体依赖的逻辑结构n弱实体集可以随它们的强实体集的删除而自动删除41弱实体集n弱实体集在-R图中的表示n弱实体集以双边框的矩形表示n标识性联系以双边框的菱形表示n从联系集用双线(全部参与)连接弱实体集,用箭头(一对多联系)指向强实体集n弱实体集的分辨符用下划虚线标明42

17、setionsetioncoursecourseSec_courseSec_courseSec_idSec_idcourse_idcourse_id弱实体集还款还款贷款贷款隶属隶属还款号还款号贷款号贷款号还款金额还款金额贷款金额贷款金额帐户帐户支付支付43弱实体集产品产品公司公司制造制造产品名产品名地址地址价格价格公司名公司名联系电话联系电话商场商场销售销售44弱实体集n弱实体集的引入n实体集的一些多值、复合属性可以抽取出来作为弱实体集,如贷款具有多值属性还款,可以将还款作为贷款的弱实体n如果弱实体集不但参与和强实体集之间的标识性联系,而且参与和其它实体集的联系,或者弱实体集本身含有很多属性,

18、则将其表述为弱实体集 如产品与公司之间有制造联系,同时还与商场有销售联系n如果弱实体集只参与和强实体集之间的标识性联系,或者弱实体集本身属性不多,则将其表述为属性45注意(说明)注意(说明)n不要把所有的实体集都预想成弱实体集。n一般做法(也是规范要求和工程经验做法)是每个实体集都尽量设计自己的ID属性(最好是有实际意义的)。n何时真正需要弱实体集?当一个实体集所有有意义的属性都不能充当ID时,则不得不将其作为弱实体集。n如果设计要求不能含有弱实体集,则可为弱实体集增加无意义的ID属性专用作主键。462. 特殊化(P218 ISA联系)n自顶向下、逐步求精的数据库设计过程n实体集中某些子集具有

19、区别于该实体集内其它实体的特性,可以根据这些差异特性对实体集进行分组,这一分组的过程称作特殊化n细化:父类 = 子类n子类特例更小的实体集更多的属性n一个银行帐号可以有存款帐号、贷款帐号n学生可以有研究生、本科生47特殊化n特殊化在E-R图中的表示n特殊化用来表示nISA = “is”,表示高层实体和低层实体之间的“父类子类”联系本科生本科生研究生研究生学生学生ISAISA硕士硕士ISAISA博士博士姓名姓名学号学号学位论文学位论文发表发表军训军训48特殊化本科生本科生研究生研究生学生学生ISAISA论文论文发表发表学生学生论文论文发表发表493. 概括n自底向上、逐步合成的数据库设计过程n各

20、个实体集根据共有的性质,合成一个较高层的实体集。概括是一个高层实体集与若干个低层实体集之间的包含关系n泛化:子类 = 父类n概括 Vs 特殊化n概括与特殊化是个互逆的过程,在E-R图中的表示方法是相同的n特殊化强调同一实体集内不同实体之间的差异,概括强调不同实体集之间的相似性n反映了数据库设计的不同方法50概括中的属性继承n属性继承n高层实体集的属性被低层实体集自动继承n低层实体集特有的性质仅适用于某个特定的低层实体集如“Dissertation”只适用于“研究生”实体集n层次结构(Hierarchy)n实体集作为低层实体集只能参与到一个ISA联系中n格结构(Lattice)n低层实体集可以参

21、与到多个ISA联系中如“博士”若参加工作,会继承“职工”的属性51 “博士”继承了“研究生”与“职工”的所有属性。如果“研究生”与“职工”有相同名称的属性,如“姓名”,可以在“博士”中用“研究生.姓名”,“职工.姓名”区别开来。本科生本科生研究生研究生学生学生ISAISA硕士硕士ISAISA博士博士姓名姓名学号学号DissertationDissertationPapersPapers军训军训职工职工姓名姓名工龄工龄ISAISA概括中的属性继承5253概括中的约束设计n成员资格(P219 分类属性)确定哪些高层实体如何成为给定低层实体集的成员n条件定义的(Condition-Defined)n

22、一个高层实体成员资格的确定基于该实体是否满足一个显式的条件或谓词n假定“学生”实体集具有属性“学生类型”,则所有的学生实体根据“学生类型”进行成员资格认定,如一个学生的“学生类型”=“本科生”,则他就可以归入低层“本科生”实体集中n用户定义的(User-Defined)n由数据库用户来指定一个实体归入哪个低层实体集n如一个学生被老师分配到某个项目组54n成员身份(P220 不相交约束与可重叠约束) 同一个概括中,一个高层实体是否可以属于多个不同低层实体集n不相交的(Disjoint)n一个实体至多属于一个低层实体集n如一个学生只能参加一个项目组,学生是研究生或本科生n有重叠的(Overlapp

23、ing)n同一实体可以同时属于同一概括的多个低层实体集n如一个老师可以参加多个项目组概括中的约束设计55n全部性约束(P220 完备性约束) 确定高层实体集中的一个实体是否必须属于某个概括的至少一个低层实体集n全部的(Total)n每个高层实体必须属于一个低层实体集n如学生必须属于“本科生”或“研究生”的一种n部分的(Partial)n允许一些高层实体不属于任何低层实体集n如学生可以不属于任何项目组概括中的约束设计56n联系之间存在重叠,如何表达联系之间的联系?n实例:职工参加项目,并在此过程中可能使用机器4. 聚集职工职工项目项目参加参加并并使用使用姓名姓名 工种工种名称名称类型类型机器名机

24、器名型号型号方案方案1 1工时工时机器机器职工号 项目号 机器号工时e1j1m13e1j1m23e1j2m34e2j1m15e3j2null4e4j2null4e5j2null6e6j2null557聚集职工号 机器号e1m1e1m2e1m3e2m1职工号 项目号工时e1j13e1j24e2j15e3j24e4j24e5j26e6j25职工职工项目项目参加参加姓名姓名 工种工种名称名称类型类型机器名机器名型号型号方案方案2 2工时工时使用使用机器机器e1在j1项目中使用什么机器?58n聚集是一种抽象,通过它联系被作为高层实体集n实体集A与B以及它们的联系可被看成实体集,并与另一实体集C发生联系

25、聚集ABR1R2C59聚集职工职工项目项目参加参加姓名姓名 工种工种名称名称类型类型机器名机器名型号型号工时工时使用使用机器机器60聚集职工号 项目号工时e1j13e1j24e2j15e3j24e4j24e5j26e6j25职工号 项目号 机器号e1j1m1e1j1m2e1j2m3e2j1m161聚集n考虑这样的应用:老师指导学生参与的项目,假设每位在项目上指导学生的老师需要记录月评估报告。建立一个四元联系来表达。62instructorpro_guidestudentprojecteval_forevaluation考虑到有一些instructor、student、project组合可能没有

26、关联的evaluation聚集6363instructorpro_guidestudentprojecteval_forevaluationER符号汇览64ER符号汇览65E-R模型设计要点n实体集 Vs 属性n实体:n现实世界中一组具有某些共同特性和行为的对象就可以抽象为一个实体。例:在学校环境中,可把张三、李四等对象抽象为学生实体。n属性:n对象类型的组成成分可以抽象为实体的属性。例:学号、姓名、专业、年级等可以抽象为学生实体的属性。其中学号为标识学生实体的码。如何区分实体和属性n实体与属性是相对而言的。n两条准则:(1)属性不能再具有需要描述的性质。即属性属性必须是不可分不可分的数据项,

27、不能再由另一些属性组成(2)属性不能与其他实体具有联系。联系联系只发生在实实体之体之间间n符合上述两条特性的事物一般作为属性对待。n现实世界中的事物凡能够作为属性对待的,应尽量作为属性。如何区分实体和属性n举例举例例例1:职称通常作为教师实体的职称通常作为教师实体的属性。属性。 但但在涉及住房分配时,由于分房与职称有在涉及住房分配时,由于分房与职称有关,也就是说职称与住房实体之间有联系,关,也就是说职称与住房实体之间有联系,根据准则,这时把职称作为实体来处理会根据准则,这时把职称作为实体来处理会更合适些。更合适些。如何区分实体和属性职称作为一个实体如何区分实体和属性例2 如果一种货物只存放在一

28、个仓库,那么就可以把存放货物的仓库的仓库号作为描述货物存放地点的属性,但n如果一种货物可以存放在多个仓库中;n或者仓库本身又有如面积、地址等属性;n或者与职工发生管理上的联系。 那么就应该把仓库作为一个实体。那么就应该把仓库作为一个实体。如何区分实体和属性仓库作为一个实体E-R模型设计要点n若实体中除了多值属性之外还有其它若干属性,则将该多值属性定义为另一实体姓名零件S1P1S1P2S1P3姓名 零件 地址 电话S1P1北京 1234S1P2北京 1234S1P3北京 1234供应商供应商姓名姓名零件零件姓名姓名地址地址电话电话零件零件供应商供应商72E-R模型设计要点零件零件供应供应名称名称

29、供应商供应商姓名姓名地址地址电话电话姓名零件S1P1S1P2S1P3姓名 地址 电话S1北京 123473E-R模型设计要点n实体集 Vs 联系集n实体与联系:静态与动态教师教师课程课程讲授讲授姓名姓名名称名称单纯表示单纯表示“教师教师”实实体与体与“课程课程”实体之实体之间的行为联系间的行为联系教师名课程名T1C1T2C174E-R模型设计要点教师教师课程课程讲授讲授姓名姓名名称名称起始时间起始时间地点地点人数人数弊端弊端若多个老师开若多个老师开同一门课,则同一门课,则每个老师与该每个老师与该课程的联系都课程的联系都需重复记录很需重复记录很多相同的信息多相同的信息教师名 课程名 起始时间 地

30、点 人数学期T1C19.1B114120 14.秋T2C110.1B114120 14.秋T1C111.1B114120 14.秋学期学期75E-R模型设计要点教师名课程名学期起始时间T1C115.秋9.1T2C115.秋10.1T3C115.秋11.1课程名 学期地点 人数C115.秋 R114 120开课开课地点地点人数人数教师教师课程课程姓名姓名名称名称学期学期讲授讲授起始时间起始时间注册注册76n二元 Vs 多元n多元转换为二元:children与parent(mom、dad)新构建一个标识实体集E,构造三个新联系集RA , RB , RC ,对每个( ai , bi , ci )R,

31、在E中创建一个ei ,然后在RA , RB , RC中分别加入联系(ei , ai ),(ei , bi ),(ei , ci )BCARBCARAERBRCE-R模型设计要点78n缺点n浪费存储空间n语义不清晰,难于体现参与联系的各方ABC123427483EA112434EB122238EC132733E-R模型设计要点79BCARBCAR1R2R3ABC123427483AB124248BC232783AC134743E-R模型设计要点(4,2,3) ABC?供应商S提供零件P,项目J需要零件P,J从S购买零件S向J供应P供货数量放在哪里?80E-R模型设计要点n聚集 vs 三元一个项目

32、由多个部门资助,一个部门资助多个项目,每个资助协议由一个或多个雇员监督项目项目部门部门资助资助雇员雇员81E-R模型设计要点资助有起始时间,监督有截止时间项目项目部门部门资助资助雇员雇员监督监督起始时间截至时间82E-R模型设计要点每个资助协议最多由一个雇员来监督项目项目部门部门资助资助雇员雇员监督监督项目项目部门部门资助资助雇员雇员83职工职工项目项目参加参加并并使用使用机器机器职工只能使用一台机器职工职工项目项目参加参加使用使用机器机器职工职工项目项目参加参加机器机器使用使用职工参加一个项目最多使用一台机器84E/R模型的设计原则模型的设计原则n1. 忠实忠实性:所设计的实体集、属性和联系

33、必须性:所设计的实体集、属性和联系必须要能够反映应用需求背景中的实际情况。要能够反映应用需求背景中的实际情况。n2. 避免避免冗余:一件事如果在模型中多次出现就冗余:一件事如果在模型中多次出现就意味着冗余意味着冗余。n空间浪费空间浪费n一致性维护麻烦一致性维护麻烦85nExample: Good86BeersManfsManfBynamenameaddrThis design gives the address of each manufacturer exactly once.nExample: Bad87BeersManfsManfBynamenamemanfaddrBeersnamema

34、nfmanfAddrThis design states the manufacturer of a beer twice: as an attribute and as a related entity.This design repeats the manufacturers address once for each beer and loses the address if there are temporarily no beers for a manufacturer.ER模型的设计原则(模型的设计原则(续)续)n3. 简单性简单性考虑:用尽可能少的元素来描述模型考虑:用尽可能少的

35、元素来描述模型,如果有必要,再逐步逐个扩充。,如果有必要,再逐步逐个扩充。n 4. 联系联系的选择:联系也有可能冗余的选择:联系也有可能冗余。n根据根据实际实际问题需求问题需求判断要创建哪些必要的联系,判断要创建哪些必要的联系,如果一个联系如果一个联系可以可以从其他的联系中导出,则应舍从其他的联系中导出,则应舍弃。弃。88前课回顾n基本概念、ER图的表示n实体集联系的种类及多样性n教师 - 授课 - 学生n 指导n弱实体集n什么是弱实体集n弱实体集的作用n反映依赖关系、级联管理(删除、存储)n特化与概化n自顶向下与自底向上(强调差异与强调共性)89前课回顾n聚集n联系间的重叠(与联系发生联系)

36、nE-R模型设计要点n实体与属性、实体与联系、二元与多元nE-R模型设计原则n忠实性、避免冗余、简单性考虑、联系的选择、选择正确的元素种类90ER模型的设计原则(续)模型的设计原则(续)n5. 选择选择正确的元素种类正确的元素种类选择实体集还是属性来表示?选择实体集还是属性来表示?一般来说,属性比实体集或联系易于实现,然而不能把所一般来说,属性比实体集或联系易于实现,然而不能把所有东西都用属性来表示有东西都用属性来表示。n属性属性集代替实体集的三个条件。集代替实体集的三个条件。n所有与所有与E E有关的联系必须有指向有关的联系必须有指向E E的箭头,即的箭头,即E E必须是多对必须是多对一联系

37、的一方;一联系的一方;n如果如果E E有多个属性,则必须没有属性依赖于其他属性,即有多个属性,则必须没有属性依赖于其他属性,即E E的唯一键是它所有的属性的唯一键是它所有的属性;91nExample: GoodnManfs作为一个实体集,因为存在非主属性nBeers作为一个实体集,因为它是多对一的联系ManfBy“多”的一方面92BeersManfsManfBynamenameaddrnExample: Goodn如果Beers除了存储厂家名字之外,不存储关于厂家的其他信息,则没有必要将厂家作为实体93BeersnamemanfnExample: Badn厂家除了名字外没有其他属性,并且不是关

38、系中多的一方面,没必要作为实体94BeersManfsManfBynamename95ER图-课堂练习n为医院构建一个包含一组病人和一组医生的ER图。每个病人关联一组病历记录,医生对病人检查并开具化验单n弱实体、三元关系9697病人病人医生医生门诊记录门诊记录姓名姓名 保险号保险号 身份证号身份证号治疗治疗姓名姓名专长专长病历病历名称名称日期日期结果结果化验单化验单名称名称 日期日期结果结果检查检查概念数据库设计过程(小结)需求分析结果确定局部结构范围实体定义联系定义属性分配全局E-R模式设计98概念数据库设计过程(小结)局部E-R模式确定公共实体类型合并两个局部E-R模式检查并消除冲突还有未

39、合并的局部模式?全局E-R模式优化无有99概念数据库设计过程合并实体类型消除冗余属性消除冗余联系全局E-R模式逻辑数据库设计100概念结构向逻辑结构转换101E-R模型向关系模式的转换n两条基本规则两条基本规则n把每个实体集转化为具有同一属性集合的关系n用关系替换联系用关系替换联系,关系的属性就是联系所连接的实体集的键集合n特殊处理特殊处理n弱实体集不能直接转化为关系nisa联系和子类要特殊处理n关系的合并:当一个关系从实体集E转化而成,而另一个关系由E到其他实体集的多对一的联系转化而来。102E-R模型向关系模式的转换n对任一个非弱实体集,创建一个同名且具有相同属性集的关系。n实体 关系n属

40、性 关系的属性学生学生姓名姓名学号学号系别系别学生姓名系别103E-R模型向关系模式的转换n复合属性 将每个组合属性作为复合属性所在实体的属性学生学生姓名姓名学号学号年年月月出生日期出生日期日日学生姓名年月日104E-R模型向关系模式的转换n多值属性 新的关系+所在实体的码学生学生姓名姓名学号学号所选课程所选课程学生姓名学生选课105E-R模型向关系模式的转换n联系联系到关系的到关系的转化转化基本基本规则规则n属性属性n对于联系对于联系R涉及的每一个实体集涉及的每一个实体集,它们,它们的码属性都是的码属性都是R关关系模式的一部分;系模式的一部分;n如果这个如果这个联系本身有属性联系本身有属性,

41、则它们也是,则它们也是R关系中的属性;关系中的属性;n如果一个实体集在联系中有多个角色,则它如果一个实体集在联系中有多个角色,则它的的码码属性属性出现的次数等于角色的次数出现的次数等于角色的次数,转换为关系时,转换为关系时为避免重名需重新命名;为避免重名需重新命名;n重名问题重名问题n如果如果R本身的属性和与其相连的实体集本身的属性和与其相连的实体集的码属性的码属性有同名,则要重命名有同名,则要重命名。106E-R模型向关系模式的转换n实体型间的联系有以下不同情况 :n(1)一个1:1联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。n转换为一个独立的关系模式n 与某一端实

42、体对应的关系模式合并n(2)一个1:n联系可以转换为一个独立的关系模式,也可以与n端对应的关系模式合并。n 转换为一个独立的关系模式n与n端对应的关系模式合并107E-R模型向关系模式的转换n(3) 一个m:n联系转换为一个关系模式。例,“选修”联系是一个m:n联系,可以将它转换为如下关系模式,其中学号与课程号为关系的组合码选修(学号,课程号,成绩)n(4)三个或三个以上实体间的一个多元联系转换为一个关系模式。例,“讲授”联系是一个三元联系,可以将它转换为如下关系模式,其中课程号、职工号和书号为关系的组合码:讲授(课程号,职工号,书号)108E-R模型向关系模式的转换n(5)具有相同码的关系模

43、式可合并n目的:减少系统中的关系个数n合并方法:将其中一个关系模式的全部属性加入到另一个关系模式中,然后去掉其中的同义属性(可能同名也可能不同名),并适当调整属性的次序109E-R模型向关系模式的转换n一对多联系:将单方参与实体的码作为多方参与实体的属性教师教师学生学生班主任班主任学生学生名系号班主任教工号教师教工名110E-R模型向关系模式的转换职工职工领导领导领导领导属下属下职工职工名工资领导职工号111E-R模型向关系模式的转换学生学生课程课程选修选修学生学生名课程课程名选修n多对多联系:将联系定义为新的关系,属性为参与双方的码112E-R模型向关系模式的转换构成构成零件零件母零件母零件

44、子零件子零件零件零件名构成113E-R模型向关系模式的转换n一对一联系:若联系双方均部分参与,则将联系定义为一个新的关系,属性为参与双方的码职工职工配偶配偶丈夫丈夫妻子妻子配偶e2e3配偶号e1nulle2e3e3e2e4null114E-R模型向关系模式的转换n一对一联系:若联系一方全部参与,则将联系另一方的码作为全部参与一方的属性职工职工部门部门管理管理部门部门名管理职工号职工职工名115E-R模型向关系模式的转换n弱实体集:所对应的关系的码由弱实体集本身的分辩符再加上所依赖的强实体集的码产品产品公司公司制造制造产品名产品名地址地址价格价格公司名公司名联系电话联系电话产品价格公司地址 联系

45、电话116E-R模型向关系模式的转换RSABCadbecf117前课回顾n局部视图设计(设计分E-R图的步骤):选择局部应用(适当层次数据流图出发)逐一设计分E-R图n标定实体、属性、码, 确定联系及类型n视图的集成n1. 合并:解决各分E-R图之间的冲突,将各分 E-R图合并起来生成初步E-R图。n2. 修改与重构:消除不必要的冗余,生成基本E-R图118前课回顾n逻辑结构设计任务n将概念结构转化为具体的数据模型n逻辑结构设计的步骤119前课回顾nE-R图向关系模型的转换内容n将E-R图转换为关系模型:将实体、实体的属性和实体之间的联系转化为关系模式。nE-R图向关系模型的转换原则n实体n强实体、弱实体n属性n联系n1:1、1:n、m:n、多元联系、自联系120E

温馨提示

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

评论

0/150

提交评论