地理空间数据库复习笔记:概论、关系模型与关系代数

我的GIS/CS学习笔记:https://github.com/yunwei37/ZJU-CS-GIS-ClassNotes
<一个浙江大学本科生的计算机、地理信息科学知识库 >

Lecture 1 地理空间数据库概论

关系数据库基本概念

关系数据库原理由埃德加·科德(Edgar Codd)于1970年提出:

关系数据库将数据操作从具体的计算软件模型和物理存储模式中独立出来,只需了解数据间的逻辑关系,就可以通过数据库操作语言来管理和分析数据

数据模型

数据模型是用来描述数据、 组织数据和对数据进行操作的模型

  • 数据结构 - 静态特性

  • 数据操作 - 动态特性

  • 完整性约束 - 完整性约束条件

  • 概念数据模型(conceptual model)独立于计算机系统, 用来描述一个特定组织所关心的信息结构, 是按用户的观点来对数据和信息建模, 是对企业主要数据对象的基本表示和概括性描述, 主要用于数据库设计

    • 概念数据模型与DBMS无关
  • 逻辑数据模型(logical model)直接面向数据库的逻辑结构, 通常有一组严格定义的, 无二义性的语法和语义的数据库语言, 人们可以用这种语言来定义、 操纵数据库中的数据

    • 逻辑数据模型与DBMS有关, DBMS以所支持的逻辑数据模型来分类
    • 层次模型
    • 网状模型
    • 关系模型
  • 物理数据模型(physical model)是对数据最低层的抽象, 它᧿述数据在磁盘或磁带上的存储方式和存取方法, 是面向计算机系统的

层次模型

  • 满足下面两个条件的基本层次联系的集合为层次模型
    • 有且只有一个结点没有双亲结点,这个结点称为根结点
    • 根以外的其它结点有且只有一个双亲结点
  • 特点
    • 只能直接处理一对多的实体联系
    • 任何记录值只有按其路径查看时,才能显出它的全部意义,没有一个子女记录值能够脱离双亲记录值而独立存在
  • 网状模型
    • 网状模型允许多个结点没有双亲结点
    • 网状模型允许结点有多个双亲结点
    • 网状模型允许两个结点之间有多种联系(复合联系)
  • 关系模型
    • 关系数据模型的主要优点是
      • 简单:一个数据库由多个关系组成,每一个关系就是一个规范化了的二维表,关系模型中的许多概念与二维表是一一对应的
      • 易访问:可以使用高级的数据查询语言构造出复杂的查询,对数据库中的数据进行访问

关系数据库系统的三级模式结构

模式(schema)定义或描述一个数据集合

  • 模式(逻辑模式)
    • 用逻辑数据模型对数据库中全部数据的逻辑结构和特性的描述,是数据库所有用户的公共数据视图
  • 外模式(子模式或用户模式)
    • 对用户所用到的那部分数据的描述(不同用户的外模式不一定相同)
  • 内模式(存储模式)
    • 数据物理结构和存储方式的描述,是数据在数据库内部的表现方式(是B+树结构存储还是hash方法存储,是否压缩、是否建立索引…)
  • 外模式/模式映象
    • 定义外模式与模式之间的对应关系,每一个外模式都对应一个外模式/模式映象
  • 模式/内模式映象
    • 模式/内模式映象定义了数据的逻辑结构与存储结构之间的对应关系

基于模式的数据分类:

  • 结构化数据 (Structured)
  • 半结构化数据 (Semi-Structured)
  • 非结构化数据 (Unstructured)

空间数据库基本概念

  • 空间数据库:以空间目标作为存储对象的专业数据库
  • 空间数据:分为矢量数据和栅格数据
  • 矢量数据:用点、线、面等基本空间要素来表示人们赖以生存的自然世界的数据
  • 栅格数据:把地理空间中的事物和现象作为连续的变量或体看待
  • 空间实体:不可再分的最小单元现象,一般是矢量数据:对存在于这个自然世界中地理实体的抽象
  • 空间关系 -> 拓扑关系 (topology) 表示点、线、多边形等实体之间的空间联系

空间数据主要具有以下重要特征:

  • 空间特征:
    • 空间对象隐含了空间分布特征
    • 空间数据组织需要考虑它的空间分布特征
    • 除了属性索引外,还需要建立空间索引
  • 非结构化特征:
    • 关系数据库中数据记录是结构化的
      • 结构化数据:满足关系模式的范式基本要求,可以用二维表结构来逻辑表达的数据
      • 非结构化数据:不方便用数据库二维逻辑表来表现的数据,包括文本、图片、XML、HTML、音频、视频
    • 空间数据是一种非结构化数据:
      • 空间实体是不定长的,例如一条弧段可能包含两对坐标点,也有可能10万对坐标点
      • 空间实体是非原子的,有的甚至是嵌套的,例如一个多边形可能包含多条弧段
    • 通用的关系数据库管理系统难以直接管理空间数据
  • 空间关系特征
    • 空间数据包括空间坐标和拓扑关系
      • 方便空间数据的查询和空间分析(几何对象模型和空间网络模型) 
    • 但给空间数据的一致性和完整性维护增加了复杂性
  • 时态特征
    • 反映地理实体的状态和演变过程的重要组成部分
    • 现有的SDB只是描述数据的瞬时状态,基本不具有管理空间数据的时间动态性
  • 多尺度特征:
    • 空间多尺度是指根据地学过程或地理地球系统中各部分规模的大小,可分为不同的层次
    • 时间多尺度是指地学过程或地理特征具有一定的自然节律性,其时间周期长短不一

