数据库系统概述

数据库组成

  1. 数据

    数据描述事物的符号.数据的含义称为数据的语义,数据与其语义是不可分的.
  2. 数据库

    数据库是长期存储在计算机内、有组织的、可共享的大量数据的集合.数据按照一定的数据模型组织、描述和存储. 数据库特点 数据库系统实现整体数据的结构化是数据库的主要特征之一,也是数据库系统与文件系统的本质区别. 不仅数据内部是结构化的,而且整体是结构化的数据之间是是具有联系的. 1. 数据的共享性高、冗余度低且易于扩充 2. 数据独立性高包括物理独立性(内模式)和逻辑独立性(外模式)简化了应用程序的编制,大大减少了应用程序的维护和修改. 3. 数据由数据库管理系统统一管理和控制安全性保护、完整性检测、并发控制、数据库恢复.
  3. 数据库管理系统和数据库系统

    https://scaler.com/topics/images/Types-of-Database-Languages.webp
    1. 数据库管理系统

      1. DDL数据定义语言对数据对象的组成与结构进行定义.包括外模式、概念模式、内模式及其相互之间的映像,定义数据的完整性、安全控制等约束.
      2. DML数据操纵语言实现对数据库的基本操作,如查询、插入、删除和修改.
      3. DCL数据库控制语言用于控制数据库系统中的用户权限.
      4. TCL事务控制语言用于处理数据库内事务的命令.
      5. 数据组织、存储和管理确定以何种文件结构和存储方式在存储级上组织这些数据,如何实现数据之间的联系.
      6. 数据库的建立与维护数据库初始数据的输入、转换功能,数据库的转储、恢复、重组织、性能监视分析等.
    2. 数据库系统

      数据库系统由(1)数据库、(2)数据库管理系统及其应用开发工具、(3)应用程序和(4)数据库管理员组成的系统.
  4. 数据库技术

    数据库技术是研究、管理和应用数据库的一门软件科学.不详细展开 ### 数据库发展阶段 人工管理阶段\(\Rightarrow\)文件管理阶段\(\Rightarrow\)数据库系统阶段.

数据模型

数据模型是现实世界的模拟.在数据库中用数据模型这个工具来抽象、表示和处理现实世界中的数据和信息. 数据模型应当满足:(1)能比较真实地模拟现实世界(2)容易被人理解(3)便于在计算机上实现.

两个层次的数据模型

  1. 概念模型 概念模型也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计
  2. 逻辑模型和物理模型 逻辑模型按计算机系统的观点对数据建模,用于DBMS实现. 物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法. ### 基本概念
概念 释义
实体 客观存在并可以相互区别的事物
属性 实体所具有的某一特性
唯一标识实体的属性
实体型 用实体名及其属性名集合来抽象和刻画同类实体
实体集 统一类型的实体的集合
联系 实体(集)之间的关联

型:对某一类数据的结构和属性的说明. ### 数据库系统模式

<img src=image-1.png style="zoom:30%" />

数据库内部模式结构数据库管理的三级模式外模式、模式、内模式 数据库外部体系结构单用户、主、分布模式、C

模式(逻辑模式)

一个数据库只有一个模式,模式是数据库系统模式结构的中间层.与内模式(物理存储细节和硬件环境)和外模式(具体的应用程序和开发语言)无关. 模式是全体数据的逻辑结构和特征的描述,应当综合所有用户的需求,是所有用户的公共数据试图. 外模式是局部数据的逻辑结构和特征描述,对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同.外模式与应用是一对多的关系.同一外模式也可以为某一用户的多个应用系统所使用,但一个应用程序只能使用一个外模式. 外模式/模式映象保证了数据与程序的逻辑独立性.模式/内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系,是唯一的. 内模式独立于具体的存储设备将全局逻辑结构中所定义的数据结构及其联系按照一定的物理存储策略进行组织,以达到较好的时间与空间效率.

空间数据库基本概念

地理空间

地理空间(Geospace)是一个相对空间,是一个空间实体组合排列集(这些空间实体具有精确的空间位置),强调宏观的空间分布和空间实体间的相关关系(关系以各单个地理空间实体为联结的结点或载体).地理空间由地理空间定位框架及其所连接的地理空间特征实体组成.地理空间定位框架即大地测量控制,为建立所有地理数据的坐标位置提供通用参考系统;地理空间特征实体则为具有形状、属性和时序性的空间对象. GIS中的地理空间(Geo-spatial)是指经过投影变换后,在笛卡尔坐标系中的地球表层特征空间.它是地理空间的抽象表达,是信息世界层面的地理空间. 空间数据(Spatial Data)是一种带有空间坐标的数据,包括文字、数字、图形、影像、声音等多种方式.实质上就是指以地球表面空间位置为参照,用来描述空间实体的位置、形状、 大小及其分布特征诸多方面信息的数据.空间数据是对现实世界中空间特征和过程的抽象表达,用来描述现实世界的目标,它记录地理空间对象的位置、拓扑关系、几何特征和时间特征.位置特征和拓扑特征是空间数据特有的特征.此外,空间数据还具有定位、定性、时间、空间关系等特性. 空间数据的特征(1)空间特征-空间索引 (2)结构化特征-空间数据数据项变长,需要嵌套记录 (3)空间关系特征-构建拓扑关系 (4)分类编码特征-一种地物类型对应一个属性数据表文件 (5)海量数据特征 ### 空间数据库系统 空间数据库管理系统指能够对物理介质上存储的地理空间数据进行语义和逻辑上的定义的系统,一般由专业GIS软件提供.空间数据库应用系统提供给用户访问和操作空间数据库的用户界面,一般需要进行二次开发.

关系数据库

关系数据模型

基本概念

在关系数据库中有

概念 释义
元组 表中的一行
一组具有相同数据类型的值的集合
分量 原著中的一个属性值
候选码 能唯一标识元组的属性组的元素
全码 全部属性都是候选码的关系模式
非主属性 不包含任何候选码的属性

关系模式要求关系必须是规范化的,关系的每一个分量必须是一个不可分的数据项. ### 关系模式 关系数据库具有单一的数据结构即关系,用二维表表示关系模型中的逻辑结构. 关系模式是型,关系是值.关系模式是对关系的描述.关系模式是静态的稳定的,关系是动态的. 关系模型中的数据操作是集合操作,操作对象和操作结果都是关系.关系数据库的三类关系:基本关系(基本表)、查询表、视图表. 关系数据模型的优点是严格、简洁、安全,缺点是性能和开发难度.

完整性约束条件

