第七章-数据库设计与E-R模型_第1页
第七章-数据库设计与E-R模型_第2页
第七章-数据库设计与E-R模型_第3页
第七章-数据库设计与E-R模型_第4页
第七章-数据库设计与E-R模型_第5页
已阅读5页,还剩124页未读 继续免费阅读

下载本文档

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

文档简介

1、2021/8/1412021/8/142引子引子l现计划为某大学设计一个教室管理信息系现计划为某大学设计一个教室管理信息系统,管理的内容包括教室、班级、教师、统,管理的内容包括教室、班级、教师、学生、课程、教学设备、教室管理员。请学生、课程、教学设备、教室管理员。请按你的理解完成以下要求。按你的理解完成以下要求。l画出画出E-R图,转换成关系模式,图,转换成关系模式,l根据关系模式,用关系代数写出以下查询:根据关系模式,用关系代数写出以下查询:2021/8/143引子引子l(1)找出姓名为王平的学生周一)找出姓名为王平的学生周一3、4节上节上课的教室号、课程名、教师名、班长名课的教室号、课程名

2、、教师名、班长名l(2)找出周四)找出周四5、6节能容纳节能容纳150以上、具以上、具有投影仪和空调且使用状态正常的空教室,有投影仪和空调且使用状态正常的空教室,给出教室号、管理员姓名、管理员电话给出教室号、管理员姓名、管理员电话2021/8/144引子引子lP28:图:图2-9;lP63:图:图3-18,图,图3-19,图,图3-20 对应的对应的E-R图是什么?图是什么?2021/8/145提纲提纲l基本概念l映射约束l弱实体集l扩展ER特性lER模型设计要点l概念数据库设计过程lER模型向关系模式的转换2021/8/1467.1 设计过程概览设计过程概览l历史ER模型:Entity-Re

3、lationship Model1976年,P.P.S.Chen提出ER模型,用ER图来描述概念模型l观点世界是由一组称作实体的基本对象和这些对象之间的联系构成的l语义模型力图表达数据的意义2021/8/147概念模型设计概念模型设计例:学生选修课程学生课程选修姓名学号系别课程名先修课学分成绩用矩形表示实体集,在框内写上实体名用椭圆表示实体的属性用无向边把实体与其属性连接起来用菱形表示实体间的联系将参与联系的实体用线段连接mn联系的数量2021/8/148逻辑模型设计逻辑模型设计l学生=(学号,姓名,系别)l课程=(课程名,先修课,学分)l选修=(学号,课程名,成绩)2021/8/149202

4、1/8/1410逻辑模型设计逻辑模型设计lcustomer=( customer-id, Employee-id )lloan=(loan-number, Branch-number )laccount=( account-number, , Branch-number )lBranch=( Branch-number ,)lEmployee=(Employee-id,manager-id )lPayment=(loan-number, Payment-number , )lBorrower=(customer-id, loan-number, )lDepositor=(customer-id

5、, account-number, ,)2021/8/14117.2 实体-联系模型l一、实体集l实体(Entity)客观存在并可相互区分的事物叫实体实体名标识,如学生,课程如学生:张三、李四,课程:计算机原理、数据库概论l实体集(Entity Set)同型实体的集合称为实体集,如全体学生实体集可相交2021/8/1412实体型l实体型实体型 实体名和属性名组成实体型。对关系模型就是关系模式。例如, 学生(学号,姓名,性别,年龄,系别,入学时间),是学生实体型。 (98080221,王平,女,19,计算机,1998)是一个实体。2021/8/1413customer-idcustomer-na

6、mecustomer-street customer-city loanamount基本概念基本概念-实体实体2021/8/1414基本概念基本概念属性属性l属性(Attribute)实体特征,通过其值区分不同的实体例如,学生=(学号,姓名,年龄,系) 学生实体集=(001,李明, 年龄,21,中文), 一般: 实体对应表中一个元组(记录) 属性对应表中一个字段(数据项) 实体集 对应一个表2021/8/1415属性的类型属性的类型l简单属性 :不可再分的属性如学号、年龄、性别l复合属性:可以划分为更小的属性可以把相关属性聚集起来,使模型更清晰如电话号码=区号+本地号码 出生日期=年、月、日

