1、资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-1第第5章章空间数据管理空间数据管理数据的层次与文件组织数据的层次与文件组织空间数据库空间数据库空间数据库管理设计空间数据库管理设计空间数据组织空间数据组织空间索引空间索引数据库查询语言数据库查询语言资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-25.5空间数据索引空间数据索引空间索引概念空间索引概念根据空间对象位置和形状或空间对象的某种空间关系,按根据空间对象位置和形状或空
2、间对象的某种空间关系,按一定顺序排列的数据结构,包含空间对象的概要信息,以提一定顺序排列的数据结构,包含空间对象的概要信息,以提高空间操作的效率高空间操作的效率GIS中引入空间索引的必要性中引入空间索引的必要性工作区建立工作区建立查询、显示查询、显示数据提取数据提取资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-3常见空间索引方法常见空间索引方法对象范围索引对象范围索引格网索引格网索引四叉树索引四叉树索引R树和树和R+树索引树索引资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 201120
3、11年年 GISGIS原理课程系列原理课程系列5-3-4空间索引:空间索引:对象范围索引对象范围索引IDXmaxXminYmaxYmin1234YmaxYminXminXmax空间对象集合123456 检索窗口XNYWYEXSXmaxXN OR XminXS OR YmaxYE OR YminYW空间对象不被检索XSXmin,XmaxXN ANDYWYmin,YmaxYE空间对象被检索XNYWYEXS236资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-5空间索引:空间索引:对象范围索引对象范围索引索引流程索
4、引流程在记录每个空间实体坐标时,同时记录其外接矩形最大最小在记录每个空间实体坐标时,同时记录其外接矩形最大最小坐标。坐标。在检索空间实体时,根据空间实体最大最小范围,预先排除在检索空间实体时,根据空间实体最大最小范围,预先排除那些没有落入检索窗口内的对象那些没有落入检索窗口内的对象仅对外接矩形落在检索窗的实体作进一步判断,最后检索出仅对外接矩形落在检索窗的实体作进一步判断,最后检索出完全落入窗口的对象。完全落入窗口的对象。特点:特点:没有真正创建索引文件,仅增加了对象最大最小范围字段没有真正创建索引文件,仅增加了对象最大最小范围字段仍需对整个数据文件的空间对象检索,只是某些对象可以直仍需对整个
5、数据文件的空间对象检索,只是某些对象可以直接判别,而有些仍需进行复杂计算才能判别。接判别,而有些仍需进行复杂计算才能判别。资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-6空间索引:空间索引:格网索引格网索引资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-7空间索引:空间索引:格网索引格网索引将研究区用横竖线条划分大小相等或不等格网将研究区用横竖线条划分大小相等或不等格网记录每一个格网所包含的空间实体。记录每一个格网所包含的
6、空间实体。查询流程查询流程首先计算出查询对象所在格网首先计算出查询对象所在格网再在该网格中快速查询所选空间实体,加速查询速度。再在该网格中快速查询所选空间实体,加速查询速度。按格网法划分格网数不能太多,否则索引表本身太大而不按格网法划分格网数不能太多,否则索引表本身太大而不利于数据检索。利于数据检索。资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-8空间索引:空间索引:四叉树索引四叉树索引资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程
7、系列5-3-9空间索引:空间索引:四叉树索引四叉树索引四叉树不仅可以进行栅格编码,还可用于建立空间索引。四叉树不仅可以进行栅格编码,还可用于建立空间索引。根据所有空间对象覆盖范围,进行四叉树分割,尽量使每根据所有空间对象覆盖范围,进行四叉树分割,尽量使每个子块包含单个实体个子块包含单个实体根据包含每个实体的子块层数或子块大小,建立索引。根据包含每个实体的子块层数或子块大小,建立索引。大区域空间实体更靠近树根,小实体位于叶端,以不同分大区域空间实体更靠近树根,小实体位于叶端,以不同分辨率来描述不同实体的可检索性。辨率来描述不同实体的可检索性。资源与环境科学学院资源与环境科学学院 地理信息科学系地
8、理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-10空间索引:空间索引:R树索引树索引资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-11空间索引:空间索引:R树索引树索引R树利用空间实体外接矩形建立空间索引。树利用空间实体外接矩形建立空间索引。R树建立每个实体的外接矩形(树建立每个实体的外接矩形(Rectangles)通过外接矩形的最大最小坐标检索空间实体。通过外接矩形的最大最小坐标检索空间实体。将空间位置相近的实体外接矩形组织为更大的虚拟矩形。将空间位置相近的实体外接矩形组
9、织为更大的虚拟矩形。对虚拟矩形建立空间索引,指向所包含的实体指针。对虚拟矩形建立空间索引,指向所包含的实体指针。R树的层次表达了分辨率信息,每个实体与树的层次表达了分辨率信息,每个实体与R树结点相联系,树结点相联系,这点与四叉树相同。这点与四叉树相同。空间数据检索流程空间数据检索流程首先判断哪些虚拟矩形落入查询窗口首先判断哪些虚拟矩形落入查询窗口再判别哪些实体是被检索的内容,提高检索速度。再判别哪些实体是被检索的内容,提高检索速度。资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-12空间索引:空间索引:R+树
10、索引树索引R树要求虚拟矩形尽量不相互重叠,且一个空间实体通常树要求虚拟矩形尽量不相互重叠,且一个空间实体通常仅被一个同级虚拟矩形所包围。仅被一个同级虚拟矩形所包围。但空间对象的复杂性,使虚拟矩形难免重叠。但空间对象的复杂性,使虚拟矩形难免重叠。资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-13空间索引:空间索引:R+树索引树索引R+树对树对R树索引进行改进,允许虚拟矩形重叠,并分割下树索引进行改进,允许虚拟矩形重叠,并分割下层虚拟矩形,允许一个空间实体被多个虚拟矩形包围。层虚拟矩形,允许一个空间实体被多个虚
11、拟矩形包围。在构造虚拟矩形时,尽量保持每个虚拟矩形包含相同个数在构造虚拟矩形时,尽量保持每个虚拟矩形包含相同个数的下层虚拟矩形或实体外接矩形,以保证任一实体具有相的下层虚拟矩形或实体外接矩形,以保证任一实体具有相同的检索时间。同的检索时间。资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-145.6空间数据库查询语言空间数据库查询语言5.6.1标准查询语言标准查询语言数据库的核心应用是对数据库的查询检索。数据库的核心应用是对数据库的查询检索。查询语言是从数据库中请求获取信息的语言查询语言是从数据库中请求获取信息
12、的语言同时支持数据管理和维护等。同时支持数据管理和维护等。SQL(StructureQueryLanguage)是查询语言是查询语言的代表的代表1986年由美国年由美国国家标准化协会(国家标准化协会(ANSI-AmericanNationalStandardsInstitute),),国际国际标准化组织(标准化组织(ISO-InternationalOrganizationforStandardization)批准作批准作为关系数据库为关系数据库查询查询标准语言标准语言5.6.2扩展扩展SQL处理空间数据处理空间数据Intersect;Contain;Within;Identical;Cros
13、s资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-15SQL查询语言的发展查询语言的发展SQL查询语言的发展历程查询语言的发展历程SQL-86SQL-89SQL-92(SQL2)SQL-99(SQL3)SQL数据库查询语言数据库查询语言已是国际标准已是国际标准.大部分大部分DBMS产品都支持产品都支持SQLSQL已经成为操作数据库的标准语言已经成为操作数据库的标准语言包括的功能:数据定义、数据操作、数据控制、数据查询。包括的功能:数据定义、数据操作、数据控制、数据查询。资源与环境科学学院资源与环境科学学院 地
14、理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-16SQLCommandsListABORT-abortthecurrenttransactionALTERDATABASE-changeadatabaseALTERGROUP-adduserstoagrouporremoveusersfromagroupALTERTABLE-changethedefinitionofatableALTERTRIGGER-changethedefinitionofatriggerALTERUSER-changeadatabaseuseraccountANALYZE-c
15、ollectstatisticsaboutadatabaseBEGIN-startatransactionblockCHECKPOINT-forceatransactionlogcheckpointCLOSE-closeacursorCLUSTER-clusteratableaccordingtoanindexCOMMENT-defineorchangethecommentofanobjectCOMMIT-committhecurrenttransactionCOPY-copydatabetweenfilesandtablesCREATEAGGREGATE-defineanewaggregat
16、efunctionCREATECAST-defineauser-definedcastCREATECONSTRAINTTRIGGER-defineanewconstrainttriggerCREATECONVERSION-defineauser-definedconversionCREATEDATABASE-createanewdatabaseCREATEDOMAIN-defineanewdomainCREATEFUNCTION-defineanewfunction资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-
17、3-17SQLCommandsListCREATEGROUP-defineanewusergroupCREATEINDEX-defineanewindexCREATELANGUAGE-defineanewprocedurallanguageCREATEOPERATOR-defineanewoperatorCREATEOPERATORCLASS-defineanewoperatorclassforindexesCREATERULE-defineanewrewriteruleCREATESCHEMA-defineanewschemaCREATESEQUENCE-defineanewsequence
18、generatorCREATETABLE-defineanewtableCREATETABLEAS-createanewtablefromtheresultsofaqueryCREATETRIGGER-defineanewtriggerCREATETYPE-defineanewdatatypeCREATEUSER-defineanewdatabaseuseraccountCREATEVIEW-defineanewview资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-18SQLCommandsListDEAL
19、LOCATE-removeapreparedqueryDECLARE-defineacursorDELETE-deleterowsofatableDROPAGGREGATE-removeauser-definedaggregatefunctionDROPCAST-removeauser-definedcastDROPCONVERSION-removeauser-definedconversionDROPDATABASE-removeadatabaseDROPDOMAIN-removeauser-defineddomainDROPFUNCTION-removeauser-definedfunct
20、ionDROPGROUP-removeausergroupDROPINDEX-removeanindexDROPLANGUAGE-removeauser-definedprocedurallanguageDROPOPERATOR-removeauser-definedoperatorDROPOPERATORCLASS-removeauser-definedoperatorclassDROPRULE-removearewriteruleDROPSCHEMA-removeaschemaDROPSEQUENCE-removeasequenceDROPTABLE-removeatableDROPTRI
21、GGER-removeatriggerDROPTYPE-removeauser-defineddatatypeDROPUSER-removeadatabaseuseraccountDROPVIEW-removeaview资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-19SQLCommandsListEND-committhecurrenttransactionEXECUTE-executeapreparedqueryEXPLAIN-showtheexecutionplanofastatementFETCH-
22、retrieverowsfromatableusingacursorGRANT-defineaccessprivilegesINSERT-createnewrowsinatableLISTEN-listenforanotificationLOAD-loadorreloadasharedlibraryfileLOCK-explicitlylockatableMOVE-positionacursoronaspecifiedrowofatableNOTIFY-generateanotificationPREPARE-createapreparedqueryREINDEX-rebuildcorrupt
23、edindexesRESET-restorethevalueofarun-timeparametertoadefaultvalueREVOKE-removeaccessprivilegesROLLBACK-abortthecurrenttransactionSELECT-retrieverowsfromatableorviewSELECTINTO-createanewtablefromtheresultsofaquerySET-changearun-timeparameterSETCONSTRAINTS-settheconstraintmodeofthecurrenttransactionSE
24、TSESSIONAUTHORIZATIONSETTRANSACTION-setthecharacteristicsofthecurrenttransactionSHOW-showthevalueofarun-timeparameterSTARTTRANSACTION-startatransactionblockTRUNCATE-emptyatableUNLISTEN-stoplisteningforanotificationUPDATE-updaterowsofatableVACUUM-garbage-collectandoptionallyanalyzeadatabase资源与环境科学学院资
25、源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-20SELECT语句语句-1SQL查询语查询语言中核心:言中核心:SELECT语语句句简单查询简单查询功能是功能是对对一个表一个表查询查询,以,以选择选择表中某些列或行。表中某些列或行。SELECT语语句一般形式句一般形式SELECT ALL|DISTINCT ON(expression,.)*|expression AS output_name ,.FROM from_item,.WHERE condition GROUP BY expression,.HAVING condit
26、ion,.ORDER BY expression ASC|DESC|USING operator ,.Select*from cities Where City_Name=“New York”根据根据Where子句条件,从子句条件,从FROM子句的表中找出子句的表中找出满满足条件的足条件的元元组组,按目,按目标标列表达式列表达式选选出元出元组组中的属性,形成中的属性,形成结结果表。果表。资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-21SELECT语句语句-2WHERE子句子句中写条件表达式,符合此条件表达
27、式的数据中写条件表达式,符合此条件表达式的数据记录将被从数据库选择出来。记录将被从数据库选择出来。GROUPBY子句将结果按子句将结果按值进行分组,该属性列值进行分组,该属性列值相等的元组为一组,占结果表的一条记录。值相等的元组为一组,占结果表的一条记录。HAVING子句用于过滤子句用于过滤GROUPBy的分组结果,输出满足的分组结果,输出满足指定条件的分组。指定条件的分组。OrderBy子句将结果按子句将结果按值进行升序或降序排序,值进行升序或降序排序,升序升序-ASC(缺省)、降序(缺省)、降序DESC对于空值,若升序,含空值的元组最先显示;若降序,含空对于空值,若升序,含空值的元组最先显
28、示;若降序,含空值的元组最后显示。值的元组最后显示。资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-22GIS中中SQL查询例查询例1简单查询简单查询资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-23GIS中中SQL查询例查询例1简单查询简单查询资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-24GIS中中SQL查询例查询例2连接查询连接
29、查询资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-25GIS中中SQL查询例查询例2连接查询连接查询在在SELECT语句中基表名多于一个语句中基表名多于一个;SELECT语句条件表语句条件表达式中要添加匹配不同表的记录的语句。达式中要添加匹配不同表的记录的语句。例如,查出美国地图数据中总人口大于例如,查出美国地图数据中总人口大于1000万万且洲府人且洲府人口大于口大于20万的洲万的洲。SELECT*FROMStates,StatecapWHEREStates.state=Statecap.StateandS
30、tates.pop_199010000000andStatecap.pop_1990200000资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-26GIS中中SQL查询例查询例3扩展扩展SQL扩展扩展SQL查询主要指对空间数据的查询。查询主要指对空间数据的查询。在在SQL上扩充了谓词集,将属性条件和空间关系图形条件组上扩充了谓词集,将属性条件和空间关系图形条件组合在一起形成扩展合在一起形成扩展SQL查询语言。查询语言。Adjacent、Contain、Cross、Inside、Buffer等。等。ArcInf
31、o、ArcView、Mapinfo等都增加了地理函数和地理等都增加了地理函数和地理运算符,通过扩展运算符,通过扩展SQL来实现对空间数据的查询。来实现对空间数据的查询。地理函数或地理运算符基于地理对象间的相互关系建立地理函数或地理运算符基于地理对象间的相互关系建立资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-27GIS中中SQL查询例查询例3扩展扩展SQL资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-28求美国求美国“I
32、10”号高速公路号高速公路经过经过哪几个洲?哪几个洲?先在美国高速公路中找出先在美国高速公路中找出“I10”号高速公路;号高速公路;再找再找“I10”号高速公路号高速公路经过经过哪几个洲。哪几个洲。Select*FromStatesWhereStates.objIntersects(SelectobjfromUs_Hiwaywhereus_Hiway.highway=“I10”)GIS中中SQL查询例查询例3扩展扩展SQL地理运算符地理运算符判断判断空间对象是否相交空间对象是否相交从从Us_Hiway中选出中选出I10号公路号公路资源与环境科学学院资源与环境科学学院 地理信息科学系地理信息科学系 20112011年年 GISGIS原理课程系列原理课程系列5-3-29思考与讨论思考与讨论理解几种常见的空间数据索引原理。理解几种常见的空间数据索引原理。ArcGIS平台中,利用属性查询对话框,理解平台中,利用属性查询对话框,理解Select语句语句的语法结构。的语法结构。