SQL Server中国研发团队总经理问答关系数据库40年_weixin_34318956的博客-程序员秘密

技术标签: 运维  开发工具  数据库  

    Prakash Sundaresan微软SQL Server中国研发团队总经理。在微软SQL Server开发团队的12年中担任多个领导职务。曾任职于SQL Server客户顾问委员会,帮助亚洲地区的多个大型企业客户在微软平台上应用大规模、任务关键型系统。Prakash同时担任微软亚太研发集团服务器与开发工具事业部总经理。

 

1.今年是关系型数据库40周年,您觉得这期间数据库领域发生了哪些具有里程碑意义的事件?有哪些重要的技术突破?

 

    在这40年里,关系数据库被证明为拥有强大的功能、灵活和弹性。一开始,其核心突破是基于扎实的“关系模型”和数学的基础。这让用户以查询表达(而不是程序)的形式来查询数据库。当我们把“用户要做什么”与  “如何去做”分隔时, 这让我门把应用程序逻辑于底层的实现解耦 。 因此,当 物理架构(磁盘布局,索引等)改变时,应用程序不需更改。这是革命性的。

    之后又出现了许多突破。查询优化技术开发,改善了查询性能。“Transaction” 和ACID属性的核心概念是一个突破。 这对OLTP领域的迅速发展有很大的帮助。突破性的访问方法(如BTrees,Hash indexes),先进的查询执行,隔离和锁,查询指针,系统出现问题后恢复,备份和恢复,缓存管理,资源管理,对在线系统进行操作,并行和许多其他的突破使关系数据库成为可靠,高性能,可扩展性,可管理和安全的存储数据和应用平台。这也帮用户创建应用程序。

    多年来,其他模型一直试图挑战关系型数据库,但每次关系模式都包容了新技术,并继续向前发展。1990年代发明了“对象数据库”,可以存储相对于数值的对象。但最后,关系数据库采纳了用户定义类型(UDT)的概念,并演变成对象-关系数据库。2000年代,XML数据库由于XML作为一种数据形式的普及而流行。同样,关系型数据库接纳它为一种类型并提供了诸如XQuery和XPath的查询功能。如今许多商业关系型数据库支持多种数据类型,包括空间数据,文件或文档数据,图像、声音、视频等多媒体数据。

    最近, Vertical Stores, Streaming Data, Complex Event Processing (CEP)以及In-Memory databases(IMDB)开始进入我们的视线。商业性数据库已经开始适应这些趋势并包含这些功能。

    相对于40年历史来说,数据库的发展可谓相当快 —— 甚至“数据库“这个词在今天看来有些勉强,正被”数据平台“这个词所取代。可以预见,未来无论发生什么变化和出现何种挑战,关系数据库也将随机应变。

 

 


2. 数据库技术目前面临的主要挑战有哪些?分别有哪些解决方案?

 

    今天许多有趣的趋势正对数据库领域构成重大挑战。首先是全球数据量和数据类型上的激增,并需要对其进行储存和处理。除了源自OLTP的“传统”数据量的增长,来自各种数据源,如电子邮件、文件、图片、音频、视频、社交网络、即时通讯、短信等的数据也呈爆炸式增长。各个组织所希望的不仅仅是储存、管理和处理这些数据,他们也想从这些数据中挖掘价值和深层次的商业信息。

    其次,互联网带来了海量数据并且让这些信息唾手可得。热门网站可能储存着数千万亿字节甚至是百亿亿字节的数据,并期望所有这些数据始终可用,来自世界各地的任何设备都可以得到24x7的全天候实时响应,并遵循隐私、安全的规则。这是巨大的挑战。

    伴随着这些需求的变化,还有底层硬件的巨变。越来越大但并非更快的磁盘、更多但不是更快的内存、多核系统、具有直连式储存的廉价向外扩展架构、固态硬盘,这些硬件趋势同样影响着数据库的演变。

    由此,组织需要的不仅仅是一个数据库,而是一种工具,这种工具应当是时时运行的、高性能的、具有能处理数据通讯峰值的弹性扩展性能的、高性价比的、易管理的,并且非常可靠的。这实质上是一个“云”平台的前景,也显然是今后的巨大趋势。

 

 


