数据库就像办公室中的一个房间,可以存储与项目相关的所有文件和重要信息。每个公司都需要一个数据库来存储和组织信息。我们存储的信息可能非常敏感,因此我们在访问或操作数据库中的信息时必须始终小心谨慎。
为了构建不同类型的应用程序,例如 Web、企业、嵌入式系统、实时系统、人工智能、机器学习、高性能计算、区块链、物联网等,您可能必须选择一个或多个数据库。多年来,程序员和行业专家对满足他们要求的数据库表现出了热爱。
选择正确的数据库也取决于项目的目的。大约 20-25 年前,为应用程序选择数据库并不是一项具有挑战性的任务。大多数时候,开发人员更喜欢使用关系数据库来配置他们的应用程序。但是今天,由于应用程序的进步,它已成为一项具有挑战性的任务。
现代软件开发(基于微服务、云、分布式应用程序、全局扩展、半结构化数据、大数据、快速数据、低延迟数据的应用程序)需要传统数据库与各种 NoSQL、NewSQL 和云数据库相结合。
今天,科技界有超过 343 个数据库,这是一个非常庞大的数字。要选择正确的数据库,您需要熟悉一些流行数据库的优缺点。如果您的目标是成为一名软件或技术架构师(当然,他们是决定选择正确技术的人),那么尽可能多地了解这些数据库是很好的。
在这篇博客中,让我们讨论一些您在 2021 年应该学习或熟悉的关键数据库。在此之前,让我们快速浏览一下最受欢迎的数据库的排名,下面是根据 DB Engines 的列表……
如果我们看一下去年的调查,那么下面是 StackOverflow 上的可用数据
1. 甲骨文
Oracle 由软件工程师Larry Ellison (现任 Oracle Corporation 的 CTO)于 1979 年创建。Oracle 是领先的商业 RDBMS 系统,使用汇编语言 C、C++ 和Java编写。 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 是开源的,有两种许可模式:免费的社区服务器和专有的企业服务器。
- 它带有 ACID 事务保证,在 CAP 定理中它提供即时一致性。
- MySQL 提供水平分区(分片)。如果您的软件基于此数据库构建,那么您肯定会获得高可用性和高吞吐量以及低延迟。
- MySQL 支持大多数编程语言,如 C、C++、 Python、 Java、 PHP和 Tcl 进行客户端编程。
- MySQL Cluster 提供多主 ACID 事务。
- MySQL 支持大型数据库,表中多达 5000 万行或更多。
3.微软SQL服务器
MS SQL 服务器是 Sybase SQL 服务器的变体。该数据库由 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。 Michael 还因其在 PostgreSQL 方面的工作而获得了图灵奖。
PostgreSQL 是用 C 编写的,被需要处理大量数据的公司使用。许多游戏应用程序、数据库自动化工具和域注册都使用此数据库。下面给出了它的一些功能……
- ACID 交易保证。在 CAP 定理中,它提供了即时一致性。
- 尽管它是对象关系型 DBMS 用户,但可以自由创建 NoSQL 数据库。您可以将此数据库与 SQL 数据库的事务保证和 NoSQL 数据库的水平扩展一起使用。您可以在需要分布式 SQL 的地方使用此数据库。
- 更高级的索引如部分索引、布隆过滤器。它允许您在 PostgreSQL 中创建非阻塞索引。
- 高可扩展性、预定义功能、易于数据移植、多接口。
- 支持结构化数据 (SQL)、半结构化数据(JSON、XML)、键值、空间数据。
- 具有先进的可靠性和灾难恢复功能。
5. MongoDB
在使用 NoSQL 数据库时,MongoDB 是企业的首要任务。使用面向对象的编程语言很难将数据加载和访问到 RDBMS。您将不得不进行额外的应用程序级映射。
MongoDB 解决了这个问题,尤其是处理文档数据。 MongoDB 是简单、面向对象、动态和可扩展的数据库。您不需要像传统数据库那样处理列和行。您将数据对象作为单独的文档存储在集合中。
10gen 软件公司在 2009 年发布了这个数据库,在过去的十年里,这个数据库经历了许多改进和创新。它是用 C、C++ 和 JavaScript 编写的。您可以将此数据库用于移动应用程序、实时分析、物联网,并且可以为您的所有数据提供实时视图。下面给出了它的一些特性。
- 快速、易于使用、部署灵活、高性能、高可用性和易于扩展。使用自动分片,您可以轻松地进行水平扩展。它通过主从节点提供内置复制。
- 它是CAP模型中的CP(Consistent and Partition tolerance)。
- 带有快照隔离的 ACID 事务(分布式多文档)。
- 支持图形搜索、地理搜索、Map-Reduce 查询和文本搜索。
- MongoDB Inc. 提供全文搜索引擎(Atlas Search)和数据湖(Atlas Data Lake)。
- 查询可以很容易地针对输出进行优化。
6.IBM DB2
1983 年,IBM 发布了第一个商业关系数据库产品 IBM DB2。最初它是在 ro 大型机上发布的,但在 1987 年 IBM 也发布了用于 Windows、Linux、Unix 系统的 DB2 LUW。 DB2 的最新版本是 11.5,它可以更快地运行查询。
数据库支持关系模型,但近年来它已经发展了很多,并没有扩展到支持对象关系特性和非关系结构,如 JSON 和 XML。下面给出了它的一些功能……
- 支持私有和云环境。
- ACID 交易保证。
- 支持结构化数据 (SQL)、半结构化数据 (JSON) 和图形数据。
- 它也可用作主数据库。它通过 IBM BLU Acceleration 提供出色的 OLAP 支持。
- 它提供了专门用于管理和构建复杂数据的 AI 专用功能。
- 通过 Db2 pureScale 可以实现水平可伸缩性。
7. Redis
Redis (Remote Dictionary Server) 是由意大利开发商 Salvatore Sanfilippo 推出的。他在创业时创建了这个数据库,他面临着传统数据库的可扩展性问题。他想开发一个实时日志分析器。他将 Redis 创建为分布式内存键值存储。
Redis 很快就流行起来,现在它在行业中被广泛使用。下面给出了它的一些特性。
- 用作分布式内存键值数据库。 Redis 还可以用作具有可选持久性的分布式缓存和消息代理,
- 支持广泛的数据结构,例如字符串、散列、列表、集合、位图、超级日志、带有范围查询的排序集合和带有半径查询的地理空间索引。
- 在 CAP 定理中,它支持 CP(一致和分区容忍)。
- 具有内置复制、自动故障转移和通过 Redis 集群进行分片的高可扩展性。
- 适用于实时用例,例如库存系统。
最后说明
我们展示了 2021 年将使用的 7 个数据库。 除了这 7 个数据库之外,其他将在行业中大量使用的数据库是 Elasticsearch、Cassandra、MariaDB 和 Firebase。
MySQL 和 PostgreSQL 是开源和免费数据库中的佼佼者。如果我们谈论商业数据库,Oracle 越来越受欢迎。在 NoSQL 数据库中,MongoDB、Redis 和 Cassandra 是领导者。根据项目要求,行业正在使用它。希望这有助于为您提供 2021 年顶级数据库的高级概述。