930 likes | 1.24k Views
地理信息系统原理讲义 ( 空间数据库 ). 程 雄 2013 年. 地理信息系统原理讲义. 第三章 空间数据库. 1. 空间数据库的概念 2. 空间数据模型 3. 空间数据库的设计 4. 空间数据库的建立与维护. 第一节 空间数据库的概念. 1. 数据库简介 2. 空间数据库 3. 空间数据库管理系统 4. 空间数据库应用系统.
E N D
地理信息系统原理讲义(空间数据库) 程 雄2013年
地理信息系统原理讲义 第三章 空间数据库 1.空间数据库的概念 2.空间数据模型 3.空间数据库的设计 4.空间数据库的建立与维护
第一节 空间数据库的概念 1.数据库简介 2.空间数据库 3.空间数据库管理系统 4.空间数据库应用系统
地理信息通过数据采集和编辑以后,送入到计算机的外存设备。对于海量的地理数据,再采用文件系统的方法来管理肯定不行了,必须采用数据库技术进行管理。因此,地理数据库成了GIS研究的重要课题。地理数据库是地理空间数据的集合,是一种与现实的地理世界保持一定相似性的实体模型。地理信息通过数据采集和编辑以后,送入到计算机的外存设备。对于海量的地理数据,再采用文件系统的方法来管理肯定不行了,必须采用数据库技术进行管理。因此,地理数据库成了GIS研究的重要课题。地理数据库是地理空间数据的集合,是一种与现实的地理世界保持一定相似性的实体模型。 由于传统数据模型存储空间数据的局限性,使得它们并不适用于空间数据的有效管理,地理信息系统需要研究自己的空间数据模型。 建立地理空间数据库是地理信息系统建立的首要任务。由于空间数据的空间特性,在建立空间数据库时,一方面应遵循和应用通用的数据库的原理和方法;另一方面又必须采取一些特殊的技术和方法来解决其他数据库所没有的问题。
1.数据库的概念 用计算机进行数据管理大体经历了三个阶段 人工管理阶段:计算机用于科学计算;外存为磁带、卡片、纸带等,没有操作系统;数据不保存,对应于程序,面向应用(50年代中期前) 文件系统阶段:计算机用于科学计算和管理;外存有了磁盘、磁鼓等直接存储设备;操作系统具有专门的数据管理软件;可进行大量数据处理,保存数据,由软件管理数据,数据以记录为单位存取,但数据冗余大,数据和程序缺乏独立性(50年代中期——60年代中期) 数据库阶段:计算机用于大型管理;大容量的外存设备,并要求数据共享、联机实时处理;数据结构复杂,数据以数据项为单位存取,冗余度小,以扩充具有较高的数据和程序独立性。 3.1.1 数据库简介
数据库技术产生于60年代末期,是计算机领域中最重要的技术之一,是一种较理想的数据管理(是指对数据的组织、存贮、检索和维护。)技术。数据库技术产生于60年代末期,是计算机领域中最重要的技术之一,是一种较理想的数据管理(是指对数据的组织、存贮、检索和维护。)技术。 由于文件系统存在着文件之间无联系、数据不完全独立于程序,只在文件级共享数据等缺陷,因而数据库就发展了起来。 数据库可以看作是与现实世界有一定相似性的模型,是认识世界的基础,是集中、统一地存储和管理某个领域信息的系统,它根据数据间的自然联系而构成,数据较少冗余,且具有较高的数据独立性,能为多种应用服务。 3.1.1 数据库简介
2.数据库的构成 据库作为一个复杂的系统,由三个基本部分构成: 数据集,一个结构化的相关数据的集合体,包括数据本身和数据间的联系。数据集独立于应用程序而存在,是数据库的核心和管理对象。 物理存储介质,指计算机的外存储器和内存储器。前者存储数据;后者存储操作系统和数据库管理系统,并有一定数量的缓冲区,用于数据处理,以减少内外存交换次数,提高数据存取效率。 数据库软件,其核心是数据库管理系统(DBMS)。主要任务是对数据库进行管理和维护。具有对数据进行定义、描述、操作和维护等功能,接受并完成用户程序和终端命令对数据库的请求,负责数据库的安全。 3.1.1 数据库简介
3.数据库的主要特征 数据库方法比文件系统方法具有更强的数据管理能力。 数据库具有如下主要特征: 1)数据集中控制,在文件管理方法中,文件是分散的,每个用户或每种处理都有各自的文件,这些文件之间一般是没有联系的,因此,不能按照统一的方法来控制、维护和管理。而数据库则很好地克服了这一缺点,可以集中控制、维护和管理有关数据。 2)数据独立,数据库中的数据独立于应用程序,包括数据的物理独立性和逻辑独立性,给数据库的使用、调整、优化和进一步扩充提供了方便,提高了数据库应用系统的稳定性。 3.1.1 数据库简介
3)数据共享,数据库中的数据可以供多个用户使用,每个用户只与库中的一部分数据发生联系;用户数据可以重叠,用户可以同时存取数据而互不影响,大大提高了数据库的使用效率。3)数据共享,数据库中的数据可以供多个用户使用,每个用户只与库中的一部分数据发生联系;用户数据可以重叠,用户可以同时存取数据而互不影响,大大提高了数据库的使用效率。 4)减少数据冗余,数据库中的数据不是面向应用,而是面向系统。数据统一定义、组织和存储,集中管理,避免了不必要的数据冗余,也提高了数据的一致性。 5)数据结构化,整个数据库按一定的结构形式构成,数据在记录内部和记录类型之间相互关联,用户可通过不同的路径存取数据。 6)统一的数据保护功能,在多用户共享数据资源的情况下,对用户使用数据有严格的检查,对数据库规定密码或存取权限,拒绝非法用户进入数据库,以确保数据的安全性、一致性和并发控制。 3.1.1 数据库简介
4.数据库的系统结构 数据库系统的结构,一般划分为三个层次: 概念模式,亦称模式。是数据库的总框架。描述数据库中关于目标存储的逻辑结构和特性,基本操作和目标与目标及目标与操作的关系和依赖性,以及对数据的安全性、完整性等方面的定义。所有数据都按这一模式进行装配。概念模式由概念模式描述语言DDL来进行描述。 外模式,亦称子模式。是数据库用户的数据视图。它属于概念模式的一部分,描述用户数据的结构、类型、长度等。所有的应用程序都是根据外模式中对数据的描述而不是根据概念模式中对数据的描述而编写的。在一个外模式中可以编写多个应用程序,但一个应用程序只能对应一个外模式。根据应用的不同,一个概念模式可以对应多个外模式,外模式可以互相覆盖。外模式由外模式描述语言SDDL进行具体描述。 3.1.1 数据库简介
内模式,亦称存储模式。是对数据库在物理存储器上具体实现的描述。它规定数据在存储介质上的物理组织方式、记录寻址技术,定义物理存储块的大小,溢出处理方法等。与概念模式相对应。内模式由数据存储描述语言DSDL进行描述。 3.1.1 数据库简介
数据库系统的三级模式结构将数据库的全局逻辑结构同用户的局部逻辑结构和物理存储结构区分开来,给数据库的组织和使用带来了方便。不同的用户可以有各自的数据视图,所有用户的数据视图集中在一起统一组织,消除冗余数据,得到全局数据视图。用存储描述语言来定义和描述全局数据视图数据,并将数据存储在物理介质上。这中间进行了两次映象。一次是外模式与概念模式之间的映象,定义了它们之间的对应关系,保证了数据的逻辑独立性;另一次是概念模式与内模式之间的映象,定义了数据的逻辑结构和物理存储之间的对应关系,使全局逻辑数据独立于物理数据,保证了数据的物理独立性。数据库系统的三级模式结构将数据库的全局逻辑结构同用户的局部逻辑结构和物理存储结构区分开来,给数据库的组织和使用带来了方便。不同的用户可以有各自的数据视图,所有用户的数据视图集中在一起统一组织,消除冗余数据,得到全局数据视图。用存储描述语言来定义和描述全局数据视图数据,并将数据存储在物理介质上。这中间进行了两次映象。一次是外模式与概念模式之间的映象,定义了它们之间的对应关系,保证了数据的逻辑独立性;另一次是概念模式与内模式之间的映象,定义了数据的逻辑结构和物理存储之间的对应关系,使全局逻辑数据独立于物理数据,保证了数据的物理独立性。 在数据库系统中,用户所看到的数据和计算机中存放的数据是两回事,当然是有联系的。用户所理解的是用户自己理解的实体、实体的属性和实体间的关系,即用户只看到了数据库的外层。 3.1.1 数据库简介
5.数据模型 在数据库系统中,现实世界中的事物及联系是用数据模型来描述的,数据库中各种操作功能的实现是基于不同的数据模型的,因而数据库的核心问题是模型问题。数据模型是数据库中对数据的逻辑组织形式的描述。 数据模型是对现实世界部分现象的抽象,它描述了数据的基本结构及其相互之间的关系和在数据上的各种操作,是数据库系统中关于数据内容和数据间联系的逻辑组织的形式表示,以抽象的形式描述和反映一个部门或系统的业务活动和信息流程。 选择与建立数据模型的目的是用最佳的方式反映本部门的业务对象及信息流程和以最佳的方式为用户提供访问数据库的逻辑接口。数据模型的三要素:数据结构、数据操作和数据的约束条件。 3.1.1 数据库简介
数据模型常用概念 1)实体(Entity):实体是指现实世界中客观存在的,并可相互区别的事物。实体可以指个体,也可以指总体,即个体的集合。 2)属性(Attribute):实体所具有的某一特性。 3)码(Key):唯一标识实体的属性集 4)域(Domain):属性的取值范围 5)实体型(Entity Type):具有相同属性的实体具有共同的特征和性质,用实体名和属性名集合表示 6)实体集(Entity Set):同型实体的集合 7)联系:一是实体内部的联系;二是实体型之间的联系(1:1 、1:n、 m:n)。 3.1.1 数据库简介 数据模型是数据特征的抽象,它不是描述个别数据,而是描述数据的共性。严格地说,一个数据库的数据模型应能描述数据的静态、动态及相互制约特征,并反映现实世界中的实体之间的各种联系。
数据的特征 1)静态特性。包括实体和实体具有的特性、实体间的联系等,通过构造基本数据结构类型来实现。 2)动态特性。即现实世界中的实体及实体间的不断发展变化,通过对数据库的检索、插入、删除和修改等操作来实现。 3)数据间的相互制约与依存关系。通过一组完整性规则来实现。 3.1.1 数据库简介
6.数据库管理系统(DBMS) 数据库管理系统(DBMS)是处理数据库数据存取和各种管理控制的软件。它是数据库系统的核心,应用程序对数据库的操作全部通过DBMS进行。数据库管理系统(DBMS)通常具有数据库定义、管理和维护功能。 3.1.1 数据库简介 数据库管理系统具备的功能 1)数据库定义功能 用数据库的数据描述语言DDL来定义概念模式、外模式和内模式,也就是说,具有给出数据库框架的功能。如定义数据库的逻辑结构、数据库的结构框架、定义数据项、建立记录类型、定义记录间的关系、指定安全控制要求等。
2)数据库管理功能 指对数据进行更新、存取等的控制功能。通常提供有数据操作语言来作为用户和数据库之间的接口。常用的数据库管理功能如:从数据库中检索出满足条件的数据、向数据库中插入数据、删除数据、修改数据、进行控制操作(如并发控制)等。 3)数据库维护功能 数据入库需要维护,通常包括如下工作: a、改善系统的性能:及时掌握数据库的性能变化,性能下降时应进行干预,如对数据进行重新整理和组织。 b、受损后的复原:一方面应能防止各种伤害数据库的行为,另一方面当数据库受损后,应具有复原的手段。 c、用户管理:对用户应统一管理,分配使用权限,防止非法使用。 d、拓宽数据库用户的要求:根据用户要求,修改数据模式,根据新模式重新组织数据。 4)通讯功能 应具有与操作系统的接口、与各种语言的接口、与其它数据库通讯等能力。 3.1.1 数据库简介
空间数据库(空间数据库系统的简称):是地理信息系统在计算机物理存储介质上存储和应用的相关的地理空间数据的总和。空间数据库(空间数据库系统的简称):是地理信息系统在计算机物理存储介质上存储和应用的相关的地理空间数据的总和。 3.1.2 空间数据库
2.空间数据特征 1)空间特征:一般需要建立空间索引。 2)非结构化特征:结构化的,即满足第一范式:每条记录定长,且数据项是原子数据。而空间数据数据项变长,对象包含一个或多个对象,需要嵌套记录。 3)空间关系特征:拓扑数据给空间数据的一致性和完整性维护增加了复杂性。 4)分类编码特征:一种地物类型对应一个属性数据表文件。多种地物类型共用一个属性数据表文件。 5)海量数据特征。 。 3.1.2 空间数据库
3.空间数据库的特点 1)数据量特别大; 2)数据种类多,复杂; 3)数据应用面广。 在建立地理空间数据库时,一方面应遵循和应用通用的数据库的原理和方法;另一方面又必须采取一些特殊的技术和方法来解决其他数据库所没有的问题。 3.1.2 空间数据库
是指能够对物理介质上存储的地理空间数据进行语义和逻辑上的定义;是指能够对物理介质上存储的地理空间数据进行语义和逻辑上的定义; 提供必须的空间数据查询、检索和存取功能; 能够对空间数据进行有效的维护和更新的一套软件系统。 3.1.3 空间数据库管理系统
提供给用户访问和操作空间数据库的用户界面,是应用户数据处理需求而建立的具有数据库访问功能的应用软件。一般需要进行二次开发。提供给用户访问和操作空间数据库的用户界面,是应用户数据处理需求而建立的具有数据库访问功能的应用软件。一般需要进行二次开发。 3.1.4 空间数据库应用系统
第二节 空间数据模型 1.传统数据模型 2.空间数据库 3.空间数据库管理系统 4.空间数据库应用系统
数据结构:是指数据的组织形式,是计算机存储、管理和处理的数据逻辑结构。数据结构:是指数据的组织形式,是计算机存储、管理和处理的数据逻辑结构。 数据模型:是实体及其相互关系的数学描述,是空间数据库建立的逻辑模型。 两者之间的关系:混合的交叉关系,并不一一对应,世界多样性,确定数据模型,确保实用性,(便于模型化、存储、检查和分析),它并不基于空间数据结构。
1.层次模型 3.2.1 传统数据模型 层次模型是一种树结构模型,它把数据按自然的层次关系组织起来,以反映数据之间的隶属关系。 层次模型特点是地理数据组织成有向有序的树结构,也叫树形结构。结构中的结点代表数据记录,连线描述位于不同结点数据间的从属关系(一对多的关系)。 由树的定义知,一棵树有且仅有一个无双亲结点的称为根的结点;其余结点有且仅有一个双亲结点,它们可分为m(m≥0)个互不相交的有限集,其中每一个集合本身又是一棵树,将其称为子树。
2.网状数据模型 3.2.1传统数据模型 网状模型将数据组织成有向图结构,图中的结点代表数据记录,连线描述不同结点数据间的联系。这种数据模型的基本特征是,结点数据之间没有明确的从属关系,一个结点可与其它多个结点建立联系,即结点之间的联系是任意的,任何两个结点之间都能发生联系,可表示多对多的关系 。
3.关系数据模型 3.2.1 传统数据模型
3.关系数据模型 在关系模型中,数据的逻辑结构为满足一定条件的二维表,表具有固定的列数和任意的行数,在数学上称为“关系”。二维表是同类实体的各种属性的集合,每个实体对应于表中的一行,在关系中称为元组,相当于通常的一个记录;表中的列表示属性,称为域,相当于通常记录中的一个数据项。若二维表中有n个域,则每一行叫做一个n元组,这样的关系称为n度(元)关系。表的行对应于对象的实例,各个表的行列交点就用来存贮简单值。满足一定条件的规范化关系的集合,就构成了关系模型。 3.2.1 传统数据模型
1.层次模型用于GIS地理数据库的局限性 层次模型反映了实体之间的层次关系,简单、直观,易于理解,并在一定程度上支持数据的重构。但用于GIS地理数据库存在的主要问题是: 1)很难描述复杂的地理实体之间的联系,描述多对多的关系时导致物理存储上的冗余; 2)对任何对象的查询都必须从层次结构的根结点开始,低层次对象的查询效率很低,很难进行反向查询; 3)数据独立性较差,数据更新涉及许多指针,插入和删除操作比较复杂,父结点的删除意味着其下层所有子结点均被删除; 4)层次命令具有过程式性质,要求用户了解数据的物理结构,并在数据操纵命令中显式地给出数据的存取路径; 5)基本不具备演绎功能和操作代数基础。 3.2.2 传统模型存储空间数据的局限
2.网状模型用于GIS地理数据库的局限性 网状模型反映地理世界中常见的多对多关系,支持数据重构,具有一定的数据独立和数据共享特性,且运行效率较高。 3.2.2 传统模型存储空间数据的局限 用于GIS地理数据库的主要问题如下: 1)由于网状结构的复杂性,增加了用户查询的定位困难,要求用户熟悉数据的逻辑结构,知道自己所处的位置; 2)网状数据操作命令具有过程式性质,存在与层次模型相同的问题; 3)不直接支持对于层次结构的表达; 基本不具备演绎功能和操作代数基础。
3.关系模型用于GIS地理数据库的局限性 在GIS分析中,常常需要综合运用实体之间的空间关系和属性数据,要求GIS数据库能对实体的属性数据和空间数据进行综合管理。 3.2.2 传统模型存储空间数据的局限
对属性数据用通用RDBMS可以很好管理,但对于空间数据一般DBMS却有局限,表现为:对属性数据用通用RDBMS可以很好管理,但对于空间数据一般DBMS却有局限,表现为: 1)无法用递归和嵌套的方式来描述复杂关系的层次和网状结构,模拟和操作复杂地理对象的能力较弱; 2)用关系模型描述本身具有复杂结构和涵义的地理对象时,需对地理实体进行不自然的分解,导致存储模式、查询途径及操作等方面均显得语义不甚合理; 3)由于概念模式和存储模式的相互独立性,及实现关系之间的联系需要执行系统开销较大的联接操作,运行效率不够高。 4)空间数据通常是变长的,而一般RDBMS只允许记录的长度设定为固定长度,此外,通用DBMS难于存储和维护空间数据的拓扑关系。 3.2.2 传统模型存储空间数据的局限
5)一般RDBMS都难以实现对空间数据的关联、连通、包含、叠加等基本操作。5)一般RDBMS都难以实现对空间数据的关联、连通、包含、叠加等基本操作。 6)一般DBMS不能支持GIS需要的一些复杂图形功能。 7)一般RDBMS难以支持复杂的地理信息,因为单个地理实体的表达需要多个文件、多条记录,包括大地网、特征坐标、拓扑关系、属性数据和非空间专题属性等方面信息。 8)GIS管理的是具有高度内部联系的数据,为了保证地理数据库的完整性,需要复杂的安全维护系统,而这些完整性约束条件必须与空间数据一起存储,由地理数据库来维护系统数据的完整性。否则,一条记录的改变会导致错误、相互矛盾的数据存在,而一般RDBMS难以实现这一功能。 3.2.2 传统模型存储空间数据的局限
是通过对问题领域进行自然的分割,用更接近人类通常思维的方式建立问题领域的模型,并进行结构模拟和行为模拟,从而使设计出的软件能尽可能地直接表现出问题的求解过程。因此,面向对象的方法就是以接近人类通常思维方式的思想,将客观世界的一切实体模型化为对象。每一种对象都有各自的内部状态和运动规律,不同对象之间的相互联系和相互作用就构成了各种不同的系统。 3.2.3面向对象模型面向对象的基本思想
1.基本概念 对象: 含有数据和操作方法的独立模块,可以认为是数据和行为的统一体。如一个城市、一棵树均可作为地理对象。 ·具有一个唯一的标识,以表明其存在的独立性; ·具有一组描述特征的属性,以表明其在某一时刻的状态;(静态属性—数据) ·具有一组表示行为的操作方法,用以改变对象的状态。(作用、功能—函数、方法) 对象的划分原则:找共同点,所有具有共性的系统成份就可为一种对象。主要是根据对象的共性,及对它的研究目的来划分,与具体的目的、性质相联系,不同的目的就会有不同划分。 3.2.3 面向对象模型面向对象的基本思想
类 实例1 实例2 类: 共享同一属性和方法集的所有对象的集合构成类。从一组对象中抽象出公共的方法和属性,并将它们保存在一类中,是面向对象的核心内容。如河流均具有共性,如名称、长度、流域面积等,以及相同的操作方法,如查询、计算长度、求流域面积等,因而可抽象为河流类。被抽象的对象,称为实例,如长江、黄河等 。 3.2.3 面向对象模型面向对象的基本思想 方法 对对象的所有操作,如对对象的数据进行操作的函数、指令、例程等。
对 象 2 对 象 1 消息 请求和协作 实例:被抽象的对象,类的一个具体对象。如长江、黄河等。真正抽象的河流不存在,只存在河流的例子。类是抽象的对象,是实例的组合,类、实例是相对的,类和实例的关系为上下层关系。 类---申请实例---成为具体对象。 3.2.3 面向对象模型面向对象的基本思想 消息:对对象进行操作的请求,是连接对象与外部世界的唯一通道。对象之间的请求和协作。(并不独立存在)对象之间的关系,如鼠标点,就是消息,点某按纽,就是对按纽提出请求。
2.面向对象的特性 抽象:是对现实世界的简明表示。形成对象的关键是抽象,对象是抽象思维的结果。 3.2.3 面向对象模型面向对象的基本思想 抽象思维是通过概念、判断、推理来反映对象的本质,揭示对象内部联系的过程。任何一个对象都是通过抽象和概括而形成的。面向对象方法具有很强的抽象表达能力,正是因为这个缘故,可以将对象抽象成对象类,实现抽象的数据类型,允许用户定义数据类型。
封装:是指将方法与数据放于一对象中,以使对数据的操作只可通过该对象本身的方法来进行。封装:是指将方法与数据放于一对象中,以使对数据的操作只可通过该对象本身的方法来进行。 即一对象不能直接作用于另一对象的数据,对象间的通信只能通过消息来进行。对象是一个封装好的独立模块。封装是一种信息隐蔽技术,封装的目的在于将对象的使用者和对象的设计者分开,用户只能见到对象封装界面上的信息,对象内部对用户是隐蔽的。封装指把对象的状态及其操作集成化,使之不受外界影响。 3.2.3 面向对象模型面向对象的基本思想
对用户而言,只需了解这个模块是干什么的即功能是什么,至于怎么干即如何实现这些功能则是隐蔽在对象内部的。一个对象的内部状态不受外界的影响,其内部状态的改变也不影响其它对象的内部状态。封装本身即模块性,把定义模块和实现模块分开,就使得用面向对象技术开发或设计的软件的可维护性、可修改性大为改善。 3.2.3 面向对象模型面向对象的基本思想
多态:是指同一消息被不同对象接收时,可解释为不同的含义。因此,可以发送更一般的消息,把实现的细节都留给接收消息的对象。即相同的操作可作用于多种类型的对象,并能获得不同的结果。多态:是指同一消息被不同对象接收时,可解释为不同的含义。因此,可以发送更一般的消息,把实现的细节都留给接收消息的对象。即相同的操作可作用于多种类型的对象,并能获得不同的结果。 同一消息,对不同对象,功能不同。功能重载->多态,简化消息,但功能不减。 3.2.3 面向对象模型面向对象的基本思想
3.四种核心技术 分类:分类是把一组具有相同属性结构和操作方法的对象归纳或映射为一个公共类的过程。类是具有相同属性结构和操作方法的对象的集合,属于同一类的对象具有相同的属性结构和操作方法,但它们具有不同的属性值。如城镇建筑可分为行政区、商业区、住宅区、文化区等若干个类。 概括:概括是把几个类中某些具有部分公共特征的属性和操作方法抽象出来,形成一个更高层次、更具一般性的超类的过程。将相同特征和操作的类再抽象为一个更高层次、更具一般性的超类的过程。子类是超类的一个特例。 3.2.3 面向对象模型面向对象的基本思想
一个类可能是超类的子类,也可是几个子类的超类。所以,概括可能有任意多层次。概括技术避免了说明和存储上的大量冗余。如:住宅地址、门牌号、电话号码等是“住宅”类的实例(属性),同时也是它的超类“建筑物”的实例(属性)。这需要一种能自动地从超类的属性和操作中获取子类对象的属性和操作的机制,即继承机制。一个类可能是超类的子类,也可是几个子类的超类。所以,概括可能有任意多层次。概括技术避免了说明和存储上的大量冗余。如:住宅地址、门牌号、电话号码等是“住宅”类的实例(属性),同时也是它的超类“建筑物”的实例(属性)。这需要一种能自动地从超类的属性和操作中获取子类对象的属性和操作的机制,即继承机制。 3.2.3 面向对象模型面向对象的基本思想
联合:联合是将同一类对象中的几个具有部分相同属性值的对象组合起来,形成一个更高水平的集合对象的过程。“集合对象”描述由联合而构成的更高水平的对象,有联合关系的对象称为成员。相似对象抽象组合为集合对象联合:联合是将同一类对象中的几个具有部分相同属性值的对象组合起来,形成一个更高水平的集合对象的过程。“集合对象”描述由联合而构成的更高水平的对象,有联合关系的对象称为成员。相似对象抽象组合为集合对象 在联合中,强调的是整个集合对象的特征,而忽略成员对象的具体细节。集合对象通过其成员对象产生集合数据结构,集合对象的操作由其成员对象的操作组成。例如,一个农场主有三个水塘,它们使用同样的养殖方法,养殖同样的水产品,由于农场主、养殖方法和养殖水产品等三个属性都相同,故可以联合成一个包含这三个属性的集合对象。 3.2.3 面向对象模型面向对象的基本思想
联合与概括在概念上不同。概括是对类进行抽象概括;而联合是对属于同一类的对象进行抽象联合。联合有点类似于聚集,所以在许多文献中将联合的概念附在聚集的概念中,都使用传播工具提取对象的属性值。联合与概括在概念上不同。概括是对类进行抽象概括;而联合是对属于同一类的对象进行抽象联合。联合有点类似于聚集,所以在许多文献中将联合的概念附在聚集的概念中,都使用传播工具提取对象的属性值。 3.2.3 面向对象模型面向对象的基本思想
1.继承 一类对象可继承另一类对象的特性和能力,子类继承父类的共性,继承不仅可以把父类的特征传给中间子类,还可以向下传给中间子类的子类。它服务于概括。继承机制减少代码冗余,减少相互间的接口和界面。 3.2.4 面向对象数据模型的核心工具 父类“住宅”的属性(如“住宅名”)可以被它的两个子类继承;给父类“住宅”定义的操作(如“进入住宅”)也适用于它的两个子类;但是,专为一个子类定义的操作如“地铁下站”,只适用于“城市住宅”。 建筑物”的特征(如“户主”、“地址”等)可以传给中间子类“住宅”,也可以传给中间子类的子类“城市住宅”和“农村住宅”。
单重继承:指仅有一个直接父类的继承,要求每一个类最多只能有一个中间父类,这种限制意味着一个子类只能属于一个层次,而不能同时属于几个不同的层次。单重继承:指仅有一个直接父类的继承,要求每一个类最多只能有一个中间父类,这种限制意味着一个子类只能属于一个层次,而不能同时属于几个不同的层次。 多重继承:允许子类有多于一个的直接父类的继承。严格的层次结构是一种理想的模型,对现实的地理数据常常不适用。多重继承允许几个父类的属性和操作传给一个子类,这就不是层次结构。 3.2.4 面向对象数据模型的核心工具
单重继承:指仅有一个直接父类的继承,要求每一个类最多只能有一个中间父类,这种限制意味着一个子类只能属于一个层次,而不能同时属于几个不同的层次。单重继承:指仅有一个直接父类的继承,要求每一个类最多只能有一个中间父类,这种限制意味着一个子类只能属于一个层次,而不能同时属于几个不同的层次。 多重继承:允许子类有多于一个的直接父类的继承。严格的层次结构是一种理想的模型,对现实的地理数据常常不适用。多重继承允许几个父类的属性和操作传给一个子类,这就不是层次结构。 3.2.4 面向对象数据模型的核心工具 运河具有人工交通运输线和河流等两个父类特性,通航河流也有自然交通运输线和河流等两个父类的特性。