3. 目前关系数据库产品有很多,包括开源数据库(例如MySQL、PostgreSQL等)与商业数据库(包括Oracle、SQL Server、DB2、Sybase等),它们各有哪些优点和缺点,请结合自己的经验谈谈在实际产品环境中应该如何选型。

 

    作为SQL Server的一名代表,我的观点显然会有失偏颇。因此,我给读者的唯一建议是理解每个产品的基本理念和方式,并选择一个符合他们自身需求的。例如,一些产品定价极高,不但需要支付每年维护费用,而且必须由许多专业技术人员进行 —— 客户不得不为所谓的 “高端” 全额买单。其他产品尝试专注于最基本的共同需求,提供“足够好”的产品,不过客户可能需要自己做一些手工调整,而且没有清晰的支持与服务的承诺。

    SQL Server一直力图提供一个高质量的任务关键数据库,在功能性、可靠性、可用性、性能、可扩展性、安全性和可管理性等方面不逊色于任何产品,成本效益高、使用管理方便、在它上面开发应用程序也很容易。
SQL Server还提供了越来越多的自带功能,而无需购买额外选项或附加组件 —— 从SQL Server 7.0版本开始加入BI功能便是一个很好的例子。

 

4. NoSQL运动近几年风头正劲,您觉得这场运动最终会对数据库的发展产生什么样的影响?NoSQL会终结关系数据库吗?是否会有基于非关系数据库的厂商异军突起,改变市场的格局呢?

 

    正如我前面提到,每隔10年就会出现一种新的趋势试图取代关系数据库 —— 之前有面向对象数据库、XML数据库,最近的有Column-stores和NoSQL。

通常这些趋势的背后都有一些真正的客户需求。NoSQL的出现是因为多种需求的混合,比如存储非结构化数据(如文件、图片、音频、视频)的需求,比如在某些情境下能够相对简单操作大规模存储数据的需求(如在无须紧凑的事务语义或富查询功能的条件下进行简单的Get或者Put)。

    然而现实却是,尽管NoSQL竭尽全力为上述情景去建立“定制的”数据库解决方案,但是最终大多数客户却不愿意另起炉灶,因为他们已经拥有了一个符合“行业标准”的数据平台,和在此基础之上的由应用,开发者和IT专业人士等组成的生态系统。

目前,成熟的数据库产品能够存储所有非关系型数据,而且我们可以看到它们将不断发展,以满足客户试图在NoSQL中寻找到解决方案的其他需求。


 

5. 随着SSD的价格下降,越来越多的厂商开始准备应对之策。你觉得SSD对数据库会产生什么样的影响?

 

    固态硬盘以及诸如前面提到的内存、多核系统等硬件方面的提升将推动现有数据库产品的内部架构变化。许多底层算法,如缓冲池管理、查询执行、并行处理等,均是另一个时代设计出来的,而当时硬件特性完全不同。你可以期待现有产品大多会努力更新内部构架以适应这些趋势,但并不是所有的产品都会成功。那些无法适应变化的产品可能将在这场竞争中被淘汰。


 

6. 除了以上谈到的这些,您觉得还有哪些因素对数据库的发展产生重要影响?

 

    除了在问题2中提及的趋势,另一个我想谈的趋势是商业智能(BI)。 商业智能对现代企业日常运营来说日益重要 — 如何为客户提供更好的服务、降低成本、杜绝浪费、推动业务细分密,都与企业是否能从所有相关信息中获取价值和洞察力有密切的关系。能提供强大而又易用BI工具的供应商将在这个市场上取得成功。最近推出的SQL Server 2008 R2就是一个很好的例子 - 它通过用户熟悉和易用的工具,Excel和SharePoint,提供了一些突破性的商业智能功能。

 

 


7. 您目前在关注数据库技术的哪些方面?对这些领域的未来趋势怎么看?

 

    云计算无疑是今天名列第一的计算趋势,在数据库领域同样如此。客户越来越喜欢云模式的按需计算、弹性和几乎无限的规模扩展、以及低成本的安装和管理。然而,客户也希望能灵活部署——有些客户可能使用由供应商提供的公有云,另一些客户可能选择搭建自己的私有云。事实上,同一客户在公用云上运行某些应用程序或方案的同时,也可以在私有云上运行其他的方案。目前,微软是唯一一家具有明确战略、规划和产品,为客户提供多种灵活选择的供应商。

    客户今天可以选择用Hyper-V,Windows Server,SQL Server和System Center等微软技术搭建自己的云解决方案。他们也可以使用微软的公有云解决方案 —— Azure服务平台。而其他厂商提供的或者仅仅是一个公有云,或者仅仅是一个私有云。我们相信,为客户提供选择和灵活性 —— 选择将应用程序部署在公有云或私有云上而无需经过重复开发,开发人员和IT管理人员也无须学习新的技术 —— 是微软与众不同的关键所在。

 

 

