1、RSGIS, WHURSGIS, WHU版权:地理国情监测教研室,遥感信息工程学院空间数据库空间数据库RSGIS, WHURSGIS, WHU内容内容RSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHUWhat is a query? RSGIS, WHURSGIS, WHUWhat is a query? RSGIS, WHURSGIS, WHUWhat is a query language?RSGIS, WHURSGIS, WHUWhat is a query language?RSGIS, WHURSGIS, WHUWhat is SQL?RSGIS, WH
2、URSGIS, WHUWhat is SQL?is a standard query language for relational databasesIt support logical data model concepts, such as relations, keys, .Supported by major brands, e.g. IBM DB2, Oracle, MS SQL Server, Sybase, .3 versions: SQL1 (1986), SQL2 (1992), SQL 3 (1999)RSGIS, WHURSGIS, WHUWhat is SQL?ESR
3、I Arc/Info included a custom relational DBMS named InfoOther GIS software can interact with DBMS using SQL Fusing open database connectivity (ODBC) or other protocols In fact, many software use SQL to manage data in back-end DBMSAnd a vast majority of SQL queries are generated by other softwareAltho
4、ugh we will be writing SQL queries manually!RSGIS, WHURSGIS, WHUThree Components of SQL?nData Definition Language (DDL) Creation and modification of relational schemaSchema objects include relations, indexes, etc.nData Manipulation Language (DML)Insert, delete, update rows in tablesQuery data in tab
5、lesnData Control Language (DCL)Concurrency control, transactionsAdministrative tasks, e.g. set up database users, security permissionsRSGIS, WHURSGIS, WHU数据库中数据库中SQL 的功能的功能RSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHUSQLSQL的使用方式的使用方式SQL声明可以通过以下五种方式之一来使用: 交互处理,通过命令行用户接口(例如,Oracle的“sqlp
6、lus”, DB2的“db2i”,以及PostgreSQL中的开源代码“psql”和 MySQL的“mysql”)来进行交互处理。 嵌入在一个高层次的计算机语言中,如COBOL,FORTRAN,PL / 1,C + +和Java,为高级语言编写的应用程序对数据库的查询提供所必需的工具。 使用调用层级的接口(call level interface,CLI),由操作系统层级的实施程序构成(相对于前述的嵌入SQL的应用程序层级而言的)。CLI可以用编程语言如C + +和Visual Basic(VB)调用来执行SQL声明语句,在执行时连接数据库,提取数据表中的数据,获取数据处理的状态信息,并给出一
7、个数据库查询结果。RSGIS, WHURSGIS, WHUSQLSQL的使用方式的使用方式 使用两个标准的Java应用程序编程接口(API)协议,即Java数据库连接(JDBC)和Java嵌入式SQL (SQLJ),来创建能够从数据库中提取数据的Java应用程序和小程序。 在独立应用程序模块中以存储过程(执行一个或多个数据处理操作的代码块)、功能(在过程中被调用的带参数的代码块)、或包(编组在一个模块名下的存储过程和功能的集合)形式。这些程序模块是由向传统的SQL操作环境添加程序化结构、流程控制和子程序来创建。一个很好的例子就是Oracle对SQL过程扩展语言(PL / SQL)。RSGIS,
8、 WHURSGIS, WHUWhat is spatial query?RSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHUDatabase QueryRSGIS, WHURSGIS, WHUDatabase OperatorsRSGIS, WHURSGIS, WHUDatabase OperatorsRSGIS, WHURSGIS, WHUDatabase OperatorsRSGIS, WHURSGIS, WHUDatabase OperatorsRSGIS, WHURSGIS, WHUDatabase OperatorsRSGIS, WHURSGIS, WHU
9、Database OperatorsRSGIS, WHURSGIS, WHUDatabase OperatorsRSGIS, WHURSGIS, WHUDatabase OperatorsRSGIS, WHURSGIS, WHU4.3.1 空间算子分类空间算子分类RSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHUn在空间数据库系统中,拓扑关系通常与谓词一起使用,这个谓
10、词通常定义为布尔函数,用以确定一对几何之间是否存在特定关系。n如果对比符合功能的标准,谓词返回值1(真),反之,如果对比失败,则返回0(假)。RSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHUn空间连接本质上是运算密集的。然而,它们可以被用于创建十分强大的空间分析和建模工具。n没有空间连接提供的灵活性,数据库的应用将十分受限。因此,它们通常是地理信息系统的强制性功能。n所有的空间数据库系统有望支持伴随空间索引的空间连接功能和OGC空间算子表中列出的空间操作的连接算法。RSGIS, WHURSGIS, WHUn扩展扩展SQL的
11、动机的动机SQL 仅支持简单原子数据类型,如,仅支持简单原子数据类型,如,integer, dates and string不支持空间数据和空间查询不支持空间数据和空间查询F空间数据结构复杂空间数据结构复杂(e.g. polygons)F空间查询需要支持空间操作空间查询需要支持空间操作: topological, euclidean, directional, metric.RSGIS, WHURSGIS, WHU扩展标准SQL以支持空间操作的兴趣可以追溯到20世纪80年代初RSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHUnEgenhofer1994年的论文代表了对标准SQL的扩展尤其是空间数据的重大贡献nEgenhofer调查了空间操作的特性和要求后提出,SQL空间扩展应该包含两部分,即,定义哪些数据被检索的查询语言指定如何显示查询结果的表达语言RSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHURSGIS, WHU