7、如出生日期定义为简单属性取1984/8/12 2021/8/1416属性的类型属性的类型2021/8/1417属性的类型属性的类型l单值属性:每一个特定的实体在该属性上的取值唯一如学生的学号,年龄、性别、系别等l多值属性:属性上有多于一个的取值如作者(张平,李华,刘宁)lNULL属性null表示“空值”,属性上没有值时设为null, 定义数据库时可选,进行逻辑、计数或求和时有规定。如一个学生年龄为空时,年龄20, 怎么判2021/8/1418属性的类型属性的类型l派生属性从其他相关的属性或实体派生出来的属性值学生=(学号,姓名,出生日期,年龄,平均成绩)选课=(学号,课程号,成绩) 年龄:由系

8、统时间减出生日期得到 平均成绩:由选课的成绩除以课程总数来得到。 年龄、平均成绩称为派生属性, 出生日期、成绩称为基属性,或存储属性2021/8/1419属性在属性在ERER图中的表示图中的表示l表示要点多值属性用双椭圆表示派生属性用虚椭圆表示学生学生姓名姓名选修课程选修课程学生学生姓名姓名平均成绩平均成绩系别系别2021/8/1420属性在属性在ERER图中的表示图中的表示2021/8/1421基本概念基本概念域域l域(Domain)属性的取值范围 例如,性别的域为(男、女) 月份的域为到的整数, 成绩的域取integer域对应数据类型 域可取缺省定义,也可以用语句显式定义 CREATE D

9、OMAIN AGE_DOMAIN SMALLINT 2021/8/1422基本概念基本概念-码码l码(Key)能唯一标识实体的属性或最小属性集,也称为实体键。具有唯一性的特点,即给出码属性的一个值,到实体集中或只找出一个实体或一个也找不到如果有多个码,每个码都称为侯选码,从中指定一个作为主码。例如职工实体集中,职工号为候选码,若姓名不重,也是候选码。超码:候选码的超集,比候选码有多余的属性,也能唯一标识一个实体。任一表都有码。2021/8/1423基本图要点基本图要点l码在ER图中的表示实体集属性中作为主码的一部分的属性用下划线来标明。学生学生课程课程选修选修姓名姓名学号学号系别系别课程名课程

10、名先修课先修课学分学分2021/8/1424基本ER图要点2021/8/1425基本概念基本概念-联系联系l联系集l联系:实体之间的相互关联,用联系名标识 ,分为两(多)实体集之间实体的关联,同一实体集内部实体之间的关联。 如学生与课程间的选课,学生与学生间的领导l联系的类型两实体集之间两实体集之间1 1:1 1联系联系 如果对于实体集如果对于实体集A中的每一个实体,实体集中的每一个实体,实体集B中中至多有一个实体与之关联,反之亦然。至多有一个实体与之关联,反之亦然。 注意:至多一个,意味着可以没有注意:至多一个,意味着可以没有。2021/8/1426映射的基数映射的基数l如“职工”与“部门”

11、之间的“管理”联系(假定每个部门只有一个经理,一个职工不能兼任两个部门经理)l注:一对一不是一一对应职工职工部门部门管理管理2021/8/1427基本概念基本概念-联系联系 例如,班级实体集与学生实体集间有11的班长联系,联系名是班长。两实体集之间1: n联系 如果对于实体集A中的每个实体,实体集B中有n个实体(n0)与之关联,反之,对实体集B中的每个实体,实体集A中至多有一个实体与之关联。 例如,院系实体集与学生实体集有一对多的隶属联系,联系名是隶属。 注意,注意,n的取值可以为0,这意味着A中的某个实体在B中并没有实体与之关联。 2021/8/1428映射基数在ER图中的表示多方实体集多方