空间数据库的要求:

  • 按一定的数据模型组织、描述和存储,具有较小的冗余度、较高的数据独立性和易扩展性,并可为各种用户共享

空间数据库三大要素:

  • 空间数据(Spatial Data Type)
  • 空间分析(Spatial Analysis)
  • 空间索引(Spatial Indexing)

空间数据库的特点:

  • 数据量大(要求在二维空间上划分块或图幅、在垂直方向上划分层来进行组织)
  • 空间数据与属性数据集合
  • 应用广泛

空间数据库管理系统(SDBMS):由空间数据库及其管理软件、应用软件组成,是存储介质、处理对象和管理系统的集合体

空间数据库与相关学科的关系

三种不同的视角:

  • 地图学视角 (Map View):认为GIS来源于现代的地图学, GIS看作是一个地图处理与显示系统。 强调系统能生成出高质量的地图和表格
  • 数据库视角 (Database View):强调GIS应具有良好设计和实现的数据库系统,在这个系统中可以使用各种地理数据进行复杂的分析。 强调GIS首先是一个信息系统,它主要受到以数据库技术为代表的计算机技术的影响
  • 空间分析视角 (Spatial Analysis View):强调通过空间分析和建模,得到有价值的信息,最后将结果写进新的数据集。强调GIS的地理特性,认为GIS本质是一个地理系统,主要受1950年代兴起的地理学计量化革命的影响

空间数据库是GIS的核心,是GIS发展的技术支柱,是地理信息系统领域理论性和技术性都较强的学科分支

空间数据管理技术的产生与发展

  1. 文件系统:20世纪50年代-70年代
  2. 文件关系混合系统:20世纪80年代
  3. 空间数据库引擎:90s
  4. 对象关系型数据库管理系统:
    • 支持SQL,具有良好的通用性
    • 具有面向对象特性,支持复杂对象及其行为
    • 能够直接存储和管理非结构化的空间数据

现有空间数据库标准简介

  • 开放地理空间信息协会 (Open Geospatial Consortium, OGC)
    • 地理信息简单要素的SQL实现规范
    • Simple Feature Access SQL, SFA SQL
  • 国际标准化组织/国际电工委员会第一联合技术委员会/数据管理和交换分技术委员会 (ISO/IEC JTC1 SC32)
    • SQL多媒体及应用包的第三部分 (SQL Multimedia Part3: Spatial, SQL/MM)

差异:

  • SFA SQL在标记文本类型、空间数据存储实现上比SQL/MM定义的更宽泛
  • SQL/MM涉及了SFA SQL尚未涉及的拓扑数据结构、网络模型等方面的内容

现有空间数据库管理系统产品简介

  • Oracle Spatial
  • DB2 Spatial Extender
  • SQL Server Spatial 2008
  • PostGIS
  • MySQL Spatial

Lecture 2 关系模型与关系代数

关系模型

关系模型是一种数据模型, 它和一般的数据模型一样, 由如下三部分组成:

  • 关系数据结构
  • 关系操作集合
  • 关系完整性约束

关系数据结构

  • 单一的数据结构 - 关系
  • 数据的逻辑结构 - 二维表
  • 关系模型采用关系 (Relation)作为数据结构, 直观地讲, 关系就是简单的表 (Table)

定义:

  • 域 (Domain)是一组具有相同数据类型的值的集合
  • 给定一组域的笛卡尔积:
    • 元素中的每一个值di叫作一个分量 (Component)
  • 属性 (Attribute): 关系中的一列即为一个属性
  • 域: 属性的取值范围称为该属性的域
  • 码:可以唯一确定一个元组的最小属性集合称为候选码 (CandidateKey), 或简称为码 (Key)
  • 分量:元组中的一个属性值
  • 关系模式 (Relation Schema): 对关系的描述,一般表示为:关系名(属性1,属性2, …,属性n)
  • 关系实例 (Relation Instance):关系的内容

一个关系由关系名、关系模式和关系实例组成,分别对应于表名、表头和表中的数据。关系名和关系模式是相对变化的,关系实例会随时间而发生变化。

