6月刊精彩文章推荐:圆桌共话数据库
邀请嘉宾:PrakashSundaresan微软SQLServer中国研发团队总经理。陈桂新盛大游戏技术保障中心资深研究员,总监。宋一平Sybase软件(中国)有限公司售前技术总监。周傲英华东师范大学软件学院教授、海量计算研究所所长。Q&A1 今年是关系型数据库40周年,您觉得这期间数据库领域发生了哪些具有里程碑意义的事件?有哪些重要的技术突破?...
邀请嘉宾:
Prakash Sundaresan
微软SQL Server中国研发团队总经理。
陈桂新
盛大游戏技术保障中心资深研究员,总监。
宋一平
Sybase软件(中国)有限公司售前技术总监。
周傲英
华东师范大学软件学院教授、海量计算研究所所长。
Q&A 1 今年是关系型数据库40周年,您觉得这期间数据库领域发生了哪些具有里程碑意义的事件?有哪些重要的技术突破?
周傲英:里程碑意义的三大事件分别是关系数据模型的提出、查询处理和优化技术的发展以及事务管理技术的进步。
关系数据库的优点是模型简单、理论完备,查询优化也是伴随着关系数据库而生的。在IMS盛行的时代,最初实现的RDBMS效率很低,被讥笑为“Toy System”。这一局面得以改变,靠的就是在查询处理和优化方面的极大进展。这之中,索引技术举足轻重,得到了全面的技术突破。在事务管理方面,事务管理模型和事务管理关键技术的突破,使得支持大量并发访问用户成为现实,并有效支持数据库的恢复和保护机制,从而把数据库打造成一个全面可实用的系统。
陈桂新:从商业数据库和开源数据的发展,大致可以看到关系型数据库的发展历程。
1970年:IBM公司的研究员E.F.Codd发表了业界第一篇关于关系数据库理论的论文《A Relational Model of Data for Large Shared Data Banks》,首次提出了关系模型的概念;
1992年:ISO和IEC发布了SQL国际标准,称为SQL-92。ANSI随之发布的相应标准是ANSI SQL-92;Oracle 7面世;
1997年:Oracle 8支持面向对象开发及多媒体应用;
1998年:9月 Oracle 8i添加了基于Internet的特性;
1999年:MySQL AB成立;
2001年:Oracle 9i出现了强大的Real Application Clusters(RAC)为OPS并行;
2003年:ORACLE 10g引入网格计算;
2007年:Oracle 11g在10g基础上,特性都有很大提升;
2008年:Sun及其所有的MySQL被Oracle收购。
重要的技术突破主要是出现更多可供选择的优秀商业数据库和各类开源数据库。产品从最初的简单数据存储检索到目前的多媒体方案,从单一应用向多应用领域延伸,从数据库本身到各种功能集于一体。
宋一平:1976年左右,Larry Ellison做出了关系型数据库Oracle;后由于网络技术的发展,1987年左右,Sybase关系型数据库诞生,它天生支持C/S架构,且将应用和数据访问分离,提高了应用性能。之后Sybase出现了里程碑式的技术突破,一是发明存储过程,二是多线程技术,这都是数据库的重大突破。另外,列式数据库的诞生也是关系型数据库的一次革命。
Q&A 2 数据库技术目前面临的主要挑战有哪些?分别有哪些解决方案?
周傲英:数据的在线分析(OLAP)要求能快速、多粒度从历史和现实数据中分析出对决策有帮助的结果,这和数据库系统所擅长支持的在线事务处理(OLTP)应用差别很大。数据仓库技术就是针对这类应用提出来的;现实中不是所有的数据都需要保存在数据库系统中然后再进行处理,一是数量太大,保存意义不大;二是现实应用中需要及时反应(报警或报告),不容存入数据库中再来分析。本世纪初开始兴起的数据流技术就是解决这一类应用的;Web是典型的有大量数据的地方,科学实验数据也一样。数据库如何来管理这些数据是一个挑战。针对这些人们深入研究了XML/RDF半结构化数据管理技术、智能数据集成、按列存储数据管理、分布式高可靠的存储和并行计算技术,提出了相应的解决方案;实际应用中的材料单(Bill of Material, BOM)问题、传递闭包问题也是经典数据库技术目前面临的挑战。
宋一平:数据库技术当前面临的挑战,主要是大数据量、并发能力和快速响应问题。另外在Clustering方面也面临着如何提高效率,减少开销(overhead)的问题。虽然在这几个方面都有解决方案,如:Partition解决大数据量的问题,Oracle RAC,Sybase Cluster Edition解决集群系统的问题等,但是还是不能够有根本性的方法。
Prakash Sundaresan:今天许多有趣的趋势正对数据库领域构成重大挑战。首先是全球数据量和数据类型上的激增,并需要对其进行储存和处理。除了源自OLTP的“传统”数据量的增长,来自各种数据源的数据也呈爆炸式增长。各个组织所希望的不仅仅是储存、管理和处理这些数据,他们也想从这些数据中挖掘价值和深层次的商业信息。其次,互联网带来了海量数据并且让这些信息唾手可得。热门网站可能储存着数千万亿字节甚至是百亿亿字节的数据,并期望所有这些数据始终可用,来自世界各地的任何设备都可以得到24x7的全天候实时响应,并遵循隐私、安全的规则。这是巨大的挑战。此外,还有底层硬件的巨变。越来越大但并非更快的磁盘、更多但不是更快的内存、多核系统、具有直连式储存的廉价向外扩展架构、固态硬盘,这些硬件趋势同样影响着数据库的演变。 由此,组织需要的不仅仅是一个数据库,而是一种工具,这种工具应当是时时运行的、高性能的、具有能处理数据通信峰值的弹性扩展性能的、高性价比的、易管理的,并且非常可靠的。这实质上是一个“云”平台的前景,也显然是今后的巨大趋势。
Q&A 3 目前关系型数据库产品有很多,包括开源数据库与商业数据库,它们各有哪些优点和缺点,请结合自己的经验谈谈在实际产品环境中应该如何选型。
周傲英:目前以Oracle、IBM和微软为代表的通用商业数据库产品占据了绝大多数市场份额。总的来说,商业化的数据库产品在处理能力、系统稳定性、特别是相关中间件产品和集成工具环境方面占优;而开源数据库以轻便、易用为主要特点,可进行二次开发。具体的选型需要重点考虑以下几个方面:1.数据库应用的开发要求;2.性能/价格比;3.数据库的运行管理;4.可扩展、升级性;5.总体拥有成本等五个方面。根据这些方面的考虑来挑选适合自己的数据库系统。
陈桂新:开源数据库近年来得到了长足的发展,市场占有率不断提高,特别是在互联网行业,其自身由于低成本、小巧,功能相对健壮得到很多人的青睐,但发展速度较慢,对很多新领域、新技术的支持不够,服务方面不及商业数据库完善。商业数据库是数据库市场的领军者,但通常价格昂贵。目前数据库市场已经相对成熟,选择的余地很大,在创业初期或是资金相对紧缺的情况下,开源成为首选,并且同商业数据库相比,更容易管理维护,减少了人力成本。如果发展到一定程度,当开源数据库在某些方面支持薄弱的情况下,如BI或是很多十分关键数据的存储,应当选择商业数据库。
Prakash Sundaresan:作为SQL Server的代表,我的观点显然会有失偏颇。因此,我给读者的唯一建议是理解每个产品的基本理念和方式,并选择一个符合他们自身需求的。例如,一些产品定价极高,不但需要支付每年维护的费用,而且必须由许多专业技术人员进行,客户不得不为所谓的 “高端” 全额买单。其他产品尝试专注于最基本的共同需求,提供“足够好”的产品,不过客户可能需要自己做一些手工调整,而且没有清晰的支持与服务的承诺。SQL Server一直力图提供一个高质量的任务关键数据库,在各个方面都不逊色于任何产品,还提供了越来越多的自带功能,而无需购买额外选项或附加组件——从SQL Server 7.0开始加入BI功能就是一个很好的例子。
Q&A 4 NoSQL运动近几年风头正劲,您觉得这场运动最终会对数据库的发展产生什么样的影响?NoSQL会终结关系数据库吗?是否会有基于非关系型数据库的厂商异军突起,改变市场的格局呢?
陈桂新:NoSQL被炒得很热,这使我们看到了数据库领域仍在不断创新、不断发展,但这类Key-Value形式的数据库,适用范围相对狭小,且对事务的支持不足,在某种程度上讲,不太可能代替关系型数据库。非关系型数据库发展很快,但目前只有像Facebook、Google等这样技术实力较强的公司推出了产品,且都是开源的,要走向商业应用,目前市场还不成熟,估计暂时较少的厂商愿意投入到其中。
宋一平:探讨NoSQL是一种技术进步,当然予以鼓励和发展。如果真的有一种非SQL的方案能够满足当今大部分业务的需求,如:高读写性能、处理超大数据量、几乎没有性能瓶颈等等,这当然是好事,但目前还没有一个具体的解决方案和理论,能够突破这些方面。真正到了成熟阶段还需时日。
Prakash Sundaresan:每隔10年就会出现一种新的趋势试图取代关系数据库,通常这些趋势的背后都有一些真正的客户需求。NoSQL的出现是因为多种需求的混合,比如存储非结构化数据(如文件、图片、音频、视频)的需求,比如在某些情境下能够相对简单操作大规模存储数据的需求(如在无须紧凑的事务语义或富查询功能的条件下进行简单的Get或者Put)。然而大多数客户却不愿意另起炉灶转向NoSQL,因为他们已经拥有了一个符合“行业标准”的数据平台,和在此基础之上的由应用、开发者和IT专业人士等组成的生态系统。目前,成熟的数据库产品能够存储所有非关系型数据,而且我们可以看到它们将不断发展,以满足客户试图在NoSQL中寻找到解决方案的其他需求。
Q&A 5 随着SSD的价格下降,越来越多的厂商开始准备应对之策。你觉得SSD对数据库会产生什么样的影响?
周傲英:闪存和固态硬盘越来越有可能成为支持海量数据处理的存储介质。SSD与传统HDD相比具有体积小、功耗低、高数据访问效率等优点,且具有与HDD不同的数据访问模式,将导致数据系统内模式上重大变革,同时也将提高其处理性能1~2个数量级,推动海量数据分析处理的发展。由于它们不同于目前采用的磁盘的存储特性,现有的数据库技术不能充分利用它们的性能来满足硬件设备和系统应用需求。数据访问效率直接影响着数据库系统的执行策略、优化方案、处理能力。我们必须重新设计和优化数据库系统的关键技术,使其能在基于闪存或SSD的计算机设备上实现最优的性能,提升系统分析处理吞吐量是亟待解决的难题。
陈桂新:SSD硬盘的出现,的确给数据库存储这块带来了很大的福音,SSD现在在盛大已经很多地方在使用了,目前最多的是用来做缓存或者索引,包括一些热点数据,能发挥其速度快,提升IOPS的特点。但是如果存储厂商,能够提供很方便的功能,给数据库管理员来进行动态调整热点,那么SSD的使用会更广泛,目前,基本上还是需要数据库管理员自己手工去进行调整,有一定的风险和依赖性。
宋一平:使用SSD当然对数据库性能等方面会产生很大的影响,会加速查询的响应速度和处理能力。Oracle 11gR2 已经开始支持这样的数据存储,我想Sybase也将会开始支持这样的数据存储能力。支持这样的SSD并不是困难的事情,真正发挥SSD的特性才是要充分考虑的事情。其实针对具体的应用,就是软件和硬件以及应用逻辑的一场博弈。软件技术的提高,势必带来硬件的改进,同样,硬件技术按照摩尔理论不断提高,也是给软件技术提出的一个大挑战。两方面都强才是应用和业务需求所需要的。
Prakash Sundaresan:SSD以及诸如前面提到的内存、多核系统等硬件方面的提升将推动现有数据库产品的内部架构变化。许多底层算法,如缓冲池管理、查询执行、并行处理等,均是另一个时代设计出来的,而当时硬件特性完全不同。你可以期待现有产品大多会努力更新内部构架以适应这些趋势,但并不是所有的产品都会成功。那些无法适应变化的产品可能将在这场竞争中被淘汰。
Q&A 6 除了以上谈到的这些,您觉得还有哪些因素对数据库的发展产生重要影响?
周傲英:应用的需求是数据库技术发展的主要驱动力量。当前,万维网和手持设备和相关应用的发展正在对DBMS的发展产生巨大的影响。数据库系统所基于的软硬件环境方面的变化也很大。着重解决I/O优化的传统数据管理技术越来越无法发挥硬件资源的效率。充分发挥现代硬件的特点,是当前数据库研究的一个重要课题。为提高数据库系统对硬件复杂特点的适应能力,使得系统性能最大化,数据管理与体系结构、编译以及操作系统等学科又一次交叉融合,重新审视传统的数据结构、查询优化算法和数据管理软件体系结构。这些会对数据库的发展产生重要的影响。
陈桂新:市场需求,包括其他行业对数据库的需求及自身的发展。还有就是IT新技术的发展,数据库技术发展和大多数领域发展一样,都是应用驱动和技术驱动相结合。
宋一平:非关系型数据库探讨和产生(如OODB、XMLDB等);网络技术的发展,如数据库架构的改变(如无线通信和IT的结合、多节点技术、云计算架构等);专有数据库的产生(如GIS DB、军用DB,软硬结合的DB等)。
Prakash Sundaresan:我想谈的一个趋势是商业智能(BI)。商业智能对现代企业日常运营来说日益重要,如何为客户提供更好的服务、降低成本、杜绝浪费、推动业务细分密,都与企业是否能从所有相关信息中获取价值和洞察力有密切的关系。能提供强大而又易用BI工具的供应商将在这个市场上取得成功。最近推出的SQL Server 2008 R2就是一个很好的例子,它通过用户熟悉和易用的工具,Excel和SharePoint,提供了一些突破性的商业智能功能。
Q&A 7 您目前在关注数据库技术的哪些方面?对这些领域的未来趋势怎么看?
周傲英:一个是和万维网有关的数据库技术。这包括两个方面:一是怎样为万维网应用提供有效的数据管理技术。二是怎样利用万维网上的数据和服务资源为现在的应用提供服务。在数据库应用中,提供有效利用外部Web资源的接口是一个有意思的问题;另一个问题是海量数据的数据分析技术。实际应用中必须综合分析、处理不同类型的数据。如何提供一个通用的数据分析模型,并提供高效的处理实现是一个重要的问题。
陈桂新:关注数据库的高可用,目前很多商业和开源都有自己的高可用方案,但一直想找到一种适合自己的方案。高可用是大多数公司都会有需要的地方,这个方面应该是未来数据库厂商们的着重点。要实现高可用还有很多技术上的难点需要突破,以后将会看到更多的竞争,更多的技术出现。
宋一平:关系型数据库走到今天已经进入成熟期,目前没有本质的变化。今后需要的是数据库的多样化,而不是一种数据库统治天下。针对不同行业、不同的需求,应该有针对性较强的,定制化和个性化的数据库而满足应用的需求。如:列式数据库就是对统计分析类的应用特别适用。
Prakash Sundaresan:云计算无疑是今天名列第一的计算趋势,在数据库领域同样如此。客户越来越喜欢云模式的按需计算、弹性和几乎无限的规模扩展以及低成本的安装和管理。然而,客户也希望能灵活选择供应商提供的公有云或是搭建自己的私有云。事实上,统一客户可以将两种方案混合起来部署。目前,微软是唯一一家具有明确战略、规划和产品,为客户提供多种灵活选择的供应商。客户今天可以选择用Hyper-V、Windows Server、SQL Server和System Center等微软技术搭建自己的云解决方案。他们也可以使用微软的公有云解决方案Azure服务平台。选择将应用程序部署在公有云或私有云上而无须经过重复开发,开发人员和IT管理人员也无须学习新的技术,这是微软与众不同的关键所在。
Q&A 8 请为我们的读者推荐您的数据库方面的经典和最新的资源(图书、文章、网站、博客等)
周敖英:以下是一些博客,涉及了数据库的各个领域:
http://www.dbms2.com/
http://www.odbms.org/blog/
http://perspectives.mvdirona.com/
http://databasecolumn.vertica.com/
陈桂新:首先应该是各个官方网站、数据库手册就是巨大的宝库,如以下的
http://asktom.oracle.com/
http://www.itpub.net/
http://peter-zaitsev.livejournal.com/
MYSQL方面最新出了本书《MySQL High Availability》
宋一平:http://www.dbta.com/
http://blogs.sybase.com/database/
http://blogs.sybase.com/sybaseiq/(这是列式数据库的专业文章)
Prakash Sundaresan:我想推荐两位对我个人有着重要影响的作者和实践者。第一位是图灵奖得主Jim Gray博士——他对这一领域的贡献不胜枚举。不幸的是他已离开了我们,我永远记得刚踏上工作岗位与他共事的那一年。另一位是我的大学教授David DeWitt博士。在他30多年的职业生涯,David对数据库的贡献同样不计其数,最棒的是他现在是一位微软技术院士。此外,我们中国团队会在http://blogs.msdn.com/sqlcrd/上与大家分享最新的数据库技术和趋势。
Q&A 9 请用一句话展望数据库发展趋势。
周傲英:未来数据库技术发展的根本目标就是管好和用好这些与生产生活学习密切相关的数据。
陈桂新:方便管理、稳定、高效、可扩展、安全。
宋一平:数据库技术是每个应用都会涉及的技术,多样化和专业化是其根本的出路。
Prakash Sundaresan:我们生活在信息时代,数据库将仍是这个时代科技进步的重要支柱之一。
(本文来自《程序员》杂志10年06期,更多精彩内容敬请关注06期杂志)
更多推荐
所有评论(0)