Docsify/gis/Spatialite-Cookbook.md
2023-06-13 16:37:18 +08:00

2.8 KiB
Raw Blame History

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这些专有名词吧跟着这个教程一步一步动手去做就好了。