《数据库实体联系模型.ppt》由会员分享,可在线阅读,更多相关《数据库实体联系模型.ppt(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第1010章章 实体联系模型实体联系模型o10.1 E-R10.1 E-R模型的基本概念模型的基本概念o10.2 E-R10.2 E-R模型存在的问题模型存在的问题o10.3 E-R10.3 E-R图符号图符号*110.1 E-R10.1 E-R模型的基本概念模型的基本概念o实体实体o属性属性o联系联系o约束约束*2E-RE-R模型基本概念模型基本概念o是用于数据库设计的是用于数据库设计的高层概念数据高层概念数据模型模型。o概念数据模型用来描述数据库的结概念数据模型用来描述数据库的结构以及有关的在数据库上的检索和构以及有关的在数据库上的检索和更新事务,更新事务,o独立于任何数据库管理系统和硬
2、件独立于任何数据库管理系统和硬件平台。平台。*3实体实体o是现实世界中独立存在的、可区别于其他是现实世界中独立存在的、可区别于其他对象的对象的“对象对象”或或“事物事物”。o是关于将被收集的信息的主要数据对象。是关于将被收集的信息的主要数据对象。o具有一组属性。具有一组属性。o可以是物理存在的对象可以是物理存在的对象:n人、汽车、商品、职工等;人、汽车、商品、职工等;o也可以是抽象存在的对象也可以是抽象存在的对象:n公司、企业、工作或感兴趣信息事件公司、企业、工作或感兴趣信息事件*4实体与实例实体与实例o实体实体(entity setentity set,也称为实体集),也称为实体集)是一组具
3、有相同特征或属性的实体是一组具有相同特征或属性的实体的集合的集合。n比如:学生比如:学生o实例实例是实体中具有相同结构的可区分是实体中具有相同结构的可区分的对象的对象。n比如:学生比如:学生“张三张三”、“李四李四”*5实体的分类实体的分类o强实体强实体(也称为强实体集)(也称为强实体集)n不依赖于其他实体而存在的实体不依赖于其他实体而存在的实体。n如如:“职工职工”n特点特点:每个实例都能被实体的主键唯一标识。:每个实例都能被实体的主键唯一标识。o弱实体弱实体(也称为弱实体集)(也称为弱实体集)n依赖于其他实体而存在的实体依赖于其他实体而存在的实体。n如如:“职工子女职工子女”n特点特点:每
4、个实例不能用该实体的属性唯一标:每个实例不能用该实体的属性唯一标识。识。*6强实体与弱实体强实体与弱实体o强实体强实体也称为也称为n父实体父实体n主实体主实体n统治实体统治实体o弱实体弱实体也称为也称为n子实体子实体n依赖实体依赖实体n从实体从实体*7实体与实例示例实体与实例示例实实体:体:职职工工属性属性实实例例属性名属性名域域实实例例1实实例例2职职工号工号长长度度为为6的字符串的字符串Z10001Z10002姓名姓名长长度度为为8的字符串的字符串张张小平小平李李红丽红丽性性别别长长度度为为2的字符串的字符串男男女女出生日期出生日期日期日期类类型型1980-2-51976-8-10*810
5、.1.2 10.1.2 联系联系o指用户业务中相关的指用户业务中相关的两两个或多个实体之个或多个实体之间的关联。间的关联。o表示现实世界的关联关系。表示现实世界的关联关系。o只依赖于实体间的关联,在物理和概念只依赖于实体间的关联,在物理和概念上是不存在的。上是不存在的。o联系的一个具体值称为联系的一个具体值称为联系实例联系实例。*9联系(续)联系(续)o联系实例是可唯一区分的关联,包括每一联系实例是可唯一区分的关联,包括每一个参与实体的一个实例,表明特定的实体个参与实体的一个实例,表明特定的实体实例间是相互关联的。实例间是相互关联的。o联系也被联系也被看成是看成是抽象对象。抽象对象。o联系通过
6、连线联系通过连线将将相互关联的实体连接起来。相互关联的实体连接起来。o相似的联系被归到一个联系(也称为联系相似的联系被归到一个联系(也称为联系集或联系型)中集或联系型)中。*10联系(续)联系(续)o一个具体的联系表达了实体之间的一组有意义的一个具体的联系表达了实体之间的一组有意义的关联,关联,n如如“学生学生”实体和实体和“课程课程”实体之间存在一个实体之间存在一个“选课选课”联系,联系,n如果学生如果学生(081001081001,张三,男),张三,男)选了课程选了课程(C001C001,计算机网络),计算机网络),n则则(081001081001,张三,男),张三,男)和和(C001C0
7、01,计算机网,计算机网络)络)之间就存在一个联系实例,之间就存在一个联系实例,n这个联系实例可表示为这个联系实例可表示为(081001081001,C001C001,)。*11联系联系的的特性特性o联系的度联系的度o连接性连接性o存在性存在性on n元联系元联系*12联系的度联系的度o指联系中相关联的实体的数量指联系中相关联的实体的数量。o一般有一般有n递归联系或一元联系递归联系或一元联系n二元联系二元联系n三元联系三元联系*13递归联系递归联系o指同一实体的实例之间的联系指同一实体的实例之间的联系。o即:即:实体中的一个实例只与实体中的一个实例只与同一实同一实体体中的另一个实例相互关联中的
8、另一个实例相互关联。o示例:示例:l参与联系的每一个实参与联系的每一个实例都有特定的角色。例都有特定的角色。l联系的角色名确定了联系的角色名确定了每个参与者的功能。每个参与者的功能。*14二元联系二元联系o指指两个实体两个实体之间的关联之间的关联。如如:n部门和职工部门和职工n班和学生班和学生n学生和课程学生和课程o是最常见的联系是最常见的联系。*15三元联系三元联系o指指三个实体三个实体之间的关联之间的关联。o其联系的度为其联系的度为3 3。o用一个与三个实体相连接的菱形表示用一个与三个实体相连接的菱形表示。*16联系的连接性联系的连接性o描述联系中相关联实体间映射的约束描述联系中相关联实体
9、间映射的约束。o取值为取值为“一一”或或“多个多个”。o例如:例如:实体实体“部门部门”和和“职工职工”之间为一之间为一对多的联系,即对对多的联系,即对“职工职工”实体中的多个实体中的多个实例,在实例,在“部门部门”中至多有一个实例与其中至多有一个实例与其关联。关联。o实际的连接数目称为联系连接的实际的连接数目称为联系连接的基数基数。*17三种三种基本基本二元联系二元联系示例示例*18n-n-元联系元联系o用具有用具有n n个连接的菱形个连接的菱形表示表示,每个连接,每个连接对应一个实体。对应一个实体。*19联系的存在性联系的存在性o指某个实体的存在依赖于其它实体的指某个实体的存在依赖于其它实
10、体的存在。存在。o联系中实体的存在分为联系中实体的存在分为强制强制和和非强制非强制(或或可选的可选的)两种。)两种。o强制存在强制存在要求联系中任何一端的实体要求联系中任何一端的实体的实例都必须存在的实例都必须存在。o非强制存在非强制存在允许实体的实例可以不存允许实体的实例可以不存在。在。*20联系的存在性联系的存在性(续)(续)o在在E-RE-R图中,在实体和联系的连线上图中,在实体和联系的连线上标标表示是表示是非强制存在非强制存在;o在实体和联系的连线上加一条在实体和联系的连线上加一条垂直线垂直线表示表示强制存在强制存在;o如果在连线上既没有标如果在连线上既没有标也没有加垂也没有加垂直线,
11、则表示存在类型未知直线,则表示存在类型未知。*21联系的存在性联系的存在性示例示例*2210.1.3 10.1.3 属性属性o实体的特性或联系的特征都称为实体的特性或联系的特征都称为属性属性。o同一个实体中的实例具有相同属性。同一个实体中的实例具有相同属性。o例如:例如:“学生学生”实体的属性有实体的属性有:n姓名、学号、性别等。姓名、学号、性别等。o实体中的每个属性都有取值范围,属性实体中的每个属性都有取值范围,属性的取值范围称为的取值范围称为值域值域。*23属性属性o一个属性可由多个值域构成。一个属性可由多个值域构成。o例如:属性例如:属性“生日生日”的值域由年、月、日的值域由年、月、日的
12、值域构成。的值域构成。o多个属性可以共享一个值域,该值域称为多个属性可以共享一个值域,该值域称为属性域属性域。o属性域的值是一组一个或多个属性所允许属性域的值是一组一个或多个属性所允许的取值。例如,的取值。例如,“工人工人”和和“管理员管理员”的的“生日生日”属性可以共享一个属性域。属性可以共享一个属性域。*24联系的属性联系的属性o联系也可以具有属性。联系也可以具有属性。o通常,只有二元多对多联系和三元联系通常,只有二元多对多联系和三元联系才具有属性,一对一联系和一对多联系才具有属性,一对一联系和一对多联系没有属性。没有属性。*25属性属性分分类类o简单属性简单属性o复合属性复合属性o单值属
13、性单值属性o多值属性多值属性o派生属性派生属性*26简单属性简单属性o由一个独立成分构成的属性。由一个独立成分构成的属性。o不可再分成更小的成分。不可再分成更小的成分。o也称为也称为原子属性原子属性。o实体实体“学生学生”中的学号、姓名、性别中的学号、姓名、性别属性都是简单属性的例子。属性都是简单属性的例子。*27复合属性复合属性o由多个独立存在的成分构成的属性。由多个独立存在的成分构成的属性。o有有些属性可以划分成更小的独立成分。些属性可以划分成更小的独立成分。o如,设如,设“职工职工”实体中有实体中有“地址地址”属性,该属性,该属性取值形式属性取值形式为为“*省省*市市*区区*街道街道”,
14、则则该属性该属性可进一步分解为可进一步分解为n省省、市市、区区、街道街道n“街道街道”又可分为又可分为街道号街道号、街道名街道名和和楼牌楼牌号号三个简单属性。三个简单属性。*28复合属性示例复合属性示例*29单值属性单值属性o若某属性对特定实体中的每个实例都若某属性对特定实体中的每个实例都只取一个值,则只取一个值,则该该属性为属性为单值属性单值属性。o如:如:“学生学生”实体中每个实例的实体中每个实例的“学学号号”属性都只有一个值,则属性都只有一个值,则“学号学号”为单值属性。为单值属性。o大多数属性大多数属性都是都是单值属性。单值属性。*30多值属性多值属性o若某属性对特定实体中的每个实例可
15、以取若某属性对特定实体中的每个实例可以取多个值,则多个值,则该该属性为属性为多值属性多值属性。n如如“职工职工”的的“技能技能”属性,一个职工可有属性,一个职工可有多项技能多项技能:“总体设计总体设计”、“程序设计程序设计”、“数据库管理数据库管理”o可对多值属性的取值可对多值属性的取值范围范围进行限制。如:进行限制。如:限定限定“技能技能”的取值为的取值为1 1 3 3。o在在E-RE-R图中,用图中,用双线圆角矩形双线圆角矩形表示是多值表示是多值属性属性。*31派生属性派生属性o派生属性派生属性的值是由相关联的属性或属性组派的值是由相关联的属性或属性组派生出来的,这些属性并非来自同一实体。
16、生出来的,这些属性并非来自同一实体。n“职工职工”实体的实体的“工龄工龄”属性的值可由该职工的属性的值可由该职工的“参加工作日期参加工作日期”和当前日期计算得到。和当前日期计算得到。o派生属性派生属性的值的值也也可以派生于同一实体中的实可以派生于同一实体中的实例。例。n“职工职工”实体的实体的“总人数总人数”属性的值可通过计算属性的值可通过计算“职工职工”实体中的实例总数获得。实体中的实例总数获得。o在在E-RE-R图中用图中用虚线的圆角矩形虚线的圆角矩形表示是派生属性表示是派生属性*32标识属性标识属性o能够唯一标识实体中每个实例的属性或属能够唯一标识实体中每个实例的属性或属性组性组。o用于
17、唯一用于唯一标识标识一个实例的属性组称为一个实例的属性组称为复合复合标识符标识符。如如:n“职工职工”实体中的实体中的 “职工号职工号”n“项目项目”实体中的实体中的 “项目号项目号”n“列车列车”实体实体中的中的 “车次车次”和和“发车时间发车时间”o在在E-RE-R图中用图中用下划线下划线标识标识。*33复合标识符示例复合标识符示例*34属性示例属性示例*35联系标识符示例联系标识符示例*3610.1.4 10.1.4 约束约束o联系通常采用特定约束来限制联系集合中联系通常采用特定约束来限制联系集合中的实体组合。的实体组合。o约束要反映现实世界中对联系的限定。如约束要反映现实世界中对联系的
18、限定。如:n“部门部门”要求每个要求每个部门部门必须有一个必须有一个职工职工n“职工职工”中的每个人必须有一种技能。中的每个人必须有一种技能。o约束的主要约束的主要类型:类型:n多样性约束多样性约束n基数约束基数约束n参与约束参与约束*37多样性约束多样性约束o多样性多样性指一个实体所包含的每个实例指一个实体所包含的每个实例都通过某种联系与另一个实体的同一都通过某种联系与另一个实体的同一实例相关联。实例相关联。o它约束了实体相关联的方式。它约束了实体相关联的方式。o是由企业或用户确立的原则或商业规是由企业或用户确立的原则或商业规则的一种表示则的一种表示。*38基数约束基数约束o指定了一个实体中
19、的实例与另一个实体中的每个指定了一个实体中的实例与另一个实体中的每个实例相关联的数目。实例相关联的数目。o有有最大基数约束最大基数约束和和最小基数约束最小基数约束两种。两种。n最小基数约束最小基数约束指一个实体中的实例与另一个实指一个实体中的实例与另一个实体中的每个实例相关联的最小数目体中的每个实例相关联的最小数目。n最大基数约束最大基数约束指一个实体中的实例与另一个实指一个实体中的实例与另一个实体中的每个实例相关联的最大数目。体中的每个实例相关联的最大数目。o例,设一名职工只管理一个部门,一个部门只由例,设一名职工只管理一个部门,一个部门只由一名职工管理,则一名职工管理,则“职工职工”和和“
20、部门部门”之间的基之间的基数约束都是数约束都是1 1。*391:11:1联系的基数约束与参与约束联系的基数约束与参与约束示例示例*40基数约束参与约束排除约束排除约束o在排除约束中,对多个关系的通常或默在排除约束中,对多个关系的通常或默认的处理是包含认的处理是包含OROR。oOROR允许某个实体或全部实体都参与。允许某个实体或全部实体都参与。o在有些情况下,排除约束(不相交或不在有些情况下,排除约束(不相交或不包含包含OROR)可能会影响多个关系,它允许)可能会影响多个关系,它允许在几个实体中最多只有一个实体实例参在几个实体中最多只有一个实体实例参与到只有一个根实体的联系中与到只有一个根实体的
21、联系中。*41排除约束示例排除约束示例“工作任务”可以分配到“外部项目”中或者是“内部项目”中,但不能同时分配到这两个实体中。*4210.2 E-R10.2 E-R模型存在的问题模型存在的问题o在构建在构建E-RE-R模型过程中,可能出现模型过程中,可能出现连接连接陷阱陷阱的问题。的问题。o连接陷阱通常是由于曲解了某些联系的连接陷阱通常是由于曲解了某些联系的含义而造成的。含义而造成的。o连接陷阱主要有两类:连接陷阱主要有两类:n扇形陷阱扇形陷阱n深坑陷阱深坑陷阱*43扇形陷阱扇形陷阱o当一个实体与其他实体之间存在两个或更当一个实体与其他实体之间存在两个或更多的一对多联系时,可能存在多的一对多联
22、系时,可能存在扇形陷阱扇形陷阱。o示例:示例:一个银行有一个或者多个柜台,有一个银行有一个或者多个柜台,有一个或者多个人员。一个或者多个人员。想知道在某个特想知道在某个特定柜台工作定柜台工作的有的有哪些人员哪些人员?*44E-RE-R模型的语义图模型的语义图问题:问题:编号为编号为110345110345的人员在哪个的人员在哪个柜台工作?柜台工作?*45消除扇形陷阱重建后的消除扇形陷阱重建后的E-RE-R模型模型*46消除扇形陷阱后的语义网消除扇形陷阱后的语义网*47深坑陷阱深坑陷阱o实体之间存在联系,但某些实例之间实体之间存在联系,但某些实例之间却不存在相应的通路。却不存在相应的通路。o示例
23、:示例:一个柜台有一个或者多个人员,一个柜台有一个或者多个人员,每个人员可以进行零次或多次贷款查每个人员可以进行零次或多次贷款查询。询。o但但不是所有人员都要进行贷款查询,不是所有人员都要进行贷款查询,也不是所有的贷款都被查询到。也不是所有的贷款都被查询到。*48示例示例E-RE-R图图o问题:问题:每个柜台每个柜台可以进行可以进行哪些贷款哪些贷款查询查询?联系联系“操作操作”两端的两端的“人员人员”和和“贷款贷款”实体的多样性的最实体的多样性的最小值为零,小值为零,说明说明一些贷款不能一些贷款不能通过人员与柜台关联。通过人员与柜台关联。“柜台柜台”和和“贷款贷款”实体之间丢失了实体之间丢失了“提供提供”联系。联系。*49E-RE-R模型的语义图模型的语义图问题:问题:哪个柜台可以进行哪个柜台可以进行汽车贷款汽车贷款查询?查询?*50消除消除深坑深坑陷阱重建后的陷阱重建后的E-RE-R模型模型*51消除深坑陷阱后的语义图消除深坑陷阱后的语义图*5210.3 E-R10.3 E-R图符号图符号小结小结*53*54