8. 请为我们的读者推荐您的数据库方面的经典和最新的资源(图书、文章、网站、博客等)。

 

    经典和最新资源太多了,在其中做取舍并不容易。我想还是推荐两位对我个人有着重要影响的作者和实践者。第一位当然是图灵奖得主Jim Gray博士——他对这一领域的贡献不胜枚举。不幸的是他已离开了我们,我永远记得刚踏上工作岗位与他共事的那一年。另一位是我的大学教授David DeWitt博士。在他30多年的职业生涯,David对数据库的贡献同样不计其数,最棒的是他现在是一位微软技术院士。

    此外,我们中国团队会在http://blogs.msdn.com/sqlcrd/上与大家分享最新的数据库技术和趋势。

 

 

9. 请用一句话展望数据库发展趋势。

 

    我们生活在信息时代,数据库将仍是这个时代科技进步的重要支柱之一。

 

 

以上是Prakash对《程序员》6月刊特别策划“圆桌共话数据库”的完整书面答复翻译,有关另三位数据库专家的答复,请阅读六月《程序员》

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_34318956/article/details/85455981

智能推荐

仿微信、短信、QQ等消息数目右上角红色小圆球气泡显示(基于Android XML布局文件实现)_IT的鱼的博客-程序员秘密

效果图如下:仿微信、短信、来电未接数目、QQ等消息数目右上角红色小圆球气泡显示(基于Android XML布局文件实现)。这种实现方式主要有两种途径:(1)重写View的onDraw()。(2)写布局文件实现。现在使用布局文件实现,主要利用FrameLayout的布局覆盖特性实现上述功能。随意一个图片,本例中以eclipse自动产生的ic_luancher.png(就是

Unity3D中网格合并示例研究_cbbbc的博客-程序员秘密

Unity3D中网格合并示例的研究:为了实现游戏人物外形的定制,专门研究了Unity示例程序 。首先需要了解几个基本对象的结构一、 SkinedMeshRender:该对象负责网格绘制。主要数据成员包括:var bones : Transform[] 骨骼var materials : Material[] 材质var sharedMesh : Mesh 网格其中M

3D点云重建0-05:MVSNet-源码解析(1)-数据集了解,预处理详解_mvsnet代码解析_江南才尽,年少无知!的博客-程序员秘密

从前面我们可以知道代码的训练是从mvsnet/train.py开始的,该小结我们不讲解训练代码,我们先来看看数据预处理,在这之前,相信大家已经下载好了数据了,不少哥们对数据集都比较迷糊吧,其实我开始也很懵逼,不多说先看看DTU数据集,本人的在这个路径下面mvsnet\training_data\dtu_training,可以看到如下(希望你的和我们长得一样,不然你完蛋了)有3个文件夹,一个一个的进行介绍Cameras该文件主要保存的是各种摄像头的参数,我们知道。针孔相机模型https。...

java中的修饰符以及作用范围详解图解_修饰符的作用范围_JaredYang_csdn的博客-程序员秘密

java中的修饰符分为类修饰符,字段修饰符,方法修饰符。权限访问修饰符有public,protected,default,private,这四种级别的修饰符都可以用来修饰类、方法和字段。final修饰符 final的意思是不可变,他可以修饰类、字段、方法。修饰类后类不能被扩展(extends),也就是不能被继承。修饰字段后字段的值不能被改变,因此如果有final修饰字段,应

Mysql索引底层原理(一)(二叉树、红黑树、B树、B+树)_Java技术大联盟的博客-程序员秘密

Mysql索引底层原理(一)(二叉树、红黑树、B树、B+树)对于有千万行记录的数据表,查询速度和效率愈发重要,这直接影响到用户的体验。讲解Mysql索引底层原理之前,先来聊聊二叉树、红黑树、B树、B+树。(1)二叉树相信有些许数据结构的小伙伴们对二叉树都有了解,其具体结构如下:当采用二叉树作为索引时,并且把id作为索引并且id自增长时一个二叉树变成了一个单枝树,相当于链表查询,查询时间为...

02_项目-使用ansible进行Nginx集群和MySQL集群的批量部署_mycpen的博客-程序员秘密

文章目录项目名称:使用ansible进行Nginx集群和MySQL集群的批量部署项目环境:CentOS 7.8,ansible 2.9.15,Nginx 1.19.7,MySQL 5.7.32项目描述:        使用ansible去批量部署6台Nginx服务器,1台NFS文件服务器,3台MySQL服务器,其中Nginx、MySQL采用源码编译安装,NFS采用yum安装。提前编写好Nginx、MySQL的编译安装脚本,通过a

随便推点

Spring Cloud - Cloud Foundry Service Broker_咔啡的博客-程序员秘密

This project provides a framework for building a Spring Boot project to quickly implement a service broker for Cloud Foundry.NOTE New releases of this project are being developed with the name Spring...

单片机5V输出驱动控制24V外设电路设计方案_单片机驱动24v继电器电路_perseverance52的博客-程序员秘密

单片机5V输出驱动控制24V外设电路设计方案一般的单片机供电电压是3.3V或者5V供电,输出的电平也是在3.3V或5V电压,如果要想去去控制一个更高电压的外设设备,那么就需要外加其他驱动,来间接控制。74HC04+ULN2803驱动电磁阀一个74HC04+ULN2803驱动电磁阀,单片机初始化的时候,所有管脚都是拉高的,需要输出的时候,OUT1-OUT3变成低电平,经74HC04反向后变成高电平,再经ULN2803反向放大后,又变成了低电平,最后的输出变成了低电平,成功驱动电磁阀,在这里74H

SpringBoot2.0系列--07--热部署_金刀李的博客-程序员秘密

SpringBoot2.0系列–07–热部署文章目录SpringBoot2.0系列--07--热部署前言介绍总流程具体操作联系方式前言JDK出11了,SpringBoot出2.0了,还没有系统的学习过,刚好最近项目中有使用到,就把一些关键的东西列出来,避免忘记SpringBoot2.0系列–00–目录介绍每次修改的时候都要重新编译,其实是比较麻烦的,SpringBoot自带一个热部署插...

安防网络摄像头视频流媒体服务器RTSP拉流、RTMP推流方案EasyNVR如何实现监控视频转推到其他直播间的_Likeadust的博客-程序员秘密

EasyNVR的使用者应该都是清楚的知道,EasyNVR一个强大的功能就是可以进行全平台的无插件直播。主要原因在于rtsp协议的视频流(默认是需要插件才可以播放的)经由EasyNVR处理后可以满足无插件的全平台直播。处理后会获取到RTMP、HLS视频流,这就完美解决了插件直播的问题,只要终端设备支持H5,就可以完美的播放EasyNVR分发出的视频流。EasyNVR如何实现视频转推其他...

EasyPlayer-RTSP播放器:从底层到上层专注于RTSP播放Windows、Android、iOS RTSP Player_weixin_30593443的博客-程序员秘密

EasyPlayer-RTSP播放器是一套RTSP专用的播放器,包括有:Windows(支持IE插件,npapi插件)、Android、iOS三个平台,是由EasyDSS团队开发和维护的区别于市面上大部分的通用播放器,EasyPlayer-RTSP系列从2014年初发展至今得到了各行各业(尤其是安防行业)的广泛应用,其主要原因是EasyPlayer-RTSP更加精炼、更加专注,具...

【VB.NET 机房收费系统】——对SqlHelper别说“不”_朝花有露的博客-程序员秘密

SqlHelper是一个基于·NETFramework的数据库操作组件。组件中包含数据库操作方法。SqlHelper用于简化你重复的去写那些数据库连接(SqlConnection),SqlCommand,SqlDataReader等等。SqlHelper封装过后通常是只需要给方法传入一些参数如数据库连接字符串,SQL参数等,就可以访问数据库了,很方便。————官方正解

推荐文章

热门文章

相关标签