未加星标

大学应该开设哪些数据库课程――主流数据库大对比

字体大小 | |
[数据库(mysql) 所属分类 数据库(mysql) | 发布者 店小二04 | 时间 2017 | 作者 红领巾 ] 0人收藏点击收藏
大学应该开设哪些数据库课程――主流数据库大对比

一点号书圈4小时前

热文导读 | 点击标题阅读

IT职业技能图谱(全套13张,值得收藏)


大学应该开设哪些数据库课程――主流数据库大对比

一、 数据库排行榜

DB-Engines 网站刚刚发布了年度DBMS排行,在这个榜单上SQL Server获评年度DBMS冠军,紧随其后的是 mysql 和 PostgreSQL 数据库产品。计算结果基于当前(2017年1月)积分和2016年1月差值获得。而且我们知道,前两年的年度冠军得主分别是Oracle、MongoDB 。


B-Engines 按月度跟踪和发布数据库流行度数据(考察多重因素,包括工作岗位、搜索引擎、趋势变化等),下图是当前(2017-01-04)的流行度,我们看到Oracle和MySQL是长期领先在前面的位置(两者已经非常接近),而整个榜单列举的产品也已经多达315个。


大学应该开设哪些数据库课程――主流数据库大对比

微软的SQL Server在过去几年排行几经起伏,但是在2016年收获了好成绩,超过了Oracle,在年度积分榜上排在了第一位。微软的 SQL Server 2016 发布 和 linux版本极大的吸引了用户的关注和兴趣。同时,SQL Server在岗位需求也相当强劲,在LinkedIn、搜索引擎、Google趋势和StackOverflow等也取得了好成绩。

MySQL在2016年获得了提升,在排行榜上有接近Oracle的排名。 自2010年被Oracle收购以来,Oracle对MySQL的这一成功负有相当大的担当,Oracle大大消除了用户在收购之后对MySQL发展可能停滞的担忧。最近的很多新版本和功能发布证明MySQL仍然是一个非常有竞争力的数据库系统,我们的排名显示,社区看起来非常赞赏这些改变

2016年显示了PostgreSQL和MongoDB之间在整体排名上的争夺,排行榜的第四位,几乎每月切换。 最终MongoDB排名第四,PostgreSQL在2016年增长榜上领先,位列第三。

祝贺Microsoft,MySQL和PostgreSQL在2016年的成功,这是我们第一次看到三个RDBMS赢得了前三,过去我们至少有两个NoSQL系统的赢家。 然而,这并不意味着NoSQL系统有一个糟糕的一年。 所有领先的NoSQL系统,如MongoDB,Cassandra,Redis,Elasticsearch,Neo4j和Couchbase在2016年提高了他们的排名分数,只是不足以使它进入前三。


大学应该开设哪些数据库课程――主流数据库大对比

我们使用python、Ruby、Java、.Net等语言编写应用程序,这些语言有一个共同的特性――面向对象。但是我们使用MySQL、PostgreSQL、Oracle以及SQL Server,这些数据库同样有一个共同的特性――关系型数据库。这里就牵扯到了“Impedance Mismatch”这个术语:存储结构是面向对象的,但是数据库却是关系的,所以在每次存储或者查询数据时,我们都需要做转换。类似Hibernate、Entity Framework这样的ORM框架确实可以简化这个过程,但是在对查询有高性能需求时,这些ORM框架就捉襟见肘了。

应用程序规模的变大

网络应用程序的规模日渐变大,我们需要储存更多的数据、服务更多的用户以及需求更多的计算能力。为了应对这种情形,我们需要不停的扩展。扩展分为两类:一种是纵向扩展,即购买更好的机器,更多的磁盘、更多的内存等等;另一种是横向扩展,即购买更多的机器组成集群。在巨大的规模下,纵向扩展发挥的作用并不是很大。首先单机器性能提升需要巨额的开销并且有着性能的上限,在Google和Facebook这种规模下,永远不可能使用一台机器支撑所有的负载。鉴于这种情况,我们需要新的数据库,因为关系数据库并不能很好的运行在集群上。不错你也可能会去搭建关系数据库集群,但是他们使用的是共享存储,这并不是我们想要的类型。于是就有了以Google、Facebook、Amazon这些试图处理更多传输所引领的NoSQL纪元。

NoSQL纪元

