数据模型
传统的数据库在数据模型方面,主要是关系型,它的特色是对Join类操作和ACID事务的支持。在NoSQL领域,主要有三种主流的数据模型:
Column-oriented(列式)
列式也主要使用Table这样的模型,但是它并不支持类似Join这样多表的操作,它的主要特点是在存储数据时,主要围绕着“列(Column)”,而不是像传统的关系型数据库那样根据“行(Row)”进行存储,也就是说,属于同一列的数据会尽可能地存储在硬盘同一个页(Page)中,而不是将属于同一个行的数据存放在一起,这样做的好处是,对于很多类似数据仓库(Data Warehouse)的应用,虽然每次查询都会处理很多数据,但是每次所涉及的列并没有很多,这样如果使用列式数据库的话,将会节省大量I/O,并且大多数列式数据库都支持Column Family这个特性,通过这个特性能将多个Column并为一个小组,这样做好处是能将相似Column放在一起存储,这样能提高这些Column的存储和查询效率。总体而言,这种数据模型的优点是比较适合汇总(Aggregation)和数据仓库这类应用。.
Key-value
虽然Key-value这种模型和传统的关系型相比较简单,有点类似常见的HashTable,一个Key对应一个Value,但是其能提供非常快的查询速度、大的数据存放量和高并发操作,并非常适合通过主键对数据进行查询和修改等操作,虽然不支持复杂的操作,但是可以通过上层的开发来弥补这个缺陷。
Document(文档)
在结构上,Document和Key-value是非常相似的,也是一个Key对应一个Value,但是这个Value主要以JSON或者XML等格式的文档来进行存储,是有语义的,并且Document DB一般可以对Value来创建Secondary Index来方便上层的应用,而这点是普通Key-Value DB所无法支持的。
CAP理论
这个理论是由美国著名科学家,同时也是著名互联网企业Inktomi的创始人Eric Brewer在2000年PODC(Symposium on Principles of Distributed Computing)大会上提出的,后来Seth Gilbert 和 Nancy lynch两人也证明了CAP理论的正确性,虽然在后来近十年的时间很多人对CAP理论提出了很多异议,但是在NoSQL的世界中,它还是非常有参考价值的。它的意思是,一个分布式系统不能同时满足一致性,可用性和分区容错性这三个需求,最多只能同时满足两个。
1. 一致性(Consistency):任何一个读操作总是能读取到之前完成的写操作结果,也就是在分布式环境中,多点的数据是一致的;
2. 可用性(Availability):每一个操作总是能够在确定的时间内返回,也就是系统随时都是可用的。
3. 分区容忍性(Partition Tolerance): 在出现网络分区(比如断网)的情况下,分离的系统也能正常运行。
由于一致性、可用性和分区容忍性这三方面只能选择两个,所以大多数NoSQL系统都会根据自己的设计理念来进行相应的选择,但由于许多NoSQL数据库都以水平扩展著称,所以在CAP的选择上面,都倾向于坚持分区容忍性,而放弃一致性或者可用性,它们的做法主要是通过消减关系型和事务相关的功能。
分享到:
相关推荐
为了确保数据的可靠性,需要理解CAP理论(一致性、可用性、分区容错性),并熟悉各种一致性模型,如最终一致性和强一致性。 在云计算环境中,NoSQL数据库常与大数据平台如Hadoop、Spark结合,实现数据的实时处理和...
2. **无固定表结构**:与关系型数据库相比,NoSQL数据库中的数据结构更为灵活,可以支持动态字段的添加和删除,无需事先定义严格的表结构。 3. **高可扩展性**:NoSQL数据库通常设计为易于水平扩展,即通过增加更多...
- **数据模型设计**:由于 NoSQL 数据库缺乏固定模式,设计合适的数据模型是一项挑战。 - **查询语言**:NoSQL 数据库通常不支持 SQL 查询语言,这可能需要开发人员学习新的查询语言或 API。 #### 八、NoSQL 生态...
NoSQL 数据库具有灵活的可扩展性、灵活的数据模型和与云计算紧密融合等特点。NoSQL 数据库的出现,是为了解决关系数据库在 Web2.0 时代的不足之处。 5.1 NoSQL 简介 ---------------- NoSQL 数据库具有以下几个...
NoSQL数据库是近年来随着互联网技术与云计算的发展被广泛使用的一种新型数据库技术,它主要用于处理大规模数据集以及多种类型的数据。随着社交网络、网络购物、医疗服务等新兴应用领域的出现,人们对海量数据管理...
NoSQL(Not Only SQL)数据库是指一类非关系型数据库管理系统,它们在数据存储方式、数据模型、可扩展性和性能等方面与传统的SQL数据库有着显著的区别。NoSQL数据库的兴起主要是为了应对互联网时代大数据量、高并发...
在大数据时代,由于其高可扩展性、高性能和灵活的数据模型,NoSQL数据库被广泛应用于互联网、云计算和物联网等领域。 本书首先会介绍NoSQL数据库的基本概念,包括与关系型数据库的区别,以及NoSQL的四大类型:键值...
NoSQL 数据库是当前大数据时代的热门话题,NoSQL 数据库学习之路是 NoSQL 数据库的详细介绍,介绍了目前主流的 NoSQL 数据库实现原理,涵盖了 CAP 理论、 BASE 理论、一致性哈希、 Vector Clock、Gossip Protocol 等...
4. **支持复杂的数据模型**:NoSQL数据库支持多种数据模型,如键值、列族、文档和图形数据库等。 ##### NoSQL数据库的劣势: 1. **缺乏理论基础**:相较于关系数据库有着完善的关系代数理论基础,NoSQL数据库缺乏...
在信息化时代,随着大数据、云计算和互联网应用的快速发展,NoSQL数据库因其高可扩展性、高性能、灵活的数据模型等特点,逐渐受到广泛的关注和应用。 在山东大学软件学院的大三上专业限选课中,学生们将深入学习非...
2. 最终一致性:在CAP理论下,很多NoSQL数据库选择了AP,牺牲强一致性以保证高可用性和分区容忍性,采用最终一致性模型,即数据在一段时间后达到一致状态。 3. BASE理论:基本可用(Basically Available)、软状态...
总结来说,云计算与数据库之间的关系密切,传统关系型数据库在应对云计算时代的挑战时显得力不从心,而NoSQL数据库以其灵活性和适应性成为了新的解决方案。随着技术的发展,数据库领域将持续演变,以满足不断增长的...
NoSQL(Not Only SQL)是近年来在大数据处理和分布式存储领域兴起的一种新型数据库技术,它与传统的基于SQL的关系型数据库有着显著的区别。本指南“什么NoSQL!?”旨在为开发者和IT专业人士提供一个独立于供应商的...
NoSQL数据库的设计理念是放弃传统的严格事务处理和复杂的SQL查询,转而追求灵活的数据模型、可扩展性和与云计算的紧密融合。 **5.1 NoSQL简介** NoSQL数据库的核心特点包括: 1. **灵活的可扩展性**:NoSQL数据库...
NOSQL 们背后的共有原则是指分布式系统的NOSQL背后的共有原则。 假设失效是必然发生的是指分布式系统的假设失效是必然发生的。 对数据进行分区是指分布式系统的对数据进行分区。 保存同一数据的多个副本是指...