《空间数据库原理》笔记
myetyet

2021年2月28日更新:由于课程内容变化,重新修订本笔记,同时保留原内容于引用块。

数据库系统概论

  • 数据库基本概念

    • 数据
      • 定义
        • 人们用来反映客观世界而记录下来的可以鉴别的数字、字母或符号,可以存储在某一种媒体上。
    • 数据库(DB)
      • 定义
        • 长期存储在计算机内、有组织、可共享、可以表现为多种形式的数据集合。
      • 特点
        • 按一定的数据模型组织、描述和存储
        • 具有较小的冗余度
        • 具有较高的数据独立性和易扩展性
        • 可被用户共享
    • 数据库管理系统(DBMS)
      • 定义
        • 位于用户与操作系统之间的一层数据管理软件。
      • 主要功能
        • 数据定义
        • 数据操作
        • 数据库运行控制
        • 数据库的建立和维护
    • 数据库系统(DBS)
      • 定义
        • 拥有数据库基础支持的计算机系统。
      • 特点
        • 数据的结构化
        • 最小的冗余度
        • 数据的共享
        • 数据与程序独立
        • 数据的安全性和完整性
  • 数据库系统的组成

    • 硬件与软件
    • 数据库管理系统
    • 数据库系统
    • 数据库管理员
    • 用户
  • 三级模式与二级映射

    • 三级模式
      • 外模式(子模式、用户模式)
        • 数据库用户能看见和使用的局部数据的逻辑结构和特征的描述
        • 数据和用户的数据视图
        • 与某一应用有关的数据的逻辑表示
        • 一个应用程序只能使用一个外模式
      • 模式(逻辑模式、概念模式)
        • 数据库中全体数据的逻辑结构和特征的描述
        • 所有用户的公共数据视图
        • 数据库系统模式结构的中间层
        • 一个数据库只有一个模式
      • 内模式(存储模式)
        • 数据库在物理存储器上具体实现的描述
        • 数据在数据库内部的表示方法
        • 对数据物理结构和存储方式的描述
        • 一个数据库只有一个内模式
    • 二级映射
      • 外模式/模式映射
        • 定义了外模式与模式之间的对应关系
        • 把用户数据库与概念数据库联系起来
        • 保证了数据库的逻辑独立性
      • 模式/内模式映射
        • 定义了数据全局逻辑结构与存储结构之间的对应关系
        • 把概念数据库与物理数据库联系起来
        • 保证了数据与程序的物理独立性

空间数据库

  • 空间数据

    • 定义
      • 空间数据是对空间事物的描述,实质上就是指以地球表面空间位置为参照,用来描述空间实体的位置、形状、大小及其分布特征诸多方面信息的数据。
    • 特征
      • 时空特征
      • 多维特征
      • 多尺度性
        • 空间多尺度
        • 时间多尺度
      • 海量数据特征
    • 类型
      • 概括性
        • 地图数据
        • 影像数据
        • 地形数据
        • 属性数据
      • 4D产品
        • DEM(数字高程模型)
        • DLG(数字线划图)
        • DOM(数字正射影像图)
        • DRG(数字栅格地图)
  • 空间数据库

    • 定义
      • 空间数据库是描述与特定空间位置有关的真实世界对象的数据集合,这些对象称为空间参考对象。空间数据库既要能处理空间参考对象类型,也要能处理非空间参考对象类型。
    • 作用
      • 空间数据处理与更新
      • 海量数据存储与管理
      • 空间分析与决策
      • 空间信息交换与共享
    • 问题
      • 数据共享问题
      • 数据瓶颈问题
      • 数据安全问题
    • 特点
      • 综合抽象特征
      • 非结构化特性
      • 分类编码特征
      • 复杂性与多样性
    • 与传统数据库的差异方面
      • 信息描述
      • 数据管理
      • 数据操作
      • 数据更新
      • 服务应用

关系数据库模型

  • 数据模型

    • 定义
      • 严格定义的一组概念的集合。
    • 三要素
      • 数据结构
      • 数据操作
      • 数据的约束条件(数据完整性)
  • 概念模型

    • 定义
      • 也称信息模型,是人们为正确直观地反映客观事物及其联系,对研究的信息世界建立的一个抽象的模型,是现实世界到信息世界的第一层抽象,是数据库设计人员和用户之间进行交流的语言。
  • 实体之间的联系

    • 一对一联系
    • 一对多联系
    • 多对多联系
  • 关系模型及其相关概念

    • 关系模型:实体和联系均用二维表来表示的数据模型。
    • 关系模式:二维表的表头所在行,又称表的框架或记录类型。
    • 关系:对应于关系模式的一个具体的表,又称表。
    • 元组:关系中的每一行(不含表头),又称行或记录。
    • 属性:关系中的每一列,又称列。
  • 关系模型优缺点

    • 优点
      • 由于实体和联系都用关系描述,保证了数据操作语言的一致性。
      • 结构简单直观,用户容易理解。
      • 有严格的设计理论。
      • 存取路径对用户透明,从而具有更高的独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作量。
    • 缺点
      • 由于存取路径对用户透明,导致查询速度慢,效率低于非关系型数据模型。
  • 关系的性质

    • 列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。
    • 关系中的任意两个元组不能相同。
    • 关系中的相同的列可以出自相同的域,但必须有不同的属性名。
    • 关系中行和列的顺序可以任意互换,不会改变关系的意义。
    • 关系中的每一个分量都必须是不可分的数据项,元组分量具有原子性。
  • 关系的完整性

    • 实体完整性
      • 定义:若属性是基本关系的主属性,则属性不能取空值。
      • 理解:基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。
      • 意义:保证了关系中主码属性值的正确性。
    • 参照完整性
      • 定义:设是基本关系的一个或一组属性,但不是关系的码,若与一基本关系的主码相对应,则称的基本关系的外码。其中基本关系称为参照关系,基本关系称为被参照关系或目标关系。
      • 理解:表的外码必须为另一个表主码的有效值,或为空值。
      • 意义:定义了外码与主码之间的引用规则,保证了关系之间能够进行正确的联系。
    • 用户定义的完整性
      • 定义:用户按照实际的数据库应用系统运行环境要求,针对某一具体关系数据库定义的约束条件。
      • 理解:反映的是某一聚义应用所涉及的数据必须满足的语义要求。
  • 关系代数

    • 定义
      • 关系代数是一种抽象的查询语言,用对关系的运算来表达查询。每个运算都以一个或者多个关系(对象)作为它的运算对象,并生成另外一个关系作为该运算的查询结果。
    • 关系代数的运算
      • 传统的集合运算
        • 并:
        • 差:
        • 交:
        • 广义笛卡尔积:
      • 专门的关系运算
        • 选择
          • 定义
          • 理解
            • 从关系中找出满足逻辑表达式的元组。
            • 是从行的角度进行的运算。
        • 投影
          • 定义
          • 理解
            • 从关系中挑出某些属性构成新的关系,结果是一个表的列的子集,结果将取消某些列产生的重复元组。
            • 投影之后不仅取消了某些列,而且还有可能取消某些元组。
            • 是从列的角度进行的运算。
        • 连接
          • 定义
            • 连接:
            • 等值连接:
            • 自然连接:
          • 理解
            • 将两个或多个关系连接在一起,形成一个新的关系。
            • 连接运算的结果是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。
        • 象集
          • 定义
            • 若关系为互为补集的两个属性集,当时,中的象集为
          • 理解
            • 表示中属性组上值为的诸元组在属性组上分量的集合。
            • 本质为一次选择运算和一次投影运算。
            • 结果等于所有值等于的元组,然后在上的投影,即
          • 定义
            • 若有关系,则
          • 理解
            • 除运算得到的是一个新关系中满足下列条件的元组在属性列上的投影:元组在上分量值的象集包含在上投影的集合。
            • 是从行和列的角度进行的运算。

