2.8 KiB
Spatialite CookBook
厨房工具和烹饪技巧
技术名词介绍
专业的说法,SpatiaLite是支持国际标准(例如SQL92和OGC-SFS)的Spatial DBMS(空间数据库管理系统)。
我想,即使是专业的计算机相关专业人员,上面的各种缩写和英文描述一定会让你觉得一头雾水——虽然我们已经尽量为这些描述添加了一些说明。
不用担心:晦涩的技术术语通常掩盖了真正易于理解的概念:
- DBMS(Database Management System) 数据库管理系统
- 数据库管理系统是一种旨在以最有效和通用的方式存储和检索任意数据的软件,事实上,数据库内一般会存储很多大量的,高度结构化的复杂数据。
- SQL (Structured Query Language) 结构化查询语言
- Sql是一种支持DBMS处理的标准化语言。使用Sql,您可以方便地定义数据的组织和存储方式,您可以方便地在数据库中实现复杂的增、删、改、查操作。
- OGC-SFS (Open Geospatial Consortium - Simple Feature Specification) 开放地理空间联盟-简要特征规范
- 允许扩展基本的DBMS / SQL功能,以便支持特殊的Geometry数据类型,因此也被称为Spatial DBMS(空间地理数据库)。
SpatiaLite是一个广泛流行的,基于Sqlite的轻量级个人数据库系统。
SQLite实现标准的SQL92数据引擎,而SpatiaLite实现标准的OGC-SFS核心,二者紧密结合。结合二者的能力去使用,就是一个完整的Spatial DBMS(空间地理数据库)。
了解Sqlite的应该都清楚,SQLite并非传统的client-server架构,而是将数据库引擎嵌入在程序中。这样简洁的架构设计大大减少了数据库管理的成本,你可以像打开一个普通的文本文件一样打开一个sqlite数据库。一个包含了数百万条数据的sqlite数据库文件,你可以自由地将其复制、删除而不会有任何问题。同样因为数据库文件的通用性,你可以将这个文件从一台电脑传输到另外一台上,而无需做任何预处理。两台电脑也可以是不同的操作系统,因为Sqlite数据库是跨平台的。
诚然,所有这些简单和轻量级的优点都是有代价的:SQLite/SpatiaLite对多线程的支持很差,这也是它被称为个人数据库的原因,其潜台词就是:单用户、单程序、单工作站。
如果支持多线程并发是你的硬需求,那么SQLite/SpatiaLite显然不是你的最佳选择。幸运的是,Sqlite/Spatialite同PostgreSQL/PostGIS(一款重量级的client-server架构的空间地理数据库系统)十分相似,你可以平滑地切换到该平台。
准备工作(软件安装)
这不是一本理论手册:这是面向绝对初学者的实用入门指南。忽略那些DBMS、SQL以及GIS这些专有名词吧,跟着这个教程一步一步动手去做就好了。