实体完整性和参照完整性是关系模型必须满足的完整性约束条件,称为关系的两个不变性,应该由关系系统自动支持.用户定义的完整性体现了具体领域中的语义约束. 1. 实体完整性 现实世界中的实体是可区分的即它们具有某种唯一性标识.而关系模型中必能选取一主码作为唯一性标识,主属性值非空.主属性取空值就说明存在某个不可标识的实体,即存在不可区分的实体,矛盾.因此这个规则称为实体完整性. 2. 参照完整性 设F是基本关系R的一个或一组属性,但不是关系R的码.如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码.参照完整性指的是则对于R中每个元组在F上的值必须为空值(F的每个属性值均为空值)或者等于S中某个元组的主码值. 外码并不一定要与相应的主码同名,但目标关系S的主码Ks 和参照关系的外码F必须定义在同一个(或一组)域上. 3. 用户定义的完整性 指针对某一具体关系数据库的约束条件,反映某一具体应用所涉及的数据必须满足的语义要求.

空间数据模型

基本概念

由于空间数据的特点,在进行空间数据库建模时可以用象形图扩展ER模型. 形状是象图中的基本图形元素,代表空间数据模型中的元素.可以是基本形状、复合形状、导出形状或备选形状. 空间实体概念点、线、面、体.对于不连续地理现象可以用点线面体状形状描述.对于连续地理现象可以用场模型f(x)描述. OGC空间对象模型 ### 空间数据模型 #### 空间实体栅格表达 1. 数字表面模型DSM主要有TIN(三角网)模型和Grid(网格)模型 2. 数字高程模型DEM核心是地形表面特征点点三维坐标数据和一套对地表提供连续描述的算法.用\(z=f{x,y},(x,y) \in DEM\)表达所在区域. 3. 数字地形模型DTM模拟其他二维表面上连续变化的特征.

空间实体矢量表达

  1. 拓扑关系二维拓扑关系:disjoint,meet,overlap,equal,contain,inside,cover,covered by.三维关系还有穿越,被穿越,进入等
  2. 方向关系锥形模型(放射),最小外接矩形(九宫格),Freksa-Zimmermann模型(以直线段为参考的定性空间方向模型)
  3. 度量关系在欧氏空间和度量空间上进行的操作,是一切空间数据定量化的基础. 通常地物之间的相邻和关联关系可通过公共结点、公共弧段的数据共享来隐含表达.通过面向对象设计的包含表述拓扑关系的从属.

关系数据库结构化语言SQL

SQL特点 1. 综合统一 2. 高度非过程化 3. 面向集合的操作方式 4. 以同一种语法结构提供多种使用方式(独立|嵌入式)

定义模式实际上定义了一个命名空间.在这个空间中可以定义该模式包含的数据库对象,例如基本表、视图、索引等.

SQL中域的概念用数据类型来实现.定义表的属性时需要指明其数据类型及长度. RDBMS会使用模式列表中第一个存在的模式作为数据库对象的模式名.若搜索路径中的模式名都不存在,系统将给出错误.

操作类型 操作对象 操作内容
数据定义 模式、基本表、索引 CREATE、DROP
数据查询 表、视图 SELECT

查询时指定DISTINCT关键词,去掉表中重复的行

空间数据查询

SQL语言拓展

OGIS

空间数据查询除了属性条件查询外.更主要的是涉及到空间位置的查询.OpenGIS是对SQL的空间语言扩展.提供以下功能: 1. 针对所有几何类型的基本操作.如SpatialReference返回所定义几何体采用的基础坐标系统; 2. 描述空间对象间拓扑关系的函数.如Disjoint用来判断对象间是否相离,可自定义; 3. 空间分析的一般操作.如Difference用来返回几何体与给定几何体不相交的部分.

SQL3

SQL3标准不仅是对SQL的语法规则作出了更加详细和准确的定义,而且对空间数据的支持也作出了一个统一的描述. SQL3中定义了0维的点(points),1维的环(planar)、曲线 (curves),2维的面(surface)

空间查询处理

为了提高查询执行的效率,空间查询通常采用过Filter(首先用一个不精确的大致范围来进行查询,产生一个满足条件的较小候选集合)和Refinement(对候选集合中的对象进行精确的筛选,产生最终的查询结果)两步算法.

空间连接查询是空间数据库系统一种重要的多路查询.即从两个数据集合中检索出所有满足某一条件的空间对象.空间连接等价于一系列的窗口查询.

数据缓存技术

数据库基本特性

数据库安全性控制

安全性控制指保护数据库防止恶意的破坏和非法的存取. 防范对象:非法用户和非法操作 ### 用户管理 用户标识与鉴别:口令 存取控制 自主存取控制方法 授权与回收:对数据库、模式和表的三层. ### 数据库角色 数据库角色是被命名的一组与数据库操作相关的权限.角色是权限的集合. 角色可以为一组具有相同权限的用户创建一个角色,简化授权过程. 强制存取控制方法

数据库完整性控制

数据库完整性指的是数据的正确性相容性. 完整性控制指防止数据库中存在不符合语义的数据,也就是防止数据库中存在不正确的数据. 防范对象:不合语义的、不正确的数据 维护数据库完整性的手段:1.提供定义完整性约束条件的机制;2.提供完整性检查的方法;3.违约处理. 实体完整性:[PRIMARY KEY]定义一个主码时总是能写一个表级语法,在主码只有一个属性的时候可以在列级定义. 参照完整性:[FOREIGN KEY (__) REFERENCES]. 用户定义的完整性:不必由应用程序承担. 关于属性的约束条件:在创建表时约定是否需满足列值非空(NOL NULL),列值唯一(UNIQUE)和检查列值是否满足一个布尔表达式(CHECK). 域中的完整性限制 触发器用户定义在关系表上的一类由事件驱动的特殊过程.用于控制数据(INSERT.DELETE,UPDATE). 触发器分为行级触发器(FOR EACH ROW)语句级触发器(FOR EACH STATEMENT)后面接触发动作体(AS BEGIN...END).

关系查询处理和查询优化

RDBMS查询优化处理步骤

RDBMS查询优化处理步骤 1. 从查询语句中识别出语言符号进行语法检查语法分析. 2. 根据数据字典对合法的查询语句进行语义检查.后根据数据字典中的用户权限和完整性约束定义对用户的存取权限进行检查. 3. 检查通过后用查询树将SQL查询语句转换成等价的关系代数表达式,并把数据库对象的外部名称转换为内部表示. 4. 优化器对转换得到的关系代数表达式进行代数优化,再进行物理优化(存取路径和底层操作算法的选择) 5. 代码生成器依据优化器得到的执行策略生成查询计划生成执行查询计划的代码.

实现查询操作的算法

