第一章
1.1 为什么使用空间数据库?
- 它是适用于某些应用程序的通用技术
- 地理信息系统(地理/地理参考数据)
- CAD/CAM
- VLSLI设计(几何数据)
- 复杂现象的建模(空间数据)
- 管理相对简单的空间对象的大型集合的需要
- 空间数据库 vs 图像/图片数据库
- 空间数据库在空间中包含对象
- 图像数据库中包含空间(图片、图像、…光栅图像)的表示形式
- 空间数据库提供存储和分析空间数据的结构
- 空间数据是由多维空间中的对象组成
- 在标准数据库中存储空间数据将需要过多的空间
- 从标准数据库检索和分析空间数据的查询将是冗长和繁杂的,会留下很大的出错空间
- 空间数据库提供了更有效的空间数据存储、检索和分析
数据库系统--在数据库管理系统(DBMS)控制下的一组相互关联的文件
空间数据库系统
- 是一个数据库系统
- 具有额外空间数据处理能力的数据库管理系统
- 在其数据模型和查询语言中提供空间数据类型(SDTs)
- 支持SDT,至少提供
- 空间索引(在不扫描整个空间的情况下检索特定区域内的对象)
- 空间连接的有效算法(不是简单的过滤笛卡儿积)
SDBMS的价值
- 传统(非空间)数据库管理系统提供:
- 跨故障的持久性
- 允许并发访问数据
- 在不适合计算机主内存的超大型数据集上搜索查询的可伸缩性
- 对非空间查询十分有效率,但对空间查询效率很低
DBMS
- DBMS是数据的操作系统
- 特定的关系型数据库管理系统包括一个层级架构
三层架构
- SDBMS在前端是空间软件,在后端是数据库管理系统
- SDBMS含有三层:
- 空间处理软件的接口
- 核心的空间处理函数
- DBMS的接口
1.3 什么是SDBMS?
- SDBMS是一个软件模块:
- 可以使用底层DBMS
- 支持空间数据模型、空间抽象数据类型和可从中调用这些ADT的查询语言
- 支持空间索引、处理空间操作的高效算法以及用于查询优化的特定于域的规则
1.4 SDBMS和GIS
- GIS是一种利用空间分析功能可视化和分析空间数据,如
- 搜索
- 位置分析
- 地形分析
- 流动分析
- 分布
- 空间分析/统计
- 测量
- GIS使用SDBMS
- 存储、查询、分享大型数据集
- SDBMS注重于
- 高效的存储、查询、分享大型数据集
- 提供更简单的基于集合的查询操作
- 操作示例:区域查询、叠置分析、最邻近算法、邻接算法
- 使用空间索引和优化查询加速在大数据集中的查询
- GIS以外的使用SDBMS的软件
- 天文学、基因组学、多媒体信息系统
1.5 SDBMS的组件
- 包含以下组件
- 空间数据模型、空间数据类型和操作符
- 空间查询语言、查询处理和查询优化
- 空间数据挖掘
1.5.1 空间分类、数据模型
- 空间分类学
- 可用于组织空间的大量描述
- 拓扑模型同胚关系,例如重叠
- 欧几里得空间模型在平面上的距离和方向
- 图的连通性模型,最短路径
- 空间数据模型
- 识别可识别物体和空间属性的规则
- 对象模型有助于管理可识别的事物
- 场模型有助于管理连续和无定形现象
1.5.2 空间查询语言
- 空间查询语言
- 空间数据类型,如:点、线、面
- 空间操作,如重叠,距离,最近邻
- 可以从底层的DBMS的查询语言中调用
- 标准
- SQL3是查询语言的标准
- OGIS是空间数据类型和运算符的标准
1.5.4 文件组织和索引
- GIS和SDBMS假设的区别
- 地理信息系统算法:数据集加载到主存储器中
- SDBMS:数据集位于辅助存储上
- SDBMS使用空间填充曲线和空间索引
- 有效搜索驻留在磁盘上的大型空间数据集
1.5.6 数据挖掘
- 空间数据的分析有多种类型
- 演绎查询,如搜索、排序、覆盖
- 归纳查询,如统计、相关、聚类、分类
- 数据挖掘是在大型空间数据库中对有趣的非重要模式进行的一种系统的半自动搜索
第二章
2.1 基础
- 数据集
- 逻辑上值或者数据库对象的集合
- 数据库
- 作为一个单元相互关联、管理和存储的信息的逻辑集合。用于多个数据集的存储。
- 数据模型
- 被表示在数据库中对数据元素/对象和它们之间关系的概念性的描述
数据模型包括符号以用于表达:
- 数据结构
- 完整性约束
- 约束表达了数据结构无法单独表达的规则
- 操作
- 提供改变和检索数据的接口
- 数据字典
- 数据库内容的描述,包括数据实体和属性代码定义。是元数据的一个重要元素
- 数据是透明的
- 透明意味着数据结构和其关系是被隐藏在数据库软件后的
- 当结构、关系或者媒介变化时,对软件应用的影响是最小的
- 不同的数据库使用需要不同类型的数据类型、结构和访问机制
- DBMS
- 提供对数据的输入、存储、操作、查询和恢复,用于多个数据库的存储
- DBMS的特征
- 安全、可靠、数据库完整性、标准、减少冗余、对存储和数据处理的有效性、并发性、与分布式系统的连接、与基础结构的独立性或透明度、可链接到数据库中的其他信息、创建用户视图的灵活性、用户友好性、访问元数据
- 基础的DBMS组件
- 查询语言/接口
- 查询编译器/优化器
- 数据库处理机
- 系统目录
- 存储管理器
- 系统工具(备份、加载、监测)
- 结构化或标准查询语言
- 源于SEQUEL
- 事务管理
- 事务是用户与DBMS交互的基本单元
- 插入
- 更新
- 删除
- 检索
- 事务是用户与DBMS交互的基本单元
- 恢复的控制与并发问题
- 同时事务的可能问题
- 原子性-所有的操作要么都有作用,要么都没有作用
- 独立性-操作不受其他同步事务的影响
- 数据库提交-事务完成的信号
- 回滚-恢复数据库的事务前状态
- 数据库设计和实现
- 需求分析
- 概念数据模型
- 逻辑模型-考虑DBMS和底层的数据模型
- 物理模型或实现-考虑物理存储和运算环境
- 建模方法和数据库模型
- 关系模型
- 面向对象模型
- 网状模型
- 层次模型
- 演绎模型
2.2 概念数据模型
- 概念数据模型
- 结构、数据类型和关系的表达,一幅静态的图像
- 动态或操作行为的表达
- 数据库完整性约束的表达
- 系统元数据的来源
- 一种向用户描述系统的工具
- 模型方法
- 实体关系模型
- Entity-relationship diagrams:即ER图,用于描不同实体类型的关系
- 关系类型将一个或多个实体类型与某些属性连接起来
- 关系表中包含数据(一个关系即一张表)
- 关系模式中定义关系
- 数据库模式是一组关系模式(关系模式:关系名(属性1,属性2,…)
- 关系型数据库是关系的集合
- 元组的顺序不重要(元组即关系表中的一行)
- 关系中的每个数据应该是不可分割的-原子性
- 当所有的数据都满足原子性的时候,我们即称此关系被归一化,归一化使得数据库能够向理想的设计靠近,如简单和无冗余
- E-R图被广泛使用
- 表达模型之间联系的优秀的方法
- 容易转变成为关系逻辑模型
- 模型组织方面还存在着一些不足
- 简单与复杂
- 利用E-R对空间信息进行建模
- 实体:节点、弧段、区域
- 属性:节点、弧段、区域id
- 联系:束缚、开始、结束
- 子类型
- SQL语言-数据定义
- 允许创建、更改和删除模式
- 允许定义域
- 字符串、整数,…
- 默认值
- 允许值的限制或范围
- 标识符(实体完整性)
- 参照完整性
- SQL语言-数据操纵
- 允许填充、更新、检索和删除数据库中的记录
- 总结
- 关系的大小和数量之间的权衡
- 大型的关系需要较少的连接,但可能包含冗余的信息
- 冗余信息可能会导致完整性问题且浪费空间
- 正确构造所需的规范化
- 规范化可将关系分解为可管理和有意义的组件
- 规范化程度越高,信息完整性越好,但也会导致额外的开销
- 经验法则是,每个实体和关系都应该是自己的关系
- 简单
- 正式定义
- 广泛使用
- 并不是所有数据库应用的解决方法
- 关系的大小和数量之间的权衡
- 扩展的实体关系模型
- 面向对象的模型
- 基础
- 既有静态的数据表达形式又有动态的
- E-R图只是静态的
- 对象的动态行为由对象上允许的操作(或方法)表示
- 对象 = 属性 + 功能
- 对象通过消息彼此请求服务
- 具有类似行为的对象被分为一类
- 对象类型的实现(以数据结构和方法的形式)称为类
- 既有静态的数据表达形式又有动态的
- 基础
- 实体关系模型