版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章 数据模型,1,本章主要内容,本章将着重介绍一下概念模型、层次模型、网状模型、关系模型、面向对象模型等数据库系统的数据模型的基本概念和设计方法,为后面的数据库设计打下基础。 (1)数据描述 概念设计、逻辑设计和物理设计等各阶段中数据描述的术语,概念设计中实体间二元联系的描述(1:1,1:N,M:N)。 (2)数据模型 数据模型的定义,两类数据模型,逻辑模型的形式定义,ER模型,层次模型、网状模型、关系模型和面向对象模型的数据结构以及联系的实现方式。,2,数据模型,2.1 数据模型概述 2.2 ER数据模型 2.3 层次数据模型 2.4 网状数据模型 2.5 关系数据模型 2.6 面向对象
2、数据模型 本章小结,3,2.1 数据模型概述,数据模型(Data Model)是对现实世界数据特征的抽象,是用来描述数据的一组概念和定义。 现实世界中的客观对象抽象为概念模型; 然后把概念模型转换为DBMS支持的数据模型。 其转换过程如右图。 数据模型的分类: 概念数据模型(又称概念模型) 逻辑数据模型(又称数据模型),4,2.1.1 数据模型的基本组成,数据模型是现实世界中的事物及其间联系的一种抽象表示,是一种形式化描述数据、数据间联系以及有关语义约束规则的方法。它通常由以下三个部分组成: (1)数据结构 它是指对实体类型和实体间联系的表达实现。 它是数据模型最基本的组织部分,规定了数据模型
3、的静态特性。 (2)数据操作 是指对数据库进行的检索和更新两类操作。 (3)数据的约束条件 数据的约束条件是一组完整性规则的集合。 它定义了给定数据模型中数据及其联系应具有的制约和依赖规则。,5,2.1.2 数据模型的发展,20世纪60年代后期,在文件系统基础上发展起来的层次模型、网状模型和关系模型等传统数据模型; 20世纪70年代后期产生的ER数据模型 ; 20世纪80年代以来又相继推出面向对象数据模型、基于逻辑的数据模型等新的模型。,6,2.2 ER数据模型,2.2.1 基本概念 2.2.2 ER图 2.2.3 扩充ER数据模型,7,2.2.1 基本概念,ER数据模型(即Entity-Re
4、lationship data model,实体联系数据模型)是P. Chen(Peter Pin-Shan Chen)于1976年提出的一种语义数据模型。E-R数据模型不同于传统数据模型,它不是面向实现,而是面向现实世界。 1)实体(Entity) 实体是客观存在的且可以区别的事物。 2)联系(Relationship) 实体与实体间的关系抽象为联系。 (1)二元联系 只有两个实体参与的联系称为二元联系。 在二元联系中,ER数据模型又把联系区分为一对一(1:1)、一对多(1:n)、和多对多(m:n)三种 。,8,一对一(1:1)联系 若两个实体集中E1、E2中的每一个实体至多和另一个实体集中
5、的一个实体有联系,则称E1和E2是一对一的联系,记为1:1。 例如,学校实体集与校长实体集间的联系是一对一联系。 一对多(1:n)联系 设两个实体集E1、E2,若E1中每一个实体与E2中任意个实体(包括零个)相联系,而E2中每个实体至多和E1中一个实体有联系,则称E1和E2是一对多的联系,记为1:n。 多对多(m:n)联系 设两个实体集E1、E2,若E1中每一个实体都和另一个实体集中任意个实体(包括零个)有联系,则称E1和E2是多对多的联系,记为m:n。 它们三者之间是包含关系。如右图所示。,二元联系,9,数据联系的描述,(1:1)联系,(1:n)联系,(m:n)联系,10,多元联系与自反联系
6、,(2)多元联系 在ER数据模型中,二元联系这种表示方法还可推广到多元联系,即参与联系的实体个数n3。例如,三元联系也可区分1:1:1、1:1:p、1:n:p、m:n:p等联系。 (3)自反联系 表示同一个实体集两部分实体之间的联系,是一种特殊的二元联系。这两部分实体之间的联系也可以区分为1:1、1:n和m:n三种。 例如,在“人”这个实体集中存在夫妻之间的1:1联系;教师实体集中为了描述领导与被领导关系,可用1:n联系描述;在课程实体集中存在一门课程与另外一门或几门课程之间的预选课联系。,11,3)属性,实体或联系所具有的特征称为属性。 实体是由特征来表征和区分的,通常一个实体可以由多个属性
7、来描述。例如,学生具有姓名、学号等属性。 一个实体可以有若干个属性,但在数据库设计中通常只选择部分数据管理需要的属性。 属性往往是不可再细分的原子属性,如姓名、性别等。 属性有型和值的区别。 例如,学生实体中的学号、姓名等属性名是属性型,而“021231142”、“李定”等具体数据称为属性值。 每个属性值都有一定的变化范围,通常称属性取值的变化范围为属性值的域。 例如,性别属性域是男、女,年龄属性域是1200。 能唯一标识实体集中某一实体的属性或属性组称为实体集的标识关键字或称关键字。,12,2.2.2 ER图,ER图是ER数据模型的图形表示法,是一种直观表示现实世界的有力工具,目前E-R图已
8、用于数据库的概念设计。 1)ER图的表示方法,实体集名,联系,属性,上述提到的几种联系的ER简图如下:,13,2)ER图的构成规则,(1)画出实体集及它们之间的联系 如果实体集A中实体之间有联系AA,则实体间联系如下图:,如果实体集A和实体集B之间有联系AB,则实体间联系如下图:,如果三个上实体集A、B、C之间有联系A-B-C,则实体间联系如下图:,14,(2)画出实体集及联系的属性,用无向边把属性框连向与其相关的实体集或联系。 例如学校和教师实体集间存在聘任联系,联系有“聘任日期”属性,则一个描述学校和教师实体集及其联系的ER图如下图所示。,15,2.2.3 扩充ER数据模型,1)依赖联系和
9、弱实体集 在现实世界中,某些实体集间还存在一种特殊的联系依赖联系。,例如,在人事管理数据库中存放的职工实体集及其家庭成员实体集,前者以后者的存在为前提,家庭成员实体集依赖于职工实体集。这种依赖另一个实体集的存在而存在的实体集称为弱实体集,它们与其他实体集间的联系称为依赖联系,如右图所示。,16,2)子类和超类,为了进一步描述一个实体集中某些实体的不同特征,从该实体集中取出一部分实体构成一个(或多个)新的实体集,称这个新实体集是原实体集的子类,而原实体集是新实体集的超类。 例如,一个系部的职工实体集,为区分他们不同的工作特点,可分为教师、教辅人员及管理人员三个子类实体集。其EER数据模型实例如下
10、图所示。,17,3)聚集,在EER数据模型中,将联系视为参与联系的实体集组合而成新实体集,其属性为参与联系的实体的属性和联系的属性的并。这种新实体集称为聚集。这样联系也能以聚集的形式参与联系。 下图是应用聚集的例子。,18,4)范畴,在描述现实世界时,有时要用到不同类型的实体组成的实体集,引入了范畴这一抽象概念。设E1、E2、En是n个不同类型的实体集,则范畴T可定义为: 其中:E1、E2、En称为T的超实体集。 例如,“银行账户”这个实体集的成员可能是单位,也可能是个人。,19,几个ER事例,部门ER,20,医院病房 管理ER,21,系,22,23,2.3 层次数据模型,2.3.1 基本概念
11、和结构 2.3.2 数据操作 2.3.3 数据约束 2.3.4 层次数据模型的优缺点,24,2.3.1 基本概念和结构,层次模型是按照层次结构的形式组织数据库数据的数据模型,即用树型结构表示实体集与实体集之间的联系。 其中用结点表示实体集,结点之间联系的基本方式是1:n。 1)记录和字段 记录是用来描述某个事物或事物间关系的命名的数据单位,也是存储的数据单位。 它包含若干字段。每个字段也是命名的,字段只能是简单的数据类型,例如整数、实数、字符串等。,例如:图(a)是一个名为系的记录。 图(b)是其一个实例。,25,2)双亲子女关系(简称PCR),这是层次数据模型中最基本的数据关系。它代表了两个
12、记录型之间一对多关系(1:n)。 例如,一个系有多个班,就构成了如图(a)所示的双亲子女关系(即PCR型),在“1”方的记录型称为双亲记录,在“n”方的记录型称为子女记录。图(b)是其一个实例。,26,3)层次数据模式,利用PCR可以构成层次数据模式。 右图是一个层次数据模式的例子。 下图是层次数据模式的一个实例。,层次数据模式是一棵树,其数据结构特点为: 在每棵树仅有根结点无双亲。 除根结点外的任何结点有且有一个双亲结点,但可以有任意个子女结点。 树中无子女的结点称为叶结点。,27,4)层次序列和层次路径,(1)层次序列 由于存储器是线性的,层次数据模型采用树的先序遍历的次序(即从上向下、自
13、左到右)作为存储次序。这样所生成的序列称为层次序列。上例中的层次数据模式的实例的层次序列如下图所示。,(2)层次路径 层次路径是用来指明从层次数据模式的根结点到目标结点的一条查询路径,通常用从根结点到目标结点路径上每个记录值的排序关键字表示。,28,2.3.2 数据操作,1)数据查询 在层次数据模型中,若要查找一个记录,须从根结点开始,按给定条件沿一个层次路径查找所需要的记录。,下面介绍3个查询操作命令。 (1)GU(Get Unique) 格式:GU查询条件 该命令执行的结果是查找出满足条件的第一个条件。 例如,GU 系(系名计算机系),班(班名计科0202),学生; (2)GNP(Get
14、Next within Parent) 在当前记录的双亲下,按层次序列查找下一个满足条件的记录。 例如,查找计科0202班所有学生的记录的查询操作命令如下: GU 系(系名计算机系),班(班名计科0202),学生;/*找到记录王五*/ While not fail do GNP 学生;/*找到当前记录王五的双亲计科0202班的所有学生记录*/,29,(3)GN(Get Next) 从当前记录位置开始,按照层次序列,不受同一双亲的限制,查找当前记录的下一个满足条件的记录。,可以看出,GNP和GN命令通常跟在GU命令后面使用,先由GU命令定位到层次模型中的某个记录,再用GNP和GN命令查询所需记录
15、。,例如,查找计科0202班和计教0201班的所有学生记录的查询操作命令如下: GU 系(系名计算机系),班(班名计科0202),学生; While not fail do GNP 学生;/*找到计科0202班的所有学生记录*/ GN 学生;/*找到计教0201班的第一个学生记录,即学生赵山*/ While not fail do GNP 学生;/*找到计教0201班的所有学生记录*/,30,2)更新操作,(1)数据插入(INSERT) 插入操作可先将插入数据写入系统I/O区,然后指定一个由根记录开始的插入层次路径,完成数据的插入操作。 (2)数据删除(DELETE) 删除操作是先用查询命令将
16、待删除的记录定位为当前记录,再DELETE命令完成删除任务。当删除一个记录时,则其所从属的所有子女记录都被删除。 (3)数据修改(REPLACE) 先用查询语句将要修改的记录定位为当前记录,并将该记录读到I/O区,在I/O区对数据进行修改,然后用REPLACE命令可将修改后的记录值写回到数据库中。,31,2.3.3 数据约束,层次数据模型的数据约束主要是由层次结构的约束造成的。 (1)除了根结点外,任何其他结点不能离开其双亲结点而孤立存在。 这条约束表明了在插入一个子女记录时,必须与一个约束双亲记录相联系,否则不能插入;在删除一个记录时,其子女记录也将自动被删除。这一约束为数据操作造成了不便。
17、 (2)层次数据模型所体现的记录之间的联系只限于二元1:n或1:1的联系,这一约束了用层次模型描述现实世界的能力。 对于现实世界中存在的二元m:n联系和多元m:n:p等复杂联系,就不能用层次模型直接进行表达了。通常采用下列的分解法或虚拟记录法来解决这一问题。,32,分解法,例如,学生记录型和课程记录型是一个m:n联系,将无法用层次模型直接表达学生与课程之间的多对多联系。 可以采用分解的方法,把一个二元m:n联系分解成两个二元1:n联系。,33,虚拟记录法,由上可以看出,这种分解法会导致大量的存储数据冗余。为了减少分解所带来的数据冗余,可以采用虚拟记录法(IMS系统所采用的方法)。,虚拟记录法是
18、在数据库中,如果有一个记录x要在多处被引用,则只存储一份这样的记录,其他需要引用的地方用其指针代替。这种用指针代替的记录称为虚拟记录,记为V.x。右图表示学生和课程间的m:n联系。,(3)由于层次结构中的全部记录都是以有序树的形式组织起来,当对某些层次结构进行修改时,不允许改变原数据库中记录类型之间的双亲子女联系,这使得数据库的适应能力受到限制。 (4)虚拟记录的指针必须指向一个实际存在的记录。有虚拟记录指向的记录不得删除。 (5)虚拟记录不能为根记录。,34,2.3.4 层次数据模型的优缺点,层次数据模型的优点主要有: 层次模型结构简单、层次分明,便于在计算机内实现。 在层次结构中,从根结点
19、到树中任一结点均存在一条唯一的层次路径,这为有效地进行数据操纵提供了条件。 在层次结构中除根结点外所有结点有且只有一个双亲结点,故实体集之间的联系可用双亲结点唯一地表示,因此层次模型DBMS对层次结构的数据有较高的处理效率。 层次数据模型提供了良好的完整性支持。,层次数据模型的缺点主要有: 层次数据模型缺乏直接表达现实世界中非层次型结构的复杂联系,如多对多联系。 对插入或删除操作有较多的限制。 查询子女结点必须通过双亲结点。,35,2.4 网状数据模型,2.4.1 基本概念和结构 2.4.2 数据操作 2.4.3 数据约束 2.4.4 网状数据模型的优缺点,36,2.4.1 基本概念和结构,为
20、了克服层次模型结构描述非层次型事物的局限,20世纪60年代末美国CODASYL委员会提出了网状数据模型。 1)记录与数据项(Data Items) 与层次数据模型类似,在网状数据模型中,也是以记录为数据的存储单位。记录包含若干数据项,数据项相当于字段。 但与层次数据模型中的字段不同,网状数据模型中的数据项不一定是简单的数据类型,也可以是多值的和复合的数据。 2)系(Set) 在网状数据模型中,数据间的联系用系表示。,系代表了两记录之间的1:n联系,系用一条弧表示,箭头指向“n”方。“1”方的记录称首记录,“n”方的记录称属记录。右图是简单网状结构的例子。,37,3)系型,(1)单属系型 由主记
21、录型和单一的属记录组成。 例如班级记录型和学生记录型组成的班级学生系是单属系型。,例如,在学校中有教师和职工,他们有不同的记录结构可形成两个记录类型。当建立一个学校教职工系型时,可将教师记录型和职工记录型作为学校的两个属记录型。如右图。,(2)多属系型 该系型中包含三个以上记录型,其中一个为首记录型,其余为属记录型。,(3)奇异系型 这是一种只有属记录型而无首记录型的一种特殊系型。 一个单位的所有部门可以组成一个无首记录型的奇异系型。,部门,38,4)联系记录,但对于二元m:n联系、和多元m:n:p联系也不能直接用系来表示,而是采用联系记录这个辅助数据结构,来将实体集间的m:n联系转换成两个1
22、:n联系。 例如学生记录与课程记录之间的m:n联系可通过引入联系记录学生选课记录,将其转换为两个1:n联系。如下图所示。,39,由于网状数据模型中规定,一个记录型不能在一个系中既作为系的首记录又作为系的属记录,即系不能直接用来表示一个记录型的自身联系。我们通常可采用增加联系记录的方法来解决。 例如,职工间的领导关系可以表示成一个环,如图(a)所示,增加一个联系记录型领导记录,该记录存放领导职务等信息,从而形成两个系类型S1、S2,如图(b)所示。,40,2.4.2 数据操作,1)查询操作 查询操作主要是通过查询语句FIND和取数语句GET配合使用实现的。 FIND语句主要是查找定位数据库中满足
23、条件的记录为当前记录。 GET语句主要是将当前记录取出来供应用程序使用。,(1)利用关键字查询 根据记录中的一个或多个数据项来查询某个记录。其格式如下: FIND记录名RECORDVIA系名SETUSING数据项,(2)导航式查询 根据系值环形链上的指针,沿着环形链一个记录值接一个记录值地进行查询,直至找到欲查询的记录。其格式如下: FIND FIRST/LAST/NEXT/PRIOR/N 记录名 RECORD WITHIN 系名,(3)利用当前值查询 利用当前值查询可以快速地查出刚访问过的某个记录。其格式为: FINDCURRENTOF记录名RECORD 或 FINDCURRENTOF系名S
24、ET,41,2)更新操作,网状数据模型的更新操作分为对记录的更新和对系的更新两类。 (1)对记录的更新 插入操作(STORE):存储一个记录到数据库中,并按插入系籍的约束,加入有关的系值中。 修改操作(MODIFY):修改指定记录中的数据项。 删除操作(ERASE):从数据库中删除指定记录。 (2)对系的更新 CONNECT(加入):把属记录加入到相应的系值中。 RECONNECT(转接):把属记录从原系值转移到另一个指定的系值中。 DISCONNECT(撤离):把属记录从其所在的系值中撤离,但该记录仍保留在数据库中。,42,(3)任一个系值有且仅有一个首记录值,但可以有任意个属记录值。 (4
25、)每个系型有且仅有一个首记录型,但可以有多个属记录型,且属记录型必须至少有一个。,2.4.3 数据约束,(1)一个记录值不能出现在同一个系型的多个系值中。,(2)一个记录型不能同时为同一个系的首记录和属记录。,43,2.4.4 网状数据模型的优缺点,网状数据模型的优点主要有: 能够更为直接地描述现实世界。 具有存取效率高等良好性能。 网状数据模型的缺点主要有: 数据结构比较复杂,不便于终端用户掌握。 其数据定义语言(DDL)、数据操作语言(DML)较为复杂,用户掌握使用较为困难。 数据独立性较差。,44,2.5 关系数据模型,2.5.1 基本概念 2.5.2 关系数据模型的数据结构 2.5.3
26、 数据操作 2.5.4 数据约束 2.5.5 关系数据模型的优缺点,45,2.5.1 基本概念,1)属性和域 在现实世界中,要描述一个事物,常常取其若干特征来表示。这些特征称为属性。 例如,大学生可用姓名、学号、性别、系别等属性来描述。 每个属性对应一个值的集合,作为其可以取值的范围,称为属性的域。 例如姓名的域是所有合法姓名的集合;性别的域是男,女等。 2)关系和元组 一个对象可以用一个或多个关系来表示。关系就是定义在它的所有属性域上的多元关系。设为R,它有属性A1、A2、An,其对应的域分别为D1、D2、Dn,则关系R可表示为: R(A1/D1,A2/D2,An/Dn)或R(A1,A2,A
27、n) 元组是关系中各个属性的一个取值的集合。 3)键 关系中的某一属性或属性组的值唯一地决定其他所有属性的值,也就是唯一决定一个元组,而其任何真子集无此性质,则称这个属性或属性组为该关系的候选键,简称键。,46,2.5.2 关系数据模型的数据结构,1)关系数据模型的描述功能 (1)用二维表格表示实体集及其属性 设实体集R有属性A1、A2、An,实体集的型可用一个二维表的框架表示。见表(a)。表中每一元组表示实体集的值,见表(b),47,(2)用二维表描述实体集间的联系,关系模型不仅可用二维表表示实体集,而且可用二维表描述实体集间的联系。 例如,在图书管理中经常用“借书人统计表”和“图书登记表”
28、如下表所示。,由于借书人与图书之间是m:n联系,在前面用层次模型或网状模型将是一项复杂的事情。在这里用二维表“借书登记表”来表示借书人和图书两个实体集之间的联系则十分简便,如下表所示。,48,2)关系的性质,关系是一个二维表,表中的每一行对应一个元组,表中的每一列有一个属性名且对应一个域。 列是同质的,即每一列的值来自同一域。 关系中的每一个属性是不可再分解,即所有域都应是原子数据的集合。 关系中任意两个元组不能完全相同。 关系中行的排列顺序、列的排列顺序是无关紧要的。 每个关系都有关键字的属性集唯一标识各个元组。,关系是一个简单的二维表,其主要性质为:,49,3)关系模式,关系模式是关系中信
29、息内容结构的描述。 它包括关系名、属性名、每个属性列的取值集合、数据完整性约束条件以及各属性间固有的数据依赖关系等。可以表示为: R(U,D,DOM,I,) 其中:R为关系名;U为组成关系的全部属性的集合;D是U中属性取值的值域;DOM是属性列到域的映射,即DOM:UD;I是一组完整性约束条件;是属性集间的一组数据依赖。 通常,可用R(U)来简化地表示关系模式。 例如,描述大学生的关系模式表示为: STUDENT(学号,姓名,性别,年龄,所在系,籍贯,入学年份),50,2.5.3 数据操作,1)关系代数 关系代数是由一组以关系作为运算对象的特定的关系运算所组成,用户通过这组运算对一个或多个关系
30、进行“组合”与“分割”,从而得到所需要的新关系。 关系代数又分为传统的集合运算和专门的关系运算。 (1)传统的集合运算 主要包括并运算、差运算、交运算和笛卡儿乘积运算等。 (2)专门的关系运算 包括选择运算、投影运算、连接运算、自然连接运算、半连接运算、自然半连接运算和除运算等。 其中:, 五种运算为关系代数的基本运算,组成了一个完备的操作集,任何其他关系代数操作都可以用这五种操作来表示。 2)关系演算 除了用关系代数表示关系操作外,还可以用谓词演算来表达关系的操作,称为关系演算。关系演算又可分为元组关系演算和域关系演算。,51,2.5.4 数据约束,1)域完整性约束 域完整性约束限定了属性值
31、的取值范围,并由语义决定一个属性值是否允许为空值NULL。,2)实体完整性约束 每个关系应有一个主键,每个元组的主键的值应是唯一的。主键的值不能为NULL,否则无法区分和识别元组。,3)参照完整性约束 参照完整性约束是不同关系间的约束,当存在关系间的引用时,要求不能引用不存在的元组。,52,2.5.5 关系数据模型的优缺点,1)关系数据模型的优点 关系模型有坚实的理论基础。 在关系模型中,二维表不仅能表示实体集,而且能方便地表示实体集间的联系。 关系数据模型中数据的表示方法统一、简单,便于计算机实现,使用用户使用。 数据独立性高。 2)关系数据模型的缺点 : 关系数据模型的主要缺点是查询效率常
32、常不如非关系数据模型。 关系数据模型等传统数据模型还存在不能以自然的方式表示实体集间的联系、语义信息不足、数据类型过少等弱点。 因此自20世纪80年代后期以来,陆续出现了以面向对象数据模型为代表的新的数据模型。,53,2.6 面向对象数据模型,面向对象数据模型(Object-Oriented Data Model,简称OO数据模型)是面向对象程序设计方法与数据库技术相结合的产物,用以支持非传统应用领域对数据模型提出的新需求。,2.6.1 对象和对象标识符 2.6.2 属性和方法 2.6.3 封装和消息传递 2.6.4 类和实例 2.6.5 类层次结构和继承 2.6.6 持久性和版本 2.6.7
33、 多态、重载、重定义与动态联编 2.6.8 与关系数据模型的比较,54,2.6.1 对象和对象标识符,1)对象 在面向对象数据模型中,所有现实世界中的实体都模拟为对象,小至一个整数、字符串,大至一个公司、一部电影,都可以看成对象。 2)对象标识符 在OO数据模型中,每个对象都有一个系统内唯一不变的标识符,称为对象标识符(OID)。 OID一般是由系统产生,用户不得修改。OID是区别对象的唯一标志,与对象的属性值无关。 如果两对象的属性值和方法一样,但OID不同,则仍认为是两个“相等”而不同的对象。 如果一个对象的属性值修改了,只要其标识符不变,则仍认为是同一对象。 因此,OID可看成是对象的替
34、身,以构造更复杂的对象。,55,2.6.2 属性和方法,1)属性 每个对象包含若干属性,用以描述对象的状态、组成和特性。,2)方法 除了属性外,对象还包含若干方法,用以描述对象的行为特性。 方法又称为操作,它可以改变对象的状态,对对象进行各种数据库操作。方法的定义与表示包含两个部分: 一是方法的接口,说明方法的名称、参数和结果的类型; 二是方法的实现部分,是用程序编写的一个过程,以实现方法的功能。 一个对象一般是由一组属性、一组方法,再冠以一个OID组成。,属性也是对象,它又可能包含其他对象作为其属性。这种递归引用对象的过程可以继续下去,从而组成各种复杂的对象。右图是一个事例:,56,2.6.
35、3 封装和消息传递,1)封装 在OO数据模型中,系统把一个对象的属性和方法封装成一个整体。 对象的封装性体现在以下几个方面: 对象具有清晰的边界; 对象具有统一的外部接口; 对象的内部实现是不公开的。,消息一般由操作者、接收者、操作参数三个部分组成。对象、消息之间的关系如右图所示。,2)消息传递 对象是封装的,对象与外界、对象之间的通信一般只能借助于消息。消息传送给对象,调用对象的相应方法,进行相应的操作,再以消息形式返回操作的结果。这种通信机制称为消息传递。,57,2.6.4 类和实例,1)类 类是具有共同属性和方法的对象的集合,这些属性和方法可以在类中统一说明。 同类对象在数据结构和操作性质方面具有共性。 例如大学生、研究生是一些有共同性质有对象,可能抽象为一个学生类。,2)实例 类中每个对象称为该类的一个实例。 同一个类中对象的属性名虽然是相同的,但这些属性的取值会因各个实例而异。,3)元类 在一些OO数据模型中,把类也看做对象,因此由类可以组成新的类。这种由类组成的类称为元类,元类的实例是类。,S1 程宏 19 计算机,58,2.6.5 类层次结构和继承,1)类层次结构 在类层次结构中,一个类的下层可以是多个子类;一个类的上层也可以有多个超类。下图是一个类学校层次结构的例子。,59,2)继承,在类继承时,可能发生属性名和方法名的同名冲突: (1)各超类之间的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人工肝工作制度
- e政务工作制度
- 五张网工作制度
- 医疗区工作制度
- 医德工作制度
- 准入工作制度
- 2病房工作制度
- 仲裁委工作制度
- 博物馆工作制度
- 四必谈工作制度
- 安踏内部审计制度
- 中考总复习数学100道基础题三大专题
- 《工程总承包(EPC)项目审计操作指南(试行)》
- 2026年江苏省公务员考试《申论》试卷及参考答案
- 2026年宁夏石嘴山市单招职业适应性测试题库(含答案详解)
- 第一章 三角形的证明及其应用 单元测试(含答案)2025-2026学年数学北师大版八年级下册
- 煤气管道动火作业施工方案
- 《慢性支气管炎诊断与治疗指南(2025年版)》
- 个体化胚胎移植临床实践指南2026
- 应急响应团队能力提升路径-洞察与解读
- 水包砂施工技术交底
评论
0/150
提交评论