数据库设计与E-R模型.ppt
《数据库设计与E-R模型.ppt》由会员分享,可在线阅读,更多相关《数据库设计与E-R模型.ppt(126页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、引子引子l现现计计划划为为某某大大学学设设计计一一个个教教室室管管理理信信息息系系统统,管管理理的的内内容容包包括括教教室室、班班级级、教教师师、学学生生、课课程程、教教学学设设备备、教教室室管管理理员员。请请按你的理解完成以下要求。按你的理解完成以下要求。l画出画出E-R图,转换成关系模式,图,转换成关系模式,l根据关系模式,用关系代数写出以下查询:根据关系模式,用关系代数写出以下查询:引子引子l(1)找找出出姓姓名名为为王王平平的的学学生生周周一一3、4节节上上课的教室号、课程名、教师名、班长名课的教室号、课程名、教师名、班长名l(2)找找出出周周四四5、6节节能能容容纳纳150以以上上、
2、具具有有投投影影仪仪和和空空调调且且使使用用状状态态正正常常的的空空教教室室,给出教室号、管理员姓名、管理员电话给出教室号、管理员姓名、管理员电话引子引子lP28:图:图2-9;lP63:图:图3-18,图,图3-19,图,图3-20 对应的对应的E-R图是什么?图是什么?提纲提纲l基本概念l映射约束l弱实体集l扩展ER特性lER模型设计要点l概念数据库设计过程lER模型向关系模式的转换7.1 设计过程概览设计过程概览l历史ER模型:Entity-Relationship Model1976年,提出ER模型,用ER图来描述概念模型l观点世界是由一组称作实体的基本对象和这些对象之间的联系构成的l
3、语义模型力图表达数据的意义概念模型设计概念模型设计例:学生选修课程学生课程选修姓名学号系别课程名先修课学分成绩用矩形表示实体集,在框内写上实体名用椭圆表示实体的属性用无向边把实体与其属性连接起来用菱形表示实体间的联系将参与联系的实体用线段连接mn联系的数量逻辑模型设计逻辑模型设计l学生=(学号,姓名,系别)l课程=(课程名,先修课,学分)l选修=(学号,课程名,成绩)银行系统的银行系统的ERER图图逻辑模型设计逻辑模型设计lcustomer=(customer-id,Employee-id)lloan=(loan-number,Branch-number)laccount=(account-n
4、umber,Branch-number)lBranch=(Branch-number ,)lEmployee=(Employee-id,manager-id)lPayment=(loan-number,Payment-number,)lBorrower=(customer-id,loan-number,)lDepositor=(customer-id,account-number,)7.2 实体-联系模型l一、实体集l实体(Entity)客观存在并可相互区分的事物叫实体实体名标识,如学生,课程如学生:张三、李四,课程:计算机原理、数据库概论l实体集(Entity Set)同型实体的集合称为实体
5、集,如全体学生实体集可相交实体型l实体型实体型 实体名和属性名组成实体型。对关系模型就是关系模式。例如,学生(学号,姓名,性别,年龄,系别,入学时间),是学生实体型。(98080221,王平,女,19,计算机,1998)是一个实体。customer-idcustomer-namecustomer-street customer-city loanamount基本概念基本概念-实体实体基本概念基本概念属性属性l属性(Attribute)实体特征,通过其值区分不同的实体例如,学生=(学号,姓名,年龄,系)学生实体集=(001,李明,年龄,21,中文),一般:实体对应表中一个元组(记录)属性对应表中
6、一个字段(数据项)实体集 对应一个表属性的类型属性的类型l简单属性 :不可再分的属性如学号、年龄、性别l复合属性:可以划分为更小的属性可以把相关属性聚集起来,使模型更清晰如电话号码=区号+本地号码 出生日期=年、月、日 如出生日期定义为简单属性取1984/8/12 属性的类型属性的类型属性的类型属性的类型l单值属性:每一个特定的实体在该属性上的取值唯一如学生的学号,年龄、性别、系别等l多值属性:属性上有多于一个的取值如作者(张平,李华,刘宁)lNULL属性null表示“空值”,属性上没有值时设为null,定义数据库时可选,进行逻辑、计数或求和时有规定。如一个学生年龄为空时,年龄20,怎么判 属
7、性的类型属性的类型l派生属性从其他相关的属性或实体派生出来的属性值学生=(学号,姓名,出生日期,年龄,平均成绩)选课=(学号,课程号,成绩)年龄:由系统时间减出生日期得到 平均成绩:由选课的成绩除以课程总数来得到。年龄、平均成绩称为派生属性,出生日期、成绩称为基属性,或存储属性属性在属性在ERER图中的表示图中的表示l表示要点多值属性用双椭圆表示派生属性用虚椭圆表示学生学生姓名姓名选修课程选修课程学生学生姓名姓名平均成绩平均成绩系别系别属性在属性在ERER图中的表示图中的表示基本概念基本概念域域l域(Domain)属性的取值范围 例如,性别的域为(男、女)月份的域为到的整数,成绩的域取inte
8、ger域对应数据类型 域可取缺省定义,也可以用语句显式定义 CREATE DOMAIN AGE_DOMAIN SMALLINT 基本概念基本概念-码码l码(Key)能唯一标识实体的属性或最小属性集,也称为实体键。具有唯一性的特点,即给出码属性的一个值,到实体集中或只找出一个实体或一个也找不到如果有多个码,每个码都称为侯选码,从中指定一个作为主码。例如职工实体集中,职工号为候选码,若姓名不重,也是候选码。超码:候选码的超集,比候选码有多余的属性,也能唯一标识一个实体。任一表都有码。基本图要点基本图要点l码在ER图中的表示实体集属性中作为主码的一部分的属性用下划线来标明。学生学生课程课程选修选修姓
9、名姓名学号学号系别系别课程名课程名先修课先修课学分学分基本ER图要点基本概念基本概念-联系联系l联系集l联系:实体之间的相互关联,用联系名标识,分为两(多)实体集之间实体的关联,同一实体集内部实体之间的关联。如学生与课程间的选课,学生与学生间的领导l联系的类型两实体集之间两实体集之间1 1:1 1联系联系 如如果果对对于于实实体体集集A中中的的每每一一个个实实体体,实实体体集集B中中至多有一个实体与之关联,反之亦然。至多有一个实体与之关联,反之亦然。注意:至多一个,意味着可以没有注意:至多一个,意味着可以没有。映射的基数映射的基数l如“职工”与“部门”之间的“管理”联系(假定每个部门只有一个经
10、理,一个职工不能兼任两个部门经理)l注:一对一不是一一对应职工职工部门部门管理管理基本概念基本概念-联系联系 例如,班级实体集与学生实体集间有11的班长联系,联系名是班长。两实体集之间1:n联系 如果对于实体集A中的每个实体,实体集B中有n个实体(n0)与之关联,反之,对实体集B中的每个实体,实体集A中至多有一个实体与之关联。例如,院系实体集与学生实体集有一对多的隶属联系,联系名是隶属。注注意意,n的取值可以为0,这意味着A中的某个实体在B中并没有实体与之关联。映射基数在ER图中的表示多方实体集多方实体集单方实体集单方实体集联系联系R R从从A A到到B B是多是多对一对一A AB BR Rl
11、表示要点用箭头或线段来表示联系的映射基数映射的基数映射的基数l如“教师”和“学生”之间的“班主任”联系教师教师学生学生班主任班主任基本概念基本概念-联系联系两实体集之间m:n联系 如果对于实体集A中的每个实体,实体集B中有m个实体(m0)与之关联,反之,对于实体集B的每个实体,实体集A中也有n个实体(n0)与之关联。例如,课程实体集与学生实体集之间有选课联系,联系名是选课。注意,n和m的值都可以为0。多实体集之间m:n:p联系 例如,设备实体集,供货商实体集,工程实体集之间的供货联系,联系名是供应。映射的基数映射的基数两个实体间多对多l如“学生”和“课程”之间的“选修”联系学生学生课程课程选修
12、选修联系联系R R从从A A到到B B是多对是多对多多ABRl多个实体集间联系l如“课程”,“教员”,“参考书”之间的“讲课”联系教员参考书讲课课程映射的基数映射的基数基本概念基本概念-联系联系联系集联系集 borrowerborrower基本概念基本概念-联系联系实体集customer与account之间的联系集depositor具有属性access-date基本概念基本概念-联系联系同一实体集内联系 同一实体集内各实体间的联系也呈现一对一,一对多,多对多的形式。例如,职工实体集内部有一对多的领导联系;学生实体集内有一对一的同位联系;零部件实体集内有组装的mn的联系。l联系的参与度联系的参与
13、度(participation)。每个实体有一个参与联系的次数,取最小、最大的参与次数min和max,定义实体集的参与度。映射的基数映射的基数l一个实体集内的二元联系一对一lei E,至多存在一个ej E,与之相联系(ji)l如“职工”之间的“配偶”联系一对多l如“职工”内部的“领导”联系多对多l如“零件”之间的“构成”联系职工领导领导属下职工配偶丈夫妻子构成零件母零件子零件基本概念基本概念-联系联系l联系的参与度联系的参与度(participation)。每个实体有一个参与联系的次数,取最小、最大的参与次数min和max,定义实体集的参与度。min=0,称联系为部分参与;如果min0,称联系
14、为全参与。Max限制每个实体的参与次数。参与在参与在ERER图中的表示图中的表示customer部分参与联系borrowerLoan完全参与联系borrower用双线连接联系与完全参与的实体基本概念基本概念-联系联系 联系的属性。实体有属性,联系也可以有属性。例如,选课联系中可以有成绩属性。联系集联系集 参与联系的实体组成的集合。联系一般也用表来表示,取各实体的主码和联系的属性组成表结构 基本概念基本概念-联系联系 例如学生实体集与课程实体集有选课联系,联系集属性是学号、课程号以及成绩。选课的学生和被选的课程参加联系集。注意:联系一般用表来表示,是否建立表与联系的类型有关。l联系集的码联系一般
15、也用表来表示,其码由各实体的主码组成。如选课表的码是学号和课程号。基本概念基本概念-角色角色l角色(Role)实体在联系中的作用称为实体的角色当同一个实体集不止一次参与一个联系集时,为区别各实体的参与联系的方式,需要显式指明其角色如学生与学生间的班长关系,职工与职工之间的经理关系,课程之间的先修关系角色在角色在ERER图中的表示图中的表示 角色表示当需要显式区分角色时,在连接菱形和矩形的线上加上说明性标注以区别不同的角色职员雇佣管理工作角色在角色在ERER图中的表示图中的表示映射的基数映射的基数映射的基数会影响到ER设计,例如customer与account之间是1:n联系,则可将access
16、-date作为account的属性映射的基数映射的基数若customer与account之间是m:n联系,access-date则必须作为联系集depositor的属性映射的基数映射的基数One-To-ManyOne-To-One映射的基数映射的基数Many-To-ManyMany-To-One存在依赖存在依赖l存在依赖(Existence Dependency)如果实体x的存在依赖于实体y的存在,则称x存在依赖于yy称作支配实体,x称作从属实体如果y被删除,则x也要被删除考虑分期付款的例子,对每一个“贷款”实体,有若干个“还款”实体与之关联,“还款”实体存在依赖于“贷款”实体l全部参与与存在
17、依赖设A R B,若A存在依赖于B,则A全部参与联系R提纲提纲l基本概念及对应的ER模型l映射约束l弱实体集l扩展ER特性lER模型设计要点l概念数据库设计过程lER模型向关系模式的转换弱实体集弱实体集l弱实体集(Weak Entity Set)如果一个实体集的所有属性都不足以形成主码,则称这样的实体集为弱实体集贷款(贷款号,金额),还款(还款号,还款日期,金额),每个“贷款”的各个“还款”不同,但不同“贷款”之间的“还款”却可能相同,因此“还款”是一个弱实体集产品(名称,价格),公司(名称,地址,联系电话),“产品”与“公司”之间有“制造”联系,“产品”是一个弱实体集。弱实体集弱实体集弱实体
18、集与其拥有者之间的联系称作标识性联系(identifying relationship)弱实体集与强实体集之间是一对多的联系l弱实体集与存在依赖弱实体集必然存在依赖于强实体集(Strong Entity Set)存在依赖并不总会导致一个弱实体集,从属实体集可以有自己的主码如实体集信用卡(信用卡号,客户帐号,金额),它存在依赖于客户帐号实体集,但信用卡有自己的主码信用卡号。弱实体集弱实体集l分辨符(Discriminator)弱实体集中用于区别依赖于某个特定强实体集的属性集合。也称作部分码(partial key)如“还款”中的还款号弱实体集的主码由该弱实体集所存在依赖的强实体集的主码和该弱实体
19、集的分辨符组成l如“还款”主码贷款号还款号l“产品”主码=公司名称+产品名称。弱实体集弱实体集l为什么使用弱实体集?通过为弱实体集加上合适的属性,可转变为强实体集,为什么还要使用弱实体集?避免数据冗余(强实体集码重复),以及因此带来的数据的不一致性弱实体集反映了一个实体对其它实体依赖的逻辑结构弱实体集可以随它们的强实体集的删除而自动删除弱实体集可以物理地随它们的强实体集存储弱实体集弱实体集l弱实体集的引入作为层次结构的一部分实体集的一些多值、复合属性可以抽取出来作为弱实体集如果弱实体集不但参与和强实体集之间的标识性联系,而且参与和其它实体集的联系,或者弱实体集本身含有很多属性,则将其表述为弱实
20、体集如果弱实体集只参与和强实体集之间的标识性联系,或者弱实体集本身属性不多,则将其表述为属性弱实体集参与其它联系消费帐户隶属消费号帐户号消费金额金额利息隶属顺序号利息记息弱实体集弱实体集l弱实体集在-R图中的表示弱实体集以双边框的矩形表示标识性联系以双边框的菱形表示从联系集用双线(全部参与)连接弱实体集,用箭头(一对多联系)指向强实体集弱实体集的分辨符用下划虚线标明弱实体集弱实体集还款贷款隶属还款号贷款号还款金额贷款金额弱实体集弱实体集产品公司制造产品名地址价格公司名联系电话弱实体集弱实体集提纲提纲l基本概念及对应的ER模型l映射约束l弱实体集l扩展ER特性lER模型设计要点l概念数据库设计过
21、程lER模型向关系模式的转换扩展扩展ERER特性特性l特殊化(Specialization)l概括(Generalization)l属性继承(Attribute Inheritance)l设计约束(Design Constraints)l聚集(Aggregation)特殊化特殊化l特殊化实体集中某些子集具有区别于该实体集内其它实体的特性,可以根据这些差异特性对实体集进行分组,这一分组的过程称作特殊化自顶向下、逐步求精父类子类子类特例更小的实体集更多的属性一个银行帐号可以有存款帐号、贷款帐号学生可以有研究生、本科生特殊化特殊化l特殊化在E-R图中的表示特殊化用标记为ISA的三角形来表示ISA=“
22、is”,表示高层实体和低层实体之间的“父类子类”联系本科生研究生学生ISA硕士ISA博士姓名学号DissertationPapers军训特殊化特殊化概括概括l概括各个实体集根据共有的性质,合成一个较高层的实体集。概括是一个高层实体集与若干个低层实体集之间的包含关系自底向上、逐步合成l概括 Vs 特殊化概括与特殊化是个互逆的过程,在E-R图中的表示方法是相同的特殊化强调同一实体集内不同实体之间的差异,概括强调不同实体集之间的相似性反映了数据库设计的不同方法属性继承属性继承l属性继承高层实体集的属性被低层实体集自动继承低层实体集特有的性质仅适用于某个特定的低层实体集如“Dissertation”属
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库 设计 模型
限制150内