关系可以有三种类型:

  • 基本关系(通常又称为基本表或基表) , 基本表是实际存在的表,是实际存储数据的逻辑表示
  • 查询表,是查询结果对应的表
  • 视图表,是由基本表或其他视图表导出的表,是虚表,不对应实际存储的数据

关系操作

关系操作的特点: 集合操作方式, 即操作的对象和结果都是集合

常用的关系操作:

  • 查询
    • 选择、 投影、 连接、 除、 并、 交、 差
  • 数据更新
    • 插入、 删除、 修改

关系数据语言的种类:

  • 关系代数语言:用对关系的运算来表达查询要求
  • 关系演算语言:用谓词来表达查询要求
  • 介于关系代数和关系演算之间的语言, 即结构化查询语言SQL

关系完整性约束

关系模型的完整性规则是对关系的某种约束条件。

关系模型中三类完整性约束:

  • 实体完整性
  • 参照完整性
  • 用户定义的完整性

实体完整性和参照完整性是关系模型必须满足的完整性约束条件,被称作是关系的两个不变性。

  • 实体完整性规则 (Entity Integrity):
    • 若属性A是基本关系R的主属性,则任何一个元组在属性A上不能取空值
  • 参照完整性
    • 关系间的引用
    • 外码
    • 参照完整性规则

关系代数

定义:

  • 一种抽象的查询语言
  • 用对关系的运算来表达查询
  • 结构化查询语言的数学理论基础

关系代数运算的三个要素:

  • 运算对象:关系
  • 运算结果:关系
  • 运算符:四类
    • 集合运算符
    • 算术比较符
    • 逻辑运算符
    • 专门的关系运算符

关系代数运算符:

  • 传统的集合运算
    • 广义笛卡尔积
  • 专门的关系运算
    • 选择:从关系中选择若干行
    • 投影:从关系中选择若干列
    • 连接:从两个关系的笛卡尔积中选取属性间满足一定条件的元组
      • 等值连接 (Equijoin)
      • 自然连接 (Natural join)
      • 除运算可以这样来理解:假设有两个关系A和B,其中A只有两个属性X和Y, B只有一个属性Y(和关系A中的Y属性具有相同的域),对于A中的每一个x(属性X的取值) 所对应的y(属性Y的取值)集合,看它是否包含B中所有的y值,如果包含,则x属于A÷B的结果集
  • 重命名

作业:

  • 查找’地理信息科学’专业选修过得课程名:

    答案: Π c n a m e ( σ d e p t = ′ 地 理 信 息 科 学 ′ ( S t u d e n t ) ⋈ S C ⋈ ( ρ c i d , c n a m e , c r e d i t ( C o u r s e ) ) ) \Pi_{cname} (\sigma_{dept='地理信息科学'}(Student) \bowtie SC \bowtie (\rho_{cid, cname, credit}(Course))) Πcname(σdept=(Student)SC(ρcid,cname,credit(Course)))

  • 查找至少选修一门4学分及以上课程的学生学号

    Π s i d ( σ c r e d i t > = 4 ( C o u r s e ) ⋈ S C ⋈ S t u d e n t ) \Pi_{sid}(\sigma_{credit>=4}(Course)\bowtie SC \bowtie Student ) Πsid(σcredit>=4(Course)SCStudent)

  • 查找学生’张三’或‘李四’选修过的课程名

    Π c n a m e ( ( σ n a m e = ′ 张 三 ′ ( S t u d e n t ) ∪ σ n a m e = ′ 李 四 ′ ( S t u d e n t ) ) ⋈ S C ⋈ ( ρ c i d , c n a m e , c r e d i t ( C o u r s e ) ) ) \Pi_{cname}((\sigma_{name='张三'}(Student) \cup \sigma_{name='李四'}(Student))\bowtie SC \bowtie (\rho_{cid, cname, credit}(Course))) Πcname((σname=(Student)σname=(Student))SC(ρcid,cname,credit(Course)))

  • 查找学生’张三’和’李四’都选修过的课程名

    Π c n a m e ( ( σ n a m e = ′ 张 三 ′ ( S t u d e n t ) ⋈ S C ⋈ ( ρ c i d , c n a m e , c r e d i t ( C o u r s e ) ) ) ∩ ( σ n a m e = ′ 李 四 ′ ( S t u d e n t ) ⋈ S C ⋈ ( ρ c i d , c n a m e , c r e d i t ( C o u r s e ) ) ) ) \Pi_{cname}((\sigma_{name='张三'}(Student)\bowtie SC \bowtie (\rho_{cid, cname, credit}(Course))) \cap (\sigma_{name='李四'}(Student)\bowtie SC \bowtie (\rho_{cid, cname, credit}(Course)))) Πcname((σname=(Student)SC(ρcid,cname,credit(Course)))(σname=(Student)SC(ρcid,cname,credit(Course))))

相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页