12、实体集单方实体集单方实体集联系联系R R从从A A到到B B是多是多对一对一A AB BR Rl表示要点 用箭头或线段来表示联系的映射基数2021/8/1429映射的基数映射的基数l如“教师”和“学生”之间的“班主任”联系教师教师学生学生班主任班主任2021/8/1430基本概念基本概念-联系联系两实体集之间m: n联系 如果对于实体集A中的每个实体,实体集B中有m个实体(m0)与之关联,反之,对于实体集B的每个实体,实体集A中也有n个实体(n0)与之关联。 例如,课程实体集与学生实体集之间有选课联系,联系名是选课。 注意,n和m的值都可以为0 。多实体集之间m: n:p联系 例如,设备实体集

13、,供货商实体集,工程实体集之间的供货联系,联系名是供应。 2021/8/1431映射的基数映射的基数两个实体间多对多l如“学生”和“课程”之间的“选修”联系学生学生课程课程选修选修联系联系R R从从A A到到B B是多对是多对多多ABR2021/8/1432l多个实体集间联系l如“课程”,“教员”,“参考书”之间的“讲课”联系教员参考书讲课课程映射的基数映射的基数2021/8/1433基本概念基本概念-联系联系联系集联系集 borrowerborrower2021/8/1434基本概念基本概念-联系联系实体集customer与account之间的联系集depositor具有属性access-d

14、ate2021/8/1435基本概念基本概念-联系联系同一实体集内联系 同一实体集内各实体间的联系也呈现一对一,一对多,多对多的形式。 例如,职工实体集内部有一对多的领导联系;学生实体集内有一对一的同位联系;零部件实体集内有组装的m n的联系。l联系的参与度联系的参与度(participation)。 每个实体有一个参与联系的次数,取最小、最大的参与次数min和max,定义实体集的参与度。2021/8/1436映射的基数映射的基数l一个实体集内的二元联系一对一lei E,至多存在一个ej E,与之相联系(ji)l如“职工”之间的“配偶”联系一对多l如“职工”内部的“领导”联系多对多l如“零件”

15、之间的“构成”联系职工领导领导属下职工配偶丈夫妻子构成零件母零件子零件2021/8/1437基本概念基本概念-联系联系l联系的参与度联系的参与度(participation)。 每个实体有一个参与联系的次数,取最小、最大的参与次数min和max,定义实体集的参与度。 min=0,称联系为部分参与;如果min0,称联系为全参与。Max限制每个实体的参与次数。2021/8/1438参与在参与在ERER图中的表示图中的表示customer部分参与联系borrowerLoan完全参与联系borrower用双线连接联系与完全参与的实体2021/8/1439基本概念基本概念-联系联系 联系的属性。 实体有

16、属性,联系也可以有属性。 例如,选课联系中可以有成绩属性。联系集联系集 参与联系的实体组成的集合。联系一般也用表来表示,取各实体的主码和联系的属性组成表结构 2021/8/1440基本概念基本概念-联系联系 例如学生实体集与课程实体集有选课联系,联系集属性是学号、课程号以及成绩。选课的学生和被选的课程参加联系集。注意:联系一般用表来表示,是否建立表与联系的类型有关。 l联系集的码联系一般也用表来表示,其码由各实体的主码组成。如选课表的码是学号和课程号。 2021/8/1441基本概念基本概念-角色角色l角色(Role)实体在联系中的作用称为实体的角色当同一个实体集不止一次参与一个联系集时,为区

17、别各实体的参与联系的方式,需要显式指明其角色如学生与学生间的班长关系,职工与职工之间的经理关系,课程之间的先修关系2021/8/1442角色在角色在ERER图中的表示图中的表示 角色表示当需要显式区分角色时,在连接菱形和矩形的线上加上说明性标注以区别不同的角色职员雇佣管理工作2021/8/1443角色在角色在ERER图中的表示图中的表示2021/8/1444映射的基数映射的基数映射的基数会影响到ER设计,例如customer与account之间是1:n联系,则可将access-date作为account的属性2021/8/1445映射的基数映射的基数若customer与account之间是m:

18、n联系,access-date则必须作为联系集depositor的属性2021/8/1446映射的基数映射的基数One-To-ManyOne-To- One2021/8/1447映射的基数映射的基数Many-To-ManyMany-To-One2021/8/1448存在依赖存在依赖l存在依赖(Existence Dependency)如果实体x的存在依赖于实体y的存在,则称x存在依赖于yy称作支配实体,x称作从属实体如果y被删除,则x也要被删除考虑分期付款的例子,对每一个“贷款”实体,有若干个“还款”实体与之关联,“还款”实体存在依赖于“贷款”实体l全部参与与存在依赖设A R B,若A存在依赖

19、于B,则A全部参与联系R2021/8/1449提纲提纲l基本概念及对应的ER模型l映射约束l弱实体集l扩展ER特性lER模型设计要点l概念数据库设计过程lER模型向关系模式的转换2021/8/1450弱实体集弱实体集l弱实体集(Weak Entity Set)如果一个实体集的所有属性都不足以形成主码,则称这样的实体集为弱实体集贷款(贷款号,金额),还款(还款号,还款日期,金额),每个“贷款”的各个“还款”不同,但不同“贷款”之间的“还款”却可能相同,因此“还款”是一个弱实体集产品(名称,价格),公司(名称,地址,联系电话),“产品”与“公司”之间有“制造”联系,“产品”是一个弱实体集。2021

20、/8/1451弱实体集弱实体集弱实体集与其拥有者之间的联系称作标识性联系(identifying relationship)弱实体集与强实体集之间是一对多的联系l弱实体集与存在依赖弱实体集必然存在依赖于强实体集(Strong Entity Set)存在依赖并不总会导致一个弱实体集,从属实体集可以有自己的主码如实体集信用卡(信用卡号,客户帐号,金额),它存在依赖于客户帐号实体集,但信用卡有自己的主码信用卡号。2021/8/1452弱实体集弱实体集l分辨符(Discriminator)弱实体集中用于区别依赖于某个特定强实体集的属性集合。也称作部分码(partial key)如“还款”中的还款号弱实

21、体集的主码由该弱实体集所存在依赖的强实体集的主码和该弱实体集的分辨符组成l如“还款”主码贷款号还款号l“产品”主码 =公司名称+产品名称 。2021/8/1453弱实体集弱实体集l为什么使用弱实体集? 通过为弱实体集加上合适的属性,可转变为强实体集,为什么还要使用弱实体集?避免数据冗余(强实体集码重复),以及因此带来的数据的不一致性弱实体集反映了一个实体对其它实体依赖的逻辑结构弱实体集可以随它们的强实体集的删除而自动删除弱实体集可以物理地随它们的强实体集存储2021/8/1454弱实体集弱实体集l弱实体集的引入作为层次结构的一部分实体集的一些多值、复合属性可以抽取出来作为弱实体集如果弱实体集不

22、但参与和强实体集之间的标识性联系,而且参与和其它实体集的联系,或者弱实体集本身含有很多属性,则将其表述为弱实体集如果弱实体集只参与和强实体集之间的标识性联系,或者弱实体集本身属性不多,则将其表述为属性2021/8/1455弱实体集参与其它联系消费帐户隶属消费号帐户号消费金额金额利息隶属顺序号利息记息2021/8/1456弱实体集弱实体集l弱实体集在-R图中的表示弱实体集以双边框的矩形表示标识性联系以双边框的菱形表示从联系集用双线(全部参与)连接弱实体集,用箭头(一对多联系)指向强实体集弱实体集的分辨符用下划虚线标明2021/8/1457弱实体集弱实体集还款贷款隶属还款号贷款号还款金额贷款金额2

23、021/8/1458弱实体集弱实体集产品公司制造产品名地址价格公司名联系电话2021/8/1459弱实体集弱实体集2021/8/1460提纲提纲l基本概念及对应的ER模型l映射约束l弱实体集l扩展ER特性lER模型设计要点l概念数据库设计过程lER模型向关系模式的转换2021/8/1461扩展扩展ERER特性特性l特殊化(Specialization)l概括(Generalization)l属性继承(Attribute Inheritance)l设计约束(Design Constraints)l聚集(Aggregation)2021/8/1462特殊化特殊化l特殊化实体集中某些子集具有区别于该