空间信息模型

  • 空间对象
    • 定义
      • 对地理现象进行观察、抽象、综合取舍而得到的实体目标。
    • 类型
      • 线
  • 空间数据结构

    • 定义
      • 空间数据结构是指适用于计算机系统存储、管理和处理的地学图形的逻辑结构,是地理实体(空间对象)的空间排列方式和相互关系的抽象描述,它是对数据的理解和解释。
    • 分类
      • 矢量结构
      • 栅格结构
  • 空间信息模型

    • 对象模型:将研究的整个地理空间看成一个空域,地理现象和空间实体作为独立的对象分布在该空域中,对象模型强调地理空间中的单个地理现象。按照其空间特征分为点、线、面、体四种基本对象。
    • 网络模型:网络是由一系列节点和环链组成的,在本质上,网络模型可看成对象模型的一个特例,它是由点对象和线对象之间的拓扑空间关系构成的。
    • 场模型:把地理空间中的现象作为连续的变量或体来看待,如大气污染程度、地表温度、土壤湿度、地形高度以及大面积空气和水域的流速和方向等。
  • 空间数据组织(结构)

    • 矢量数据结构
      • 定义
        • 矢量数据结构是利用欧几里得几何学中的点、线、面及其组合体来表示地理实体空间分布的一种数据组织方式。
      • 特点
        • 点线面单体化
        • 属性信息丰富
        • 编辑更新方便
        • 公共边界信息冗余
        • 点线面拓扑关系维护复杂
    • 栅格数据结构
      • 定义
        • 栅格数据结构是指将空间分割成有规则的网格,称为栅格单元,在各个栅格单元上给出相应的属性值来表示地理实体的一种数据组织形式。
      • 特点
        • 地理要素表达直观
        • 数据结构相对简单
        • 定位精度比矢量低
        • 拓扑关系缺失
        • 局部数据更新复杂
    • 数字高程模型数据组织
      • 定义
        • 以一定范围内规则格网点的平面坐标()及其高程()的数据集来描述区域地貌形态的空间分布
      • 分类
        • 格网数据组织
        • 不规则三角网模型
    • 地物三维模型数据组织
      • 定义
        • 三维矢量模型是二维中点、线、面矢量模型在三维中的推广,它将三维空间中的实体抽象为三维空间中的点、线、面、体四种基本元素,然后以这四种基本几何元素的集合来构造更复杂的对象。
  • 空间数据模型

    • 定义
      • 地理空间数据模型是关于现实世界中空间实体分布、发展变化及其相互联系的概念框架,是空间数据库系统中关于空间数据和数据之间联系逻辑组织形式的表示,是有效地组织、存储、管理各类空间数据的基础。它以抽象的形式描述系统的运行与信息流,为描述空间数据的组织和设计空间数据库模型提供支持。
    • 分类
      • 多尺度空间数据模型
      • 地理要素分层模型
      • 面向对象空间数据模型
      • 时空数据模型
        • 连续快照模型
        • 基态修正模型
        • 时空复合模型
        • 时空立方体模型

