您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > 数据库技术基础chp2
数据库技术基础第2章实体-联系模型第2章实体-联系模型2.1学习目标2.2基本的实体-联系模型2.3扩充的实体-联系模型2.4小结第2章实体-联系模型(续)图2.1楼盘模拟图图2.2房屋平面图模型是现实世界特征的模拟和抽象。2.1学习目标学完本章后,读者应具备以下能力:了解模型的概念。理解实体-联系模型的表示方法。第2章实体-联系模型2.1学习目标2.2基本的实体-联系模型2.3扩充的实体-联系模型2.4小结2.2基本的实体-联系模型概念模型的用途概念模型用于信息世界的建模。是现实世界到机器世界的一个中间层次。是数据库设计的有力工具。数据库设计人员和用户之间进行交流的语言。对概念模型的基本要求较强的语义表达能力。能够方便、直接地表达应用中的各种语义知识。简单、清晰,易于用户理解。2.2基本的实体-联系模型(续)2.2.1基本概念2.2.2几点说明2.2.1基本概念(1)实体(Entity)在实体联系模型中,用实体表示现实世界中某一个具体的事物。实体可以是具体的人、事、物或抽象的概念。(2)实体型(EntityType)具有相同性质的实体组成了一个实体型。每个实体型要有一个名字,一般用名词表示。(3)属性(Attribute)表示实体型的特点或性质。一个实体可以由若干个属性来刻画。1.实体和实体型(续)2.2.1基本概念(续)复合属性可以进一步细分的属性。简单属性不可以进一步细分的属性。单值属性实体型中所有实体在某个属性上只取一个值的属性。多值属性实体在属性上取多个值的属性。派生属性从其他属性经过计算得到的属性。1.实体和实体型(续)2.2.1基本概念(续)(4)域(Domain)属性的取值范围称为该属性的域。(5)码(Key)唯一标识实体的属性集称为码。除了唯一性之外,码的第二个特点是最小性。最小性是指从码中去掉任何一个属性后就不再具有唯一性。1.实体和实体型(续)2.2.1基本概念(续)超级码(SuperKey)包含关键字的属性组叫做超级码,具有唯一性,但不具有最小性。主码(PrimaryKey)如果一个实体型有多个码,则要从中选取一个作为实体型的码,被选中的关键字叫做主码。候选码(CandidateKey)其他的码叫做候选码。1.实体和实体型(续)2.2.1基本概念(续)例如:学生实体型具有学号、姓名、性别、院系、出生日期、入学日期和奖励属性,其E-R图如图2.3所示。学生学号姓名性别院系出生日期入学日期奖励图2.3学生实体型和属性从图中可以看出,实体型的名称是学生,学号是码,奖励属性是一个多值属性(因为一个学生可以没有获得任何奖励,或者获得一到多个奖励)。1.实体和实体型(续)2.2.1基本概念(续)(1)联系型用于在实体型之间表示物体之间的联系。联系型要有名称,一般用动词或动词短语作为联系型的名称。在E-R图中用菱形表示联系型,菱形框内写明联系型的名称,并用无向边分别与相关联的实体型连接起来。例如,学生和班级实体型之间存在一个联系型,取名为“隶属于”,描述了学生和班级之间的关系,如图2.4所示。学生班级隶属于图2.4用菱形表示联系型2.联系和联系型n12.2.1基本概念(续)(2)联系是联系型的一个实例。联系型“从属于”的实例(即联系)就是班级花名册。可以用图和表来表示联系。图2.5表示学生S1、S2和S3属于班级C1,学生S4和S5属于班级C2,或者说班级C1中有S1、S2和S3三个学生,班级C2中有S4和S5两个学生。S1S2S3S4S5C1C2姓名班级S1C1S2S3S4C2S5图2.5联系的两种表示方法:图和表2.联系和联系型(续)2.2.1基本概念(续)课程选修学生mn成绩联系的属性联系本身也是一种实体型,也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。例如,在学校中,一个学生要选修一些课程,学习完一门课程后会有一个学习成绩。学生与课程之间的联系型“选修”有一个属性:成绩,如图2.6所示。图2.6联系型的属性2.2.1基本概念(续)联系型“选修”的实例是学生成绩表,如表2.1所示。表2.1学生成绩表学号课程号成绩20070121156802007113115689200725611569320070141156882007012102480………………2.2.1基本概念(续)一个联系型所关联的实体型的个数叫做联系型的度。只关联到一个实体型的联系型叫做一元联系型,有二个实体型参与的联系型叫做二元联系型,依此类推。图2.4和2.6是二元联系型,图2.7(a)是三元联系型,图2.7(b)是一元联系型。教师学生课程教学学生领导同学班长学生领导(a)(b)(c)图2.7一元和三元联系型2.2.1基本概念(续)实体型A联系名实体型B111:1联系实体型A联系名1n1:n联系实体型A实体型B联系名mnm:n联系实体型B用图形来表示两个实体型之间的这三类联系3.联系的分类2.2.1基本概念(续)一对一联系(1:1)实例一个学生只有一个学生证,一个学生证只对应一个学生。定义:如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。学生拥有学生证111:1联系3.联系的分类(续)2.2.1基本概念(续)一对多联系(1:n)实例一个班级中有若干名学生,每个学生只属于一个班级。定义:如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1:n。班级隶属于学生1n1:n联系3.联系的分类(续)2.2.1基本概念(续)多对多联系(m:n)实例课程与学生之间的联系:一门课程同时有若干个学生选修,一个学生可以同时选修多门课程。定义:如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体B具有多对多联系,记为m:n。课程选修学生mnm:n联系成绩3.联系的分类(续)2.2.1基本概念(续)基数约束基数约束是为了更精确地描述实体型的一个实体可以在一个联系中出现的次数而引入的概念。基数约束用一个数对min..max表示0≤min≤max。强制参与约束min=1的约束。非强制参与约束min=0的约束。被施加基数约束的实体型中的实体可以出现在联系中,也可以不出现在联系中。基数约束是上面叙述过的一对一、一对多、多对多联系的细化。参与联系的每个实体型要用基数约束说明实体型中的任何一个实体可以在联系中出现的最少次数和最多次数。4.基数约束2.2.1基本概念(续)图2.8-10的一对一、一对多、多对多联系用基数约束表示为图2.11所示。1..11..1学生学生证拥有20..8020..30学生课程选修成绩30..401..1班级学生拥有班级的约束学生的约束图2.11一对一、一对多、多对多的基数约束表示方法4.基数约束(续)2.2.1基本概念(续)但在三元联系或多元联系中,基数约束要靠近需要施加约束的实体型,如图2.12所示。1..31..*20..30教师学生课程教学时间成绩教师约束课程约束学生约束图2.12三元联系的基数约束的表示方法4.基数约束(续)2.2.1基本概念(续)关联实体型当E-R图辅助制图工具不支持二元以上的联系时,需要将三元联系转换为三个二元联系和一个关联实体型。转换步骤①将原来的联系型及其属性转换为一个关联实体型。②将原来施加到实体型的各个基数约束移动到靠近关联实体型③给原来的各个实体型施加1..1基数约束,如图2.13所示。4.基数约束(续)2.2.1基本概念(续)图2.13给出了一个例子。1..31..*20..30教师学生课程教学时间成绩111图2.13关联实体型4.基数约束(续)2.2基本的实体-联系模型2.2.1基本概念2.2.2几点说明2.2.2几点说明多值属性和复合多值属性经常被表示成一个联系型。[例2.1]实体型课程具有课程编号、名称和预备课程三个属性,如图2.14(a)所示。一门课程可能有也可能没有预备课程,可能有一门也可能有多门预备课程,所以,预备课程是一个多值属性。由于预备课程也是实体型课程的实体,因此,可以把预备课程更改为一个联系型,如图2.14(b)所示。(a)课程编号名称预备课程课程编号名称先修于预备课后续课程**(b)图2.14多值属性和联系型1.属性和联系2.2.2几点说明(续)[例2.2]图2.3的学生实体型有一个多值属性-奖励。一个学生可以获得零到多项奖励,每项奖励由奖励日期和奖励名称组成,因此,奖励属性还是一个复合属性。可以仿照例2.1,把该属性处理成一个联系型,名称为“拥有”,如图2.15所示。为清楚起见,没有画出学生实体型的所有的属性。*1姓名学生学号拥有奖励名称日期图2.15多值复合属性和联系型1.属性和联系(续)2.2.2几点说明(续)[例2.3]如图2.3,学生实体型有属性院系,表示一个学生在哪个院系学习。院系是另外一个实体型,因此,比较清楚的表示方法是去掉学生实体型中的属性院系,建立与实体型院系之间的联系,如图2.16所示。1*名称学生学号就读于院系名称编号图2.16属性转换为联系型1.属性和联系(续)2.2.2几点说明(续)[例2.4]在学校中,为了便于管理,一般是由后勤部门把地点相对集中的若干个宿舍分配给一个院系,再由院系根据班级等因素给学生分派宿舍。在这个例子中有三个实体型:学生、院系、宿舍,那么有几个联系呢?应该有学生“就读于”院系,宿舍“分配给”院系,学生“使用”宿舍三个联系,如图2.17所示。2.遗漏联系2.2.2几点说明(续)1*名称学生学号就读于院系名称编号*1分配给宿舍地址编号使用1*图2.17遗漏联系2.2.2几点说明(续)E-R模型没有明确地表达世界的变化,可以把它理解为现实世界的快照,即某个时刻的一张照片。但实际使用中有时需要清晰地表达时间的概念,可以采用一些方法加以补救。[例2.5]考虑产品的价格。大家知道,由于市场的变化,产品的价格处于不断波动中。如果要记录下产品价格变化的历史情况,E-R图应该怎样画?3.时间戳2.2.2几点说明(续)(b)(a)价格产品编号产品价格历史编号价格有效时间图2.18时间的处理方法2.2.2几点说明(续)教师讲授课程*1..*认证0..11..3学期教师和课程之间有两个联系:教师有资格讲授课程,说明教师获得了讲授某门课程的资格;教师讲授课程,描述教师在某学期讲授一门课程。如图2.19所示,一位教师有资格讲授至少一门课程,一门课程可以有多位有资格讲授的教师。在某个学期,一位教师可以不讲课,或者讲授一门课程,一门课程由一到三位教师讲授。图2.19实体型之间的多个联系4.实体型之间的多种联系第2章实体-联系模型2.1学习目标2.2基本的实体-联系模型2.3扩充的实体-联系模型2.4小结2.3扩充的实体-联系模型2.3.1IsA联系2.3.2part-of联系2.3.1ISA联系用E-R方法构建一个项目的模型时,经常会遇到某些实体型是其他实体型的子类型。子类型联系又叫做IsA联系。IsA联系一个最重要的性质是,子类型实体型继承了父类型实体型的所有属性。当然,子类型实体型也可以有自己的属性。学生本科生研究生研究领域导师图2.20学生的两个子类型2.3.1ISA联系(续)IsA联系描述了对一个实体型中的实体的一种分类方法。分类属性学生本科生研究生研究领域导师类别图2.21分类属性分类属性是父实体型的一个属性,可以根据这个属性的值把父实体型中的实体分派到子实体型中。图2.21中,在子类型符号的右边加了一个分类属性“类别”,它说明,一个学生是研究生还是本科生由该属性的值决定。2.3.1ISA联系(续)不相交约束不相交约束说明了父实体型中的一个实体是否能同时是
本文标题:数据库技术基础chp2
链接地址:https://www.777doc.com/doc-3359582 .html