《数据库原理与应用》课件第2章.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《数据库原理与应用》课件第2章.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库原理与应用 数据库 原理 应用 课件
- 资源描述:
-
1、第2章 数据模型第第2 2章数据模型章数据模型2.1 实体关联模型实体关联模型 2.2 扩展的扩展的E-R特性特性 2.3 将将E-R模式转换为表模式转换为表 2.4 E-R模型设计实例模型设计实例 2.5 UML模型模型 2.6 XML 习题习题 第2章 数据模型数据模型(Data Model)是数据特征的抽象,是数据库结构的基础和核心。按不同的应用层次可将数据模型分成3种类型:概念数据模型、逻辑数据模型和物理数据模型。概念数据模型(简称概念模型,Conceptual Data Model)是从现实世界的角度来描述数据的模型。它反映了数据的概念化结构,例如,E-R模型、面向对象模型、XML等
2、。逻辑数据模型(简称逻辑模型,Logical Data Model)是从数据库实现的角度来描述数据的模型。它是具体的DBMS所支持的数据模型,常见的逻辑模型有网状模型、层次模型和关系模型等。物理数据模型(简称物理模型,Physical Data Model)是从计算机的角度来表示数据的模型。它描述了数据在储存介质上的组织结构。概念模型与具体的数第2章 数据模型据管理系统无关,它使得数据库设计人员在设计初期,集中精力分析数据以及数据之间的联系,而不需考虑计算机系统及DBMS的具体技术问题。逻辑模型既要面向用户,又要面向系统,主要用于数据库管理系统(DBMS)的实现。概念模型必须先转换成逻辑模型,
3、才能在DBMS中实现。物理模型与具体的DBMS和操作系统、硬件都有关系。每一种逻辑数据模型在实现时都与其对应的物理数据模型相关。DBMS为了保证其独立性与可移植性,大部分物理数据模型的实现工作由系统自动完成。本章重点介绍常见的概念模型,如实体关联模型、扩展的E-R模型、面向对象模型(UML)及XML模型。第2章 数据模型2.1 实体实体关联模型关联模型实体关联模型(E-R模型,Entity-Relationship Model)是由P.P.Chen在1976年首先提出的。E-R模型的基本思想是现实世界由一组实体和实体之间的相互联系组成,而实体通过其具有的特性进行描述。基于此,E-R模型提供了不
4、受任何DBMS约束的实体、属性和联系的表示方法,即描述现实世界中数据的概念模型。E-R模型在数据库设计中被广泛用作数据建模的工具。E-R数据模型问世至今,已经历了许多修改和扩充。为了更好地理解相关知识,在下文中,用建立连锁超市经营管理系统为例来解释相关概念。该系统的需求描述如下:在一家具有多个加盟门店的连锁超市中,每个加盟门店有一名店第2章 数据模型长管理,一个营业员只能担任一个门店的店长,多名营业员负责一个加盟店的经营,一个营业员只能在一家加盟门店工作。一种商品可在不同加盟门店内销售,一个加盟门店也可销售多种商品。加盟门店里的营业员可销售店中的所有商品。整个连锁超市建立了3家仓库用来存放商品
5、。所有加盟门店都能从这3家仓库进货。超市有企业代码、名称、法人代表、地址及联系电话等描述信息,每个加盟门店都有门店编号、名称、店长、地址、开业日期、联系电话等描述信息,每个营业员都有工号、姓名、身份证号、联系电话、家庭住址、出生年月、工作年月等描述信息,每件商品都有商品代码、商品名称、生产商、生产日期、进货价格、现有数量、销售价格等描述信息,仓库具有仓库编号、仓库名称、面积大小、地址、联系电话等描述信息。第2章 数据模型2.1.1 实体、属性关联实体、属性关联E-R模型的基本构成成分是实体、属性和关联。1实体实体实体(Entity)是现实中存在且可相互区别、又可以被识别的事、物、概念等。实体可
6、以是具体的,也可以是抽象的,可以是物理上存在的,也可以是概念性的。例如,一种商品、一个营业员、一次销售活动等等。实体的特征是可以互相区别。实体可以分为独立实体和从属实体或弱实体。独立实体是不依赖于其他实体和关联而可以独立存在的实体。例如,在我们的例子中,“商品”、“加盟店”、“营业员”、“仓库”等都是独立实体,独立实体通常简称为实体;从属实体是指那些依赖于其他实体和关联的存在而存在的实体。例如,“销售记录”是从属实体,它的存在依赖于实体“商品”和关联“销售”。第2章 数据模型2属性属性实体是通过一组属性(Attribute)来表示的,属性用以描述实体具有的性质。实体的每个属性都有一个值,每一个
7、属性的取值范围就称做该属性的域。例如,“门店”这一实体具有“编号”、“名称”、“店长”、“地址”、“开业日期”及“联系电话”等属性,对于门店(“001”,“中山北路门店”,“中山北路11号”,“2009年1月5日”),其“编号”属性的值为“001”,“名称”属性的值为“中山北路门店”,依此类推。另外,所有合法的编号组成了“编号”属性的域。当然,属性可以是单值的,也可以是多值的,例如“姓名”、“年龄”等都是单值的,而“奖惩情况”则是多值的。另外,需要理解下列与属性相关的几个概念。第2章 数据模型(1)超码(Super Key):在一个实体集中,能唯一标识实体的属性集。例如,“编号”和“名称”可唯
8、一标识一家门店,因此,编号,名称即为实体集“加盟门店”的超码。(2)候选码(Candidate Key):如果一个实体集的某个属性集能唯一标识一个实体,且该属性集又不含子集可以唯一标识一个实体,那么这个属性集就是该实体集的候选码。例如,编号就是实体集“加盟门店”的候选码,工号和身份证号都是实体集“营业员”的候选码。(3)主码(Primary Key):指在当前系统中使用的候选码。例如,工号和身份证号都是实体集“营业员”的候选码,但是在的超市经营管理中只使用工号来标识营业员,那么工号就是营业员这个实体集的主码。第2章 数据模型3关联关联现实世界中的实体之间可能存在各种关系。例如,“超市”与“门店
9、”之间有“管理”的关系、“商品”与“营业员”之间有“销售”的关系。这种实体和实体之间的关系被抽象为关联(Association)。实体间的关联可分3类:一对一(11)、一对多(1N)和 多对多(MN)。(1)一对一(11):给定两个实体集A和B,实体集A中至多有一个实体与实体集B中的某一实体相关联;同样,实体集B中也至多有一个实体与实体集A中某一实体相关联。例如,一名店长只能负责一家门店的管理,一家门店只能由一名店长管理,一所大学只有一名正校长等。第2章 数据模型(2)一对多(1N):给定两个实体集A和B,针对实体集A中某个实体,在实体集B中存在多个实体与其相关联;针对实体集B某个实体,在实体
10、集A中至多有一个实体与其相关联。例如,一家门店具有多个营业员,而一个营业员只能在一家门店上班。(3)多对多(MN):给定两个实体集A和B,针对实体集A中某个实体,在实体集B中存在多个实体与其相关联;同样,针对实体集B某个实体,在实体集A中也有多个实体与其相关联。例如,一种商品可在多家门店销售,一家门店也可销售多种商品。第2章 数据模型2.1.2 实体关联集实体关联集实体集(Entity Set)是指具有相同类型及共享相同性质的实体集合,例如,全部商品就是一个实体集。在我们所用的例子中有超市、门店、营业员、商品、仓库等实体集。关联集是实体集之间的关联,它是由相似的关联组成的集合。例如,商品与营业
11、员之间的关联集是各次销售活动,每次销售活动都反映了一次商品、营业员之间的关联。关联集可以具有用来描述关联的属性,这些属性用来记录关联自身的特性,而不是关联实体的特性。例如,营业员销售某商品,它既不是营业员的属性,也不是商品的属性,因为它依赖于某个特定的营业员,又依赖于某个特定的商品,所以它是营业员与商品之间的关联“销售”的属性。在后面的章节里,可以发现关联集具有属性这一概念对理解数据的语义是非常重要的。第2章 数据模型组成一个关联集的实体集可以相同,也可以不同。有时一个联系可能包含两个同一实体集中的两个实体。例如,店长也是营业员,但同其他营业员之间是上下级关系,这个上下级之间的关联集就包含两个
12、相同的营业员实体集。2.1.3 实体关联图实体关联图我们知道,E-R模型的基本构成成分是实体集、属性和关联集。E-R模型的表现形式称E-R图。在E-R图中,实体集、属性和关联集的表示方法如下:(1)实体集:用矩形框表示,并在矩形框内写上实体名,如图2.1(a)所示。(2)属性:用椭圆框表示,并在框内写上属性名,用无向边与其实体集相连,如图2.1(b)所示。第2章 数据模型图2.1 实体集及其属性的E-R图表示 第2章 数据模型(3)关联集:用菱形框表示,并给关联取以具有适当含义的名字,将名字写在菱形框中,用无向连线将参加联系的实体矩形框分别与菱形框相连,并在连线上标明联系的类型,即11、1M或
13、MN。在连锁超市经营管理系统的例子中,超市、加盟门店、营业员、商品、仓库为实体集;每个加盟门店只有一个店长,而一个店长只能在一家加盟门店任职,所以加盟门店和店长之间是一对一的关联,如图2.2(a)所示;一家超市有多个加盟门店,而一个加盟门店仅属于一家超市,所以超市与加盟门店之间是一对多的关联,如图2.2(b)所示;一种商品可以在多家加盟门店中销售,一家加盟门店也可销售多种商品,因此加盟门店与商品之间是多对多的关联,如图2.2(c)所示。第2章 数据模型图2.2 两个实体集之间关联示例 第2章 数据模型E-R模型除了可以明确表示二个实体集之间11、1M及MN的关联之外。还可表示一些特殊的关联,这
14、些特殊关联有:(1)3个及以上的实体集之间的关联。例如,一家加盟门店可以从同一仓库调入多种商品,也可从多个不同仓库中调入同一商品,某一仓库的同种商品也可供应给多个不同加盟门店。加盟门店、商品和仓库3个实体集之间的联系是多对多的三元联系,其E-R模型表示如图2.3(a)所示。(2)一个实体集内部的关联。例如,每个加盟门店的营业员这个实体集中,一名店长领导多名营业员,店长和营业员之间是一对多的关联,其E-R模型如图2.3(b)所示。(3)两个实体集之间的多种关联。例如,加盟门店和商品之间可以有多种关联,一种关联是一种商品可以由多个加盟门店供应,另一种关联是一个加盟店调入多种商品,其E-R模型如图2
15、.3(c)所示。第2章 数据模型图2.3 多实体集间的特殊关联 第2章 数据模型2.2 扩展的扩展的E-R特性特性对大多数数据库而言,基本的E-R模型可以满足概念建模模型,但对基本E-R模型进行一些特殊扩展才能更好地描述数据库某些方面的特征。这些E-R扩展特性包括特殊化与一般化、属性继承、一般化约束以及聚集等等。2.2.1 特殊化特殊化实体集中可能包含一些子集,这些子集的实体具有与实体集中其他实体不同的一些特征。就商品实体集来说,可以对其做进一步分类,如食品、家电等。每类商品都可以通过商品实体集的所有属性和附加的特殊属性来描述。例如,食品实体集通过保质期属性进一步描述,而家电实体集通过保修期属
16、性进第2章 数据模型一步描述。这种在实体集内部进行分组的过程称为特殊化(Specialization)。实体集可以根据多个差异特征来进行特殊化。在商品这个例子中,是根据实体间的差异来对商品进行分类的。除此之外,还可以根据商品的生产性质不同而进行特殊化,其结果是可能产生了国产商品、进口商品和合资商品实体集。当一个实体集进行了多次特殊化之后,某个特定的实体就可能同时属于多个特殊化实体集。例如,某个给定的商品既是家电,又是进口商品。在数据库的概念设计阶段多次使用特殊化可以简化设计的模式。第2章 数据模型2.2.2 一般化一般化与特殊化相反,一般化(Generalization)是指从一组实体集中抽取
17、共同特征,形成一个新实体集的过程。例如,超市出售的食品、家电、日用品可一般化为“商品”。可见,在一般化中忽略了各个实体集之间的差别,只关注它们的共性。一般化描述了“是一种(IS-A)”的关系。不难发现,食品、家电和日用品都是商品的一种。2.2.3 属性与继承属性与继承在数据库概念建模中,有时会发现一个实体集中的所有实体同时也是另一个实体集中的实体。例如,超市出售的所有食品都是商品。这种情况下,称前一实体集为子类,后一实体集第2章 数据模型为超类。再如,在营业员实体集中,店长也是营业员,但他同时又领导着其他营业员,可增设店长和普通营业员两个实体类型作为营业员的子类。子类的一个很重要的特征是继承性
18、(Inheritance)。继承性使得子类具有超类的所有属性。除此之外,子类还具有自身特有的特征。例如,超市出售的食品具有商品的所有属性,同时还有自己特有的属性“保质期”。不难看出,一组实体集进行一般化后可得到新的实体集,是该组实体集的超类;某个类通过特殊化后可以形成各个子类。也就是说,通过一般化和特殊化可形成类层次。第2章 数据模型2.2.4 一般化一般化/特殊化约束特殊化约束一般化的结构中可以指定两类约束:重叠约束(Overlapping Constraint)和覆盖约束(Overriding Constraint)。重叠约束决定了是否允许两个子类含有相同实体。例如,不能把某个商品既认为是
19、食品类商品的实体又认为是家电类商品的实体;但是可以说某种商品是家电类商品的实体又是进口类商品的实体。这时,把家电类商品和进口类商品称作是重叠的。一般情况下,如果没有进行专门说明,认为实体集之间不存在重叠约束。覆盖约束决定了超类实体是否完全包含在子类实体集中。例如,一个营业员实体要么是店长实体,要么是一个普通营业第2章 数据模型员实体。这时,称店长实体集和普通营业员实体集与营业员实体集之间存在覆盖关系。事实上,在绝大多数情况下没有覆盖约束。例如,由于存在一些无法明确归类的商品,也就是说,商品每个实体不一定属于它的一个子类。在没有进行明确说明时,默认实体集之间不存在覆盖关系。2.2.5 聚集聚集聚
20、集(Aggregation)是一种特殊的关联,它定义了某一实体集的组成成分,抽象了实体和成分之间的“组成部分(is-part-of)”的语义,即表示实体内部类型和成分之间的关联是整体与部分的关系。可以通过聚集形成实体间的一个关联实体,例如,“一个营业员在某个时间销售了某个数量的某种商品”,这个例子中有4个属性:营业员、商品、时间、数量,它们之间的聚集就构成了“销售”关联。第2章 数据模型2.2.6 扩展的扩展的E-R符号符号在基本E-R图中,对实体、属性、关联3个组成部门进行了图形化表达。为了图形化表达扩展概念,需要对E-R符号进行扩展。1依赖关系依赖关系E-R符号符号依赖关系(Depende
21、ncy)用来描述一个实体集间的强依赖关系,即一个实体的存在以另一个实体的存在为前提。通常把依赖实体称为弱实体,被依赖实体称为强实体。例如,在超市经营管理的例子中,一个店长实体是依赖于一个加盟门店的,如果加盟门店不存在了,店长也就不存在了。这里,店长是弱实体,而加盟门店是强实体。在E-R图中,弱实体采用双线框表示,并以此来表达依赖关系,如图2.4(a)所示。第2章 数据模型2一般化一般化/特殊化特殊化E-R符号符号实体集间的一般化/特殊化约束是用来描述“IS-A”关系的。在E-R图中,可以通过一个两旁双线矩形表示弱实体,用中间带有圆圈的连线表示一般化/特殊化关联,如图2.4(b)所示。3聚集聚集
22、E-R符号符号根据其概念可知,聚集用来表示属性与实体之间有整体与部分之间的关系。图2.4(c)所示是一个简单的聚集,实体集“商品”的各个属性都是原子的,图2.4(d)所示是一个复杂的聚集,“加盟门店”这个实体集的属性中有“店长”这个属性,而店长却是一个实体类型。第2章 数据模型图2.4 扩展的E-R模型符号 第2章 数据模型2.3 将将E-R模式转换为表模式转换为表E-R模型是概念模型,建立E-R模型的目的是为了方便数据库逻辑模型的设计。下面,以E-R模型转换成关系模型为例来说明如何将E-R模型表示的概念模型转换成数据库能实现的逻辑模型。关系模型的基本结构是表,而E-R模型是由实体、属性和关联
23、3个基本成分组成的。因此,如何用表来表达E-R模型中的实体集与实体集之间的关联,以及如何确定表的属性和主码,是将E-R模型转换成关系模型时需要解决的问题。第2章 数据模型2.3.1 用表表示实体集用表表示实体集针对E-R图的每个实体集,都转换成一个表。实体集的属性就是关系的属性,实体的主码就是关系的主码。连锁超市经营管理对应的E-R模型中(如图2.5所示),有超市、加盟门店、营业员、商品和仓库等实体集,将它们都转换成对应的表(如表2.1所示)。每个表格中有下划线的属性为该表的主码。第2章 数据模型图2.5 连锁超市经营管理E-R 第2章 数据模型表表2.1 连锁超市经营管理连锁超市经营管理E-
24、R模型的实体集转换成的表模型的实体集转换成的表 第2章 数据模型2.3.2 用表表示关联集用表表示关联集在关系模型中,表与表的关联也用表来表示。在将E-R模型中关联集转换为表时,有如下几种不同情况:(1)对于11的关联,既可以转换成一个独立的表,也可以与任一端的实体集合并。如果转换成一个表,则与该关联相连的各实体集的主码及关联本身属性,构成了表的属性,表的主码由来自关联两端实体的主码组合或其他能唯一标识该表中元组的属性集组成。如果与关联一端实体集对应的表合并,则需要将另一端表的主码和关联本身属性加入到该表的属性中,表的主码不变。第2章 数据模型(2)对于1M的关联,既可以转换成一个独立的表,也
25、可以与M端实体集对应的表合并。如果转换成一个独立的表,则与该关联相连的各实体集的主码及关联本身属性,构成了表的属性,表的主码由来自关联两端实体集的主码组合或其他能唯一标识该表中元组的属性集组成。如果与关联M端实体集对应的表合并,则需要将1端表的主码和关联本身属性加入到该表的属性中,表的主码仍然为M端的主码。(3)对于MN的关联需要转换成一个独立的表。与关联相连的各个实体集的主码及关联本身的属性构成了表的属性。表的主码为来自各个实体集的主码组合或其他能唯一标识该表中元组的属性集。第2章 数据模型(4)对于多个(3个及3个以上)实体集间的1M的关联可以转换成一个独立表。表的属性由与关联相连的各个实
展开阅读全文