GIS空间数据模型
面向对象方法具有很强的抽象表达能力,可以将对象抽象成对象类, 实现抽象的数据类型,允许用户定义数据类型。
2.5 GIS空间数据模型
地理对象
三、面向对象模型
3.面向对象的特性
封装:指把对象的状态及其操作集成化, 使之不受外界影响。
属性 | 数据 封装 行为 | 方法
也即将方法与数据放于一对象中, 以使对数据的操作只可通过该对象本身的方法来进行。 一对象不能直接作用于另一对象的数据,对象间的通信只能通过消 息来进行。
2.5 GIS空间数据模型
二、传统数据模型存储空间数据的局限性
2.网状数据模型用于GIS地理数据库的局限性
1)由于网状结构的复杂性,增加了用户查询的定位困难,要求用户熟悉数据 的逻辑结构,知道自己所处的位置; 2)网状数据操作命令具有过程式性质,存在与层次模型相同的问题 3)不直接支持对于层次结构的表达 4)基本不具备演绎功能和操作代数基础。
据之间的隶属关系。
层次模型是数据库技术中发展最早、技术上比较成熟的一种数据模型。 层次模型的特点是地理数据组织成有向有序的树结构(又称树形结构)。结构中
的结点代表数据记录,连线描述位于不同结点数据间的从属关系(一对多的关系)
2.5 GIS空间数据模型
二、传统的数据模型
1.层次数据模型
由树的定义知,一棵树有且仅有一个无双亲结点 的称为根的结点;其余结点有且仅有一个双亲结点
可以把父类的特征传给中间子类,还可以向下传给中间子类的子类。 继承服务于概括。继承机制减少代码冗余,减少相互间的接口和界面。
A.单重继承,仅有一个直接父类的继承,要求每一个类最多只能有一个中间父类。
这种限制意味着一个子类只能属于 一个层次,而不能同时属于几个不 同的层次。形成明显的层次关系
交通运输 水系
2.5 GIS空间数据模型
三、面向对象模型
4.四种核心技术
联合:将同一类对象中的几个具有部分相同属性值的对象组合起来, 形成一个更高水平的集合对象的过程。 “成员”与“集合对象”的关系是“成员”(member—of)的关系。
在联合中,强调的是整个集合对象的特征,而忽略成员对象的具体细节。 集合对象通过其成员对象产生集合数据结构, 集合对象的操作由其成员对象的操作组成。
2.5 GIS空间数据模型
二、传统数据模型存储空间数据的局限性
3.关系数据模型用于GIS地理数据库的局限性
对属性数据用通用RDBMS可以很好管理,但对于空间数据一般DBMS却有局限, 表现为: 4)一般RDBMS难于存储和维护变长的空间数据及其拓扑关系 5)一般RDBMS难以实现对空间数据的关联、连通、包含、叠加基本操作。 6)一般DBMS不能支持GIS需要的一些复杂图形功能 7)一般RDBMS难以支持复杂的地理信息 8)一般RDBMS难以维护系统数据的完整性。
农村住宅
城市住宅
农村住宅
2.5 GIS空间数据模型
三、面向对象模型
4.四种核心技术
聚集:是把几个不同性质类的对象组合成一个更高级的复合对象的过程。
“成分”与“复合对象”的关系是“部分”(parts—of)的关系, 如医院由医护人员、病人、门诊部、住院部、道路等聚集而成
每个不同属性的对象是复合对象的一个部分,有自己的属性数据和操作方法; 复合对象也有自己的属性值和操作,复合对象的操作与其成分的操作是不兼容的
4.传统数据模型的比较
2.5 GIS空间数据模型
二、传统数据模型存储空间数据的局限性
1.层次数据模型用于GIS地理数据库的局限性
1)很难描述复杂的地理实体之间的联系,描述多对多的关系时导致物理 存储上的冗余 2)对任何对象的查询都必须从根结点开始,低层次对象的查询效率很低, 很难进行反向查询 3)数据独立性较差,数据更新涉及许多指针,插入和删除操作比较复杂, 父结点的删除意味着其下层所有子结点均被删除; 4)层次命令具有过程式性质,要求用户了解数据的物理结构,并在数据 操纵命令中显式地给出数据的存取路径; 5)基本不具备演绎功能和操作代数基础。
子类与超类是“即是”的关系(is-a)
概括可能有任意多层次 概括技术避免了说明和存储上的大量冗余。
如住宅地址、门牌号、电话号码等是“住宅”类的实例(属性), 同时也是它的超类“建筑物”的实例(属性)。
概括需要一种能自动地从超类的属性和操作中获取子类对象的属性 操作的机制,即继承机制。 建筑 住 宅 住 宅 城市住宅
优点:将数据组织成有向有序结构 反映了现实世界中实体之间 的层次关系 缺点:不能表示多对多的关系难以 顾及实体之间的拓扑关系导 致数据冗余
2.5 GIS空间数据模型
二、传统的数据模型
2.网状数据模型
网状模型将数据组织成有向图结构,图中的结点代表数据记录,连线描述不同
结点数据间的联系。
基本特征是,结点数据之间没有明确的从属关系,一个结点可与其它多个结点
如一个农场主有三个水塘,它们使用同样的养殖方法,养殖同样的水产品, 由于农场主、养殖方法和养殖水产品等三个属性都相同, 故可以联合成一个包含这三个属性的集合对象。
2.5 GIS空间数据模型
住 宅
三、面向对象模型
5.面向对象的核心工具
城市住宅
属性:住宅名 操作:进入住宅
农村住宅
继承:一类对象可继承另一类对象的特性和能力,子类继承父类的共性,继承不仅
数据结构:指数据的组织形式,在计算机存储、管理和处理的数据逻辑结构
数据模型:是描述实体及其相互关系的数学描述,是空间数据库建立的逻辑 模型。
两者之间的关系:混合的交叉关系,并不一一对应。
2.5 GIS空间数据模型
二、传统的数据模型
1.层次数据模型
层次模型是一种树结构模型,它把数据按自然的层次关系组织起来,以反映数
功能重载->多态,简化消息,但功能不减。
图元类 Draw()
Draw(p1, p2) CLine
CCircle Draw(p1, r)
Line
Circle
2.5 GIS空间数据模型
三、面向对象模型
4.四种核心技术
分类:把一组具有相同属性结构和操作方法的对象归纳或映射为一个 公共类的过程。
对象和类的关系是“实例”(instance of ) 如城镇建筑可分为行政区、商业区、住宅区、文化区等若干个类。 以住宅区类而论,每栋住宅作为对象都有门牌号、地址、电话号码等相同的 属性结构,但具体的门牌号、地址、电话号码等是各不相同的。 当然,对它们的操作方法如查询等都是相同的。
使用SQL语言对其进行操作。
2.5 GIS空间数据模型
二、传统的数据模型
3.关系数据模型
优点:结构简单灵活; 容易维护和理解,表现在数据的修改和更新方便; 有些系统甚至采用关系数据库系统管理几何图形数据。 缺点:效率不高; 难以表达对象,尤其是复杂对象。
2.5 GIS空间数据模型
二、传统的数据模型
行为—方法
对象:含有数据和操作方法的独立模块,可以认为是数据和行为的统一体。 对于一个对象,应具有如下特征:
A. 具有一个唯一的标识,以表明其存在的独立性; B. 具有一组描述特征的属性,以表明其在某一时刻的状态 (静态属性—数据) C. 具有一组表示行为的操作方法,用以改变对象的状态(作用,功能—函数,方法)
2.5 GIS空间数据模型
二、传统数据模型存储空间数据的局限性
3.关系数据模型用于GIS地理数据库的局限性
在GIS分析中,需要综合运用实体之间的空间关系和属性数据,要求GIS数据库 能对实体的属性数据和空间数据进行综合管理。
找离火车站 最近的汽车 站?
GIS分析
属性为火 车站的点 空 间 计 算 检索
划分原则:找共同点,所有具有共性的系统成份就可为一种对象。
2.5 GIS空间数据模型
类
三、面向对象模型
2.基本概念
实例A
实例B
类:共享同一属性和方法集的所有对象的集合构成类。
从一组对象中抽象出公共的方法和属性,并将它们保存在一类中,是面向对象的 核心内容。如河流均具有共性,如名称、长度、流域面积等,以及相同的操作 方法,如查询、计算长度、求流域面积等,因而可抽象为河流类。
2.5 GIS空间数据模型
三、面向对象模型
1.面向对象的基本思想
通过对问题领域进行自然的分割, 用更接近人类通常思维的方式建立问题领域的模型, 并进行结构模拟和行为模拟, 从而使设计出的软件能尽可能地直接表现出问题的求解过程。
2.5 GIS空间数据模型
三、面向对象模型
2.基本概念 地理 对象
属性 — 数据
实例:被抽象的对象,类的一个具体对象
类是抽象的对象,是实例的组合,类、实例是相对的,类和实例的关系为上下 层关系。
类——申请实例——成为具体对象。
2.5 GIS空间数据模型
三、面向对象模型
2.基本概念 对 象 A
消息
请求和协作
对 象 B
消息:对对象进行操作的请求,是连接对象与外部世界的唯一通道。
空间
距离最近 的汽车站
数据库
所有属性为 汽车站的点 检索
2.5 GIS空间数据模型
二、传统数据模型存储空间数据的局限性
3.关系数据模型用于GIS地理数据库的局限性
对属性数据用通用RDBMS可以很好管理,但对于空间数据一般DBMS却有局限, 表现为: 1)无法用递归和嵌套的方式来描述复杂关系的层次和网状结构,模拟和操作 复杂地理对象的能力较弱 2)描述本身具有复杂结构和涵义的地理对象时,需对地理实体进行不自然的分 解,导致存储模式、查询途径及操作等方面均显得语义不甚合理 3)由于概念模式和存储模式的相互独立性,及实现关系之间的联系需要执行系 统开销较大的联接操作,运行效率不够高。
B.多重继承,允许子类有多于一个的直接父 类的继承。