选择操作

  1. 全表扫描:对查询的基本表顺序扫描逐一检查每个元组是否满足选择条件.
  2. 索引(散列)扫描法:适合选择条件中的属性上有索引的情况.通过索引先找到满足条件的元组主码或元组指针,再通过元组指针直接在查询的基本表中找到元组.

连接操作

查询处理中最耗时的操作之一. 1. 嵌套循环(nested loop):大暴力,略. 2. 排序-合并(sort- merge join):适合连接的所有表已经排好序的情况,否则需要先排序.然后用two point方法连接. 3. 索引连接(index join):先在一表上建立索引,对于待连接的表,使用索引查找与建立索引的表建立连接. 4. Hash join:用hash散列连接.分为划分阶段和试探阶段,可通过多种hash技术消除冲突.

查询优化方法

查询优化的优点不仅在于用户不必考虑如何最好地表达查询以获得较好的效率,而且在于系统可以比用户程序的“优化”做得更好. 如果数据库的物理统计信息改变了,系统可以自动对查询重新优化以选择相适应的执行计划.在非关系系统中必须重写程序,而重写程序在实际应用中往往是不太可能的. 优化器中包括了很多复杂的优化技术,这些优化技术往往只有最好的程序员才能掌握.系统的自动优化相当于使得所有人都拥有这些优化技术. 同时,对于RDBMS不能优化的查询需要重写查询语句要进行手工调整以优化性能.

关系代数等价变换

  1. 连接、笛卡尔积运算满足交换律、结合律\(E_1 \times E_2 \equiv E_2 \times E_1\)
  2. 投影的串接定律\(\Pi_{A_1,A_2,...,A_n}(\Pi_{B_1,B_2,..,B_m}(E))=\Pi_{A_1,A_2,...,A_n}(E)\),其中\(\{A_1,A_2,...,A_n\} \in \{B_1,B_2,...,B_m\}\)
  3. 选择的串接定律\(\sigma_{F_1}(\sigma_{F_2}(E)) \equiv \sigma_{F_1 \wedge F_2}(E)\)
  4. 选择与投影操作的交换律\(\sigma_F(\Pi_{A_1,A_2,...,A_n}) \equiv \Pi_{A_1,A_2,...,A_n}(\sigma_F(E))\)
  5. 选择与笛卡尔积复合运算满足交换律\(\sigma_F(E_1 \times E_2) \equiv \sigma_{F_1}(E_1) \times \sigma_{F_2}(E_2)\)
  6. 选择与(并、差、自然连接)满足分配律\(\sigma_F(E_1 \cup E_2)=\sigma_F(E_1) \cup \sigma_F(E_2)\)
  7. 投影与(并、笛卡尔积)满足分配律\(\Pi_{A_1,A_2,...,A_n}(E_1 \cup E_2)=\Pi_{A_1,A_2,...,A_n}(E_1) \cup \sigma_F(E_2)\) ### 查询树的启发式优化
  8. 利用等价交换原则将关系表达式正则化,构建查询树.
  9. 对每一个选择,尽可能将其移动到树的叶子端.
  10. 对每一个投影,尽可能将其移动到树的叶子端.
  11. 把选择和投影的串接合并成单个选择、单个投影或一个选择后跟一个投影.使多个选择或投影能同时执行或在一次扫描中全部完成.
  12. 把上述得到的语法树的内节点分组.每一双目运算(\(\times\),\(\bowtie\),\(\cup\),\(-\)) 和它所有的直接祖先为一组(\(\sigma\),\(\Pi\)运算).同时,如果其后代直到叶子全是单目运算,则也将它们并入该组.但当双目运算是笛卡尔积(\(\times\)),而且后面不是与它组成等值连接的选择时,则不能把选择与这个双目运算组成同一组,把这些单目运算单独分为一组

物理优化

总代价=I/O代价+CPU代价+内存代价+通信代价. ### 代价估算/优化

空间数据索引

空间索引指在存储空间数据时依据空间对象的位置和形状空间对象之间的某种空间关系,按一定顺序排列的一种数据结构.其中包含空间对象的概要信息如对象的标识、外接矩形及指向空间对象实体的指针.作为一种辅助性的空间数据结构,空间索引介于空间操作算法和空间对象之间.通过空间数据结构的筛选,大量与特定空间操作无关的空间对象被排除,从而提高空间操作的效率. 空间索引技术是通过更加有效的组织方式,抽取与空间定位相关的信息组成对原空间数据的索引.从而以较小的数据量管理大量数据的查询,提高空间查询的效率和空间定位的准确性.

简单网格索引

采用默认网格尺度或通过数据的统计特征计算出一个网格尺度,对每一个实体按网格进行分解.在其落入的所有网格中追加该实体记录,直到所有的实体处理完毕.在表中的实体发生变化后可通过重新对数据进行统计计算获得新的网格尺度,从而重建网格索引提高效率.查询同上进行粗略查询再进行精确查询. ### KD树索引(不考) 二维建树过程(略) KDB树索引当插入数据点时首先须找到该点应该插入的点页.如果该页未满,简单地插入该点至该页;如果该页已满,则必须分裂(split)该页.分裂的方法是将点页一分为二,并使两点页包含几乎同样多的点.需要注意的是,点页分裂后必须在上级区域页中增加一项(作为新的父亲).因此,点页的分裂有可能导致父区域页的分裂.同样地,区域页的分裂也有可能向上传播直至根结点.因此KDB树与B树一样,总是保持高度平衡(height-balanced)的. BSP树索引非网格划分(二值空间划分).

R树索引*

R树是一个高度平衡树,是B树在k维上的自然扩展.R树节点的空间信息是节点中包含的空间实体的空间信息的最大矩形. ### 四叉树索引 点四叉树的优点是结构简单,对于精确匹配的点查找性能较高. 四叉树的缺点:(1)树的动态性差,删除结点处理复杂;(2)树的结构由点的插入顺序决定难以保证树深度的平衡;(3)区域查找性能较差;(4)对于非点状空间目标,必须采用目标近似与空间映射技术,效率较差;(5)不利于树的外存存储与页面调度;(6)每个结点须存储\(2^k\)个指针域且其中叶子结点中包含许多空指针,尤其是当k较大时空间存储开销大,空间利用率低. Matrix四叉树索引插入点时把数据空间分割成四个矩形.四个不同的多边形对应于SW、NW、SE、NE 四个象限.每次分割空间都是将一个正方形分成四个相等的子正方形,依次重复地进行\(2^k\)次等分,直到每个正方形的内容不超过所给定的桶量(比如一个对象)为止. PR四叉树和CIF四叉树则不以插入点为中心分割空间,而是每次都将一个正方形分成四个相等的子正方形,直到每个正方形的空间内容超过所给定的桶量.CIF算法中空间实体只包含在完全包含他的矩形中. ~~线性可排序四叉树索引*~~ ### Z-ordering索引(不考) 利用分型曲线(如皮亚诺曲线和希尔伯特曲线)索引

