1、15.1 数据管理模式数据管理模式5.2 数据库和数据模型数据库和数据模型5.3 空间数据管理中的数据库技术空间数据管理中的数据库技术5.4 空间数据库及其管理空间数据库及其管理5.5 空间数据索引空间数据索引2人工管理阶段人工管理阶段文件系统阶段文件系统阶段数据库阶段数据库阶段高级数据库阶段高级数据库阶段3 数据模型是数据库系统中关于数据和联系数据模型是数据库系统中关于数据和联系的逻辑组织的形式表示。每一个具体的数据库的逻辑组织的形式表示。每一个具体的数据库都是由一个相应的数据模型来定义。都是由一个相应的数据模型来定义。 常用的数据模型有:常用的数据模型有:层次模型层次模型网络模型网络模型关
2、系模型关系模型4 层次层次模型所表达的基本联系是层次层次模型所表达的基本联系是一对多的关一对多的关系系,它把数据按其自然的层次关系组织起来,以反,它把数据按其自然的层次关系组织起来,以反应数据之间的隶属关系。应数据之间的隶属关系。 层次模型的优点是模型层次分明、结构清晰,层次模型的优点是模型层次分明、结构清晰,较容易实现。尽管每个记录只有一个双亲,当从子较容易实现。尽管每个记录只有一个双亲,当从子女查找双亲,只有唯一的结果,但查找比较麻烦,女查找双亲,只有唯一的结果,但查找比较麻烦,需要大量的索引文件,而且某种属性值可能要重复需要大量的索引文件,而且某种属性值可能要重复多次,导致数据冗余度增加
3、,当对层次模型进行修多次,导致数据冗余度增加,当对层次模型进行修改时,只有当新记录有上属记录时才能插入。删除改时,只有当新记录有上属记录时才能插入。删除一个记录其所有下属记录也同时被删除。一个记录其所有下属记录也同时被删除。1) 层次模型层次模型512233441abcd343554cefM层次模型结构adcfeb12435M6 网状模型基本特征是网状模型基本特征是在记录之间没有明确的在记录之间没有明确的主从关系主从关系,任何一个记录可与任意其他多个记录,任何一个记录可与任意其他多个记录建立联系,与层次模型相比较,大大压缩了数据建立联系,与层次模型相比较,大大压缩了数据的存贮量。可以表示实体的
4、多种,关系更为灵活,的存贮量。可以表示实体的多种,关系更为灵活,对确定的数据表示效率高,冗余小,表示关系复对确定的数据表示效率高,冗余小,表示关系复杂的地理数据和具有网络特征的地理实体效果较杂的地理数据和具有网络特征的地理实体效果较好。但网状结构数据指针比较复杂,数据更新较好。但网状结构数据指针比较复杂,数据更新较为繁琐。为繁琐。2) 网状模型网状模型7abcd12345efMadcfeb12435M网状模型结构8 关系模型是一种数学化的模型,它是将数据关系模型是一种数学化的模型,它是将数据的逻辑结构归结为满足一定条件的二维表。实体的逻辑结构归结为满足一定条件的二维表。实体本身的信息以及实体之
5、间的联系均表现为二维表,本身的信息以及实体之间的联系均表现为二维表,在数学上把这种二维表叫做在数学上把这种二维表叫做“关系关系”。这些关系。这些关系表的集合就构成了关系模型。表的集合就构成了关系模型。 关系模型主要优点是:数据结构灵活、清晰,关系模型主要优点是:数据结构灵活、清晰,可以通过数学运算进行各种查询、计算和修改;可以通过数学运算进行各种查询、计算和修改;数据描述具有较强的一致性和独立性。缺点时当数据描述具有较强的一致性和独立性。缺点时当关系很复杂时,计算机需要执行一系列的数据操关系很复杂时,计算机需要执行一系列的数据操作,比较费时。作,比较费时。3) 关系模型关系模型9 属性属性实体
6、实体A1A2A3AnE1V11V21V31Vn1E2V12V22V32Vn2E3V13V23V33Vn3EmV1mV2mV3mVnm关系模型关系模型10多边形多边形边号边号(P)(P)边边号号(E)(E)边边长长(L)(L)边边号号(E)(E)起结点起结点号号(SN)(SN)终结点终结点号号(EN)(EN)结点结点号号(N)(N)X XY Y a 30 b 40 e 30 b 40 c 25 d 28abcde1223424341123419.838.626.79.534.225.08.215.7关系关系1:边界关系:边界关系 关系关系2:边界结点关系:边界结点关系 关系:结点坐标关系关系:结
7、点坐标关系11 对问题领域进行自然的分割,以更接近人对问题领域进行自然的分割,以更接近人类通常思维的方式建立问题领域模型,以便对类通常思维的方式建立问题领域模型,以便对客观的信息实体进行结构模拟和行为模拟,从客观的信息实体进行结构模拟和行为模拟,从而使设计出的系统尽可能直接的表现问题求解而使设计出的系统尽可能直接的表现问题求解的过程。的过程。 面向对象的数据库系统就是采用面向对象面向对象的数据库系统就是采用面向对象方法建立的数据库系统。方法建立的数据库系统。1213 关系数据库系统是建立在关系模型上的关系数据库系统是建立在关系模型上的数据库系统;数据库系统; 在关系模型中,现实世界中的实体以及
8、在关系模型中,现实世界中的实体以及实体间的各种联系均用关系表示。实体间的各种联系均用关系表示。 关系数据库是关系数据库是表的集合表的集合。14u关系模式关系模式:关系名关系名(属性属性1,属性属性2.属性属性n)u关系关系: 通常说的表通常说的表;u元组元组: 关系表中的一行关系表中的一行;u属性属性: 关系表中的一列关系表中的一列;u主码主码: 能唯一确定元组的某属性组能唯一确定元组的某属性组;u域域: 属性的取值范围属性的取值范围;u分量分量: 元组中的一个属性值元组中的一个属性值15地块号地块号 面积面积km2使用类型使用类型 植被植被10010.3绿化绿化草地草地10020.5小区小区
9、树木树木10030.8绿化绿化灌木灌木关系模式关系模式:土地利用土地利用(地块号、面积、使用类型、植被)地块号、面积、使用类型、植被)关关系系 属性属性元元组组161)列是同质的()列是同质的(Homogeneous),即每一列中的),即每一列中的分量是同一类型的数据,来自同一个域。分量是同一类型的数据,来自同一个域。3)列的顺序无所谓,即列的次序可以任意交换。)列的顺序无所谓,即列的次序可以任意交换。3)任意两个元组不能完全相同。)任意两个元组不能完全相同。4)行的顺序无所谓,即行的次序可以任意交换。)行的顺序无所谓,即行的次序可以任意交换。5)分量必须取原子值,即每一个分量都必须是不可)分
10、量必须取原子值,即每一个分量都必须是不可分的数据项。分的数据项。17 数据库的核心应用是数据库的查询,查询语言从数据数据库的核心应用是数据库的查询,查询语言从数据库中请求获取信息的语言,库中请求获取信息的语言, 是过程化的查询语言。是过程化的查询语言。 SQL(Structure Query Language)是数据库是数据库查询语言,查询语言,1986年由美国年由美国国家标准化协会(国家标准化协会(ANSI American National Standards Institute),),国际国际标准化组织(标准化组织(ISO International Organization for S
11、tandardization)批准作为批准作为关关系数据库系数据库查询查询标准语言标准语言。 1819 SQL提供的主要功能包括:提供的主要功能包括: 数据的定义;数据的定义; 数据的操作;数据的操作; 数据的控制;数据的控制; 数据的查询。数据的查询。 SELECT 的简单查询功能是对一个数据库表的简单查询功能是对一个数据库表进行查询,以便选择表中某些列或某些行。进行查询,以便选择表中某些列或某些行。20 SQL查询语言中数据的查询动词是查询语言中数据的查询动词是SELECT(1) SELECT 的简单查询功能的简单查询功能 当数据库查询只涉及到一张表时,查询的目的是当数据库查询只涉及到一张
12、表时,查询的目的是选择符合条件的某些列或行。选择符合条件的某些列或行。21SELECT语句的一般形式为:语句的一般形式为:SELECT DISTINCTALL 字段列表字段列表 FROM 基表名基表名 WHERE 条件表达式条件表达式 GROUP BY 列名列名 HAVING条件表达式条件表达式 ORDER BY 列名列名 ASCDESC根据根据WHERE 子句的条件表达式,从子句的条件表达式,从FROM子句的表中子句的表中,找出满足条件的元组,按,找出满足条件的元组,按SELECT子句的目标列表达式子句的目标列表达式选出元组中的属性,形成结果表。选出元组中的属性,形成结果表。2223(1)
13、多表的连接查询多表的连接查询 对数据库进行查询涉及到几张表时,称连接查对数据库进行查询涉及到几张表时,称连接查询。询。多表的连接查询多表的连接查询: 表格的连接查询其数据需要从多个表中获取,表格的连接查询其数据需要从多个表中获取,它实际上是将具有公共字段的表合并成一个表,它实际上是将具有公共字段的表合并成一个表,再进行再进行SELECT 查询。查询。24 多表连接查询多表连接查询: 在在SELECT语句中基表名多于一个;语句中基表名多于一个; SELECT语句条件表达式中要添加匹配不同表的记语句条件表达式中要添加匹配不同表的记录的语句。录的语句。如查出美国地图数据中总人口大于如查出美国地图数据
14、中总人口大于1000万万 且洲府人且洲府人口大于口大于20万的洲万的洲 。 SELECT * FROM States, Statecap WHERE States.state = Statecap .State and States.pop_199010000000 and Statecap.pop_1990 20000025 SQL的嵌套查询是指在的嵌套查询是指在SQL查询语句的查询语句的where功能中嵌入另一个功能中嵌入另一个SELECT查询子语句。查询子语句。 当进行当进行SQL的嵌套查询时,自下而上的嵌套查询时,自下而上 (由里向由里向外外)的进行,的进行,即通常首先进行即通常首先进
15、行SELECT的子查询,的子查询,而后再作进一步的查询。这种层层嵌套方式,真是而后再作进一步的查询。这种层层嵌套方式,真是SQL“结构化结构化”的含义。的含义。 26例例 Mapinfo中的嵌套查询中的嵌套查询求世界地图中同伊拉克处于同一州的国家求世界地图中同伊拉克处于同一州的国家 SELECT country,continent FROM world WHERE continent = (select continent from world where country=“Iraq”) 首先求出伊拉克处于那个州;首先求出伊拉克处于那个州; 之后求出同伊拉克处于同一州的国家之后求出同伊拉克处于
16、同一州的国家27 非标准非标准SQL查询主要指对空间数据的查询。查询主要指对空间数据的查询。 在在Mapinfo中表示在中表示在SELECT语句中增加了地理语句中增加了地理函数和地理运算符。函数和地理运算符。 28例例 Mapinfo中的嵌套查询中的嵌套查询 求美国求美国“108”号高速公路经过哪几个洲?号高速公路经过哪几个洲? 先美国高速公路中找出先美国高速公路中找出 “108”号高速公路;号高速公路; 再找再找“108”号高速公路经过哪几个洲。号高速公路经过哪几个洲。Where States.obj contains Us_Hiway.obj and (States.obj Interse
17、ct (Select obj from Us_Hiway where us_Hiway.highway = “108”)地地 理理 运运 算算 符符从选择出从选择出Us_Hiway中中选出选出108实现求交实现求交将两表建立联系将两表建立联系29 面向对象的数据库管理系统被称为第三代数据库面向对象的数据库管理系统被称为第三代数据库系统,它吸取了面向对象程序设计概念和思想。系统,它吸取了面向对象程序设计概念和思想。 它支持面向对象的数据模型和传统数据库系统所它支持面向对象的数据模型和传统数据库系统所有的数据库特征。有的数据库特征。 它自它自1989年出现曾很活跃,试图成为标准,但年出现曾很活跃,
18、试图成为标准,但未成气候。未成气候。30u能完整的描述现实世界的数据结构,表达数能完整的描述现实世界的数据结构,表达数据间的嵌套、递归。据间的嵌套、递归。u 利用面向对象的技术的封装性,继承性,从利用面向对象的技术的封装性,继承性,从提高了软件的可重用性。提高了软件的可重用性。1)面向对象的数据库管理系统的特点面向对象的数据库管理系统的特点312)面向对象数据库系统的实现面向对象数据库系统的实现u以关系数据库和以关系数据库和SQL为基础的扩展关系型为基础的扩展关系型例如美国加州伯克利分校的例如美国加州伯克利分校的POSTGRES就是以就是以INGRES关关系数据库系统为基础,扩展了抽象数据类型
19、系数据库系统为基础,扩展了抽象数据类型ADT(Abstract Data Type),具有面向对象的特性。,具有面向对象的特性。u以面向对象的程序设计语言为基础,支持面向对象以面向对象的程序设计语言为基础,支持面向对象模型。模型。 例如美国例如美国Ontologic公司的公司的Ontos是以面向对象程是以面向对象程序设计语言序设计语言C+为基础的。为基础的。u建立新的面向对象数据库系统,支持面向对象数据建立新的面向对象数据库系统,支持面向对象数据模型。模型。 例如法国例如法国O2 Technology 公司的公司的O2。 32331)对象对象-关系数据库的优点关系数据库的优点对象对象-关系数据
20、库除了具有关系数据库的特点外关系数据库除了具有关系数据库的特点外,将其进行扩充,使其能直接存储和管理空间几将其进行扩充,使其能直接存储和管理空间几何数据。表现在:何数据。表现在:u 允许用户扩充基本数据类型允许用户扩充基本数据类型;u 支持支持SQL查询;查询;u 支持类、数据、函数的继承;支持类、数据、函数的继承;u 提供功能强大的同其它对象提供功能强大的同其它对象-关系集成的规则关系集成的规则系统。系统。34l开发新的对象开发新的对象-关系数据库系统,不现实。关系数据库系统,不现实。l在现有关系数据库系统基础上,进行扩展:在现有关系数据库系统基础上,进行扩展:对关系数据库系统核心扩充,增加
21、对象特性;对关系数据库系统核心扩充,增加对象特性;在关系数据库系统外提供对象在关系数据库系统外提供对象-关系应用编程接关系应用编程接口,实现到关系数据库系统的映象查询。口,实现到关系数据库系统的映象查询。l将关系数据库系统同其它将关系数据库系统同其它对象对象-关系数据库关系数据库系统系统或对象或对象-关系型引擎连接。关系型引擎连接。目前著名的对象目前著名的对象-关系数据库系统关系数据库系统如如ORACLE 9.0; INFORMIX 9.02)对象对象-关系数据库的实现方法关系数据库的实现方法3536p 空间数据库的理论和方法是空间数据库的理论和方法是GIS技术的核技术的核心。心。p 空间数据
22、库模型是数据库中对数据的逻辑空间数据库模型是数据库中对数据的逻辑组织形式的描述。组织形式的描述。37u 数据量大,常要作查询,因此必需注意提高查数据量大,常要作查询,因此必需注意提高查询效率,如建立索引等;询效率,如建立索引等;u 数据类型和关系复杂,常要记录拓扑关系;数据类型和关系复杂,常要记录拓扑关系;u GIS数据常具有非结构化特征,如描述线面状数据常具有非结构化特征,如描述线面状地物的长度不等;数据要嵌套;一个对象可能包含地物的长度不等;数据要嵌套;一个对象可能包含多个对象。多个对象。38l缺乏构造复杂对象的能力缺乏构造复杂对象的能力l数据类型少,不支持抽象数据类型数据类型少,不支持抽
23、象数据类型如不能定义几何数据类型(点,线,面)和空间操作算子(如不能定义几何数据类型(点,线,面)和空间操作算子(相交,包含等),无法完成地理意义上的分析查询;相交,包含等),无法完成地理意义上的分析查询;l缺乏语义表达能力,即语义贫乏缺乏语义表达能力,即语义贫乏 它表达实体和实体间关系只能在表内,或通过公共值的跨表它表达实体和实体间关系只能在表内,或通过公共值的跨表连接,连接,实现实现效率低,效率低,不利于建立数据的概念模型不利于建立数据的概念模型。l表形式不适用表示图形数据表形式不适用表示图形数据图形数据涉及的坐标、属性、拓扑关系用表格表示使问题显图形数据涉及的坐标、属性、拓扑关系用表格表
24、示使问题显得复杂化。得复杂化。39GIS应用应用1空间、属性空间、属性数据文件数据文件1GIS应用应用2空间、属性空间、属性数据文件数据文件2空间、属性空间、属性数据文件数据文件3将属性数据和空间数据均放将属性数据和空间数据均放在文件系统中进行管理。在文件系统中进行管理。程序依赖于数据文件的存储程序依赖于数据文件的存储结构,数据文件修改时,应结构,数据文件修改时,应用程序也随之改变。用程序也随之改变。40Well-known Text Representation41Well-known Binary Representation/ Basic Type definitions/ byte :
25、 1 byte/ uint32 : 32 bit unsigned integer (4 bytes)/ double : double precision number (8 bytes)/ Building Blocks : Point, LinearRingPoint double x;double y;LinearRing uint32 numPoints;Point pointsnumPoints;42enum wkbGeometryType wkbPoint = 1,wkbLineString = 2,wkbPolygon = 3,wkbMultiPoint = 4,wkbMult
26、iLineString = 5,wkbMultiPolygon = 6,wkbGeometryCollection = 7;enum wkbByteOrder wkbXDR = 0, / Big EndianwkbNDR = 1 / Little Endian;WKBPoint byte byteOrder;uint32 wkbType; / 1Point point;WKBLineString byte byteOrder;uint32 wkbType; / 2uint32 numPoints;Point pointsnumPoints;WKBPolygon byte byteOrder;u
27、int32 wkbType; / 3uint32 numRings;LinearRing ringsnumRings;43 Well-known Binary Representation for a Geometry value in NDR format (B=1) of type Polygon (T=3) with 2 linear rings (NR = 2) each ring having 3 points (NP = 3).44全文件管理系统的优缺点全文件管理系统的优缺点优点:优点:(1)厂商可根据自己要求定义文件格式,管)厂商可根据自己要求定义文件格式,管理数据;理数据;(2
28、) 有利于存储非结构化不定长数据。有利于存储非结构化不定长数据。缺点:缺点:它具有文件系统的缺点它具有文件系统的缺点(1)不利于数据查找,如系统开发者要编写)不利于数据查找,如系统开发者要编写程序实现数据的更新、查询;程序实现数据的更新、查询;(2) 数据共享性等差。数据共享性等差。多个程序共享一数据文件时,文件的修改,需多个程序共享一数据文件时,文件的修改,需得到所有应用的许可。不能达到真正的共享,得到所有应用的许可。不能达到真正的共享,即数据项、记录项的共享即数据项、记录项的共享。45文件和关系数据库混合系统文件和关系数据库混合系统是传统是传统GIS所用的所用的方式。如方式。如arcinf
29、o、mapinfo等。等。系统中,图形用数据文件存储,属性用关系数系统中,图形用数据文件存储,属性用关系数据库表存储。两者通过标识符相联结,这种方据库表存储。两者通过标识符相联结,这种方式实际上不能建立真正意义上的空间数据库。式实际上不能建立真正意义上的空间数据库。461)文件和关系数据库混合系统的模式)文件和关系数据库混合系统的模式ArcInfo采用混合数据管理方式采用混合数据管理方式。空间数据采用拓扑数据结构存储。空间数据采用拓扑数据结构存储在数据文件中,属性数据使用关系在数据文件中,属性数据使用关系数据模型存储方式。空间数据及其数据模型存储方式。空间数据及其属性通过关键字段连接在一起。属
30、性通过关键字段连接在一起。“ARC”指用于定义地物空间位指用于定义地物空间位置和关系的拓扑数据结构,置和关系的拓扑数据结构,“INFO”是指用于定义地物属性是指用于定义地物属性的表格数据的表格数据(关系关系)数据结构。数据结构。GIS应用软件应用软件Arc/Info 图形用户界图形用户界面面ArcEdit属性用户界面属性用户界面Tables图形数据图形数据文件库文件库属性数据库属性数据库图形处图形处理系统理系统数据库管数据库管理系统理系统ID47n一个一个Shape文件至少包括一个主文件、一个索引文件至少包括一个主文件、一个索引文件及一个文件及一个 dBASE 数据表文件数据表文件 Shape
31、文件示例:文件示例:n.SHP主文件主文件Main file:counties.shp贮存地理要贮存地理要素的几何数据素的几何数据n.SHX 索引文件索引文件Index file:counties.shx,贮存,贮存图形要素索引信息,用于查询图形要素索引信息,用于查询n.DBF dBASE 数据表文件:数据表文件:counties.dbf ,贮存,贮存要素属性信息的要素属性信息的dBASE文件文件n.PRJ 投影参数文件:投影参数文件: counties.prj4849优点优点:lGIS 可通过可通过DBMS提供的高级编程语言的接口,提供的高级编程语言的接口,直接操纵属性数据,查询属性数据库,
32、并在直接操纵属性数据,查询属性数据库,并在GIS的的用户界面下,显示查询结果。用户界面下,显示查询结果。l在在ODBC(Open DataBase Connectivity,开放式数据库互连开放式数据库互连)推出后,推出后,GIS软件商只需开发软件商只需开发GIS与与ODBC的接口软件,就可将属性数据与任何的接口软件,就可将属性数据与任何一个支持一个支持ODBC的的RDBMS连接。这样用户可在一连接。这样用户可在一个界面下处理图形和属性数据。个界面下处理图形和属性数据。2) 文件和关系数据库混合系统的优缺点文件和关系数据库混合系统的优缺点50缺点缺点:(1)属性数据和图形数据通过)属性数据和图
33、形数据通过ID联系起来,使查联系起来,使查询运算,模型操作运算速度慢;询运算,模型操作运算速度慢;(2) 数据分布和共享困难;数据分布和共享困难;(3)属性数据和图形数据分开存储,数据的安全)属性数据和图形数据分开存储,数据的安全性、一致性、完整性、并发控制以及数据损坏后的性、一致性、完整性、并发控制以及数据损坏后的恢复方面缺少基本的功能;恢复方面缺少基本的功能;(4)缺乏表示空间对象及其关系的能力。)缺乏表示空间对象及其关系的能力。目前,空间数据管理正在逐步走出文件管理模式目前,空间数据管理正在逐步走出文件管理模式511) 全关系型数据库系统两种模式全关系型数据库系统两种模式l 基于关系模型
34、的方式,将图形数据按关系数据模基于关系模型的方式,将图形数据按关系数据模型组织。型组织。l 将图形数据的变长部分处理成将图形数据的变长部分处理成Binary Block字字段(多媒体或变长文本)。段(多媒体或变长文本)。52要找出组成多边形的采样点要找出组成多边形的采样点坐标,涉及多个关系表,作坐标,涉及多个关系表,作多次连接投影运算。多次连接投影运算。多边形编号多边形编号边号边号边长边长P1aP1bP1cP1dP1P2边号边号起结点号起结点号终结点号终结点号a17b21结点号结点号xy1.2CN53(2) 图形数据和属性数据统一存储在通用关系数据图形数据和属性数据统一存储在通用关系数据库中,
35、即将图形文件转成关系存放在目前大部分关系库中,即将图形文件转成关系存放在目前大部分关系型数据库提供的二进制块中。型数据库提供的二进制块中。空间数据访问接口空间数据访问接口用户界面用户界面数据库访问接口数据库访问接口空间数据库空间数据库GISRDBMS54优点优点:(1)在全关系型数据库中加入了二进制数据块形)在全关系型数据库中加入了二进制数据块形式省去大量关系连接操作,可提高查询速度;式省去大量关系连接操作,可提高查询速度;(2)便于数据的维护;)便于数据的维护;缺点缺点:(1)不定长记录造成存储效率的下降;)不定长记录造成存储效率的下降;(2)实现)实现SQL查询要附加接口;因此它只适用于查
36、询要附加接口;因此它只适用于功能简单的功能简单的GIS。2)全关系型数据库系统管理的优缺点)全关系型数据库系统管理的优缺点55 面向对象型空间数据库管理系统最适合空间数据面向对象型空间数据库管理系统最适合空间数据的表达和管理。的表达和管理。 56l支持变长记录,还支持对象的嵌套,信息的继承支持变长记录,还支持对象的嵌套,信息的继承和聚集。和聚集。l面向对象数据库管理系统允许定义合适的数据结面向对象数据库管理系统允许定义合适的数据结构和数据操作。构和数据操作。 2)面向对象型数据库系统的缺点)面向对象型数据库系统的缺点l 不支持不支持SQL语言,在通用性上受局限。语言,在通用性上受局限。l 面向
37、对象型空间数据库管理系统还不够成熟,价面向对象型空间数据库管理系统还不够成熟,价格又昂贵,目前在格又昂贵,目前在GIS领域还不通用。领域还不通用。1)面向对象型数据库系统的优点)面向对象型数据库系统的优点57 采用通用关系数据库管理系统效率低,面向对象采用通用关系数据库管理系统效率低,面向对象型空间数据库管理系统又不够成熟。对象型空间数据库管理系统又不够成熟。对象关系型关系型空间数据库是在标准的空间数据库是在标准的RDBMS上加了一层空间数上加了一层空间数据管理专用模块如据管理专用模块如Oracle在其数据库中加入了在其数据库中加入了Spatial组件,以支持空间数据;组件,以支持空间数据;I
38、nformix为用户为用户定义数据类型,提供了定义数据类型,提供了Data Blade插件。定义了插件。定义了操作点、线、面等空间对象的函数,解决了空间数操作点、线、面等空间对象的函数,解决了空间数据的变长记录管理。据的变长记录管理。58 DBMS软件商在软件商在RDBMS中进行扩中进行扩展,使之能直接存储和管理非结构化展,使之能直接存储和管理非结构化的空间数据,如的空间数据,如Informix 和和Oracle等都推出了空间数据管理的专等都推出了空间数据管理的专用模块,定义了操纵点、线、面、圆用模块,定义了操纵点、线、面、圆等空间对象的等空间对象的API函数。函数。 主要解决空间数据的变长记
39、录的管主要解决空间数据的变长记录的管理,效率比二进制块的管理高得多,理,效率比二进制块的管理高得多,但仍没有解决对象的嵌套问题,空间但仍没有解决对象的嵌套问题,空间数据结构不能由用户定义,用户不能数据结构不能由用户定义,用户不能根据根据GIS要求再定义,使用上受一定要求再定义,使用上受一定限制。限制。GIS应用应用空间数据管理的空间数据管理的专用模块专用模块 商用商用DBMS空间和属性空间和属性数据库数据库59l 解决了空间数据的变长记录管理,使数据管理效率解决了空间数据的变长记录管理,使数据管理效率大大提高;大大提高;l 空间和属性之间联结有空间数据管理模块解决,不空间和属性之间联结有空间数
40、据管理模块解决,不仅具有操作关系数据的函数,还具有操作图形的仅具有操作关系数据的函数,还具有操作图形的API函数函数;l 对象对象-关系型空间数据库是在标准关系数据库上加关系型空间数据库是在标准关系数据库上加一层空间数据管理模块;用该层功能将地理结构查询一层空间数据管理模块;用该层功能将地理结构查询语言转化成标准的语言转化成标准的SQL查询,空间数据查询速度快。查询,空间数据查询速度快。 1)对象)对象-关系型空间数据库优点关系型空间数据库优点60l空间数据对象还不能有用户任意定义,用户使用受空间数据对象还不能有用户任意定义,用户使用受一定限制。如定义的空间函数支持的对象不带拓扑一定限制。如定
41、义的空间函数支持的对象不带拓扑关系,用户不能定义带拓扑关系的数据模型。关系,用户不能定义带拓扑关系的数据模型。2)对象)对象-关系型空间数据库缺点关系型空间数据库缺点ArcSDE Arcinfo Spatial Data Engine616263GIS ApplicationSQLProprietarydata format1st Generation:2nd Generation:3rd Generation:SQLProprietaryGIS APIProprietaryGIS APIGIS ApplicationGIS ApplicationFileSystemGIS Data Engi
42、neRDBMS“Spatial” ApplicationSpatially enabled DBMSRDBMSSQLSpatial features, indexes in BLOBsAttributesGIS Data EngineSpatial types functions indexesSpatial Features Proprietaryspatial structuresOpen or proprietaryOpenSpatial business logic64 空间数据组织是空间数据库管理的重要内容。空间数据组织是空间数据库管理的重要内容。 快快速访问及有效处理数据的关键是索
43、引,对于复杂的速访问及有效处理数据的关键是索引,对于复杂的空间地理数据来说,快速访问地理数据尤为重要。空间地理数据来说,快速访问地理数据尤为重要。 空间索引空间索引就是指依据空间对象的位置和形状或空就是指依据空间对象的位置和形状或空间对象之间的某种空间关系按一定的顺序排列的一间对象之间的某种空间关系按一定的顺序排列的一种种数据结构数据结构,其中包含空间对象的概要信息,如对,其中包含空间对象的概要信息,如对象的标识、外接矩形及指向空间对象实体的指针。象的标识、外接矩形及指向空间对象实体的指针。 建立空间索引实质之一是通过合理的空间数据组建立空间索引实质之一是通过合理的空间数据组织,解决图形数据快
44、速检索。织,解决图形数据快速检索。65 8 20 52 35 40 61 56 关键码关键码 其它数据项其它数据项文件文件r1r2r3r4r5r6r7 8203540525661关键码关键码 指针指针索引表索引表有序有序无序或有序无序或有序66B Tree和和B+ TreeBSP TreeKD Tree和和KDB TreeR Tree及其变种及其变种 (R+ Tree,R* Tree)Grid常用的索引机制常用的索引机制67nOracle Spatial Spatial key, stored procedure/schema-based (quad-tree) R-tree, stored
45、procedure/schema-based “Indexes” are actually tables!nDB2 Spatial Extender, ESRI ArcSDE for SQL Server Grid68 1970年,年,R.Bayer和和E.mccreight提出了一种提出了一种平衡的平衡的多叉树多叉树,称为,称为B树,一棵树,一棵m阶的阶的B树满足下列条件:树满足下列条件: 树中每个结点至多有树中每个结点至多有m个孩子;个孩子; 除根结点和叶子结点外,其它每个结点至少有除根结点和叶子结点外,其它每个结点至少有 m/2 个个孩子;孩子; 若根结点不是叶子结点,则至少有若根结点不
46、是叶子结点,则至少有2个孩子;个孩子; 所有叶子结点都出现在同一层,叶子结点不包含任何关所有叶子结点都出现在同一层,叶子结点不包含任何关键字信息;键字信息; 有有k个孩子的非终端结点恰好包含有个孩子的非终端结点恰好包含有k-1个关键字。个关键字。 在在B树中,每个结点中关键字从小到大排列,并且当该结树中,每个结点中关键字从小到大排列,并且当该结点的孩子是非叶子结点时,该点的孩子是非叶子结点时,该k-1个关键字正好是个关键字正好是k个孩子个孩子包含的关键字的值域的分划。包含的关键字的值域的分划。 691 181 111 271 393 47 53 641 99FFFFFFFFFFFF2 43 7
47、81 35B树示例树示例叶子结点叶子结点查找失败的结点查找失败的结点终端结点终端结点在同一层上在同一层上外结点外结点指针指针包含其子女结点的块号包含其子女结点的块号70 因为叶子结点不包含关键字,所以可以把叶子结点因为叶子结点不包含关键字,所以可以把叶子结点看成在树里实际上并不存在外部结点,指向这些外部看成在树里实际上并不存在外部结点,指向这些外部结点的指针为空,叶子结点的数目正好等于树中所包结点的指针为空,叶子结点的数目正好等于树中所包含的关键字总个数加含的关键字总个数加1。 B树中的一个包含树中的一个包含n个关键字,个关键字,n+1个指针的结个指针的结点的一般形式为:点的一般形式为:(n,
48、P0,K1,P1,K2,P2,Kn,Pn) pn( m/2 1nm 1)为关键码的个数;)为关键码的个数;pKi(1in)为关键码,为关键码,KiKi+1(1in-1);pPi(0in)为指向子树根结点的指针,且指针为指向子树根结点的指针,且指针Pi所指子树中所有结点的关键码均小于所指子树中所有结点的关键码均小于Ki+1大于大于Ki。712. B树的查找树的查找 在在B树中查找给定关键字的方法是,首先把树中查找给定关键字的方法是,首先把根结点取来,在根结点所包含的关键字根结点取来,在根结点所包含的关键字K1,kj查找给定的关键字,若找到等于给定查找给定的关键字,若找到等于给定值的关键字,则查找
49、成功;否则,一定可以确定值的关键字,则查找成功;否则,一定可以确定要查的关键字在某个要查的关键字在某个Ki或或Ki+1之间,于是取之间,于是取Pi所指的结点继续查找,直到找到,或指针所指的结点继续查找,直到找到,或指针Pi为空为空时查找失败。时查找失败。 72A through ZA - IS - ZA - BC - EP - RSq - UB-tree indexes rapidly reduce the number of items to search through in a selection process and are the industry standard for alp
50、ha-numeric data. But how can spatial data be sorted?J - RF - IM - OJ - LS - SpV - Z“Polygon”7318 331223 3048101520 21243145 4750 52B 树树查找操作查找操作211821332123743. B树的插入树的插入 当在叶子结点处于第当在叶子结点处于第L+1层的层的B树中插入关键字树中插入关键字时,被插入的关键字总是进入第时,被插入的关键字总是进入第L层的层的终端结点终端结点。 若在一个包含若在一个包含j Why KD Tree?BSP Tree小结小结87KD Tree