结构化查询语言

  • SQL语言基本知识
    • 定义
      • 结构化查询语言简称SQL,是一种数据库查询和设计程序语言,用于存取数据库以及查询、更新和管理关系数据库系统。
    • 组成
      • 数据定义语言(DDL)
      • 数据操作语言(DML)
      • 数据控制语言(DCL)
    • 特点
      • 综合统一
      • 高度非过程化
      • 面向集合的操作方式
      • 以同一种语言结构提供多种使用方式
      • 以简捷的自然语言作为操作语言
  • 定义基本表

    • 基本语法
      1
      2
      3
      4
      5
      6
      CREATE TABLE <表名> (
      <列名> <数据类型> [列级完整性约束条件],
      <列名> <数据类型> [列级完整性约束条件],
      ...,
      [表级完整性约束条件]
      );
    • 参数说明
      • 常用数据类型
        • int
        • decimal(数据长度, 小数位)
        • datetime
        • char(字符串固定长度)
      • 常用完整性约束
        • 唯一性约束:列级UNIQUE:不能取相同值但允许多个空值
        • 非空值约束:列级NOT NULL:不能取空值
        • 主键约束:列级PRIMARY KEY、表级PRIMARY KEY (列1,列2,...,列n)
    • 例:建立一个“学生选课”表SC,它由学号Sno、课程号Cno,修课成绩Grade组成,其中(Sno, Cno)为主码。
      1
      2
      3
      4
      5
      6
      CREATE TABLE SC (
      Sno char(5),
      Cno char(3),
      Grade decimal(4, 1),
      PRIMARY KEY (Sno, Cno)
      );
  • 增加字段

    • 基本语法
      1
      ALTER TABLE <表名> ADD <新列名> <数据类型> [列级完整性约束条件];
    • 例:向Stu表增加联系电话Stel列,数据类型为位字符型。
      1
      ALTER TABLE Stu ADD Stel char(11);
  • 修改字段类型

    • 基本语法
      1
      ALTER TABLE <表名> ALTER COLUMN <列名> <新数据类型> [新列级完整性约束条件];
    • 例:修改Stu表成绩Sscore字段为整数型。
      1
      ALTER TABLE Stu ALTER COLUMN Sscore int;
  • 删除字段

    • 基本语法
      1
      ALTER TABLE <表名> DROP COLUMN <列名>;
  • 删除表

    • 基本语法
      1
      DROP TABLE <表名>;
  • 创建索引

    • 基本语法
      1
      2
      3
      4
      5
      CREATE [UNIQUE] [CLUSTERED] INDEX <索引名> ON <表名> (
      <列名> [<次序>],
      <列名> [<次序>],
      ...
      );
    • 参数说明
      • UNIQUE:此索引的每一个索引值只对应唯一的数据记录
      • CLUSTERED:建立聚簇索引
      • 次序
        • ASC:升序(默认值)
        • DESC:降序
    • 例:在Stu表上建立一个学号Sno字段的降序聚簇索引,索引名为Sno_Index
      1
      2
      3
      CREATE CLUSTERED INDEX Sno_Index ON Stu (
      Sno DESC
      );
  • 删除索引

    • 基本语法
      1
      DROP INDEX <索引名>;
  • 查询语句

    • 基本语法
      1
      2
      3
      4
      5
      SELECT [重复值指示] <目标列表达式> [[AS] <别名>], <目标列表达式> [[AS] <别名>], ...
      FROM <表名或视图名>, <表名或视图名>, ...
      [WHERE <条件表达式>]
      [GROUP BY <分组列名> [HAVING <分组条件表达式>]]
      [ORDER BY <排序列名> [<次序>], <排序列名> [<次序>], ...];
    • 参数说明
      • 重复值指示
        • ALL:不取消重复行(默认值)
        • DISTINCT:取消重复行
      • 次序
        • ASC:升序(默认值)
        • DESC:降序
  • 插入数据

    • 基本语法
      1
      2
      INSERT INTO <表名> [(<属性列>, <属性列>, ...)]
      VALUES (<常量>, <常量>, ...);
  • 修改数据

    • 基本语法
      1
      2
      3
      UPDATE <表名>
      SET <列名>=<表达式>, <列名>=<表达式>, ...
      [WHERE <条件表达式>];
  • 删除数据

    • 基本语法
      1
      DELETE FROM <表名> [WHERE <条件表达式>];
  • 定义视图

    • 基本语法
      1
      2
      CREATE VIEW <视图名> [<列名>, <列名>, ...]
      AS <查询子语句> [WITH CHECK OPTION];
    • 参数说明
      • 查询子语句
        • 子查询可以是任意复杂的SELECT语句,但通常不允许含有GROUP BY子语句和DISTINC短语。
      • WITH CHECK OPTION
        • 防止用户通过视图对数据进行更新、插入、删除操作。
        • 当尝试更新、插入、删除操作时,DBMS会检查视图中定义的条件,若不满足视图定义中的谓词条件(子查询中的条件表达式),则拒绝执行。
    • 例:建立XSheng表上所有院系YXi计算机学院学生信息(学号XHao、姓名XMing、性别XBie、年龄NLing)的视图Jsj_Studentinfo
      1
      2
      3
      CREATE VIEW Jsj_Studentinfo [(XHao, XMing, XBie, NLing)]
      AS SELECT XHao, XMing, XBie, NLing FROM XSheng WHERE YXi = '计算机学院'
      [WITH CHECK OPTION];
  • 删除视图

    • 基本语法
      1
      DROP VIEW <视图名>;

空间查询语言

  • 地域实例上的OGC方法

    • STArea()
    • STBuffer(distance)
    • STContains(other_geography)
    • STCrosses(other_geography)
    • STDisjoint(other_geography)
    • STIntersects(other_geography)
    • STLength()
    • STTouches(other_geometry)
    • STWithin(other_geometry)

