敏捷数据科学 - SQL 与 NoSQL
本教程的全部重点是遵循敏捷方法,减少步骤并实现更有用的工具。要理解这一点,了解 SQL 和 NoSQL 数据库之间的区别非常重要。
大多数用户都了解SQL数据库,并且对MySQL、Oracle或其他SQL数据库有很好的了解。在过去的几年里,NoSQL 数据库被广泛采用来解决各种业务问题和项目需求。
下表显示了 SQL 和 NoSQL 数据库之间的区别 -
SQL | NoSQL |
---|---|
SQL数据库主要称为关系数据库管理系统(RDBMS)。 | NoSQL数据库也称为面向文档的数据库。它是非关系型的、分布式的。 |
基于 SQL 的数据库包括具有行和列的表结构。表和其他模式结构的集合称为数据库。 | NoSQL数据库以文档为主要结构,文档的包含称为集合。 |
SQL 数据库包括预定义的架构。 | NoSQL 数据库拥有动态数据并包含非结构化数据。 |
SQL 数据库是垂直可扩展的。 | NoSQL 数据库是水平可扩展的。 |
SQL数据库非常适合复杂的查询环境。 | NoSQL 没有用于复杂查询开发的标准接口。 |
SQL 数据库不适用于分层数据存储。 | NoSQL 数据库更适合分层数据存储。 |
SQL 数据库最适合指定应用程序中的繁重事务。 | NoSQL 数据库在复杂事务应用程序的高负载方面仍然不被认为具有可比性。 |
SQL 数据库为其供应商提供了出色的支持。 | NoSQL 数据库仍然依赖社区支持。只有少数专家可以进行大规模 NoSQL 部署的设置和部署。 |
SQL 数据库关注 ACID 属性——Atomics性、一致性、隔离性和持久性。 | NoSQL 数据库关注 CAP 属性——一致性、可用性和分区容错性。 |
根据选择 SQL 数据库的供应商,SQL 数据库可以分为开源数据库和闭源数据库。 | NoSQL 数据库根据存储类型进行分类。NoSQL 数据库默认是开源的。 |
为什么要使用 NoSQL 来实现敏捷?
通过上述对比可以看出,NoSQL文档数据库完全支持敏捷开发。它是无模式的,并且不完全专注于数据建模。相反,NoSQL 推迟了应用程序和服务,因此开发人员可以更好地了解如何对数据进行建模。NoSQL 将数据模型定义为应用程序模型。
MongoDB安装
在本教程中,我们将更多地关注 MongoDB 的示例,因为它被认为是最好的“NoSQL 模式”。