关系数据理论

数据库的逻辑设计指针对一个具体问题,构造更好的数据模式(数据的逻辑结构).关系数据库的规范化理论是数据库逻辑设计的工具. ## 关系模式的形式化定义 数据模式指数据库全体数据的逻辑结构和特征描述.简化关系模式可用三元组\(R(U,F)\)表示当且仅当U上的一个关系\(r\)满足\(F\)时.\(r\)称为关系模式\(R(U,F)\)的一个关系.其中\(F\)称为属性间数据的依赖关系集合.

数据依赖

数据依赖是一个关系内部的属性与属性之间的约束关系,是现实世界属性间相互联系的抽象,是数据的内在性质,是语义的体现. 数据依赖可分为函数依赖FD多值依赖MVD. 数据库异常包括数据冗余太大、更新异常、插入异常和删除异常.数据异常是由于模式中某些数据依赖引起的.

规范化理论

规范化理论是改造关系模式的理论,是通过分解关系模式来消除其中不合适的数据依赖以解决数据库异常. 看教案暂时不整理

数据库的系统特性

事务是一个数据库操作序列.事务是一个不可分割的工作单位,也是恢复和并发控制的基本单元.一个程序通常包含多个事务. 当用户没有显式地定义事务时,DBMS按缺省规定自动划分事务.创建表等操作是隐性的. 事务提交指将该事务所有对数据库的更新写回磁盘的物理数据库中去. 事务回滚指将事务中对数据库的所有已完成的操作全部撤销. 事务的ACID特性:原子性、一致性、隔离性、持续性(事务提交成功意味着永久改变) ## 数据库恢复技术 数据库恢复指把数据库从错误状态恢复到某一已知的正确状态(一致状态/完整状态) 故障是不可避免的.系统故障和人为故障都是. 故障可能导致数据的正确性发生错误,也可能造成(全部)数据丢失. ### 数据库故障 1. #### 事务内部故障 事务内部的故障有些是程序可发现的,有些则是非预期的.通过对回滚可以恢复预期的非正确行为,以下讨论非预期行为. 非预期故障有运算溢出、并发事务发生死锁、违反完整性限制等. 通过UNDO进行对事务故障对恢复. 2. #### 系统故障 系统故障称为软故障,指造成系统停止运转的任何事件,系统需要重新驱动. 系统故障会使得所有正在运行的事务都非正常终止.系统故障不破坏数据库,但是内存中数据库缓冲区的信息全部丢失. UNDO未提交事务所有未完成事务;REDO已提交但是缓冲区信息没有完全写回磁盘的事务. 3. #### 介质故障 介质故障称为硬故障,指外存故障.介质故障会破坏(部分)数据库. 需要装入发生介质故障发生前的某个副本重做所有成功事务并重写日志. 4. #### 计算机病毒 计算机病毒可能造成数据库本身破坏也可能只使数据不正确. ### 数据库恢复 恢复的基本原理是数据冗余.利用存储在系统其它地方的冗余数据来重建数据库中已被破坏或不正确的那部分数据. 建立数据冗余的方法有数据转储(backup)和登陆日志文件(logging). #### 数据转储 转储是指DBA将整个数据库复制到磁或另一个磁盘上保存起来的过程,备用的数据称为后备副本或后援副本. 静态转储在无事务运行时进行,转储期间不允许对数据库的任何存取修改活动.实现简单能确保数据的一致性但降低来数据库的可用性. 动态转储与用户事务并发进行,但不能保证副本中的数据正确有效.在利用动态转储得到的副本进行故障恢复时需要结合logging才能将数据库恢复到某一时刻的确定状态. #### 日志文件 日志文件(log)是用来记录事务对数据库的更新操作的文件.以记录或数据块为单位记录日志文件. 登陆日志文件必须先写日志文件,后写数据库.因为在这两个操作之间可能发生故障.如果先写了数据库修改,而在日志文件中没有登记下这个修改,则以后就无法恢复这个修改;如果先写日志但没有修改数据库,按日志文件恢复时只不过是多执行一次不必要的UNDO操作,并不会影响数据库的正确性. 以记录为单位的日志文件记录:(1)事务标识;(2)操作类型(插入、删除或修改);(3)操作对象(记录内部标识);(4)更新前数据的旧值;(5)更新后数据的新值. 以数据块为单位的日志文件记录:(1)事务标识;(2)被更新的数据块. #### 使用日志文件恢复 1. 对于事务故障,反向扫描文件日志,对读取到的更新做逆操作,直到找到该事物的开始标记停止. 2. 对于系统故障,正向扫描日志文件,把commit完成的事物重做,没完成的事务按照事务故障处理回滚. 3. 对于介质故障,使用动态转储的备份时,在装入的同时要写日志,然后对照原日志文件把故障发生前没做的事物补上. 4. 在正向扫描日志文件恢复系统故障和介质故障时,可引入检查点以提升效率(减少搜索日志和REDO的时间). #### 检查点技术 检查点记录的内容(1)建立检查点时刻所有正在执行的事物清单.(2)这些事物最近一个日志记录的地址. 使用检查点技术时除了日志文件需要再维护一个重新开始文件用于记录各个检查点记录在日志文件中的地址.恢复子系统可以定期或不定期地建立检查点,保存数据库状态. 动态维护日志文件的方法是周期性执行以下操作: 1.将当前日志缓冲区中的所有日志记录写入磁盘的日志文件上 2.在日志文件中写入一个检查点记录 3.将当前数据缓冲区的所有数据记录写入磁盘的数据库中 4.把检查点记录在日志文件中的地址写入重新开始文件(在3.完成后才是一个有效记录点) 利用检查点恢复时,先从重新开始文件中找到最后一个检查点记录在日志文件中的地址,由该地址在日志文件中找到最后一个检查点记录.由该检查点记录得到检查点建立时刻所有正在执行的事务清单ACTIVE-LIST,把ACTIVE-LIST暂时放入UNDO-LIST队列,REDO队列暂为空.如此检查点之前的所有完成的事物都不会入队,起到了提高效率的效果.再从检查点开始正向扫描日志文件到日志尾,如有新开始的事务,把该事务暂时放入UNDO-LIST队列;如某一事务提交提交,则把它从UNDO-LIST队列移到REDO-LIST队列.之后只需对两个队列中的事物分别执行对应操作即可. #### 数据库镜像 数据库镜像在没有出现故障时可用于并发操作,出现介质故障时可由镜像磁盘继续提供使用同时DBMS自动利用镜像磁盘数据进行数据库恢复.在实际应用中用户往往只选择对关键数据和日志文件镜像. ## 并发控制 并发控制的目的允许多个用户同时使用数据库系统. 并发控制的任务是保证(1)对并发操作的正确调度(2)保证事务的隔离性(3)保证数据库的一致性. 多事务执行方式有(1)事物串行执行(2)交叉并发方式(3)同时并发方式. ### 数据不一致性 1. 丢失修改:两个事务\(T_1\)\(T_2\)读入同一数据并修改,\(T_2\)的提交结果破坏了\(T_1\)提交的结果,导致\(T_1\)的修改被丢失. 2. 不可重复读:不可重复读是指事务\(T_1\)读取数据后,事务\(T_2\)执行更新操作,使\(T_1\)无法再现前一次读取结果. 3. 读“脏(不正确)”数据在事务\(T_1\)对数据库进行修改后\(T_2\)读取到修改的数据后,\(T_1\)由于某种原因撤销,这是\(T_2\)读到的数据便与数据库内容不一致.