关系模式的规范化理论

  • 三个方面

    • 数据依赖:核心、数据之间的联系
    • 范式:关系模式的标准
    • 模式设计方法:自动化设计的基础
  • 一个冗余和三个异常

    • 数据冗余
    • 插入异常
    • 删除异常
    • 修改异常
  • 函数依赖(FD)

    • 定义及符号
      • 是属性集上的关系模式,的子集,若对于的任意一个可能的关系中不可能存在两个元组在上的属性值相等但在上的属性值不等,则称函数确定(或称函数依赖于),其中称为决定因素,记作
      • 非平凡函数依赖:
      • 平凡函数依赖:
      • 互相依赖:
      • 不依赖:
    • 完全函数依赖
      • 定义:在中,若且对于的任何一个子集,都有,则称完全函数依赖,记作
      • 理解:的真子集均不能确定
    • 部分函数依赖
      • 定义:在中,若不完全依赖于,则称部分函数依赖,记作
    • 传递函数依赖
      • 定义:在中,若,则有,称传递函数依赖于,记作
      • 备注:若,则直接函数依赖于;若,则
  • 码和属性

    • 候选码:设为关系模式中的属性或属性组,若,则称为的一个候选码。候选码常常简称为码。
    • 主码:若一个关系模式有多个候选码,则选定其中的一个做为主码。其两个性质为决定性()和最小性()。
    • 全码:由关系模式的所有属性构成码。
    • 外码:也称外部码,关系模式中属性或属性组并非的码,但是另一个关系模式的码,则称的外码。
    • 主属性:所有候选码中出现的属性。
    • 非主属性:不出现在任何候选码中的属性。
  • 范式

    • 定义
      • 范式是符合某一类满足一定要求的关系模式的集合。关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。
    • 第一范式
      • 定义:对于给定的关系,如果中每个属性都是不可再分的,则称关系属于第一范式,记作
      • 理解:大表不能套小表。
      • 意义:保证了原子性。
      • 问题:数据冗余度大、插入异常、删除异常、修改异常
    • 第二范式
      • 定义:若,且每一个非主属性完全依赖于码,则为第二范式,记作
      • 理解:不存在非主属性对码的部分依赖。
      • 意义:通过投影分解消除了部分依赖。
      • 问题:数据冗余度大、插入异常、删除异常、修改复杂
    • 第三范式
      • 定义:若,且每一个非主属性既不部分依赖于码,也不传递依赖于码,则为第三范式,记作
      • 理解:不存在非主属性对码的传递依赖。
      • 意义:消除了传递依赖。
    • BC范式
      • 定义:若,对于每一个),都包含码,即该关系中每一个决定因素都包含码,则为BC范式,记作
      • 推论:

数据库系统概论

  • 数据库基本概念

    • 数据管理技术演变
      • 人工管理阶段
      • 文件系统阶段
      • 数据库技术阶段
    • 数据库技术演变
      • 层次/网状系统
      • 关系系统
      • 新一代数据库系统家族
    • 数据
      • 定义
        • 人们用来反映客观世界而记录下来的可以鉴别的数字、字母或符号,可以存储在某一种媒体上。
      • 含义
        • 信息:描述事物特征的数据内容
        • 符号:存储在某一种媒体上的数据形式
    • 数据库(DB)
      • 定义
        • 长期存储在计算机内、有组织、可共享、可以表现为多种形式的数据集合。
      • 特点
        • 按一定的数据模型组织、描述和存储
        • 具有较小的冗余度
        • 具有较高的数据独立性和易拓展性
        • 可被用户共享
    • 数据库管理系统(DBMS)
      • 定义
        • 位于用户与操作系统之间的一层数据管理软件。
      • 主要任务
        • 科学有效地组织和存储数据
        • 高效地获取和管理数据
        • 接受和完成用户提出的访问数据的各种请求
      • 主要功能
        • 数据定义
        • 数据操作
        • 数据库运行控制
        • 数据库建立和维护
    • 数据库系统(DBS)
      • 定义
        • 拥有数据库基础支持的计算机系统。
      • 组成
        • 数据库
        • 数据库管理系统
        • 开发工具
        • 应用系统
        • 数据库管理员
        • 用户
      • 特点
        • 数据的结构化
        • 最小的冗余度
        • 数据的共享
        • 数据与程序独立
        • 数据的安全性和完整性
  • 数据库系统的组成
    • 硬件
    • 数据库系统(数据库管理员)
    • 数据库管理系统(数据库管理员)
    • 数据库应用系统(用户)
  • 数据库系统的结构

    • 最终用户角度
      • 集中式
      • 分布式
      • 客户/服务器
      • 并行结构
    • 数据库管理系统角度
      • 三级模式
        • 外模式(子模式、用户模式)
          • 数据库用户能看见和使用的局部数据的逻辑结构和特征的描述
          • 数据和用户的数据视图
          • 与某一应用有关的数据的逻辑表示
          • 一个应用程序只能使用一个外模式
        • 模式(逻辑模式、概念模式)
          • 数据库中全体数据的逻辑结构和特征的描述
          • 所有用户的公共数据视图
          • 数据库系统模式结构的中间层
          • 一个数据库只有一个模式
        • 内模式(存储模式)
          • 数据库在物理存储器上具体实现的描述
          • 数据在数据库内部的表示方法
          • 对数据物理结构和存储方式的描述
          • 一个数据库只有一个内模式
      • 二级映射
        • 外模式/模式映射
          • 定义了外模式与模式之间的对应关系
          • 把用户数据库与概念数据库联系起来
          • 保证了数据库的逻辑独立性
        • 模式/内模式映射
          • 定义了数据全局逻辑结构与存储结构之间的对应关系
          • 把概念数据库与物理数据库联系起来
          • 保证了数据与程序的物理独立性

空间数据库

  • 空间数据

    • 定义
      • 空间数据是对空间事物的描述,实质上就是指以地球表面空间位置为参照,用来描述空间实体的位置、形状、大小及其分布特征诸多方面信息的数据。
    • 特征
      • 时空特征
        • 空间特性:空间实体的空间位置及其与其他空间实体的空间关系
        • 属性特性:地学现象的数量、质量和分类等属性信息
        • 时态特性:地理数据采集或地理现象发生的时刻或时段
      • 多维特征
      • 多尺度性
        • 空间多尺度
        • 时间多尺度
      • 海量数据特征
  • 空间数据库

    • 定义
      • 空间数据库是描述与特定空间位置有关的真实世界对象的数据集合,这些对象称为空间参考对象。空间数据库既要能处理空间参考对象类型,也要能处理非空间参考对象类型。
    • 作用
      • 空间数据处理与更新
      • 海量数据存储与管理
      • 空间分析与决策
      • 空间信息交换与共享
    • 问题
      • 数据共享问题
      • 数据“瓶颈”问题
      • 数据安全问题
    • 特点
      • 综合抽象特征:空间数据的抽象性包括人为地取舍数据。
      • 非结构化特性:表达成一个空间对象的记录的数据项可能是变长的。
      • 分类编码特征:每一个空间对象都有一个分类编码,一种地物类型对应一个属性数据表文件。
      • 复杂性与多样性:空间数据源广、量大,时有类型不一致、数据噪声大的问题。
    • 与传统数据库的差异方面
      • 信息描述
      • 数据管理
      • 数据操作
      • 数据更新
      • 服务应用

