【从零开始学习计算机科学】数据库系统(十一)云数据库、NoSQL 与 NewSQL
【从零开始学习计算机科学】数据库系统(十一)云数据库、NoSQL 与 NewSQL
- 云数据库
-
- 云服务器的服务
- 云数据库和传统的分布式数据库的异同
- NoSQL
-
- NoSQL数据库的特点
- CAP定理
- NoSQL的特性
- NoSQL数据库的分类
- NoSQL的适用场景
- Nosql数据库实例-Redis
-
- Redis的优势
- MongoDB
-
- MongoDB的特点
- NewSQL
-
- NewSQL出现的背景
- NewSQL(新型分布式数据库)的概念
- NewSQL的实现
- 透明的数据分片中间件
- Database-as-a-Service(DBaaS)
- NewSQL的现状
云数据库
云计算的迅猛发展使得数据库部署荷藕虚拟化在“云端”成为可能。
云数据库就是数据库部署和虚拟化在云计算环境下,通过计算机网络提供数据管理服务的数据库。
云数据库可以共享基础架构,极大地增强了数据库的存储能力,消除了人员、硬件、软件的重复配置。
Gartner预测,云将主导数据库市场的未来,到2022年,75% 的数据库将被部署或迁移至云平台,只有5% 的数据库会考虑部署在本地。(2019)
云数据库的特点是动态可扩展;高可用性;较低的使用代价;易用性;大规模并行处理。
在云数据库应用中,客户端不需要了解云数据库的底层细节,所有的底层硬件都已经被虚拟化,对客户端而言是透明的,它就像在使用一个运行在单一服务器上的数据库一样,非常方便容易,同时又可以获得理论上近乎无限的存储和处理能力。
云数据库将传统的数据库系统配置在“云上”,有专门的云服务提供商进行这些“云上”数据库系统的管理和部署工作。用户需要通过付费的方式就能获取数据库服务。
不同于传统的数据库,云数据库通过计算存储分离、存储在线扩容、计算弹性伸缩来提升数据库的可靠性和可用性。
代表性的云数据库有亚马逊Aurora,微软SQL Aure,华为的GaussDB(for mysql)。
目前,云数据库的类型有托管云数据库、云原生数据库等等。
云服务器的服务
- 灵活的使用数据库。云数据库服务可以根据需要进行购买,如果有一个应用需要在晚上运行,白天不运行,云数据库就可以很容易实现。其硬件和相关的基础设施由服务提供商提供。
- 提供VPC(virtual private cloud)服务。
- 云服务库提供商会提供多个位置的服务。灾难恢复、负载平衡。
- 云供应商提供了扩展服务、提供容错和执行负载平衡的先进方法。
- 多界面服务(窗口、命令行、API)。
- 安全服务。
- 监控和性能工具。
云数据库和传统的分布式数据库的异同
云数据库和传统的分布式数据库有着相似的地方,比如,都把数据存放到不同的节点上。但是,分布式数据库在可扩展性方面是无法和云数据库相比的。由于需要考虑数据同步和分区失败等开销,前者随着节点的增加,会导致DDB性能快速下降。而云数据库则具有很好的可扩展性,因为后者在设计的时候,就已经避免了许多会影响到可扩展性的因素,比如采用更加简单的数据模型、对元数据和应用数据进行分离以及放松对一致性的要求等等。
NoSQL
Web2.0和移动互联网时代,高并发读写、海量数据处理、数据结构不一致等情况大大制约着计算机的发展和应用。为了解决大规模数据集合和多种数据种类带来的挑战,NoSQL数据库应运而生。
NoSQL,也称作“Not Only SQL”,“non-relational”。泛指区别于传统的关系型数据库的非关系型的数据库。区别于关系型数据库,其不保证关系数据的四大特性:原子性、一致性、隔离性、持久性。
NoSQL数据库的特点
- 不需要预定义模式:不需要事先定义数据模式,预定义表结构。数据中的每条记录都可能有不同的属性和格式。当插入数据时,并不需要预先定义它们的模式。
- 无共享架构:相对于将所有数据存储的存储区域网络中的全共享架构。NoSQL往往将数据划分后存储在各个本地服务器上。因为从本地磁盘读取数据的性能往往好于通过网络传输读取数据的性能,从而提高了系统的性能。
- 弹性可扩展:可以在系统运行的时候,动态增加或者删除结点。不需要停机维护,数据可以自动迁移。