任何类型的空间数据,即与位置相关的数据并表示几何空间中定义的对象,都由空间数据库存储和维护。这些用于处理这些空间数据库。空间数据库主要包含简单几何对象的表示,如 3D 对象、拓扑覆盖、线性网络和 TIN(三角不规则网络)。
主要有以下三种类型的空间查询。
- 邻近度查询:
它请求出现在指定位置附近的对象。查找位于给定点的给定距离内的所有酒店的查询是邻近度查询的一个示例。最近邻查询请求离指定点最近的对象。例如,我们可能想找到最近的火车站。请注意,此查询不必指定距离限制,因此即使我们不知道最近的火车站有多远,我们也可以询问它。
- 区域查询:
它处理空间区域。例如,查询可以请求对象
部分或完全存在于固定区域内。查询在给定城镇的地理边界内查找所有药店,或者我们可以查找特定城市中所有可用的学校。 - 联合/交叉点:
在这种类型的查询中,我们还可能请求区域的交集和并集。例如,给定区域信息,例如年降雨量和人口密度,查询可以请求年降雨量低以及人口密度高的所有区域。
通常,空间数据查询中存在空间和非空间需求的组合。例如,我们可能想找到最近的餐厅,那里有素食选择,而且一顿饭的收费低于 10 美元。
由于空间数据本质上是图形化的,我们通常使用图形化查询语言来查询它们。此类查询的结果也以图形方式显示,而不是以表格形式显示。用户可以在界面上调用各种操作,例如选择要查看的区域(例如,通过指向并单击曼哈顿西郊的郊区)、放大和缩小、根据选择条件选择要显示的内容(例如,三星级以上的酒店)、多张地图的叠加(例如,三星级以上的酒店叠加在代表低犯罪率区域的地图上),等等。图形界面构成前端。
已经提出了 SQL 的扩展,以允许关系数据库有效地存储和检索空间信息,并允许查询混合空间和非空间条件。扩展包括允许抽象数据类型,例如线、多边形和位图,以及允许空间条件,例如包含或重叠。