如何选择 DBMS?

问题描述

我正在学习设计系统,特别是其中的数据库部分,我知道很多类似的帖子都可以在 SO 上找到,但要么是十年前的(从那以后发生了很多变化)要么没有有用的答案。

之前的所有答案或博客文章都以某种方式比较了关系型和非关系型 DBMS(或 sql 和 Nosql)。我看不出两者之间有明确的界线。因为一旦我阅读了 Nosql DBMS 的属性,我就会发现 sql DBMS 的最新版本提供了相同的属性,反之亦然。例如,文档数据存储将数据存储在类似 JSON 的对象中,您甚至可以查询这些对象,但后来我发现 Postresql 也提供了此功能

一个常见的比较点是可扩展性。嗯,我可以看到很多像 Amazon 这样的巨头使用 sql dbms,而且他们似乎没有任何可扩展性问题。

一个比较点是 sql dbms 强制执行模式。我们可以通过 MongoDB 模式验证来做到这一点。

现在,newsql 数据库声称可以为在线事务处理 (OLTP) 工作负载提供 Nosql 系统的可扩展性,同时保持传统数据库系统的 ACID 保证。

所以似乎关系型数据库和非关系型数据库正在走向彼此。

牢记所有这些,如何选择 dbms?我的意思是你考虑什么点?思考过程是怎样的?

谢谢!

解决方法

选择作为学习平台还是选择特定项目?这确实有影响。如果是针对特定项目,那么选择将取决于项目的需求......数据来自哪里?储存它的目的是什么? (是否用于记录保存、交易等)谁将访问它以及如何访问它?需要完成什么?

有很多选项需要考虑,这是事实,但考虑项目的目的有助于了解哪些系统更适合。

除此之外,决策的另一个主要因素是相关人员的技能或公司现有的能力(如果有的话)。

你现在有具体的细节吗,还是更多的学习练习?

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...