并发控制的主要技术:(1)封锁(2)时间戳(3)乐观控制法.商用DBMS一般采用封锁的方法.数据的一致性也取决于并发控制的程度.施加的并发控制愈多,数据的一致性往往愈好. ### 封锁 封锁指事务T在对某个数据对象(例如表、记录等)操作之前,先向系统发出请求对其加锁.在事物T释放他的锁之前其他事物不能更新此数据对象. #### 排它锁(X锁) 保证其他事务在T释放A上的锁之前不能再读取和修改A #### 共享锁(S锁) 保证其他事务在T释放A上的锁之前不能再读取和修改A #### 活锁与死锁 避免活锁使用队列管理事物对同一数据对象的封锁请求. 产生死锁的原因是两个或多个事务都已封锁了一些数据对象,然后又都请求对已为其他事务封锁的数据对象加锁,从而出现死等待. 产生死锁的必要条件 (1)互斥(进程互斥使用资源);(2)不剥夺(进程所使用的资源只能自己释放部分);(3)分配(每次申请新资源时继续占用已分配的资源);(4)环路条件(存在一个循环等待链). 预防死锁的方法 1. 一次封锁法:要求每个事务必须一次将所有要使用的数据全部加锁,否则就不能继续执行. 存在的问题:(1)降低系统并发度;(2)难于事先精确确定封锁对象 2. 顺序封锁法:预先对数据对象规定一个封锁顺序,所有事务都按这个顺序实行封锁. 存在的问题:(1)维护成本高-数据库系统中封锁的数据对象极多并且在不断地变化;(2)难以实现-很难事先确定每一个事务要封锁哪些对象 由于上述方法的缺点DBMS在解决死锁的问题上更普遍采用的是诊断并解除死锁的方法. 死锁诊断(1)超时法(2)事物等待图(是否存在回路) 解除死锁选择一个处理死锁代价最小的事务将其撤消,然后释放此事务持有的所有的锁,使其它事务能继续运行下去.

并发调度的可串行性

可串行性是并发事务准确调度的准则.多个事务的并发执行是正确的当且仅当其结果与按某一次序串行地执行这些事务时的结果相同. 冲突指不同的事务对同一个数据进行读写操作/写写操作. 可串行化调度的充分条件是一个调度在保证冲突操作的持续不变的情况下,等价通过交换两个事物不冲突操作的持续得到另一个调度.若该等调度等价一个串行调度则称为该调度为冲突可串行化调度.冲突可串行化调度一定是可串行化的调度.

两段锁协议

两段锁协议指所有事务必须分两个阶段对数据项加锁和解锁.事务加锁将分为两个阶段,一阶段(扩展阶段)只能上锁不能解锁,二阶段(收缩阶段)只能解锁不能上锁. 事务遵守两段锁协议是可串行化调度的充分条件若并发事务都遵守两段锁协议,则对这些事务的任何并发调度策略都是可串行化的.但是可能发生死锁.

封锁的粒度

封锁粒度Granularity是封锁对象(逻辑单元/物理单元)的大小. 封锁粒度于系统的并发度和并发控制的开销密切相关. 封锁粒度越大,数据库所能封锁的数据单元越少,并发度越低,系统开销越小. 多粒度封锁原则:(1)需要处理多个关系的大量元组的用户事务时以数据库为封锁单位(2)需要处理大量元组的用户事务时以关系为封锁单元;(3)只处理少量元组的用户事务时以元组为封锁单位. 构建粒度树以树形结构来表示多级封锁粒度.对每一个节点可以显示封锁(打在上面)和隐式封锁(打在祖先节点延迟下放).为实现延迟下放引入意向锁. 对任一结点加基本锁,必须先对它的上层结点加意向锁. 制作意向锁意向锁分为IS锁(要对子节点加S锁)、IX锁(要对子节点加X锁)和SIX锁(要对子节点加X锁再对自己加S锁).用处很好理解不展开.具有意向锁的多粒度封锁方法提高了系统的并发度减少了加锁和解锁的开销. 锁的强度指它对其他锁的排斥程度.一个事务在申请封锁时以强锁代替弱锁是安全的行为.

数据库设计

数据库设计是为了给用户和各种应用系统提供一个信息基础设施和高效率的运行环境,满足信息管理和数据操作需求. 数据库设计要将结构设计(数据)和行为设计(处理)相结合.

<img src=image-3.png style="zoom:45%" />

数据库设计方法

数据库设计时手工与经验相结合的工作,设计质量与设计人员的经验和水平有直接关系. 规范设计法的基本思想是过程迭代和逐步求精.即新奥尔良法倡导的将数据库设计分为若干阶段和步骤.在概念设计阶段广泛采用基于E-R模型的设计方法.在逻辑设计阶段可采用第三范式设计方法.最后呢在进行数据库应用开发时可用面向对象的数据库设计方法.

数据库设计步骤

