对于社交网络、流媒体内容、新闻发布和零售,全球可扩展在线服务的出现极大地改变了对应用基础设施和软件架构的要求。最重要的转变之一是系统存储、整理和访问数据的方式。
传统的关系数据库管理系统(RDBMS)(例如甲骨文数据库)不太适合Web应用程序,因为这些应用程序需要分布式横向扩展群集基础架构。NoSQL数据库更适合松散耦合的设计,其中应用程序数据和可执行代码分布在多个机器和数据中心。基础设施即服务(IaaS)提供商的根源是在开源社区和云原生开发,他们已经构建了各种NoSQL数据库类型来适应不同的数据和用例。
优点和缺点
由于Web应用程序和服务是NoSQL开发背后的主要驱动因素,因此,与RDBMS相比,各种类型的NoSQL数据库都更具优势。这些优势包括以下:
然而,这些好处是有代价的。例如,RDBMS系统通过ACID模型确保更直接的一致性和可靠性,ACID模型是指原子性、一致性、隔离性和持久性。而NoSQL数据库则遵循BASE模型:基本可用性、软状态和最终一致性。此外,这些非关系数据库缺乏内置机制来检查数据完整性;它必须在外部代码中完成。***,通常不支持复杂的SQL操作,例如复合选择语句或表连接。
NoSQL数据库类别
NoSQL并不是特定类型的数据库,而是具有几种变体的数据库类别:
NoSQL数据库对比
随着云基础架构成为部署Web应用程序的流行选择,AWS、微软和Google Cloud纷纷构建了NoSQL服务和产品,以更好地适应不同的数据类型和用例。每种产品的具体细节会有所不同,下表展示了每种NoSQL数据库产品的情况:
正如NoSQL数据库比较表所示,每种NoSQL数据库类型都有几种流行的开源和商业产品。每个第三方选项都具有特定的功能和优势,而云替代方案不一定提供。例如,MongoDB可以进行配置,使复制的数据立即与读取保持一致,而不是最终的一致性。
但是,最重要的区别是部署模型:私有管理(内部部署或托管基础架构)与云服务。这里取决于企业是否更喜欢自我管理、高度可配置和受控制的软件,还是托管云服务,以消除前期资本支出和持续的基础架构管理开销。
一、简介 本设计为硬币图像识别统计装置通过数码相机获取平铺无重叠堆积的硬币的...
前言 关于Window,你了解多少呢?看看下面这些问题你都能答上来吗。 如果你遇到这...
大家好,今天我们来简单的聊一聊缓存问题。什么是缓存呢?它在系统设计中是在一个...
我们知道微软将会在今年给Windows10更换全新设计的UI,让Windows10的界面更加整...
一、MVC MVC模式的意思是,软件可以分成三个部分。 视图(View):用户界面。 控...
首先给扑克牌中每张牌设定一个编号,下面算法实现的编号规则如下: u 红桃按照从...
git工作区,暂存区,版本库之间的关系: 我们建立的项目文件夹就是工作区,在初...
本文实例讲述了jsp中page指令用法。分享给大家供大家参考。具体如下: 一、JSP ...
今日国内领先的智能数据服务运营商觉非科技完成近亿元A轮融资。本轮融资由和高资...
从功能测试、性能测试、界面测试、安全性测试、易用性、兼容性测试、震动测试七...