来源:《数据库系统概论》、中国知网
1.数据库技术发展进程来看,特点:
(1)面向对象的方法和技术对数据库发展的影响最为深远数据库研究人员借鉴和吸收了面向对象的方法和技术,提出了面向对象数据模型(简称对象模型)。该模型克服了传统数据模型的局限性,促进了数据库技术在一个新的技术基础上继续发展。
(2)数据库技术与多学科技术的有机结合
计算机领域中其他新兴技术的发展对数据库技术产生了重大影响。传统的数据库技术和其他计算机技术,如网络通信技术、人工智能技术、面向对象程序设计技术、并行计算技术、移动计算技术等的互相结合、互相渗透,使数据库中新的技术内容层出不穷。
(3)面向应用领域的数据库技术的研究
在传统数据库系统基础上,结合各个应用领域的特点,研究适合该应用领域的数据库技术,如数据仓库、工程数据库、统计数据库、科学数据库、空间数据库、地理数据库等,这是当前数据库技术发展的又一重要特征。
2.大数据时代下数据管理技术面临的挑战
(1)数据
数据方面面临挑战包括数据量大,数据类型越来越多样与异构
(2)应用和需求
应用与需求已经从OLTP(联机事务处理,传统型)为代表的事务处理扩展到OLAP(联机分析处理,新型),也就是说 重视分析处理
(3)计算机硬件技术是数据库系统的基础
3.大数据时代下数据库发展趋势
大数据给数据处理、分析、管理提出了全新的挑战,对于伸缩性(动态按需来)、容错性(可用性)、可扩展性(满足数据增长需求)等,传统关系型数据库实在受不鸟了啊!此时,NoSQL出现了,NoSQL是指非关系型的、分布的、不太满足ACID特性的一类新一代数据库;科学家为了兼顾可扩展性以及ACID,又搞出来个NewSQL,NewSQL=NoSQL+传统数据库,科学家针对大内存多核多CPU等新型硬件,又搞出内存数据库系统,总之一句话,未来数据管理发展趋势是:各类技术的相互借鉴、融合、发展
4.大数据时代新型数据库发展
针对大数据 时代下数据特点,有以下几种数据库:
下面,几种数据库一个个分析:
(1)分布式数据管理系统。移动互联网时代下,数据规模大在诸多数据处理场景中都有所体现.例如社交媒体应用中的用户关系数据,如用图数据模型进 行建模,其涉及的结点数可高达几亿.为了处理这类大规模的数据,一个朴素的想法是分而治之,即,将数据分布 式地存储在多台机器上分别处理.据此,人们提出了各类分布式数据管理系统.
- 主要研究问题
- 数据强一致性:银行交易系统等金融领域往往有数据强一致性和零丢失的需求
- 系统高可用性:
在分布式数据库中,系统的高可用性和数据强一致性往往不可兼得.当存在不超过一台 机器故障的时候,要求至少能读到一份有效的数据,往往需要牺牲数据的强一致性来保证系统的高可 用性. - ACID 事务支持:ACID 指的是事务层面的原子性(atomicity)、一致性(consistency)、隔离性(isolation) 和持久性(durability).如何有效地支持 ACID 事务属性,一直是分布式数据库的难点很多 NoSQL 数据库都是放弃支持事务 ACID 属性来换取性能的提 升.近年来,新型数据库(NewSQL)的出现给分布式数据库的发展带来新的方向,它的目标是提供与 NoSQL 相同的可扩展性和性能,同时支持事务的 ACID 属性.这种融合一致性和可用性的 NewSQL 已 经成为分布式数据库的研究热点.
- 国内外研究现状
- 基于分布式集群或云平台的关系数据库
与传统数据库相比,这 些云数据库往往同时支持 MySQL,SQL Server 及PostgreSQL 等数据库引擎,具有低成本、易运维、可伸缩、高 可用等优势,并提供容灾、备份、恢复、监控、迁移等数据库运维全套解决方案. - NoSQL 数据库
由于事务处理过程对 ACID 属性的严格要求,云关系数据库的可扩展性相对有限.为提升系统存储和处理 海量数据的能力,NoSQL 从底层数据模型进行考虑,放弃关系模型,也不保证支持 ACID 事务处理.它采用 schema-free 的数据模型 - NewSQL 数据库
以 Spanner[27]为代表的新型数据库(NewSQL)的出现,给数据存储和分析带来了 SQL,NoSQL 之外的
新思路.NewSQL 指的是提供与 NoSQL 相同的可扩展性和性能,并同时能支持满足 ACID 特性的事务.这保留了 NOSQL 的高可扩展和高性能,且支持关系模型.融合一致性和可用性的 NewSQL 可能是未来大数据存储新的发 展方向. - 总结与展望
在大数据环境下,NoSQL 分布式数据库与传统分布式数据库最终目标都是对用户提供完善的数据存储和 查询功能,并且在运营上能够实现可伸缩和高可用等特性,并提供容灾、备份、恢复、监控等功能.两者最大的 区别在于 传统分布式数据库追求数据强一致性,并且需要提供 ACID 事务支持,导致其在峰值性能、伸缩性、容 错性、可扩展性等方面的表现不尽如人意,很难满足海量数据的柔性管理需求.NoSQL 则是以牺牲支持 ACID 为代价,换取更好的可扩展性和可用性. NewSQL 是一种相对较新的形式,旨在将 SQL 的 ACID 保证与 NoSQL 的可扩展性和高性能相结合.
未来几年,融合关系数据库和 NoSQL 优势的 NewSQL 将继续在分布式数据库领域大放光彩,并成为一个重 要的研究热点.以 OceanBase 和 DCDB 为代表的国内 NewSQL 系统也将在海量复杂业务推动下持续发展和优 化,并作为国家大数据发展战略提供有力支撑.这也意味着我国有可能在下一波数据库技术潮流当中占领先机, 进入第一梯队.
(2)流数据处理系统。 数据变化快这一特征具体体现在数据实时到达、规模庞大、大小无法提前预知,并且数据一经处理,除非 进行存储,否则很难再次获取.在金融应用、网络监控、社交媒体等诸多行业领域,都会产生这类变化极快的数 据.为了解决这一问题,人们提出了流数据处理系统.
- 主要研究问题
流数据有众多不同的定义,但统一起来可以用随时间不断增长的数据模型来概括.除了基本的数据查询统 计等操作外,主要有 3 方面的研究问题——流数据采样、持续性数据查询和流数据并行计算. - 流数据采样.基于有限的存储来管理无限的动态数据是流数据管理中的基本挑战之一,应对这一挑战 的最经典的思路则在于流数据上的高效采样.将高速更新的流数据采样到有明确规模边界的有限存 储中,通过对采样数据的计算和挖掘来反映流数据所蕴含的重要信息.一方面需要研究不同流数据场 景下采样策略的选取,进而能够利用有限的资源尽可能地反映原流数据的特征信息;另一方面需要结 合计算需求,精准分析采样数据上的计算与挖掘结果相对于精确解的近似程度,控制计算结果的偏移 范围;
- 持续性数据查询.流数据模型所对应的最核心的现实场景是实时监控.对不断生成的现实数据进行高 效的计算挖掘,能够及时获取现实世界中的重要信息.例如银行对实时的交易数据进行监控,及时规避 欺诈风险和追踪洗钱等违法行为.因此,给定基于结构特征、统计特征的数据查询模式,实时地监控流 数据中匹配的目标,一直都是研究的热点.一方面需要保存已计算的中间结果来减少重复性的计算,另 一方面,又需要避免中间结果维护带来过高的额外开销;
- 流数据并行计算.应对流数据高速生成的一个重要策略就是利用数据和计算的独立性进行并行处理, 提高系统吞吐量.系统日志数据、银行流水数据以及大量的移动应用产生的用户数据等在其初期的归 整处理上都可以利用数据独立性进行流水线式的并行处理.在更复杂的数据计算和分析过程中,针对 计算独立性和流场景的一致性要求,设计锁机制来实现计算分析的并行化.
- 国内外研究现状
- 早期以关系型数据为主的数据流管理系统(DSMS);
- 近期针对大规模复杂数据的流式计算系统
- 目前兴起的对图数据流管理系统
(3)图数据管理系统。针对数据种类杂的特征,人们采取“各个击破”的手段,针对各类数据分别提出专门的数据管理系统,图数据管理系统和时空数据管理系统是典型代表.图数据模型是一种具有高度概括性的数据模型,近年来,随着社交网络与语义网的发展,基于互联网的图数据规模越来越大.截止到 2017 年底,微信已经有 了将近 10 亿活跃用户,这些用户相互关联与通信,仅在 2016 年春节期间,用户之间就互相分发了 32 亿个红包.在语义网的 Linked Open Data 项目中,已经有超过 1 184 个 RDF 图数据集,合计超过 800 亿条边.针对这些规 模巨大的图数据,设计与实现高效的图数据管理系统成为一个很重要的研究热点.
- 主要研究问题
- 图搜索:给定一个图,从一个点出发沿着边搜索其他所有节点.常见的图搜素方法有宽度优先、深度优 先和最短路径等.
- 基于图的社区发现:社区发现是社交网络分析中一个重要的任务,用于分析网络图中的密集子图.这对 于理解社交网络中的用户行为和朋友推荐等都具有非常重要的应用价值
- 图节点的重要性和相关性分析:计算图中某个节点的重要程度,例如在网页链接图中分析网页的重要 程度;衡量图上两个节点的相关性,例如社交网络中两个人之间的关系,
- 图匹配查询:给定数据图和查询图,图匹配查询找出所有在数据图上与查询图同构的子图,这个问题常 用于描述针对图结构的查询.
- 国内外研究现状
- 低层次抽象的提供编程接口的图数据管理系统:这类系统会针对图数据管理中的基本操作设计并实 现相应的编程接口,用户利用这些编程接口来实现相应的管理功能;
- 高层次抽象的提供描述性查询语言的图数据管理系统:这类系统设计图数据管理描述性查询语言,用 户将相应的管理需求用描述性查询语言表达,系统解析这些描述性查询语句并生成相应的查询计划 来进行执行处理.
(4)时空数据管理系统。时空数据在人们的日常生活中也十分常见,例如各类地图应用在提供导航服 务时,都需要对大量的时空数据进行高效地处理.
-
时空数据库种类
-
空间数据库:主要处理点、线、区域等二维数据
-
时态数据库:管理数据的时间属性,包括有效时间(valid time)、事务时间(transaction time)等.
-
移动对象数据库:管理位置随时间连续变化的空间对象,主要有移动点和移动区域:前者仅是位置随时 间变化,后者还包括形状和面积的变化.移动对象具有数据量大、位置更新频繁、运算操作复杂等特点. 近年来,随着定位设备的不断普及例如智能手机,采集这类数据越来越容易.同时,与地图兴趣点(例如 酒店、餐馆等)相结合,使得移动对象具有语义信息,带来各种新的应用,例如基于位置服务、最优路径 规划等.
-
主要研究问题
-
数据模型和查询语言
数据模型包含数据类型和运算操作两个方面.时空数据类型包含多个,有些为定长记录存储(例如点、区间),
有些为变长记录存储(例如区域、移动点).运算操作定义时空拓扑运算(例如相交 intersect、重合 overlap).时空数据类型可作为关系属性嵌套在关系模式下,从而对查询语言 SQL 扩展(运算操作、谓词), 以得到时空数据查询语言,支持形式化查询描述. -
索引结构
根据不同时空数据的特点设计访问结构,以支持快速查询处理,常见的空间和时态索引有 R-tree,K-d Tree, Interval-tree 等.不同的索引结构有相应的运算操作,包括创建、插入、删除、更新及查询.其中,R-tree 是最为广 泛使用的结构,为提高查询效率,需对数据排序(例如 z-order),目的是将相似数据存储在邻近结构里,以减少搜索 的 I/O 代价.同时,基于该结构的预测模型可以估计查询的 I/O 代价,为进一步优化提供分析的依据.时空数据索引可以融入语义描述,从而拓展时空数据管理能力,以支持具有语义的时空查询. -
查询处理及优化
选择查询和最近邻查询是空间和移动对象数据库最常见的两类查询:前者返回在空间/时空查询窗口内的
对象,后者返回距离查询目标最近的对象.与选择查询、最近邻查询相比,连接查询的复杂性更高,相关优化技术有数据划分、索引创建、排序等.时空数据查询还包括聚类查询、模式匹配、距离查询等. -
时空数据管理系统
在定义了抽象模型的基础上,需要有系统实现模型包括数据结构和算法、逻辑设计及实现,同时需要将时
空数据模型和关系模型有效融合,从而扩展数据库处理能力.
除上述研究问题,时空数据库管理还涉及时空数据仓库、时空图数据、时空数据流、基于位置服务(最优 路径规划和交通预测)、轨迹数据压缩、时空数据挖掘和分析等方面. -
国内外研究现状
-
空间数据库
依据不同的环境,空间数据库的研究包括自由空间和受限空间(例如道路网、有障碍空间),主要区别在于距离函数,受限空间的距离计算依赖于最短路径求解,比自由空间复杂.相关查询有范围查询、最近邻(反向最近邻)、skyline 查询、动态道路网下最短路径查询和路径规划等,索引技术和搜索策略在查询中起到了关键性作 用.查询过程一般包括过滤和提炼两个阶段:过滤阶段借助于索引和估计值找到一组备选对象,提炼阶段对 每个备选对象进行准确值求解.空间数据库查询还包括最大范围求和、容量受限分配等.在基于位置服务的应 用中,隐私保护是一个重要的研究内容,已有的工作包括基于位置隐私的攻击及保护方法,如模糊表示、匿名等. 近 10 年来,空间关键字查询(spatial keyword search)得到了广泛和深入的研究[100],通过将空间位置与文本 结合,用户可以查询同时符合空间和语义条件约束的对象,常见查询有 Top-k,k-NN 等.由于传统的空间数据索引 不支持文本数据管理,一般将空间索引与文本索引或位图技术相结合构成混合索引结构,支持同时对空间和文
本数据的查询以减少搜索范围. -
时态数据库
在过去的 20 年里,时态数据管理一直是数据库的活跃领域之一,研究内容包括数据模型、查询语言、索引 结构及高效查询算法,各种查询语言也被提出以支持时态数据查询的形式化描述.Enderle 等人基于常见的时态 数据索引之一 Interval-tree 设计了相应的外存结构以及在关系数据库系统中的实现方法,可以有效支持相交查 询和连接查询[100];Top-k 查询用于返回与查询点(区间)相交且权重最大的 k 个对象.Dignös 等人将时态数据运算 操作、转换原则及查询优化方法集成到关系数据库系统内核中(PostgreSQL)以扩展其处理能力[99],商用数据库 Oracle 提供了数据类型 PERIOD 及相关谓词和函数.
近几年, 时态数据库的研究主要在高效处理各种连接查询( 例如 overlap join,merge join)、 聚类查询 (aggregation)以及数据划分和排列方法(partition/splitter,align).同时,硬件技术(例如多核 CPU)的发展也有助于 提高查询效率.不确定性时态数据将时态数据和不确定性结合,也有不少相关研究工作,包括数据表示及建模、 不确定性时态数据查询等;时态数据集成是根据用户指定优先规则对多源时态数据融合. -
移动对象数据库 早期的移动对象数据库研究主要在数据模型、索引和查询处理等[99],代表性索引结构有 TB-Tree、SETI、
TPR-tree、STRIPES 等[101],这些结构的差异主要体现在时空数据的管理方法(例如插入原则、时空优先权),常见 的移动对象查询有范围查询、(连续)最近邻、相似性轨迹、连接查询等.针对大规模移动对象位置的实时更新, 有学者提出了有效的更新策略及监控方法,也有学者对不确定性移动对象进行了研究[105].近年来,面向特定应 用的移动对象查询得到了广泛的关注,例如轨迹模式匹配、异常现象分析、基于轨迹的用户行为推荐、轨迹压 缩等.由于大规模移动对象数据获取已相对容易,对历史数据分析其结果可为应用提供支撑,例如最优路径推 荐、最优出行方式及路线规划、交通流量预测等.除了支持时空查询,系统也需要对用户的位置信息进行有效 保护,针对这一问题,有学者开展了基于位置隐私保护的研究.
人的运动除了在自由空间下,更多时候是在受限空间下,例如道路网[100]、有障碍空间[101]和室内环境.不同 环境的主要区别在移动对象位置表示和距离函数:自由空间的位置通过坐标表示,距离函数基于欧式距离;而受 限空间下的位置依赖底层空间环境,距离函数与最短路径相关,求解过程相对复杂.例如,道路网环境下采用 Map-matching 技术,将 GPS 位置(经纬度)映射到道路网从而得到道路网移动对象;在室内环境,移动对象位置获 取一般依靠 RFID,WiFi 等技术,位置表示则采用基于符号的表示方法.上述工作均是针对单个空间环境下的移 动对象,也有学者将多个环境的不同位置表示方法融合,形成统一的位置表示方法,支持人的完整运动轨迹表示 以及不同运动方式的移动对象数据管理,例如步行公交车步行室内.
在大数据背景下,新应用要求数据包含更多的信息以全面理解用户行为,移动对象数据也从传统的时空数 据拓展到具有语义信息和行为描述[108,109].语义轨迹是将 GPS 数据和时空场景结合,例如兴趣点或用户行为,给 移动对象赋予相关描述(可通过数据挖掘算法得出并以标签形式存储),丰富移动对象表示.基于语义轨迹的常 见查询有模式挖掘和匹配[108]、时空语义关键字查询、top-k 查询以及移动用户行为分析(规律性的访问某些位 置、规避和会合等).基于硬件的技术也被用于大规模轨迹数据查询和分析,例如基于主存的轨迹存储和查询方 法、分布式/并行轨迹数据处理平台(基于 Spark 和 Hadoop)、基于 GPU 的交互式时空数据查询等,轨迹数据可 视化技术也有相关研究.
4.3.4 时空数据管理系统 时空数据管理系统的设计主要有两种思路:一种是对传统关系数据库管理系统的内核修改或扩展以支持
时空数据管理,包括数据类型、访问方法、查询语言等;另一种则通过在应用层和传统数据库管理系统层之间 构建一层结构,用于时空数据和传统数据的相互转换,即,在应用层以时空数据处理而在系统存储层还是以传统 数据形式.第一种方法能够保证效率最优,第二种方法则在能够在较短时间内达到实际可行的效果.
并行处理技术在时空数据库领域也得到了快速发展,主要用于大规模数据查询处理[103].在空间数据库方 面,SpatialHadoop 和 HadoopGIS 均是基于 Hadoop 的空间数据处理系统,Simba 是基于 Spark 技术的空间数据分 析系统[106],其对 SparkSQL 进行了扩展,能有效支持并发查询.在时态数据库方面,有基于 PostgreSQL 的时态数
据查询原型系统和在线实时时态数据分析系统 OceanRT.在移动对象数据库方面,有针对轨迹数据处理的引擎 Hermes、支持多种轨迹数据挖掘操作及可视化系统 MoveMine、基于内存的分布式系统 SharkDB,DITA[102]、 轨迹数据在线分析系统 T-Warehouse、大规模轨迹数据管理和分析平台 UlTraMan[107].SECONDO 是一个开源 可扩充性数据库管理系统,能对空间、时态和移动对象数据有效管理且支持并行处理[101].
-
总结与展望
时空大数据具有多维度、多类型、变化快等特点,给数据库管理系统提出了新的挑战:一方面,需要提供数 据类型和运算操作以支持时空数据查询;另一方面,高效查询处理对数据库性能有较高的要求.迄今,时空数据 库的发展趋势包含以下几点. -
具有语义描述的时空数据管理,可分为时空数据和流数据两类:前者针对包含关键字的时空数据进行 查询,后者针对高频率的流数据进行连续查询.为增加用户满意度,交互式和探索式查询也是进一步研 究的方向之一;
-
并行/分布式环境下的大规模时空数据管理系统.现有的时空数据库原型系统需要在支持的查询种类 和通用性数据表示上进一步提升.同时,随着越来越多的时空数据管理系统被研发,需要在统一标准下 对系统的功能及性能进行全面测试和评估(benchmark).新型存储设备(例如 SSD 具有快速随机写等特 点)的发展,将给位置频繁更新的移动对象研究带来新的契机;
-
具有智能性的时空数据库系统.在人工智能技术快速发展的背景下,如何融入机器学习方法以增加系 统的智能性,是新一代时空数据库管理系统研究的内容,即,系统根据当前处理数据及查询的特点自动 进行索引结构和相关算法的调整以使性能最优,例如参数配置、数据划分、缓存设置等.
(5)众包数据管理系统。大数据的价值密度通常较低,例如社交媒体中大量的图片数据在未经标注之前,并不具备显著的价值.众包 正是解决该问题的有效手段之一.众包通常是指“一种把过去由专职员工执行的工作任务通过公开的 Web 平台 以自愿的形式外包给非特定的解决方案提供者群体来完成的分布式问题求解模式”,是完成大规模的对计算机 较为困难而对人类相对容易任务的有效手段,例如数据标注.为了有效地对众包过程中的数据和众包参与者群 体进行有效管理,人们提出了众包数据管理系统.
总 结
数据相关技术的发展给整个社会带来了巨大的变革,也给相关的技术领域带来了巨大的挑战.不同领域的 学者均尝试从自身的角度出发来解决大数据的种种问题,基于这些成果构建了若干实际可行的新型系统.但随 着数据规模以及应用需求的进一步发展,未来的数据管理技术仍旧面临着新的问题和转变.
- 新型数据管理系统需要更自然、更高效地支持不同类型、不同来源的数据.针对应用中出现的不同类 型数据管理需求,现有的系统大多是通过构建专用系统来解决,例如图数据管理系统、时空数据管理系 统等.而应用中,这些数据是混杂在一起,按照数据类型划分到不同数据系统中,这种管理方式不高效也 不自然.新型数据管理系统需要提供通用的底层数据模型,统一支持不同类型数据的存储、查询、分析、 优化等操作;
- 新型数据管理系统需要在体系结构方面实现扩展.为减少系统复杂性,提高系统稳定性,在现阶段通过 松耦合包容不同类型数据的管理系统,为用户提供统一的数据管理和分析服务,是支持不同数据模型 的可行技术路线.此外,数据管理系统需要考虑异构的计算资源.异构计算环境广泛存在于真实应用场 景中,包括资源共享与竞争、网络和计算能力差异以及新型硬件带来的异构性.异构计算环境会对新型 数据管理系统的效率带来极大的影响,同时,新型硬件的发展也为新型数据管理系统提供了新的机遇;
- 新型数据管理系统需要在计算模型方面实现扩展,满足不同数据模型管理需求,支持系统松耦合管理 体系.机器学习是目前的技术热点,在自然语言处理、计算机视觉等方面取得突破.新型数据管理系统 需要和机器学习实现融合,包括在数据库内核层面实现机器学习方法,深度分析数据,提供更加强大友 好的用户接口.此外,机器学习技术为现有数据操作实现带来新的思路,如通过学习构建索引、自然语 言查询等,需要在数据管理内核方面融入更多的机器学习技术,通过紧耦合提升现有数据管理系统的 效率和可用性.