24、实体集内其它实体的特性,可以根据这些差异特性对实体集进行分组,这一分组的过程称作特殊化自顶向下、逐步求精父类子类子类特例更小的实体集更多的属性一个银行帐号可以有存款帐号、贷款帐号学生可以有研究生、本科生2021/8/1463特殊化特殊化l特殊化在E-R图中的表示特殊化用标记为ISA的三角形来表示ISA = “is”,表示高层实体和低层实体之间的“父类子类”联系本科生研究生学生ISA硕士ISA博士姓名学号DissertationPapers军训2021/8/1464特殊化特殊化2021/8/1465概括概括l概括各个实体集根据共有的性质,合成一个较高层的实体集。概括是一个高层实体集与若干个低层实

25、体集之间的包含关系自底向上、逐步合成l概括 Vs 特殊化概括与特殊化是个互逆的过程,在E-R图中的表示方法是相同的特殊化强调同一实体集内不同实体之间的差异,概括强调不同实体集之间的相似性反映了数据库设计的不同方法2021/8/1466属性继承属性继承l属性继承高层实体集的属性被低层实体集自动继承低层实体集特有的性质仅适用于某个特定的低层实体集如“Dissertation”属性只适用于“研究生”实体集l层次结构(Hierarchy)实体集作为低层实体集只能参与到一个ISA联系中l格结构(Lattice)低层实体集可以参与到多个ISA联系中如“博士”算参加工作,会继承“职工”实体集的一些属性202

26、1/8/1467 “博士”继承了“研究生”与“职工”的所有属性。如果“研究生”与“职工”有相同名称的属性,如“姓名”,则在“博士”中用“研究生.姓名”,“职工.姓名”区别开来。本科生研究生学生ISA硕士ISA博士姓名学号DissertationPapers军训职工姓名工龄ISA属性继承属性继承2021/8/1468l成员资格确定哪些实体能成为给定低层实体集的成员条件定义的(Condition-Defined)l一个实体成员资格的确定基于该实体是否满足一个显式的条件或谓词l假定“学生”实体集具有属性“学生类型”,则所有的学生实体根据“学生类型”进行成员资格认定,如一个学生的“学生类型”=“本科生

27、”,则他就可以归入低层“本科生”实体集中l系统可以自动检查条件定义的约束用户定义的(User-Defined)l由数据库用户来指定一个实体归入哪个低层实体集l如一个学生被老师分配到某个项目组设计约束设计约束2021/8/1469l成员身份 同一个概括中,一个实体是否可以属于多个不同低层实体集不相交的(Disjoint)l一个实体至多属于一个低层实体集l如一个学生只能参加一个项目组有重叠的(Overlapping)l同一实体可以同时属于同一概括的多个低层实体集l如一个老师可以参加多个项目组设计约束设计约束2021/8/1470l全部性约束 确定高层实体集中的一个实体是否必须属于某个概括的至少一个

28、低层实体集全部的(Total)l每个高层实体必须属于一个低层实体集l如学生必须属于“本科生”或“研究生”的一种部分的(Partial)l允许一些高层实体不属于任何低层实体集l如学生可以不属于任何项目组。、设计约束设计约束2021/8/1471l聚集联系之间存在重叠,如何表达联系之间的联系?实例:职工参加项目,并在此过程中可能使用机器职工项目参加姓名 工种名称类型机器名型号方案2工时使用机器聚集聚集职工项目参加并使用姓名 工种名称类型机器名型号方案1工时机器2021/8/1472聚集聚集方案方案1 1方案方案2 22021/8/1473聚集是一种抽象,通过它联系被作为高层实体集。实体集A与B以及

