王豪迈
作者王豪迈·2016-12-29 16:38
CTO·星辰天合(XSKY)

数据库的高级数据类型和新的应用

字数 5258阅读 734评论 0赞 0

在数据库的大部分历史中,存储在数据库的数据类型相对简单。现在,在数据库中处理新的数据类型的需求不断增加,像时态数据、空间数据和多媒体数据等。另一趋势,可移动计算机的发展。

动机

  • 时态数据:许多应用中,保存和检索有关过去状态的信息非常重要,历史信息可以手工加入到模式设计中,通过数据库对时态数据的支持可以大大简化工作。
  • 空间数据:包括地理数据以及计算机辅助设计数据。
  • 多媒体数据:保存图像、视频和音频数据等,视频和音频的特征是数据的检索需要稳定的、可预先确定的速度,这样的数据称为连续媒体数据。
  • 可移动数据库:新一代可移动计算机系统包括笔记本电脑和掌上型计算设备等,它们通过无线数字通信网络连接到基站。在和网络断开的时候仍需要能够允许,它们只有有限的存储能力。

数据库中的时间

存储现实世界的时间经历状态信息的数据库叫做时态数据库。

考虑数据库系统的时间问题,必须区分系统中测量的时间和现实世界中观察到的时间。一个事实的有效时间是这个事实在现实世界中为真时间段的集合。一个事实的事务时间是这个事实处于数据库系统中的时间段。后者是基于事务串行化顺序并由系统自动产生的。有效时间段是一个真实世界的概念。

时态关系的每个元组具有一个该元组 为真时的相关时间,这个时间可以是有效时间或事务时间。当时存储有效时间和事务时间的关系称为双时态关系。

SQL中的时间描述

SQL标准定义了date、time和timestamp类型。

  • date:表示年的四位数字(1-1999)、表示月的两位数字(1-12)和表示日的两位数字(1-31)。
  • time:包含小时的两位数字、表示分钟的两位数字、表示秒的两位数字,以及可选的表示秒后的小数位。秒字段可以超过60,允许闰秒的情况。由于地球旋转速度的变化,在有些年里需要增加秒数来校准,增加的秒数就是闰秒。
  • timestamp:包含date字段和time字段,其中秒字段有六位小数。

由于世界上不同时区的原因,需要指出时间所在的时区。全球协调时间(UTC)是制定时间的标准参考点,而当地时间定义成从UTC的偏移。

SQL还支持time with time zone 和 timestamp with time zone 类型,用本地时间和本地时间对UTC的偏移来指定时间。

SQL支持一种interval类型,指示像“一天”或者“两天零五个小时”这样的一段时间,无需指出这段时间何时开始。

时态查询语言

一个没有时态信息的数据库关系有时叫做快照关系。

时态选择是涉及时间属性的选择;时态投影是一个投影,它的元组继承了原始关系中元组的时间。时态连接的结果中元组的时间是产生该元组的两个元组的时间的交集。

谓词precedes、overlaps和contains用在时间段上。

空间和地理数据

数据库支持空间数据对于高效存储、索引以及查询基于空间位置的数据非常重要。我们不能使用标准的索引结构,使用R树来执行。

  • 计算机辅助设计(CAD)
  • 地理数据:地理信息系统是适用于存储地理数据的专用数据库系统。

几何信息的表示

  • 线段可以由其端点的坐标表示。
  • 折线由相连的线段序列组成。
  • 任意曲线:将它划分为一个线段序列,近似用折线表示。有些系统将圆弧作为基本类型,允许将曲线表示为圆弧序列。
  • 多边形:一种表示多边形方法:顺序列出多边形的顶点来表示多边形。还可以用三角剖分,任何多边形都可以用一组三角形表示。复杂多边形被赋予一个标识符,所分割的每个三角形具有该多边形的标识符
  • 圆和椭圆:由相应类型表示,也可以用多边形做近似。

设计数据库

传统上,CAD系统在编辑或做其他处理时将数据存储在内存中,并且在一次编辑结束时将数据写回文件。缺点包括将数据由一种形式转化为另一种形式的开销,以及读入整个文件即使只需要一部分。对于大型设计不可能把整个设计放到内存中。面向对象数据库的设计者受CAD系统的数据库需求的驱动。面向对象数据库将设计者的组件表示成对象,并且对象间的连接指明了设计的构造方式。

设计数据库存储的对象是几何对象。简单的二维几何对象包括点、线、三角形、矩形和多边形。复杂二维对象用简单对象的并、交、差操作得到。复杂三维对象可以由简单对象(如球、圆柱和立方体)的并交差操作得到。三维表面也可以用线框模型表示,本质上将表面建模成一组更简单的对象,如线段、三角形和矩形。

设计数据库也存储对象的非空间信息,如构造对象的材料,通常用标准数据建模技术表示。