数据模型

  • 数据模型

    • 定义
      • 严格定义的一组概念的集合。
    • 分类
      • 概念模型:按用户的观点进行数据信息建模,用于数据库设计。
      • 数据模型:按计算机系统的观点对数据建模,用户数据库管理系统设计。
    • 三要素
      • 数据结构
      • 数据操作
      • 数据约束条件(完整性)
  • 概念模型

    • 定义
      • 也称信息模型,是人们为正确直观地反映客观事物及其联系,对研究的信息世界建立的一个抽象的模型,是现实世界到信息世界的第一层抽象,是数据库设计人员和用户之间进行交流的语言。
    • 相关术语
      • 实体:客观存在并可相互区别的事物。
      • 属性:实体所具有的特征。
      • 域:属性的取值范围。
      • 实体型:用实体名及其属性名集合来抽象和刻画同类实体,如学生(学号,姓名,年龄,性别,院系,年级)
      • 实体集:具有相同属性的实体的集合。
      • 键(关键字、码):能够唯一地标识出一个实体集中每一个实体的属性或属性组。
      • 联系:现实世界中事物内部和事物之间是有联系的,这些联系在信息世界中反映为实体(型)内部和实体(型)之间的联系。
    • 实体之间的联系
      • 一对一联系
      • 一对多联系
      • 多对多联系
    • E-R模型
      • 实体:矩形
      • 属性:椭圆
      • 联系:菱形
  • 数据模型分类
    • 层次模型(树状)
    • 网状模型(网状)
    • 层次模型数据库性能优于关系模型数据库,不低于网状数据库。
    • 关系模型(见下)
    • 面向对象的模型
  • 关系模型

    • 定义
      • 实体和联系均用二维表来表示的数据模型。
      • 一张二维表由行和列组成,且每一列都是不可再分的数据项。
    • 基本概念
      • 关系模式(表的框架、记录类型):二维表的表头一行,即对关系结构的描述。
      • 关系(表):对应于关系模式的一个具体的表。
      • 元组(行、记录):关系中的每一行。
      • 属性(列、字段):关系中的每一列。
      • 属性名:给属性起的名字。
      • 属性域:关系中的每一属性所对应的取值范围。
      • 分量:元组的一个属性值。
      • 主键:关系模式中能唯一标识对应于该关系模式中任何一个元组的某个或某几个属性组成的属性组。
      • 外键(外码):某关系内,不是该关系的主键,但是另一关系的主键的某一属性组。
    • 完整性约束(见下一章)
      • 实体完整性
      • 参照完整性
      • 用户定义完整性
    • 优点
      • 由于实体和联系都用关系描述,保证了数据操作语言的一致性。
      • 结构简单直观,用户容易理解。
      • 有严格的设计理论。
      • 存取路径对用户透明,从而具有更高的独立性、更好的安全保密性,也简化了程序员的工作和数据库开发建立的工作量。
    • 缺点
      • 由于存取路径对用户透明,导致查询速度慢,效率低于非关系型数据模型。

