8. 使用 SpatiaLite 空间数据库¶
OSDBs在许多时候都受到了广泛的关注, 其中MySQL,PostgreSQL,Ingres,Firebird以及MaxDB最为流行; 如果你想在空间数据开发中使用开源数据库的话, 目前有三种选择:MySQL、PostGIS与SpatiaLite。 每一种都有其优点及缺点,没有哪种选择是适合所有情况的, 而且每种数据库,可能会有其特有的扩展方法。 MySQL,由于其双重许可(dual licensed),应用最为广泛。 MySQL在20多种平台下都可以使用,包括Linux,Mac OS X,UNIX 以及Microsoft Windows。 它的架构以Windows中的线程(threads)或者UNIX下的进程(process)为基础, 使其快速和易于自定义。 它具有商用企业级数据库的所有主要特征, 包括充分的数据安全集成、原子性、连贯性、可分离性、 与ACID-compliance的持久性、全兼容性(full commit)、 重新运行、故障修复以及行锁定能力。 V4.1以后的版本实现了一个基于几何类型环境下的基于特征的查询语言子集, 由OGC(Open Geospatial Consortium)提出。 几何属性查询的实现支持了简单的特征数据(simple feature data, SFD)模型。
PostgreSQL是一个升级性高、SQL-compliant、开源关系数据库系统。 它可以在所有的主要操作系统上运行,包括Linux、UNIX以及Windows。 它的架构以其稳定性、数据整合以及准确性而著称。 同MySQL一样,它同样是全ACID-compliant,并且支持各种外键(foreign keys),连接(joins),视图(views),触发程序(triggers),存储过程(stored procedures),存储二进制大对象,编程界面如C/C++,Java,.Net,Perl,Python,Ruby,Tcl以及ODBC。 PostgreSQL 还有着许多成熟先进的特征, 包括多版本并行控制(multi-version concurrence control, MVCC), 时间点恢复(point in time recovery),表空间(tablespaces), 异步复制(asynchronous replication), 嵌套事务(nested transactions), 在线/热备份(online/hot backups), 成熟的查询优化程序(query planner/optimizer), 以及容错的预写式日志(write ahead logging for fault tolerance)。 它允许几何数据类型(例如,点,线,lseg,box,路径,多边形以及圆)来代表内部的二维空间对象。 然而,由于其非标准的特征,内在的空间对象一直以来都没有较多的应用。 PostGIS,作为PostgreSQL的空间扩展,与OGC以及ISO SQL/MM标准相一致,使得使用PostgreSQL进行现代的空间应用开发成为可能。