29、它们的联系可被看成另一实体集C使用聚集来消除冗余l将联系作为抽象实体l允许联系之间存在联系l将联系抽象进新的实体中聚集聚集ABR1R2D2021/8/1474聚集聚集职工项目参加姓名 工种名称类型机器名型号工时使用机器2021/8/1475制造商批发商联营名称 地址名称地址产品名价格时间分送产品聚集聚集2021/8/1476ERER图表示汇总图表示汇总2021/8/1477ERER图表示汇总图表示汇总2021/8/1478提纲提纲l基本概念及对应的ER模型l映射约束l弱实体集l扩展ER特性lER模型设计要点l概念数据库设计过程lER模型向关系模式的转换2021/8/1479l对于一个数据对象究

30、竟作为实体还是属性或联系是相对的,决定于应用背景和设计者的偏爱。一般说来,按数据粒度确定实体与属性,能形成元组的设计成实体,只是单一数据项的设计成属性。l设计E-R图时一定与将来转化成关系模式结合起来,要考虑表的多少,查找数据的方便。 ERER模型设计要点模型设计要点2021/8/1480l实体集 Vs 属性职工姓名电话适于一个员工只有一部电话的情况职工电话联系电话姓名号码地址适于多个员工共有一部电话,一个员工多个电话,电话本身具有多个属性的情况ERER模型设计要点模型设计要点2021/8/1481l员工抽象为一个实体l电话若只是一个数据项则作为员工的属性,l电话若需多个属性描述设计成实体。

31、例:员工有多部电话,一个电话属多个员工,电话在不同的地方 1. 设计成属性,表结构是: 员工=(姓名,性别,职务,号码,地点) 这样,查找员工的电话号方便,查找地点也方便,但数据冗余大,姓名,性别,职务随电话增加而冗余。ERER模型设计要点模型设计要点2021/8/1482 2.若设计成实体,表结构是: 员工=(姓名,性别,职务) 电话=(号码,地址) 联系电话=(姓名,号码) 这样,冗余小了,但查找某员工的电话地点要查两个表。ERER模型设计要点模型设计要点2021/8/1483ERER模型设计要点模型设计要点实体有多方面性质,属性没有,如城市为属性,只一个,为实体,可以多个属性项目名称城市

32、项目城市位于名称名称面积人口2021/8/1484ERER模型设计要点模型设计要点实体中,多值属性,还要其它若干属性,则将该多值属性定义为另一实体l供应商可以供应多种零件供应商姓名零件零件供应名称供应商姓名地址电话2021/8/1485ERER模型设计要点模型设计要点l实体集 Vs 联系集教师课程开课姓名名称单纯表示“教师”实体与“课程”实体之间的行为联系2021/8/1486实体与联系:静态与动态,若多个老师开同一门课,则每个老师与该课程的联系都需重复记录很多相同的信息, 开课改为实体, 与课程是1:N, 与教师是N:M开课时间地点班级教师课程开课姓名名称时间地点班级ERER模型设计要点模型

33、设计要点2021/8/1487实体与联系:静态与动态,若多个老师开同一门课,则每个老师与该课程的联系都需重复记录很多相同的信息, 开课改为实体, 与课程是1:N, 与教师是N:M开课时间地点班级教师课程开课姓名名称时间地点班级ERER模型设计要点模型设计要点2021/8/1488例如,病人,医生,病历,病历作为实体,是四个表,作为联系是三个表ERER模型设计要点模型设计要点2021/8/1489提纲提纲l基本概念及对应的ER模型l映射约束l弱实体集l扩展ER特性lER模型设计要点l概念数据库设计过程lER模型向关系模式的转换2021/8/1490概念数据库设计过程概念数据库设计过程lER方案选

34、择对现实世界概念要作出准确而有效的表达用实体集还是属性用实体集还是联系集用二元联系还是多元联系用强实体集还是弱实体集是否要用概括是否要用聚集2021/8/1491概念数据库设计过程概念数据库设计过程需求分析结果确定局部结构范围实体定义联系定义属性分配局部ER模式设计全局ER模式设计2021/8/1492概念数据库设计过程概念数据库设计过程局部ER模式确定公共实体类型合并两个局部ER模式检查并消除冲突全局ER模式设计还有未合并的局部模式?全局ER模式优化无有2021/8/1493概念数据库设计过程概念数据库设计过程-消除冲突消除冲突l属性冲突属性域的冲突:属性的类型、取值范围不同l如不同学校的学