空间完整性约束对在设计数据库中防止接口错误是很重要的。完整性检查的实现以来于高效多维索引结构的可用性。

地理数据

实际上就是空间数据。地图和卫星图像是地理数据的典型例子。

地理数据分为两类:

  • 光栅数据。这种数据由二维或更高维的位图或像素图组成。
  • 矢量数据:有基本几何对象组成。

地理数据的表示

地理特征可表示成复杂多边形,河流表示成复杂曲线或复杂多边形。关于地区的地理信息表示成一个数组,也就是以光栅的形式。该数组可以用压缩形式存储。矢量数据不适合数据本来就是以基于光栅的应用。

地理数据的应用

联机地图服务、交通导航系统、公共服务设施的分布网络信息以及土地使用信息等。

基于Web的道路地图服务成为广泛使用的地图数据应用程序。移动地理信息系统的一个有用的附件是GPS部件,使用GPS卫星广播信息,确定当前位置,导航系统通过查询地理数据库来找出车辆当前的位置和道路。

空间查询

  • 临近查询:找出位于特定位置附近的对象。最近邻居查询则找出离特定点最近的对象。
  • 区域查询:寻求部分或全部位于指定区域内的对象。
  • 查询也可能要求区域的并和交

计算区域的交的查询看出计算两个空间关系的空间连接。一个关系代表降雨量,另一个人口密度,而位置作为连接属性。一般地,给出两个关系,其中每个关系都包含空间对象,则空间连接生成若干相交的对象,或这些对象的相交区域。

由于空间数据固有的图形化,我们通常使用图形化查询语言来对它们查询。结果也以图形化的方式显示。用户可以使用界面上的操作。

现已提出SQL的扩展,允许关系数据库有效的存储和检索空间信息,并且也允许空间和非空间混合提交查询。这些扩展包括对抽象数据类型的支持。

空间数据的索引

有效访问空间数据需要索引,传统索引结构只能处理一维数据。

k-d树:每一层将空间分成两个部分。树的顶层结点按一维划分,下一层结点按另一维划分,依此类推。划分过程要使得每个结点,大约一半存储在子树中的点落入一侧,而另一半落入另一侧。当一个结点中的点数少于给定的最大点数时,划分结束。

k-d-B树:允许每个内部节点有多个子结点,如同B树扩展了二叉树减小高度一样。k-d-B树比k-d树更适合于辅助存储器。

PR四叉树:顶层结点对于于整个目标空间,每个非叶结点将其区域等分为四个大小相同的象限。对应的,每个结点的四个子结点对于于四个象限。叶结点具有零至某固定最大数目的点。相应的,对应于一个结点区域有多于最大数目的点数,则该结点需要创建子结点。

区域四叉树:存储数组(光栅)信息。将一幅栅格数据层或图像等分为4部分,逐块检查其格网属性值(或灰度);如果某个子区的所有格网值都具有相同的值,则这个子区就不再继续分割,否则还要把这个子区分割为四个子区;这样依次分割,直到每个子块都只含有相同的属性值或灰度为止。

R树
R树是一个高度平衡树,它是B树在k维上的自然扩展,用空间对象的MBR来近似表达空间对象,根据地物的MBR建立R树,可以直接对空间中占据一定范围的空间对象进行索引。R树的每一个结点都对应着磁盘页D和区域I,如果结点不是叶结点,则该结点的所有子结点的区域都在区域I的范围之内,而且存储在磁盘页D中。如果结点是叶结点,那么磁盘页D中存储的将是区域I范围内的一系列子区域,子区域紧紧围绕空间对象,一般为空间对象的外接矩形。

R树中每个结点所能拥有的子结点数目是有上下限的。下限保证索引对磁盘空间的有效利用,子结点的数目小于下限的结点将被删除,该结点的子结点将被分配到其他的结点中;设立上限是因为每一个结点只对应一个磁盘页,如果某个结点要求的空间大于一个磁盘页,那么该结点就要被划分为两个新的结点,原来结点的所有子结点将被分配到这两个新的结点中。令M为一个结点中记录数目的最大值,mSM/2为一参数,说明一个节点记录的最小值,m可作为调节树结构的一个可变参数,R树满足如下几项特点:

  1. 根节点若非叶子节点,则至少有两个子节点;
  2. 每个非根叶节点和非叶节点包含的实体个数均介于m和M之间;
  3. 所有叶子节点在同一层次;

R树兄弟结点对应的空间区域可以重叠,可以较容易地进行插入和删除操作。但正因为区域之间有重叠,空间索引可能要对多条路径进行搜索后才能得到最后的结果。当查找与给定的查询窗口相交的所有空间对象时,空间搜索算法是从根结点开始,向下搜索相应的子树.算法递归遍历所有约束矩形与查询窗口相交的子树,当到达叶结点时,边界矩形中的元素被取出并测试其是否与查询矩形相交,所有与查询窗口相交的叶结点即为要查找的空间对象。R树的查询效率会因重叠区域的增大而大大减弱,在最坏情况下,其时间复杂度甚至会由对数搜索退化成线性搜索。正是这个原因促使了R+树的产生。