参与数据库设计的人员有三类: 1. 系统分析人员、数据库设计人员:自始至终参与数据库设计 2. 用于和数据库管理员:主要参加需求分析和数据库的运行维护. 3. 应用开发人员:在系统实施阶段参与进来,负责编制程序和准备软硬件环境. 设计一个完善的数据库应用系统是以下六个阶段的不断反复:

  1. 需求分析

    最困难、最耗时的一步. 需求分析的任务:(1)详细调查现实世界要处理的对象(组织、部门、企业等);(2)充分了解原系统(手工系统或计算机系统);(3)明确用户的各种需求;(4)确定新系统的功能;(5)充分考虑今后可能的扩充和改变. 需求分析的难点是用户一方缺少计算机知识,设计人员缺少用户的专业知识.因此需要设计人员不断深入地与用户进行交流. 调查用户需求的步骤:(1) 调查组织机构情况;(2) 调查各部门的业务活动情况;(3) 在熟悉业务活动的基础上协助用户明确对新系统的各种要求;(4) 确定新系统的边界. 需求分析过程 常用调查方法:(1)跟班作业;(2)开调查会;(3)请专人介绍;(4)询问;(5)设计调查表请用户填写;(6)查阅记录. 常采用结构化分析方法(SA)分析和表达用户需求.SA方法自顶向下、逐层分解分析系统.

    #### 结构化分析方法

    1. 将系统抽象为信息要求(数据存储)和处理要求(工作流).
    2. 分解处理功能和数据,用判定表、数据字典来呈现.
    3. 将分析结果再次提交给用户,征得用户认可. #### 数据字典 数据字典是数据字典是关于数据库中数据的描述,是元数据不是数据本身.进行详细的数据收集和数据分析所获得的主要结果.数据字典在需求分析阶段建立,在数据库设计过程中不断修改、充实、完善. 内容包含:(1)数据项;(2)数据结构;(3)数据流;(4)数据存储;(5)处理过程. 数据流是数据结构在系统内传输的路径.数据流描述={数据流名,说明,数据流来源,数据流去向,组成:{数据结构},平均流量,高峰期流量} 数据存储是数据结构停留或保存的地方,也是数据流的来源和去向之一.数据存储描述={数据存储名,说明,编号,输入的数据流,输出的数据流,组成:{数据结构},数据量,存取频度,存取方式} 具体处理逻辑一般用判定表或判定树来描述.处理过程描述={处理过程名,说明,输入:{数据流},输出:{数据流},处理:{简要说明}}
  2. 概念结构设计

    概念结构设计是整个数据库设计的关键. 概念结构设计是将需求分析得到的用户需求抽象为信息结构即概念模型的过程.概念结构是各种数据模型的共同基础,比数据模型更独立于机器、更抽象,从而更稳定. 概念结构设计特点:(1) 能真实、充分地反映现实世界;(2) 易于理解;(3) 易于更改;(4) 易于向关系、网状、层次等各种数据模型转换. 概念结构设计方法:(1)自顶向下;(2)自底向上;(3)逐步扩张;(4)混合策略.一般采用自底向上的设计步骤,即先抽象数据并设计局部视图,后集成局部视图,得到全局概念结构. 视图集成 #### 合成冲突

    1. 属性冲突:(1)属性域冲突(取值类型/范围不同);(2)属性取值单位冲突.
    2. 命名冲突:(1)同名异义;(2)一义多名
    3. 结构冲突:(1)同一对象在不同应用中具有不同的抽象;(2)同一实体在不同分E-R图中所包含的属性个数和属性排列次序不完全相同;(3)实体之间的联系在不同局部视图中呈现不同的类型. 消除不必要的冗余后的初步E-R图称为基本E-R图.但很多时候保留部分冗余信息有助于提升效率,应根据用户的整体需求来确定.在需要保留冗余时应把数据字典中数据关联的说明作为完整性约束条件. 消除冗余的方法:求\(F_L\)最小覆盖\(G_L\),差集为\(D=F_L-G_L\).逐一考察\(D\)中的函数依赖确定是否是冗余的联系,若是则删去.(冗余的联系一定在\(D\)中,而\(D\)中的联系不一定是冗余的.) 三种常用抽象:(1)分类(is member of);(2)聚集(is part of);(3)概括派生(is subset of). #### 验证整体概念结构 视图集成后形成一个整体的数据库概念结构,对该整体概念结构还必须 进行进一步验证,确保它能够满足下列条件:(1)整体概念结构内部必须具有一致性,不存在互相矛盾的表达;(2)整体概念结构能准确地反映原来的每个视图结构,包括属性、实体及实体间的联系.(3)整体概念结构能满足需要分析阶段所确定的所有要求. 整体概念结构最终还应该提交给用户,征求用户和有关人员的意见进行评审、修改和优化,然后把它确定下来作为数据库的概念结构.
  3. 逻辑结构设计

    逻辑结构设计的任务将概念结构转化为具体的数据模型.是把概念结构设计阶段设计好的基本E-R图转换为与选用DBMS产品所支持的数据模型相符合的逻辑结构. 逻辑结构设计的步骤:(1)将概念结构转化为一般的关系、网状、层次模型;(2)将转换来的关系、网状、层次模型向特定DBMS支持下的数据模型转换;(3)对数据模型进行优化. #### 数据模型的优化方法

    1. 确定数据依赖:按需求分析阶段得到的语义确定数据依赖.
    2. 消除冗余联系:按概念结构设计阶段分析结果进行极小化处理.
    3. 确定所属范式.
    4. 按照需求分析阶段得到的各种应用对数据处理的要求,分析对于这样的应用环境这些模式是否合适.确定是否需要对他们进行合并或分解(一般第三范式就够了) #### 关系模式分解 水平分解:把(基本)关系的元组分为若干子集合,定义每个子集合为一个子关系以提高系统的效率.例如将并发事务中不相交的数据分离. 垂直分解:把关系模式R的属性分解为若干子集合,形成若干子关系模式. #### 设计用户子模式
    5. 使用更符合用户习惯的别名
    6. 针对不同级别的用户定义不同的外模式,以满足系统对安全性的要求.
    7. 简化用户对系统的使用.
  4. 物理结构设计

    数据库物理设计指为一个给定的逻辑数据模型选取一个最适合应用环境的物理结构的过程.数据库的物理结构指物理设备上的存储结构与存取方法,它依赖于选定的数据库管理系统. 对物理结构进行评价的重点是时间和空间效率.如果评价结果满足原设计要求则可进入到物理实施阶段.否则就需要重新设计或修改物理结构,有时甚至要返回逻辑设计阶段修改数据模型. 物理数据库设计所需参数:(1)数据库查询事务;(2)数据更新事务;(3)每个事务在各关系上运行的频率和性能要求.用于选择关系模式的存取方法设计关系、索引等数据库文件的物理存储结构. #### 存取路径设计 物理设计的任务之一是确定存取路径.(数据库系统是多用户共享的系统,对同一个关系要建立多条存取路径才能满足多用户的多种应用要求.) DBMS常用存取方法

    1. 索引:经常在查询条件出现/经常在聚集函数出现/经常在连接条件出现.定义索引会带来额外的(维护&查找)开销.
    2. 聚簇:为了提高某个属性(或属性组)的查询速度,把这个或这些属性(聚簇码)上具有相同值的元组集中存放在连续的物理块称为聚簇.聚簇是优化数据的物理存放方式(相当于把多个关系按“预连接”的形式存放).因此聚簇码只有一个.可以大大提高按聚簇码进行查询的效率并节省存储空间.建立与维护聚簇的开销相当大:对已有关系建立聚簇将导致关系中元组移动其物理存储位置,并使此关系上原有的索引无效,必须重建.候选聚簇往往在:对经常在一起进行连接操作的关系;一组属性经常出现在相等比较条件中;如果一个关系的一个(或一组)属性上的值重复率很高则此单个关系可建立聚簇.(对应每个聚簇码值的平均元组数太少了聚簇的效果不明显)接着从聚簇中删除:经常进行全表扫描的关系、更新操作远多于连接操作的关系.
    3. HASH:该关系的属性主要出现在等值连接条件中或主要出现在相等比较选择条件,或该关系的大小可以预知且不改变时可以选用HASH存取方法. #### 确定存储结构 确定数据存放位置和存储结构的因素有存取时间、存取空间利用率和维护代价.这三个方面常常是相互矛盾的. 确定存放位置和存储结构的基本原则是根据应用情况将易变部分与稳定部分分开存放;将存取频率较高部分与存取频率较低部分分开存放.(如果计算机有多个磁盘或磁盘阵列可以考虑将表和索引分别放在不同的磁盘上,在查询时由于磁盘驱动器并行工作物理I/O读写的效率可以提高.可以尝试将日志文件与数据库对象(表、索引等)放在不同的磁盘以改进系统的性能.) #### 物理结构评价方法 首先定量估算各种方案的存储空间、存取时间和维护代价,择优录取.
  5. 数据库实施、数据库运行和维护

    数据载入同时调试应用程序.分期分批. 数据库试运行:功能测试和性能测试.做好数据库的转储和恢复工作. 数据库试运行合格后,数据库即可投入正式运行.对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和提高. #### 经常性维护工作

    1. 数据库的转储和恢复
    2. 数据库的安全性、完整性控制
    3. 数据库性能的监督、分析和改进
    4. 数据库的重组织和重构造(提高系统性能):根据新环境调整数据库的模式和内模式.