35、号编码方式不同属性取值单位冲突l如重量分别采用磅、千克l结构冲突同一对象在不同应用中的抽象不同l如职工在某应用中是实体,在另一应用中则抽象为属性同一实体在不同E-R图中属性组成不同实体之间的联系在不同E-R图中呈现不同的类型l命名冲突同名异义:不同意义的对象具有相同的名字异名同义:同一意义的对象具有不同的名字2021/8/1494概念数据库设计过程概念数据库设计过程合并实体类型消除冗余属性消除冗余联系全局ER模式优化全局ER模式逻辑数据库设计2021/8/14952021/8/1496概念数据库设计过程概念数据库设计过程l例:在教学管理系统中,要处理的数据有学生,班级,课程,教师,参考书五部分

36、, 联系根据语义说明,本例的语义说明是,每个学生隶属一个班级;每个学生要选修多门课程;每门课程可由多个学生选修,每个学生选修的课程有一个成绩;一门课程可由多个教师开设,并指定多本参考书,而一个教师只能讲授一门课程,一本参考书只用于一门课程,学生中有班级领导。2021/8/1497概念数据库设计过程概念数据库设计过程l例:在工厂管理系统中,需要管理的数据由五部分组成,职工,部门,产品,零件,供应商其属性如下:l 职工:职工号,姓名,性别,年龄,工种,级别l 部门:部门号,部门名,负责人,电话l 产品:产品号,产品名,型号2021/8/1498概念数据库设计过程概念数据库设计过程l零件:零件代号,

37、零件名称,规格,价格l 供应商:供应商名,地址,联系人,电话l 语义说明如下:职工隶属一个部门,每个职工有一个直属领导;一个产品由多个职工生产,由一个职工负责检验;一个产品由多零件组装,一种零件可以组装多种产品;产品和零件既可以由供应商供应,也可以由职工加工。2021/8/1499提纲提纲l基本概念及对应的ER模型l映射约束l弱实体集l扩展ER特性lER模型设计要点l概念数据库设计过程lER模型向关系模式的转换2021/8/141007.6 7.6 转换为关系模式转换为关系模式l实体 关系l属性 关系的属性S S(SNOSNO,SNAMESNAME,DEPTDEPT)学生学生姓名姓名学号学号系

38、别系别2021/8/14101属性的转换属性的转换多值属性多值属性 新的关系新的关系+所在实体的码所在实体的码选课选课(学号,所选课程号)学号,所选课程号)学生姓名学号所选课程复合属性复合属性 将每个组合属性作为复合属性所在将每个组合属性作为复合属性所在实体的属性实体的属性学生姓名学号年月出生日期日学生学生(学号,姓名,年,月,日学号,姓名,年,月,日)2021/8/14102关系模式的转换关系模式的转换弱实体集:所对应的关系的码由弱实体集本身的分辩符再加上所依赖的强实体集的码产品产品(产品名产品名,价格价格,公司名公司名)产品公司制造产品名地址价格公司名联系电话弱实体集与强实体集之间的联系已

39、经在弱实体集所对应的关系中表示出来了2021/8/14103ERER模型向关系模式的转换模型向关系模式的转换2021/8/14104ERER模型向关系模式的转换模型向关系模式的转换概括:l高层实体集和低层实体集分别转为表l低层实体集所对应的关系包括高层实体集的码本科生研究生学生ISA硕士ISA博士姓名学号DissertationPapers军训学生学生( (姓名姓名,学号学号) )本科生本科生(学号学号,军训军训)研究生研究生(学号学号,论文论文)2021/8/14105ERER模型向关系模式的转换模型向关系模式的转换如果概括是不相交并且是全部的,即一个高层实体最多并且只能属于一个低层实体集,