当下已经存在很多的NoSQL数据库,比如MongoDB、Redis、Riak、HBase、Cassandra等等。每一个都拥有以下几个特性中的一个:
不再使用SQL语言,比如MongoDB、Cassandra就有自己的查询语言

通常是开源项目

为集群运行而生

弱结构化――不会严格的限制数据结构类型

三、NoSQL 的五大特点

1. 弹性扩展

多年来,数据库负载需要增加时,数据管理员只能依赖于纵向扩展(scale-up) 买更多更强的服务器,而不是依赖横向扩展(scale-out) 将数据库分布在多台主机上。无论如何,随着交易频率、可用性要求的提高,和数据库向云上和虚拟环境中迁移的需求的提出,基于商业硬件的横向扩展所带来的经济效益已经变得无法拒绝。

相对于 RDBMS 系统不能轻松的在商业集群上进行横向扩展,新生的 NoSQL 数据设计上就是要能够透明的利用新节点进行扩展。NoSQL 数据库的设计通常要考虑利用低成本的商业硬件。

2.大数据

就像过去二十年中交易率的提高已经超出了人们的想象,被存储的数据的规模也极大的增加了。O’Reilly 聪明的称这种现象为“数据的工业革命”。RDBMS 系统的能力也在提高去适应这种增长,但就像交易率上的限制一样,单个 RDBMS 系统实际能管理的数据规模已经无法满足一些企业的需求。今天,NoSQL 系统,例如 Hadoop,已经能过处理“大数据”级别的数据容量;而这种数据容量远超过最大的 RDBMS 系统的处理能力。

3. 告别DBA

尽管这些年 RDBMS 供应商声称有很多易管理性上的提高措施,高级 RDBMS 系统上的维护还是离不开训练有素但昂贵的 DBA 们。 DBA 需要紧密的参与高级 RDBMS 系统的设计、安装和持续的调优。

理论上讲,NoSQL 数据库通常从最基本的设计就要求更少的管理:自动化修复和数据分布、更简单的数据模型带来更少的管理操作和调优需求。实际上,DBA 已死的说法多少有点夸张。总要有人为关键业务数据存储的性能和可用性负责。

4. 经济性

NoSQL 数据库通常使用廉价服务器集群去管理迅猛发展的数据和交易容量,而 RDBMS 倾向依赖昂贵的专业服务器和存储系统。结果就是,NoSQL 系统的每千兆字节成本或者每秒的交易成本要很多倍的低于 RDBMS 系统,这使得你可以非常低的成本去存储和处理更多的数据。

5. 灵活的数据模型

变更管理对于大型 RDBMS 产品是很头疼的。 在 RDBMS 中,即使是微小的数据模型变更也需要非常小心的处理,而且可能要求系统停机或者降低服务级别。

NoSQL 数据库的数据模型限制则轻松的多 ― 或者根本就没有。NoSQL 的键值存储和文档数据库允许应用在一个数据元素中存储任何结构的数据。即使是相对严格的基于 BigTable 的 NoSQL 数据库(Cassandra,HBase)通常也允许没有太多限制的创建新列。

结果就是,应用或者数据库模式的改变不需要作为一个复杂的变更单元进行管理。理论上讲,这允许应用可以更快的迭代,当然,很清楚的一点是,如果应用不能保证数据的完整性这可能带来不良的副作用

NoSQL 数据库正在成为数据库领域中越来越重要的组成部分,如果得到正确的使用,它将会带来真正的益处。

作者 | 图文来自网络、如涉及版权问题,请联系我们以便处理。文章内容纯属作者个人观点,不代表本网观点。

读书吧| QQ群:543839145

-END-

本文数据库(mysql)相关术语:navicat for mysql mysql workbench mysql数据库 mysql 存储过程 mysql安装图解 mysql教程 mysql 管理工具

分页:12
转载请注明
本文标题:大学应该开设哪些数据库课程――主流数据库大对比
本站链接:http://www.codesec.net/view/522054.html
分享请点击:


1.凡CodeSecTeam转载的文章,均出自其它媒体或其他官网介绍,目的在于传递更多的信息,并不代表本站赞同其观点和其真实性负责;
2.转载的文章仅代表原创作者观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,本站对该文以及其中全部或者部分内容、文字的真实性、完整性、及时性,不作出任何保证或承若;
3.如本站转载稿涉及版权等问题,请作者及时联系本站,我们会及时处理。
登录后可拥有收藏文章、关注作者等权限...
技术大类 技术大类 | 数据库(mysql) | 评论(0) | 阅读(76)