关系数据库模型

  • 概述

    • 三要素
      • 关系数据结构
      • 关系操作集合
      • 关系完整性约束
    • 关系操作(操作对象和结果都是集合
      • 查询
        • 选择
        • 投影
        • 连接
      • 增加
      • 删除
      • 修改
    • 完整性约束
      • 实体完整性
      • 参照完整性
      • 用户定义的完整性
  • 关系数的数学定义

      • 定义
        • 一组具有相同数据类型的值的集合。
        • 域中数据的个数称为域的基数。
      • 举例
        • 自然数集
    • 笛卡尔积
      • 定义
        • 给定一组域(可以有相同的域),则笛卡尔积为
        • 每个称为元组。
        • 元组中每一个值称为分量。
      • 举例
    • 关系
      • 定义
        • 笛卡尔积的子集称为在域上的关系,记作
        • 称为关系名。
        • 称为关系的度或目,该关系称为元关系(时称为单元关系)。
      • 举例
      • 相关概念
        • 属性:列的名字。
        • 候选码:关系中能唯一地标识一个元组的某一属性组。
        • 主码:若一个关系中有多个候选码,选定其中一个作为主码。
        • 主属性:主码的各个属性。
        • 非码属性:不包含在任何候选码内的属性。
        • 全码:关系模式的所有属性组是这个关系的候选码。
    • 关系的三种类型
      • 基本关系(基本表、基表):实际存在的表,是实际存储数据的逻辑表示。
      • 查询表:查询结果对应的表。
      • 视图表:由基本表或其他视图导出的表,是虚表,不对应实际存储的数据。
  • 关系的性质
    • 列是同质的,即每一列中的分量是同一类型的数据,来自同一个域。
    • 关系中的任意两个元组不能相同。
    • 关系中的相同的列可以出自相同的域,但必须有不同的属性名。
    • 关系中行和列的顺序可以任意互换,不会改变关系的意义。
    • 关系中的每一个分量都必须是不可分的数据项,元组分量具有原子性。
  • 关系模式
    • 定义
      • 对关系结构的描述称为关系模式。
    • 形式化表示
      • :关系名
      • :组成该关系的属性名集合
      • :属性的域
      • :属性向域的映像集合
      • :属性间数据的依赖关系
  • 关系的完整性

    • 实体完整性
      • 定义:若属性是基本关系的主属性,则属性不能取空值。
      • 理解:基本关系的所有主属性都不能取空值,而不仅是主码整体不能取空值。
      • 意义:保证了关系中主码属性值的正确性。
    • 参照完整性
      • 定义:设是基本关系的一个或一组属性,但不是关系的码,若与一基本关系的主码相对应,则称的基本关系的外码。其中基本关系称为参照关系,基本关系称为被参照关系或目标关系。
      • 理解:表的外码必须为另一个表主码的有效值,或为空值。
      • 意义:定义了外码与主码之间的引用规则,保证了关系之间能够进行正确的联系。
    • 用户定义的完整性
      • 定义:用户按照实际的数据库应用系统运行环境要求,针对某一具体关系数据库定义的约束条件。
      • 理解:反映的是某一聚义应用所涉及的数据必须满足的语义要求。
  • 关系代数

    • 定义
      • 关系代数是一种抽象的查询语言,用对关系的运算来表达查询。每个运算都以一个或者多个关系(对象)作为它的运算对象,并生成另外一个关系作为该运算的查询结果。
    • 关系代数的运算
      • 传统的集合运算
        • 并:
        • 差:
        • 交:
        • 广义笛卡尔积:
      • 专门的关系运算
        • 选择
          • 定义
          • 理解
            • 从关系中找出满足逻辑表达式的元组。
            • 是从行的角度进行的运算。
        • 投影
          • 定义
          • 理解
            • 从关系中挑出某些属性构成新的关系,结果是一个表的列的子集,结果将取消某些列产生的重复元组。
            • 投影之后不仅取消了某些列,而且还有可能取消某些元组。
            • 是从列的角度进行的运算。
        • 连接
          • 定义
            • 连接:
            • 等值连接:
            • 自然连接:
          • 理解
            • 将两个或多个关系连接在一起,形成一个新的关系。
            • 连接运算的结果是从两个关系的笛卡尔积中选取属性间满足一定条件的元组。
        • 象集
          • 定义
            • 若关系为互为补集的两个属性集,当时,中的象集为
          • 理解
            • 表示中属性组上值为的诸元组在属性组上分量的集合。
            • 本质为一次选择运算和一次投影运算。
            • 结果等于所有值等于的元组,然后在上的投影,即
          • 定义
            • 若有关系,则
          • 理解
            • 除运算得到的是一个新关系中满足下列条件的元组在属性列上的投影:元组在上分量值的象集包含在上投影的集合。
            • 是从行和列的角度进行的运算。
  • 关系演算

    • 定义
      • 用谓词来描述关系的构成(查询的结果)。按照谓词变元的不同分为元组关系演算和域关系演算,分别简称为元组演算和域演算。
    • 元组演算的等价规则

结构化查询语言

  • SQL特点

    • 综合统一。
    • 高度非过程化。
    • 面向集合的操作方式。
    • 以同一种语法结构提供两种使用方法。
    • 不是一个应用程序开发语言,只提供对数据库的操作能力,不能完成屏幕控制、菜单管理、报表生成等功能。
    • 书写简单,易学易用。
  • SQL组成

    • 数据定义语言(DDL)
    • 数据操作语言(DML)
    • 数据控制语言(DCL)
  • SQL与三级模式体系结构

关系模式的规范化理论

  • 三个方面

    • 数据依赖:核心、数据之间的联系
    • 范式:关系模式的标准
    • 模式设计方法:自动化设计的基础
  • 一个冗余和三个异常

    • 数据冗余
    • 插入异常
    • 删除异常
    • 修改异常
  • 函数依赖(FD)

    • 定义及符号
      • 是属性集上的关系模式,的子集,若对于的任意一个可能的关系中不可能存在两个元组在上的属性值相等但在上的属性值不等,则称函数确定(或称函数依赖于),其中称为决定因素,记作
      • 非平凡函数依赖:
      • 平凡函数依赖:
      • 互相依赖:
      • 不依赖:
    • 完全函数依赖
      • 定义:在中,若且对于的任何一个子集,都有,则称完全函数依赖,记作
      • 理解:的真子集均不能确定
    • 部分函数依赖
      • 定义:在中,若不完全依赖于,则称部分函数依赖,记作
    • 传递函数依赖
      • 定义:在中,若,则有,称传递函数依赖于,记作
      • 备注:若,则直接函数依赖于;若,则
  • 码和属性

    • 候选码:设为关系模式中的属性或属性组,若,则称为的一个候选码。候选码常常简称为码。
    • 主码:若一个关系模式有多个候选码,则选定其中的一个做为主码。其两个性质为决定性()和最小性()。
    • 全码:由关系模式的所有属性构成码。
    • 外码:也称外部码,关系模式中属性或属性组并非的码,但是另一个关系模式的码,则称的外码。
    • 主属性:所有候选码中出现的属性。
    • 非主属性:不出现在任何候选码中的属性。
  • 范式

    • 定义
      • 范式是符合某一类满足一定要求的关系模式的集合。关系数据库中的关系必须满足一定的要求。满足不同程度要求的为不同范式。
    • 第一范式
      • 定义:对于给定的关系,如果中每个属性都是不可再分的,则称关系属于第一范式,记作
      • 理解:大表不能套小表。
      • 意义:保证了原子性。
      • 问题:数据冗余度大、插入异常、删除异常、修改异常
    • 第二范式
      • 定义:若,且每一个非主属性完全依赖于码,则为第二范式,记作
      • 理解:不存在非主属性对码的部分依赖。
      • 意义:通过投影分解消除了部分依赖。
      • 问题:数据冗余度大、插入异常、删除异常、修改复杂
    • 第三范式
      • 定义:若,且每一个非主属性既不部分依赖于码,也不传递依赖于码,则为第三范式,记作
      • 理解:不存在非主属性对码的传递依赖。
      • 意义:消除了传递依赖。
    • BC范式
      • 定义:若,对于每一个),都包含码,即该关系中每一个决定因素都包含码,则为BC范式,记作
      • 推论:
  • 多值依赖(MVD)
    • 定义及符号
      • 在关系模式为全集的子集且)的任一关系中,如果存在元组,使得,且交换上的分量构成的新元组也在中,则称多值依赖于,记为
      • 非平凡多值依赖:
      • 平凡多值依赖:
    • 性质
      • 对称性:若,则
      • 传递性:若,则
      • 函数依赖是多值依赖的特殊情况:若,则
      • ,则
      • ,则
      • ,则
    • 与函数依赖的区别
      • 有效性
        • 上成立,则在包含的任一的子集成立。
        • 上成立,则在上一定成立,其中。反之则不然。若对于上成立,其中,则称的嵌入型多值依赖。
      • 包含性
        • 上成立,则对于任何均有成立。
        • 上成立,不能断言对于任何均有成立。
    • 第四范式
      • 定义:若,对于每个非平凡多值依赖),都包含码,则为第四范式,记作
  • 数据依赖的公理系统
    • 公理系统
      • 定义:给定一组公式(公理)和推理规则,由这些公式依据推理规则得到更多的公式,公理、规则和推导出的公式构成公理系统。如欧氏几何即为公理系统。
      • 有效性:通过推理规则得到的公式(形式推演)与通过逻辑推理得到的结论(逻辑推论)一致,即形式推演的结论是有效的。
      • 完备性:通过逻辑推理得到的结论(逻辑推论),都可以用形式推演得到,逻辑推理是完备的。
    • 函数依赖的公理系统(Armstrong公理系统)
      • 逻辑蕴含:设关系模式,其中是属性集上的函数依赖集,,对其任何一个关系实例,若函数依赖都成立,则称逻辑蕴含,记作
      • 三条推理规则
        • (A1)自反律:若,则
        • (A2)增广律:若,则
        • (A3)传递律:若,则
      • 定义:由自反律(A1)、增广律(A2)和传递律(A3)三条推理规则构成Armstrong公理系统。
    • 函数依赖集的闭包
      • 定义:在关系模式中为所逻辑蕴含的函数依赖的全体叫作的闭包,记作
      • 意义:包含了给定函数依赖集(部分)所蕴涵的属性集上的全部函数依赖。
      • 缺点:这些依赖信息太多太庞杂,很难管理和利用。
    • 属性集的闭包
      • 定义:设为属性集上的一组函数依赖,关于函数依赖集的闭包
      • 求解算法
        • 若已没有使得,算法结束,;否则,令,转上一步。
      • 例题:已知关系模式,其中,求
        • 逐一的扫描集合中各个函数依赖,找左部为的子集(即)的函数依赖,有,于是
        • 因为,算法继续。
        • 找出左部为的子集的函数依赖,有,于是
        • 因为,算法结束,
      • 定理:设为属性集上的一组函数依赖,能由根据Armstrong公理导出的充分必要条件是
    • 最小函数依赖集
      • 等价函数依赖集:设在关系模式上有两个函数依赖集,若,则称是等价的,或称相互覆盖。
      • 定理一:当且仅当
      • 意义:给出了两个函数依赖集等价的判定方法。
      • 定义:如果函数依赖集满足下列条件,则称为一个极小函数依赖集(亦为最小依赖集或最小覆盖)。
        • 中任一函数依赖的右部仅含有一个属性。
        • 中不存在这样的函数依赖,使得等价。
        • 中不存在这样的函数依赖,使得有真子集满足等价。
      • 求解算法
        • 中每一个函数依赖,若),则用替换
        • 中每一个函数依赖,若,逐一考察,若,则用替换,其中称为无关属性。
        • 对于中的每一个函数依赖,若,则从中去掉
      • 定理二:每一函数依赖集均与其对应的最小函数依赖集等价。
      • 例题:设关系模式上的函数依赖集,求的最小函数依赖集。
        • 右部属性分离:对每个函数依赖右部属性分离,得
        • 去掉左部冗余属性:因为,包含,所以中的为冗余属性,以取代之,得
        • 去掉多余函数依赖:可以得到,所以多余,应去掉,得
      • 结论:一个给定的函数依赖集的最小函数依赖集不是唯一的,因为在求解过程中由于考察函数依赖的次序的不同会产生不同的结果,但一个函数依赖集的所有最小函数依赖集是等价的(都等价于)。
    • 候选码求解算法
      • 相关概念:对于给定的关系模式,依照函数依赖集中的属性分为以下四类。
        • L类属性:在中只出现在函数依赖的左部的属性。
        • R类属性:在中只出现在函数依赖的右部的属性。
        • LR类属性:分别出现在中的函数依赖左部和右部的属性。
        • N类属性:不在中的函数依赖中出现的属性。
      • 结论
        • L类属性和N类属性必包含于任何候选码中。
        • R类属性必不包含于任何候选码中。
        • LR类属性不能确定是在码中。
      • 求解算法
        • 依照函数依赖集中的所有属性分为L类、R类、LR类和N类属性,令为L、N类属性的集合,为LR类属性集合。
        • ,则的唯一候选码,算法结束;否则,转下一步。
        • 逐一取中的单一属性,若,则为候选码,令,转下一步。
        • 依次取中的任意两个、三个……属性,与组成属性组,若不包含已求得的候选码,求其关于的闭包,若,则为候选码。直到取完中的所有属性为止,算法结束。
      • 例题:设,函数依赖集,求的所有候选码。
        • 中无L、N类属性,均为LR类属性。
        • ,则,故为候选码;取,三者各自的闭包均不等于全属性集;取,则,故为候选码。
        • 中任取两个属性判定:,故为候选码;不等于全属性集,故不为候选码;,故为候选码。
        • 包含已求得的候选码,故不是码,算法结束。
    • 数据依赖的公理系统总结
      • A1(FD的自反律):若,则
      • A2(FD的增广律):若,则
      • A3(FD的传递律):若,则
      • 合并规则:若,则
      • 分解规则:若,则
      • 伪传递规则:若,则
      • A4(MVD的补规则):若,则
      • A5(MVD的增广律):若,则
      • A6(MVD的传递律):若,则
      • A7(复制规则):若,则
      • A8(接合规则):若,则
      • 合并规则:若,则
      • 伪传递规则:若,则
      • 混合伪传递规则:若,则
      • 分解规则:若,则