在R+树中,兄弟结点对应的空间区域没有重叠,而没有重叠的区域划分可以使空间索引搜索的速度大大提高,克服了R树中多路查询的问题,但同时它也存在着一些缺陷,如对某个最小约束矩形的划分,可能会引起相关子树上其他结点也需要重新划分,向下分裂操作可能使得已经划分好了的结点被重新划分,空间对象在R+树的叶结点中被重复标记,完成删除运算后,必须对R+树进行重建等,同时由于在插入和删除空间对象时要保证兄弟结点对应的空间区域不重叠,而使插入和删除操作的效率降低。

R*树是最有效的R树变种,它能对覆盖区域、重叠面积和边界周长进行启发式地优化,并通过重新插入节点重建R.树以提高其性能,但重新插入这个过程相当繁琐,其实现过程太过漫长。压缩R树的空间数据集是预先己知的,通过预先对数据进行合理有效的组织,可以保证其具有很高的空间利用率和良好的查询效率,但由于其不能进行动态插入和删除,因而其应用受到了很大限制。

R树是B树在多维空间的扩展,是一种平衡的树结构。R树结构采用平行于数据空间轴的最小的边界矩形来近似复杂的空间对象,其主要优点是用一定数量的字节来表示一个复杂的对象。尽管这样会丢失很多的信息,但是空间物体的最小边界矩形保留了物体的最重要的几何特性,即空间物体的位置和其在整个坐标轴上的范围。

多媒体数据库

多媒体数据,如图像、音频和视频等,成为日益流行的数据格式。现在,多媒体数据通常存在数据库以外的文件系统中。当存储的多媒体对象数目很多时,数据库的特性变得重要。构造多媒体对象的数据库的方法之一是用数据库存储描述属性,并且跟踪存储这些多媒体对象的文件。

如果将多媒体数据存储在数据库中,有以下问题:

  • 数据库必须支持大对象。
  • 某些类型数据的检索,如音频和视频,要求数据传输必须在一个平稳速率。
  • 许多多媒体数据库应用都需要基于相似性的检索。

多媒体数据个数

由于多媒体数据需要大量字节数,有必要用压缩的格式存储和传输多媒体数据。

压缩格式:

  • JPEG:压缩图片
  • MPEG标准:视频压缩

连续媒体数据

连续媒体系统的特点是要求实时的信息传输:

  • 数据传输足够快,使得音频或视频输出没有间断
  • 数据传输的速度不会导致系统缓冲区溢出
  • 必须保持不同数据流之间的同步

视频点播系统的基本体系结构:

  • 视频服务器
  • 终端
  • 网络

基于相似性的检索

  • 图片数据
  • 声音数据
  • 手书数据

移动计算和个人数据库

  • 移动计算
  • 无线计算
  • 位置相关查询
  • 能源问题
  • 网络断开连接仍保持工作的需求和保持全局数据一致性

移动计算模型

移动计算环境由移动计算机和有线计算机网络构成。移动主机通过移动支持站点的计算机与有线网络通信。每个移动支持站点管理其单元内的那些移动主机。移动主机可以在单元间移动,需要从一个移动支持站到另一个移动支持站点的控制交接。

移动主机间不通过移动支持站点的介入而直接通信可通过蓝牙技术。

路由和查询处理

移动计算直接影响数据库处理,导致通信成本的动态改变,使优化处理更加复杂,还需要考虑以下代价:

  • 用户时间
  • 连接时间
  • 传输的字节数或包数
  • 基于每日不同时段的收费
  • 能源有限

广播数据

频繁请求的数据由移动支持站点不断周期性广播:

  • 避免了发送数据请求的能源开销
  • 立刻被大量移动主机收到

连接断开与一致性

在断开连接的时间段内,移动主机仍可以继续操作。移动主机用户可以对位于本地或缓存在本地的数据发出查询和更新命令。导致的问题:

  • 可恢复性:如果断开的移动主机发生故障,信息更新丢失。
  • 一致性:移动主机重新连接后的本地缓存数据可能已经过时。

对于只被移动主机更新的数据,一个简单方式在移动主机重新连接时传播其更新。但如果移动主机缓存了其他计算机更新的数据的只读副本,缓存的数据可能已经不一致了。当移动主机连接时,可以发给它失效报告通知它有过期的缓存数据项。但是,当移动主机断开连接时,会错过失效报告。

连接断开操作、广播数据的使用和数据缓存是当前移动系统正致力解决的三个重要问题。

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

X社区推广