数据库就像办公室中的一个房间一样,可以存储与项目相关的所有文件和重要信息。每个公司都需要一个数据库来存储和组织信息。我们存储的信息可能非常敏感,因此在访问或操作数据库中的信息时,我们始终必须谨慎。
为了构建各种类型的应用程序,例如Web,企业,嵌入式系统,实时系统,AI,ML,HPC,区块链,IoT等,您可能必须选择一个或多个数据库。多年来,程序员和行业专家对满足自己要求的数据库表示了热爱。
选择正确的数据库还取决于项目的目的。大约20到25年前,为应用程序选择数据库并不是一项艰巨的任务。大多数时候,开发人员倾向于使用关系数据库来配置其应用程序。但是由于应用程序的发展,今天它已成为一项具有挑战性的任务。
现代软件开发(基于微服务,云,分布式应用,全局扩展,半结构化数据,大数据,快速数据,低延迟数据构建的应用程序)需要将传统数据库与各种NoSQL,NewSQL和Cloud数据库结合在一起。
如今,技术世界中有超过343个数据库,数量非常庞大。要选择合适的数据库,您需要熟悉一些流行数据库的优缺点。如果您的目标是成为软件或技术架构师(当然,他们是决定选择正确技术的决定者),那么尽可能多地了解这些数据库将是一件好事。
在此博客中,让我们讨论一些重要的数据库,您应该在2021年之前学习或熟悉这些数据库。在此之前,让我们快速浏览一下最受欢迎的数据库的排名。以下是根据DB Engines列出的列表……
如果我们看一下上一年的调查,那么下面是StackOverflow上的可用数据
1.甲骨文
Oracle由软件工程师Larry Ellison (Oracle公司现任CTO)于1979年创建。Oracle是用汇编语言C,C++和Java编写的领先的商业RDBMS系统。 21c是此数据库的最新版本,具有许多创新功能。
Oracle位于数据库的顶部。它是整体上使用最广泛的RDBMS。它占用的空间更少,并且可以快速处理数据,您还可以从SQL中找到一些新的良好功能,例如JSON。该数据库的其他一些功能在下面给出……
- ACID交易担保。如果我们谈论CAP,那么它将作为单个服务器提供即时的一致性。
- 它支持结构化数据(SQL),半结构化数据(JSON,XML),空间数据和RDF存储。而且,它根据特定的数据模型提供了各种访问模式。
- 同时支持OLTP和OLAP工作负载。
- 满足高可用性,性能,可伸缩性,数据仓库等的要求。
- Oracle为云,文档存储,键值存储,图形DBMS,PDF存储和BLOG提供功能。
2. MySQL
MySQL是技术世界中最流行和使用最广泛的数据库,尤其是在Web应用程序中。它是由两位软件工程师Michael Widenius和David Axmark于1995年推出的。该数据库主要关注健壮性,稳定性和成熟度。该数据库最常见的用途是用于Web应用程序。
MySQL使用结构化查询语言,并用C和C++编写。该数据库的最新版本是MySQL 8.0,它具有更好的恢复选项。对于不同的版本,MySQL具有不同的功能。下面列出了一些主要功能…
- MySQL是开源的,具有两种许可模式:免费的Community Server和专有的Enterprise Server。
- 它带有ACID交易保证,并且在CAP定理中提供即时一致性。
- MySQL提供了水平分区(分片)。如果您的软件是基于此数据库构建的,那么您肯定会以低延迟获得高可用性和高吞吐量。
- MySQL支持大多数编程语言,例如C,C++, Python, Java, PHP和Tcl,用于客户端编程。
- MySQL Cluster提供多主ACID事务。
- MySQL支持大型数据库,一个表中多达5000万行或更多。
3. Microsoft SQL Server
MS SQL Server是Sybase SQL Server的变体。该数据库由Microsoft开发,于1989年启动。MS SQL Server和Sybase SQL Server具有许多共同的功能。 MS SQL Server用C和C++编写。
该数据库具有Microsoft提供的针对内部部署和云的出色工具支持。它在Windows和Linux平台上均可用。像其他现代数据库一样,MS SQL并非具有创新性或先进性,但多年来却经历了重大更新和大修。
该数据库具有许多版本,例如Azure SQL数据库(基于云的版本),精简版,企业版(大多数公司首选)和开发人员版。其某些功能在下面给出。
- 独立于平台的高性能。
- ACID交易担保。在CAP定理中,它提供了直接的一致性。
- 支持许多服务器端语言,例如T-SQL,.NET语言,R, Python和Java。
- 支持结构化数据(SQL),半结构化数据(JSON),空间数据。
- 它可以与非关系源(如Hadoop)集成
- 它使用行级安全性,动态数据屏蔽,透明数据加密和强大的审核。
- 带有定制的图形集成,可为用户节省大量时间。
- 它使您无需语法即可创建各种设计,表和视图数据。
4. PostgreSQL
此开放源数据库由Michael Ralph Stonebraker于1996年引入。 PostgreSQL源自Ingres数据库, Michael是Ingres团队的负责人。该数据库最初名为POSTGRES。迈克尔还因在PostgreSQL中的工作而获得了图灵奖。
PostgreSQL是用C编写的,供必须处理大量数据的公司使用。许多游戏应用程序,数据库自动化工具和域注册表都使用此数据库。其某些功能在下面给出…
- ACID交易担保。在CAP定理中,它提供了直接的一致性。
- 尽管它是对象关系DBMS用户,但是可以自由创建NoSQL数据库。您可以将此数据库与SQL数据库的事务保证和NoSQL数据库的水平伸缩一起使用。您可以在需要分布式SQL的地方使用此数据库。
- 更高级的索引喜欢部分索引,Bloom Filters。它允许您在PostgreSQL中创建一个非阻塞索引。
- 高可扩展性,预定义功能,易于数据移植,多个接口。
- 支持结构化数据(SQL),半结构化数据(JSON,XML),键值,空间数据。
- 带有高级可靠性和灾难恢复功能。
5. MongoDB
在使用NoSQL数据库时,MongoDB是企业的头等大事。使用面向对象的编程语言,很难将数据加载和访问RDBMS。您将必须执行其他应用程序级映射。
MongoDB解决了此问题,特别是处理了文档数据。 MongoDB是简单,面向对象,动态和可扩展的数据库。您无需像传统数据库那样处理列和行。您可以将数据对象作为单独的文档存储在集合中。
10gen软件公司于2009年发布了该数据库,并且在过去的十年中,该数据库经历了许多改进和创新。它是用C,C++和JavaScript编写的。您可以将此数据库用于移动应用程序,实时分析,物联网,并可以为所有数据提供实时视图。其某些功能在下面给出。
- 快速,易于使用,部署灵活,高性能,高可用性和易扩展性。使用自动着色,您可以轻松进行水平缩放。它通过主次节点提供内置复制。
- 它是CAP模型中的CP(一致性和分区容忍度)。
- 具有快照隔离功能的ACID事务(分布式多文档)。
- 支持图搜索,地理搜索,Map-Reduce查询和文本搜索。
- MongoDB Inc.提供全文搜索引擎(Atlas Search)和数据湖(Atlas Data Lake)。
- 查询可以轻松优化以进行输出。
6. IBM DB2
1983年,IBM发布了第一个商业关系数据库产品IBM DB2。最初,它是在大型机上发布的,但在1987年,IBM还为Windows,Linux和Unix系统发布了DB2 LUW。 DB2的最新版本是11.5,它可以更快地运行查询。
数据库支持关系模型,但是近年来它已经发展了很多,并且还没有扩展到支持对象关系功能和非关系结构(如JSON和XML)。其某些功能在下面给出…
- 支持私有和云环境。
- ACID交易担保。
- 支持结构化数据(SQL),半结构化数据(JSON)和图形数据。
- 它也可以用作Master数据库。它通过IBM BLU Acceleration提供了出色的OLAP支持。
- 它提供了AI专用功能,旨在管理和构建复杂数据。
- 通过Db2 pureScale可以实现水平可伸缩性。
7. Redis
Redis(远程词典服务器)是由意大利开发商Salvatore Sanfilippo引入的。他在启动公司时就创建了该数据库,并且面临传统数据库的可伸缩性问题。他想开发一个实时日志分析器。他将Redis创建为分布式内存键值存储。
很快Redis受到欢迎,现在已在业界广泛使用。其某些功能在下面给出。
- 用作分布式内存中键值数据库。 Redis还可以用作具有可选持久性的分布式缓存和消息代理,
- 支持各种数据结构,例如字符串,哈希,列表,集合,位图,超级日志,带范围查询的排序集以及带半径查询的地理空间索引。
- 在CAP定理中,它支持CP(一致性和分区容忍度)。
- 内置复制,自动故障转移和通过Redis Cluster进行分片的高可伸缩性。
- 适用于实时用例,例如库存系统。
最后说明
我们显示了2021年将使用的7个数据库。除了这7个数据库外,Elasticsearch,Cassandra,MariaDB和Firebase等将在行业中广泛使用的其他数据库。
MySQL和PostgreSQL是开源和免费数据库的领导者。如果我们谈论商业数据库,那么Oracle越来越受欢迎。在NoSQL数据库中,MongoDB,Redis和Cassandra是领导者。根据项目要求,行业正在使用它。希望这有助于您大致了解2021年的顶级数据库。