数据库设计

  • 概述

    • 定义
      • 在给定的应用环境下,构造最优的数据库逻辑结构和物理结构,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用需求(信息要求和处理要求)。
    • 评价准则
      • 完备性
      • 一致性
      • 规范性
    • 设计内容
      • 结构特性设计
      • 行为特性设计
    • 特点
      • 早期:结构和行为相分离的设计
      • 现代:结构和行为相结合的设计
    • 步骤
      • 需求分析
      • 概念结构设计
      • 逻辑结构设计
      • 数据库物理设计
      • 数据库实施
      • 数据库运行和维护
  • 需求分析

    • 任务:获取用户对数据库的如下要求
      • 信息要求
      • 处理要求
      • 安全性与完整性要求
    • 步骤
      • 需求收集
      • 分析整理
        • 主要工作:业务流程分析
        • 一般方法:数据流分析法
        • 结果呈现:数据流图
        • 整理文档
          • 数据清单
          • 业务活动清单
          • 数据的完整性、一致性、安全性需求等文档
      • 评审
    • 方法
      • 调查系统的组织结构
      • 熟悉系统主要业务
      • 确定用户需求
      • 进行系统划分
    • 结果
      • 数据流图
        • 功能
          • 便于用户理解系统数据流程
          • 精确地在逻辑上描述系统的功能、输入、输出和数据存储
          • 表达数据与处理的关系
        • 基本元素
          • 圆圈:表示一次处理过程
          • 有向线:表示数据流
          • 双线段:表示存储的信息
        • 方法
          • 自顶向下
          • 逐层分解
      • 数据字典
        • 定义
          • 数据字典是系统中各类数据描述的集合,它以特定的格式记录系统中的各种数据、数据元素以及它们的名字、性质、意义及各类约束条件,以及系统中用到的常量、变量、数组和其他数据单位的重要文档。
        • 组成部分
          • 数据项:数据项是数据的最小单位,对数据项的描述一般包括项名、含义说明、别名、类型、长度、取值范围及该项与其它项的逻辑关系。
          • 数据结构:数据结构是若干数据项的有意义的集合,通常代表某一具体的事物。包括数据结构名、含义、组成成份等。
          • 数据流:数据流可以是数据项,也可以是数据结构,表示某一次处理的输入/输出数据。包括数据流名,说明,数据来源,数据去向,及需要的数据项或数据结构。
          • 数据存储:加工中需要存储的数据。包括数据存储名、说明、输入数据流、输出数据流、组成成份、数据量、存取方式、存取频度等。
          • 处理过程:加工处理过程定义和说明。包括处理名称、输入数据、输出数据、数据存储、响应时间等。
  • 概念结构设计

    • 目的
      • 产生反映系统信息需求的数据库概念结构,即概念模式。
    • 概念结构模型的特点
      • 有丰富的语义表达能力
      • 易于交流和理解
      • 易于修改
      • 易于向各种数据模型转换
    • 方法
      • 自顶向下(集中式模式设计法)
      • 自底向上(视图集成法)
      • 逐步扩张
      • 混合策略
    • 步骤
      • 数据抽象与局部E-R模型设计
        • 数据抽象
          • 分类
          • 聚集
          • 概括
        • 局部E-R模型设计
          • 三条原则
            • 相对原则
            • 一致原则
            • 简单原则
          • 步骤
            • 选择局部应用
            • 逐一设计分E-R图
        • 标定局部应用中的实体
        • 确定实体的属性、标识实体的码
        • 确定实体之间的联系及其类型
      • 总体E-R模型设计
        • 合并分E-R图
          • 属性冲突
          • 命名冲突
          • 结构冲突
        • 修改与重构
        • 评审
    • 结果
      • 系统各子部门的局部概念结构描述文档
      • 系统全局概念结构描述文档
      • 修改后的数据字典文档
      • 概念模型应具有的业务规则文档
  • 逻辑结构设计

    • 目的
      • 把概念结构设计阶段设计好的基本E-R图转换为特定的DBMS所支持的数据模型,包括数据库模式和外模式,并对其进行优化。
    • 任务
      • 将E-R模型转换为等价的关系模式。
      • 按需要对关系模式进行规范化。
      • 对规范化后的模式进行评价。
      • 根据局部应用的需要,设计用户外模式。
    • 步骤
      • 将概念结构转换为一般的关系、网状、层次模型
      • 将由概念结构转换来的模型向所选用DBMS支持的数据模型转换
      • 对数据模型进行优化
      • 对数据模型进行评价和修正
      • 设计外模式
  • 物理结构设计

    • 内容
      • 存储结构的设计
        • 规则:从数据库中检索的的数据由其中的数据项组成。
        • 三方面因素:存取时间、存储空间利用率、维护代价
      • 存取方法的设计
        • 存储结构:限定了可能访问的路径和存储记录
        • 检索机制:定义每个应用的访问路径
    • 评价
      • 时间效率
      • 空间效率
      • 维护代价
      • 各种用户要求
  • 数据库的实施与维护

    • 数据库实施
      • 建立实际的数据库结构
        • 数据库模式与子模式
        • 数据库完整性描述
        • 数据库安全性描述
        • 数据库物理存储参数描述
      • 数据加载
    • 数据库试运行
      • 先小批量后大批量地数据入库。
      • 先调试运行DBMS的恢复功能,做好数据库的转储和恢复工作。
      • 一定要有非设计人员的参与。
    • 数据库运行和维护
      • 对数据库性能的检测和改善
      • 数据库的转储和恢复
      • 数据库的安全性、完整性控制
      • 数据库的重组(织)与重构(造)
  • 本文标题:《空间数据库原理》笔记
  • 本文作者:myetyet
  • 创建时间:2020-11-07 15:12:42
  • 本文链接:https://myetyet.github.io/posts/c42be008/
  • 版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明出处!
 评论