如何设计包含地理信息数据的表结构

摘自:Pro oracle spatial for Oracle Database 11g

如何设计包含地理信息数据的表结构:
  1. 根据属性划分数据,类似数据库范式。例如州、郡县的数据和街道、州际公路的数据有不同的属性,据此可分成states表、countries表和streetes表、interstates表;
  2. 将粗粒度的数据和细粒度的数据区分开来:街道和州际公路都是线型的,而且可能有着相同的属性。但是州际公路跨多个州,而街道可能只在某个特定城市或地区。街道的数量可能远多于州际公路数量。将街道数据和州际公路数据存放在同一张表中可能会引起性能问题(例如当你查询街道数据时,大规模的州际公路数据同样可能影响性能)。
  3. 基于几何形状进行划分:如果基于几何形状划分地理信息数据(即根据地理数据是点、线还是多边形进行划分),那么就可以在插入数据时用到Oracle Spatial空间索引提供的类型检查机制了。例如,你为某表创建了空间索引、同时指定该表的数据只能是点数据(这样当试图插入非点类的几何形状地理信息时会出错),当可以预期到表中数据的几何形状时,空间索引将有更好的性能表现。
  4. 本地化数据分区:考虑整个国家内地所有街道数据,这些街道数据有着完全相同的属性,并且有着相同的解析度(数据粒度也相同)。基于前三个标准,我们可能会把所有的街道数据放在同一张表中。然而,因为表中的数据量很大,对这些数据进行分区可能会带来很大的好处。



你可能感兴趣的:(数据结构,oracle)