您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > ch3数据库建模与实体联系模型.
第1,2章小结第1章:数据库的相关概念第2章:关系模型及关系代数这两章共同为我们描述了数据库是什么?数据的组织方式如何?问题:如何将现实世界中的数据组织到数据库中??第3章:数据库建模与实体联系模型DatabaseModelingandEntity-RelationshipModel数据库设计的基本步骤实体联系模型E-RModelE-RModel向关系模型的转化§3.1数据库设计的基本步骤1.数据库设计的内容:为应用系统中的数据及其联系构造较优的数据模式。2.数据库设计的步骤:需求分析设计概念模型设计逻辑模型设计物理结构系统实现试运行及维护3.概念模型及其表达工具:从应用语义视角来抽取模型,按用户的观点来对数据和及其联系进行建模。特点:是面向用户、面向现实世界的数据模型,它与具体的DBMS无关。常用的表示概念模型的工具:实体-联系模型(Entity-Relationship简称E-R)语义对象模型。§3.2实体-联系模型E-RModel由实体(Entity)和联系(Relationship)构成的模型。1.什么是实体(Entity)?现实世界中客观存在的一个具体或抽象的事物叫做实体,一个实体与其它实体是能够相互区分的。§3.2.1基本概念客观存在的抽象事件订货、演出、足球赛……等也是实体可以触及的客观对象仓库、器件、职工……等是实体实体是属性来描述的。属性就是描述实体特征的数据项。实体标识符:能够唯一标识一个实体的属性或属性组,且该属性或属性组的子集不能标识该实体。身高年龄性别体重CID……比赛时间、地点、参赛队……2.实体集:具有共同属性的一类实体的集合。Anentitysetisasetofentitiesofthesametypethatsharethesameproperties.E.g.:学生,教室,树木。。。EntitySetscustomerandloanCustomer-idcustomer-customer-loan-namestreetcityamountnumber属性类型Attributestypes属性类型:简单属性和组合属性.单值属性和多值属性E.g.电话号码派生属性Derivedattributes由其它属性计算而来的属性E.g.年龄,出生年月在传统的关系模型中,属性必须是简单,单值的!!!CompositeAttributes3.联系集RelationshipSets联系:实体之间的相互关系E.g.学生集中的张三和课程集中DB之间会通过选课产生联系;E.g.客户集中的haye与帐户集中的A-102之间通过存款产生联系;联系集:两个或多个实体集间,实体间联系的总集合.E.g.客户集与贷款集中所有实体间联系的总集合。customeraccount在关系模型中,联系集可以用关系来表达:{(e1,e2,…en)|e1E1,e2E2,…,enEn}Ei表示实体集(e1,e2,…,en)是一个元组Example:depositor表示的是客户与帐户间的联系集,(Hayes,A-102)depositorRelationshipSetdepositor联系的属性联系可以有属性描述联系的特征一个联系集的所有联系有相同的属性联系集的度DegreeofaRelationshipSet指一个联系集所涉及的实体集的个数涉及两个实体集的联系,叫二元联系binary(ordegreetwo).涉及三个以上实体集的联系,叫多元联系,书上称为多路联系(见P76)E.g.银行的员工,分支机构和工作职位三个实体集,每个员工都在某个分支机构担任某项工作,它们之间的联系是三元联系(ternaryrelationshipset)二元联系的类型MappingCardinalities用一个实体集中的一个实体与另一个实体集中多少个实体产生联系这一角度定义二元联系的类型共有三种类型的联系(见P75)Onetoone(一对一)Onetomany(一对多)Manytomany(多对多)MappingCardinalitiesOnetooneOnetomany注意:A或B中的实体在B或A中可以没有实体与他们联系a5b5a4b6MappingCardinalitiesManytooneManytomanyNote:SomeelementsinAandBmaynotbemappedtoanyelementsintheotherseta5b6§3.2.2E-R图(Diagrams)Rectangles矩形代表实体.Ellipses椭圆代表属性。Diamonds棱形代表联系集.Lines直线用于连接属性与实体集,属性与联系集,实体集与联系集.Underline下划线说明键码属性primarykeyattributes1.联系类型的表达(),代表“一,”(—),代表“多”E.g.One-to-onerelationship:一对一E.g.一对多:one-to-manyrelationship:E.g.多对多Many-To-ManyRelationship2.联系中的角色Roles如果联系涉及的实体集是一个,需要区分它在联系中的不同作用标签“manager”and“worker”叫作roles;表明实体间的相互作用3.多元联系联系类型的判断:如有n个实体集,则用(n-1)个实体集中的实体与1个实体集中实体的联系类型来确定。4.将多元联系转化成二元联系通过构造连接实体集E.将R用实体集E来代替,然后生成以E与其它实体集间的二元联系:RA,.RB,RC原联系R的属性成为E的属性如R中的联系是(ai,bi,ci),ej是E的实体,则1.(ei,ai)∈RA;2.(ei,,bi)toRB;3.(ei,ci)toRCvvvv§3.2.3E-R图的设计问题忠实性:设计必须以现实世界为唯一依据。避免冗余:即,“一事一地”原则。现实世界中的一个事物,在一个数据库中只表达一次。尽量简单:属性、实体集和联系能不用就不用,能合并就合并。选择合适的事物类型:是用实体集还是用属性是用实体集还是用联系集根据它要表达的是一个动作吗?用二元联系还是多元联系根据一个语义里包含几个实体集?联系属性的位置是在实体上还是联系上?根据它是否是描述一个动作的特征或结果?E-R模型的设计步骤:1.先找实体集,一般来说实体集都是名词2.找实体集的属性3.找联系,一般来说,联系是动词E.g.E-R模型的设计实例:用E-R图表示学生运动会信息系统的概念模型。需求描述:系统要求保存如下信息:学院:学院代号,学院名称,办公地点;班级:班号,班长姓名;学生:学号,姓名,性别,出生年月;运动会:举办年份,举办季节,总裁判长;项目:项目代号,项目名称,项目性质,本校记录。其中:•一个学院有多个班级,一个班级只属于一个学院.•一个班级有多名学生,一名学生只属于一个班级•一名学生可以参加多届运动会、多个项目。系统应能够正确记录一名学生在某届运动会、某一项目上所取得的成绩。同时,一个项目可以有不止一名学生报名参加。•每年可以举办两届运动会,分别称为春季运动会和秋季运动会。班级学生组成学院运动会项目竞赛成绩隶属注:略去其它属性。举办年份举办季节总裁判长§3.2.4约束的建模能够标识实体的最小的属性集合,称为实体集的键码,或实体标识符.当实体集有若干个键码是时,要指定一个做为主码primarykey.1.E-R模型中的键Keys运动会举办年份举办季节总裁判长2.参照完整性约束对于从E到F的多对一联系的参照完整性约束,指:对于E中当前存在的一个实体e,在F中必须存在一个相对应的实体f。Customeraccountown(E)(F)参照完整性的表示:3.域约束:属性类型及取值范围的约束。在E-R模型中没有特殊的规定,可以放在属性的旁边§3.2.5子类实体子类实体的概念是来自于面向对象的程序设计技术。当我们对一个实体集进行细分(Specialization)或概括时,就形成高一层和低一层的实体集,它们就分别被称为超类和子类。学生本科生研究生子类实体继承超类的所有属性和联系.子类实体还可以有自己的属性和联系。在E-R图中,子类实体用标有”ISA“(“isa”)的三角形与超类联系。Note:当子类实体没有自己的属性和联系时,则其不出现在E-R图中!!!!CartoonsisaisaMoviestitleyearlengthfilmtypeMurderMysteriesweaponvoicesstars多重继承问题MoviesCartoonsisaMurderMysteriesisaisaisaCartoons-MurderMystery卡通武打动作设计(联系)(其它实体)Movies面向对象程序设计中,有以下C++类结构:CartoonsMurderMysteriesCartoons-MurderMystery§3.2.6弱实体集WeakEntitySetsAnentitysetthatdoesnothaveaprimarykeyisreferredtoasaweakentityset.一个实体集没有主码就是弱实体集来源:当两个实体集有”属于“这种层次结构时:E.g.每个班级都有基于课外小组,课外小组由小组号描述,可为1,2。。。班级班号小组号课外小组课程教员教科书教学开课时间由多元联系转化的连接实体集往往是弱实体集.课程教员人员教科书教材开课开课时间教学转化成二元联系如下:弱实体集的键码组成:自己的属性通过多对一的联系从其它强实体集获取E.g.课外小组的键码:(班号,小组号)班级班号小组号组成课外小组课程人员教材开课开课时间教学教员教员编号教科书教材编号键码:(开课时间,教员编号,教材编号)弱实体集的表示:Wedepictaweakentitysetbydoublerectangles.双线矩形框弱实体集与为它提供键码的实体集间的联系用双线棱形E-RDiagramforaBankingEnterpriseE-R模型设计练习:为一个网上书店系统设计概念模型,系统中的数据包括:图书信息,记录书名,价格,出版日期,作者,ISBN,内容简介等。客户信息,记录客户编号,客户名称,手机号码(只需要一个),E-mail(一个),地址信息(地址信息包括省,市,区,街道,邮编等)客户可以有多个地址。客户有会员和普通客户,会员有会员ID号,及相应的折扣信息。仓库信息:记录仓库编号,电话。每个仓库可以存贮多种图书,每种图书可以在多个仓库存贮。客户每次买书时,系统自动为其生成一个购物车,并用唯一的编号标识,一个购物车只属于一个客户,一个客户却可以拥有多个购物车,系统要记录用户获得购物车的时间。一个购物车中可以包含多种图书,每种图书可以放在多个购物车中,系统要能够记录每个购物车中每种图书的数量。图书包含地址仓库客户会员购物车属于isa拥有存贮仓库编号时间数量IDIDISBNID§3.3E-R模型向关系模型的转化§3.3.1强实体集的转化一个强实体集转化成一个关系模式,实体集的主码和属性成为关系模式的主码和属性。E.g.把“COURSE”实体集,转换为“COURSE”关系模式COURSECnoCnameCreditClassroomCOURSE(Cno,Cname,Credit,Classroom)Customer(Customerid,Customername,Customerstreet,Customercity)customer§3.3.2弱实体集的转化弱实体集A转化成一个关系模式,该关系模式的属性包括包括:A自已的属性,以及为A提供主码属性的强实体集的主码。班级班号小组号组成课外小组课外小组(班号,小组号,...)Payment(loannumber,paymentnumber,paymentdate,paymentamount)§3.3.3联系集的转化一般原
本文标题:ch3数据库建模与实体联系模型.
链接地址:https://www.777doc.com/doc-2904871 .html