空间数据库设计

空间数据互操作

互操作性指两个或多个系统或组件交换信息和使用已交换信息的能力(IEEE).在各种功能单元之间进行通信、执行程序或传输数据的能力,不要求用户具有这些单元的特性的了解. 空间数据互操作指信息系统具有“自由交换有关地球的各种空间信息,以及关于地表以上、地表以下以及地表上的物体和现象的各种空间信息,并且多人合作(通过网络)运行能够操纵这些信息的软件.” 标准指“经协商一致意见建立并经认可的机构建立的文件,为运转或其结果提供共同和重复使用的规则、指导或特性,目的是在给定的环境下达到最佳秩序.”根据协商范围有法定标准和行业标准.开放标准的一个目标是确保互操作性,将集成的成本最小化. 标准的特征有:公开获取;不受专利和其他知识产权的限制;任何人都可以下载和使用该标准(无差别待遇);没有许可费用;厂商中立;数据中性;在协商一致的决策过程中达成协议;不是单独的机构控制这个标准. 开放地理空间联盟OGC(OpenGIS联盟)领导开发地理空间和基于位置的服务标准(GIS中的互操作性).任务是制定传送空间接口和编码规范. 空间数据库设计过程 1. ### 需求分析 1.1 需求调研:同上 #### 1.2数据分析 GIS数据具有数据类型繁多、数据量大等特点.从数据源的种类来分可分为:(1)实测数据;(2)分析数据(利用物化方法分析获取的数据);(3)图形数据;(4)统计调查数据;(5)遥感/GPS数据. 资料分析要从以下几个方面着手: (1)地图资料要查明地图的出版机关、出版年代、比例尺、成图方法、精度、采用资料的来源、数学基础(包括坐标系、高程系、等高距)等; (2)航片、卫片和影像资料要查明摄影参数. (3)对参考资料分析着重研究资料来源的可信度、内容的现势性和完整性,以确定这些资料的使用程度,补充或修改原图的内容. (4)对补充资料分析着重研究出版机关、年代和特点及转标这些内容的方法,如政区图、交通图、水利图等现势资料. (5)掌握成图区域的地理景观和地理特征,通过对文字、图表及样图的分析规定一些处理原则,使作业人员掌握成图区域特点以保证数字地形图数据模型与实地地理特点相适应及各要素层的合理表达. 1.3 功能分析:设计系统架构图和功能设计图. 2. ### 数据收集和整理 (1)空间数据处理:确定空间数据库的投影系、坐标系等时空框架标准.具体包括空间数据的精度检查、影像图数据的彩色校正、几何纠正、匹配、结点平差、图幅拼接、拐点匹配、行政界编辑、权属编辑、地类界编辑、数据的几何校正、投影变换、接边处理、拓扑关系生成和要素分层等; (2)属性数据处理:确定数据属性及编码标准规范、属性数据的记录完整性和正确性检查与修改等; 3. ### 数据库实现 1. #### 数据字典和数据索引的生成 数据字典是关于数据库中的各个表的所有属性字段的名称、字段值、数据描述的定义数据库.建立数据字典的目的是保证数据的规范性、高效性和可维护性,方便数据管理. 数据索引是指对土地利用数据库建立的空间索引,目的是为了提高数据检索的效率.数据索引可分为分幅索引和分行政区索引,以方便对各个图幅内数据检索和对各个行政区划单元的数据检索. 2. #### 图形与属性数据库的建立 将分层数据导人到目标数据库中.根据数据库设计要求,按空间单元划分(分幅或者分行政单元)存储单元建立各个子数据库,或者将所有数据合并为一个存储单元建立无缝数据库. 3. 确定数据库安全权限 4. 软件系统与数据的融合检查 5. 数据库系统试运行测试 4. ### 空间服务发布 ArcGIS支持的OGC服务:(1)WMS(网络地图)服务;(2)WFS(网络要素)服务;(3)WCS(网络覆盖)服务;(4)WMTS(切片地图)服务;(5)WPS(网络地理信息处理)服务. 5. ### 服务调用阶段 略,ArcGIS Server的内容.

空间数据组织与管理

空间数据文件

文件结构

