您好,欢迎访问三七文档
提纲数据库设计过程基本概念映射的基数弱实体集扩展ER特性ER模型设计要点概念数据库设计过程E-R模型向关系模式的转换数据库设计过程需求分析概念数据库设计逻辑数据库设计确定存储哪些数据,建立哪些应用,常用的操作及对象有哪些等对需求分析所得到数据的更高层的抽象描述将概念模型所描述的数据映射为某个特定的DBMS模式数据ER模型/ODL物理数据库设计基本概念历史E-R模型:Entity-RelationshipModel1976年,P.P.S.Chen提出E-R模型,用E-R图来描述概念模型观点世界是由一组称作实体的基本对象和这些对象之间的联系构成的基本概念实体(Entity)客观存在并可相互区分的事物叫实体如学生张三、工人李四、计算机系、数据库概论属性(Attribute)实体所具有的某一特性一个实体可以由若干个属性来刻画例如,学生可由学号、姓名、年龄、系等组成域(Domain)属性的取值范围例如,性别的域为(男、女),月份的域为1到12的整数基本概念实体型(EntityType)实体名与其属性名集合共同构成实体型例,学生(学号、姓名、年龄、性别、系、年级)注意实体型与实体(值)之间的区别,后者是前者的一个特例如(9808100,王平,21,男,计算机系,2)是一个实体实体集(EntitySet)同型实体的集合称为实体集如全体学生基本概念联系(Relationship)实体之间的相互关联如学生与老师间的授课关系,学生与学生间有班长关系联系也可以有属性,如学生与课程之间有选课联系,每个选课联系都有一个成绩作为其属性元或度(Degree)参与联系的实体集的个数称为联系的元如学生选修课程是二元联系,供应商向工程供应零件则是三元联系基本概念码(Key)能唯一标识实体的属性或属性组称作超码超码的任意超集也是超码其任意真子集都不能成为超码的最小超码称为候选码从所有候选码中选定一个用来区别同一实体集中的不同实体,称作主码一个实体集中任意两个实体在主码上的取值不能相同如学号是学生实体的码通讯录(姓名,邮编,地址,电话,Email,BP)小试牛刀ABC123234145326有哪些超码?有哪些候选码?基本E-R图要点例:学生选修课程学生课程选修姓名学号系别课程名先修课学分成绩用矩形表示实体集,在框内写上实体名用椭圆表示实体的属性用无向边把实体与其属性连接起来用菱形表示实体间的联系将参与联系的实体用线段连接联系的数量基本E-R图要点码在E-R图中的表示实体集属性中作为主码的一部分的属性用下划线来标明学生课程选修姓名学号系别课程名先修课学分基本概念参与(Participation)实体集之间的关联称为参与,即实体参与联系如王军选修“数据库基础”,表示实体“王军”与“数据库基础”参与了联系“选修”如果实体集E中的每个实体都参与到联系集R中的至少一个联系,则称E全部参与R如果实体集E中只有部分实体参与到联系集R的联系中,则称E部分参与R如“职工”与“部门”之间的“经理”联系,“职工”实体集部分参与,而“部门”实体集完全参与参与在E-R图中的表示“职工”部分参与联系“经理”“部门”完全参与联系“经理”用双线连接联系与完全参与的实体职工部门管理姓名职工号工种部门号部门名地址基本概念存在依赖(ExistenceDependency)如果实体x的存在依赖于实体y的存在,则称x存在依赖于yy称作支配实体,x称作从属实体如果y被删除,则x也要被删除考虑分期付款的例子,对每一个“贷款”实体,有若干个“还款”实体与之关联,“还款”实体存在依赖于“贷款”实体全部参与与存在依赖设ARB,若A存在依赖于B,则A全部参与联系R基本概念角色(Role)实体在联系中的作用称为实体的角色当同一个实体集不止一次参与一个联系集时,为区别各实体的参与联系的方式,需要显式指明其角色如学生与学生间的班长关系,职工与职工之间的经理关系,课程之间的先修关系角色在E-R图中的表示表示要点当需要显式区分角色时,在连接菱形和矩形的线上加上说明性标注以区别不同的角色职员雇佣管理工作属性的类型简单属性不可再分的属性如学号、年龄、性别复合(Composite)属性可以划分为更小的属性把相关属性聚集起来以反映更高层次的概念,可以使模型更清晰如电话号码=区号+本地号码出生日=年+月+日1NFVs嵌套关系学生姓名电话号码年龄区号本地号码学生姓名年龄区号本地号码属性的类型单值属性每一个特定的实体在该属性上的取值唯一如学生的学号,年龄、性别、系别等多值属性某个特定的实体在该属性上的有多于一个的取值如学生(学号,所选课程,联系电话)学号所选课程联系电话001数学1234001物理1234001数学5678001物理5678多值依赖属性的类型NULL属性null表示“无意义”,当实体在某个属性上没有值时设为null如通讯录(姓名,email,电话,BP),若某人没有email地址,则在email属性上取值为nullnull表示“值未知”,即值存在,但目前没有获得该信息如职工(姓名,部门,工种,身份证),如果目前不知道职工身份证号码,则设身份证值为null属性的类型派生(Derived)属性与基属性可以从其他相关的属性或实体派生出来的属性值如学生(学号,姓名,平均成绩),选课(学号,课程号,成绩),则平均成绩可由学生所选课程的总成绩除以课程总数来得到。称平均成绩为派生属性,而成绩为基属性,或存储属性数据库中,一般只存基属性值,而派生属性只存其定义或依赖关系,用时再从基属性中计算出来属性在E-R图中的表示表示要点多值属性用双椭圆表示派生属性用虚椭圆表示学生姓名选修课程学生姓名平均成绩系别联系的种类联系的种类实体之间的联系的数量,即一个实体通过一个联系集能与另一实体集相关联的实体的数目可以有一对一的(1:1),一对多的(1:m),多对多的(m:n)几种情况联系种类在E-R图中的表示表示要点用箭头或线段来表示联系的种类多方实体集单方实体集每个A只与一个B发生联系ABR每个B可以与多个A发生联系联系种类在E-R图中的表示多方实体集单方实体集一个B可以参与到多个联系中ABR一个A只能参与到一个联系中联系种类在E-R图中的表示多方实体集单方实体集ABRm1联系的种类二元联系集设有两个实体集E1,E2,一对一E1中的一个实体与E2中至多一个实体相联系,并且E2中的一个实体与E1中至多一个实体相联系注:一对一不是一一对应职工部门管理联系的种类一对多E1中的一个实体与E2中n(n≥0)个实体相联系,并且E2中的一个实体与E1中至多一个实体相联系教师学生班主任联系的种类多对多E1中的一个实体与E2中n(n≥0)个实体相联系,并且E2中的一个实体与E1中m(m≥0)一个实体相联系学生课程选修联系的种类一个实体集内的递归联系一对一eiE,至多存在一个ejE与之相联系(j≠i)一对多多对多职工领导领导属下职工配偶丈夫妻子构成零件母零件子零件多个实体集间联系的情况一对多设有n个实体集E1,E2,…,En,若对于E1,…,Ei-1,Ei+1,…,En,分别给定实体e1,…,ei-1,ei+1,…,en时,至多有一个实体ei∈Ei与之相联系,则称有一个从Ei到E1,…,Ei-1,Ei+1,…,En的一对多联系职工部门工作工种联系的种类联系的种类职工部门工作工种联系的势势表达了一个实体出现在联系中的次数教师课程教授(0,2)(1,4)学生课程选修(4,6)(10,50)区分强制性和可选性联系复合实体学生课程选修学生课程选修复合实体:一个M:N联系分解成两个1:M学号课程号成绩多个角色学生选修课程学生参加项目多个角色学生选修课程参加项目多个角色学生班长学生学生班长设计实例考虑一个学校数据库,它要存储以下信息:教师有教工号、教工名、职称;项目有项目号、项目名称、项目类型、起始年份、资助额;学生有学号、学生名、年龄、学位。一个教工可以负责多个项目;每个项目只能有一个负责人;一个老师可以参与多个项目;一个学生只能参与一个项目;一个项目可以有多个学生和老师参与。设计实例教师项目学生教工参与学生参与m11n负责mn扩展E-R表达弱实体集特殊化概括聚集弱实体集示例贷款(贷款号,金额),对应多个还款(还款号,还款日期,金额)每个“贷款”的各个“还款”不同,但不同“贷款”之间的“还款”却可能相同贷款号贷款金额还款号还款日期还款金额D12345000108.10.123000D12345000208.11.121000D12345000308.12.121000D56787000108.10.123000D56787000208.11.122000D56787000308.12.122000弱实体集贷款隶属还款号贷款号还款日期还款贷款金额还款金额还款的所有属性都不能作为主码弱实体集贷款号冗余贷款隶属还款号贷款号还款金额贷款号还款贷款金额还款金额弱实体集贷款还款号贷款号还款金额贷款金额还款日期还款概念消失了还款会和帐户发生支付联系账户支付弱实体集贷款贷款号贷款金额还款还款号还款金额还款日期帐户支付弱实体集弱实体集(WeakEntitySet)如果一个实体集的所有属性都不足以形成主码,则称这样的实体集为弱实体集弱实体集与其拥有者之间的联系称作标识性联系(identifyingrelationship)弱实体集与强实体集之间是一对多的联系弱实体集弱实体集示例Email=用户名+主机名如liyuming@pku.edu.cnLogins(passwd文件)实体集记录本机用户名及其口令,用户名在不同主机上可以相同Logins是一个弱实体集产品(名称,价格),公司(名称,地址,联系电话),“产品”与“公司”之间有“制造”联系,“产品”是一个弱实体集弱实体集弱实体集与存在依赖弱实体集必然存在依赖于强实体集(StrongEntitySet)存在依赖并不总会导致一个弱实体集,从属实体集可以有自己的主码如实体集信用卡(信用卡号,客户帐号,金额),它存在依赖于客户帐号实体集,但信用卡有自己的主码信用卡号弱实体集分辨符(Discriminator)弱实体集中用于区别依赖于某个特定强实体集的属性集合。也称作部分码(partialkey)如“还款”中的还款号,Logins中的用户名弱实体集的主码由该弱实体集所存在依赖的强实体集的主码和该弱实体集的分辨符组成如“还款”主码=贷款号+还款号Logins主码=用户名(在所在主机上唯一)+主机IP地址(在全球唯一)“产品”主码=产品名称+公司名称弱实体集为什么使用弱实体集?通过为弱实体集加上合适的属性,可转变为强实体集,为什么还要使用弱实体集?避免数据冗余(强实体集码重复),以及因此带来的数据的不一致性弱实体集反映了一个实体对其它实体依赖的逻辑结构弱实体集可以随它们的强实体集的删除而自动删除弱实体集可以物理地随它们的强实体集存储弱实体集弱实体集在E-R图中的表示弱实体集以双边框的矩形表示标识性联系以双边框的菱形表示从联系集用双线(全部参与)连接弱实体集,用箭头(一对多联系)指向强实体集弱实体集的分辨符用下划虚线标明弱实体集LoginsHost@用户名名称弱实体集还款贷款隶属还款号贷款号还款金额贷款金额帐户支付弱实体集产品公司制造产品名地址价格公司名联系电话商场销售弱实体集弱实体集的引入作为层次结构的一部分cs.pku.edu.cn实体集的一些多值、复合属性可以抽取出来作为弱实体集如贷款具有多值属性还款,可以将还款作为贷款的弱实体如果弱实体集不但参与和强实体集之间的标识性联系,而且参与和其它实体集的联系,或者弱实体集本身含有很多属性,则将其表述为弱实体集如产品与公司之间有制造联系,同时还与商场有销售联系如果弱实体集只参与和强实体集之间的标识性联系,或者弱实体集本身
本文标题:数据库ER图模型.
链接地址:https://www.777doc.com/doc-2332503 .html