40、则可以不为高层实体集建立关系码,低层实体集所对应的关系包括上层实体集的的所有属性本科生本科生(学号学号,姓名姓名,军训军训)研究生研究生(学号学号,姓名姓名,论文论文)本科生研究生学生ISA硕士ISA博士姓名学号DissertationPapers军训2021/8/14106ERER模型向关系模式的转换模型向关系模式的转换2021/8/14107ERER模型向关系模式的转换模型向关系模式的转换l方案1 person(name, street, city)customer(name, credit-rating)employee(name, salary)缺点:查询employee的地址需要访问

41、两个表l方案2person(name, street, city)customer(name, street, city, credit-rating)employee(name, street, city, salary)如果概括是全部的,无须创建person表缺点:地址信息对同时是customer和employee的人存储两次2021/8/14108ERER模型向关系模式的转换模型向关系模式的转换聚集:实体集A与B以及它们的联系R被看成实体集C,C与另一实体集D构成联系S,则S所对应的关系的码由R和D的码构成。使用使用( (职工姓名,项目名称,机器名职工姓名,项目名称,机器名) )职工项目

42、参加姓名 工种项目名称 类型机器名型号工时使用机器2021/8/14109ERER模型向关系模式的转换模型向关系模式的转换 一实体转换一实体转换 强实体集,将每个强实体集直接转换为一个关系,实体的码作为关系的码,实体的属性作为关系的属性。 弱实体集,将每个弱实体集直接转换为一个关系,关系中增加强实体集的码。 多值属性单独建表 超类实体建表,属性包括所有共有属性。2021/8/14110ERER模型向关系模式的转换模型向关系模式的转换 子类实体建表,属性包括超类的码和子类所独有的属性。如果概括是不相交的且全部的,不为超类建表,只为子类建表。 聚集可以单独建表,也可以不建表,用联系对联系表达。 二

43、实体间联系的转换二实体间联系的转换 总原则:总原则:N:M联系单独建表,其他,增加属联系单独建表,其他,增加属性。性。2021/8/14111ERER模型向关系模式的转换模型向关系模式的转换 两实体间两实体间1:N 的联系的联系。将1方实体的码纳入N方实体对应的关系中,作为N方实体关系的外码。如果联系本身有属性,则将属性也纳入N方实体对应的关系中。 例:仓库实体与产品实体为1:N的联系,其中仓号、产品号分别为两实体的码,E-R图如下: 转换步骤: (1)实体转换为关系: 仓库(仓号,地点,面积,负责人) 产品(产品号,名称,价格)2021/8/14112ERER模型向关系模式的转换模型向关系模

44、式的转换(2)N方增加属性: 产品(产品号,名称,价格,仓号,数量,位置)(3)最终转换结果: 仓库(仓号,地点,面积,负责人 产品(产品号,名称,价格,仓号,数量,位置)2021/8/14113ERER模型向关系模式的转换模型向关系模式的转换 同一实体间同一实体间1:N 的联系。的联系。在实体对应的关系中增加属性,属性包括:与N个体相联系的1个体的码,以及联系的属性。 例:例:职工实体之间有1:N 的领导联系,其中职工号为码。E-R图如下: 转换步骤: (1)实体转换为关系:职工(职工号,姓名,性别,职务) ) 2021/8/14114ERER模型向关系模式的转换模型向关系模式的转换(2)增加属性: 职工(职工号,姓名,性别,职务,领导职工号,评价最终转换结果: 职工(职工号,姓名,性别,职务,领导职工号,评价)关系实例: 2021/8/14115ERER模型向关系模式的转换模型向关系模式的转换 职工职工号 姓名 性别 职务 领导职工号 评价1 张三 男 职员 2 合格2 李四 女 副科 3 不合格3 王五 男 科长4 赵六 男 职员 2 优秀2021/8/14116ERER模型向关系模式的转换模型向关系模式的转换3两实体间两实体间M:N 的联系。的联系。联系单独转换为一个关系,属性包括:两实体的码、联系的属性。例:学生与课程之间有M:N 的联系,学号、课号分别是实体的

温馨提示

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

评论

0/150

提交评论