文件结构指文件中记录记录的组织和形式. 1. #### 无序文件 无序文件(堆)中的记录没有顺序,是最简单的组织形式.优点是在进行插入操作时可以很容易地在文件末尾插入一条新记录,代价是平均需要检索一半的磁盘页面,最坏情况要访问存储该数据的所有磁盘页面. 2. #### 散列文件 散列文件使用散列函数把记录分到一系列散列单元中.优点是能够把数量大致相同的记录放入每个散列单元中,对于点的查询、插入和删除操作都非常有效,代价是常数的,与文件中记录的个数无关.缺点是不适合范围查询. 3. #### 有序文件 有序文件根据给定的主码域对记录进行组织.优点是(1)根据给定的主码属性值查找是二分的;(2)可以进行范围查询(lower bound- upper bound);(3)可以根据对空间数据集的文件组织方式而概括成空间聚类.以上操作的代价是\(log_2(n)\)的,而缺点则是不能直接应用在空间领域(例如无法对城市的位置排序). ### 文件组织与数据库 ORACEL逻辑存储结构从大到小依次为数据表空间、数据段、数据区间和数据块.
ORACLE逻辑存储结构 文件存储模型

空间数据管理方式

  1. 文件管理

    文件管理的含义是空间数据文件和属性数据文件都是用文件管理系统管理. #### Shapefile Shapefile文件特点:(1)非拓扑化存储,文件显示迅速;(2)点、线、面分别存储;(3)一个Shape文件只能存储一种类型的要素. Shapefile由包含空间数据和属性数据的三个主要文件组成.Shapefile可以选择性地拥有具有索引信息的其他文件. Shapefile文件格式:
    • 至少有三个文件组成: .shp:主文件,储存地理要素的几何关系; .shx:索引文件,储存图形要素的几何索引; *.dbf:属性文件,储存要素属性信息的dBase文件; dBase表是具有行和列、可以与某个shapefile连接的数据表.几何与属性是一对一关系,这种关系基于记录编号.dBASE文件中的属性记录必须与主文件中的记录采用相同的顺序.
    • 还可能出现的文件 .sbn 和 .sbx:用于存储要素空间索引的文件. .fbn 和 .fbx:用于存储只读 shapefile 的要素空间索引的文件. .ain 和 .aih:用于存储某个表中或专题属性表中活动字段属性索引的文件. .atx:.atx 文件针对在 ArcCatalog 中创建的各个 Shapefile 或 dBASE 属性索引而创建.ArcGIS 不使用 shapefile 和 dBASE 文件的 ArcView GIS 3.x 属性索引.已为 shapefile 和 dBASE 文件开发出新的属性索引建立模型. .ixs:读/写 shapefile 的地理编码索引. .mxs:读/写 shapefile(ODB 格式)的地理编码索引. .prj:用于存储坐标系信息的文件;由 ArcGIS 使用. .xml:ArcGIS 的元数据,用于存储 shapefile 的相关信息. .cpg:可选文件,指定用于标识要使用的字符集的代码页. 其中空间要素及其属性信息以非拓扑的形式存储在数据集中.要素的几何形状数据存储成为具有矢量坐标的图形.数据显示速度快,易于编辑和存取.但是非拓扑的存储方式也会带来一些问题. #### ArcGIS的矢量数据管理 ArcGIS用图层实现矢量数据管理 Coverage数据格式中要素中的点、弧段、多边形要素和属性表是一一对应的. Coverage数据示例 在Catelog中所有这些组成shapefile的文件都显示为一个要素类. ArcGIS工作空间的Catalog视图 ArcGIS的文件后缀及含义: ArcGIS的文件后缀及含义
  2. 数据库管理

    文件与关系数据库混合管理的含义是空间数据文件用文件系统管理而属性数据文件用关系型数据库管理系统管理. #### ORDBMS管理 Oracle 中的空间数据模型是一个层次结构,依次由层(Layer)、空间数据对象(Geometry)、元素构成(Element).其中Element可以是Spatial支持的任何一种空间数据对象元素(点、线和多边形),一个Geometry由一个或者多个同类或异类的Element组成,Layer有具有相同属性的Geometry组成. Layer拥有Coordinate System和Tolence两个属性.Coordinate System负责指定位置的坐标和确定一组坐标之间的关系,可以让一组坐标对应到真实世界里的具体位置中.Tolence是容忍值,即判断两个空间数据对象是否分离的最小距离值. 用以下方式记录空间信息: 拓扑数据模型 ### 空间数据引擎SDE #### 空间数据引擎的作用
  • 空间数据引擎和空间数据库联合为任何支持的用户提供空间数据服务.空间数据引擎提供开放的数据访问,支持分布式GIS系统.
  • 空间数据引擎提供了连接DBMS的结构,其他一切涉及到与DBMS进行交互的操作都是在此基础之上完成.
  • 空间数据引擎对外提供了几何对象模型,用户可以在此模型基础之上建立空间几何对象,并对这些几何对象进行操作.
  • 空间数据引擎提供快速的数据提取和分析.可进行拓扑查询、缓冲区分析、叠加分析、合并和切分等.
  • 空间数据引擎在用户与物理数据的远程存储之间构建了一个抽象层,允许用户在逻辑层面与数据库交互,而实际的物理存储则交给数据库管理.
  • 空间数据引擎实现空间数据与属性数据的统一存储.传统的地理信息的存储方式是将空间数据与属性数据分别存储,空间数据因其复杂的数据结构多以文件的形式保存,而属性数据多利用关系数据库存储.而SDE涉及空间属性数据在DBMS中如何存储及管理.通过SDE则可以把这两种数据同时存储到数据库中,实现空间属性数据一体化管理,保证了更高的存储效率和数据完整性.
  • 空间数据引擎提供空间数据的并发响应机制.用户对数据的访问是动态的,透明的. #### GeoDatabese GeoDatabase是geographic database的简写,是一种采用标准关系数据库技术来表现地理信息的数据模型,是ArcGIS软件中最主要的数据库模型.Geodatabase支持在标准的数据库管理系统(DBMS)表中存储和管理地理信息. GeoDatabase支持多种DBMS结构和多用户访问.对于Personal Geodatabase可直接管理,对于Enterprise Geodatabase可通过ArcSDE管理.ArcSDE安装在关系 数据库的服务器上.通过TCP/IP,ArcSDE 为运行在 PC上的 ArcGIS 应用程序提供 Geodatabase服务.ArcSDE 将 Geodatabase 数据格式和扩展了空间功能的关系型数据库有机结合.ArcSDE 可以理解为 ArcInfo 的多用户扩展.ArcSDE允许多用户同时编辑同一地理数据和海量数据的中央化管理.

空间数据组织形式

(1)纵向分层:主题化分层;(2)横向分块:矩形/经纬分幅;(3)分层分块索引:二者结合;(4)三维空间数据组织/金字塔式数据组织:栅格数据管理-多级多分辨率索引.