Graph Databases—The NOSQL Phenomenon阅读笔记
本章内容着重对了NOSQL和RDBMS(关系型数据库管理系统)的不同,以及其各自背后设计时考虑的因素。然后接下来,着重讲述了NOSQL的4种分类方法。下面我们将对重要知识点进行汇总。
1、We define data complexity in terms of these three forces: data size, connectedness and semi-structure.
数据复杂性通常可以通过如下三个方面来衡量:数据大小,数据紧密程度以及半结构化。这句话,说白了就是数据本身的大小,数据和数据之间是否有联系并且联系是否密切,数据是否是结构的或者半结构的或者无结构的,构成了数据复杂性的三个方面。
2、Recent years have seen a meteoric rise in popularity of a family of data storage technologies known as NOSQL (a cheeky acronym for Not Only SQL, or more confrontationally, No to SQL).
最近几年,NOSQL数据存储技术很为流行,一般别名是"Not Only SQL"(不单单是SQL),或者"No to SQL"(不是SQL)。从两个别名可以推断出,NOSQL不同于SQL,SQL是关系型数据库中典型的语言,NOSQL是随着技术或者日常需求逐渐发展而来的一种存储技术。
3、NOSQL兴起的3个重要因素
1)Volume: the size of the stored data
2)Velocity: the rate at which data changes over time
3)Variety: the degree to which data is regularly or irregularly structured, dense or sparse, and importantly connected or disconnected.
第一个因素是:存储的数据量大小,众所周知,目前大数据是很火的,也反映了目前数据量很大,传统的关系型数据库在性能上很难保证的很好。第二个因素是:变化的速度,以前的数据一般是静态的,所以关系型数据库表现的很好,但是随着这几年互联网行业的兴起,数据本身变化速度极快。第三个因素是:数据的种类,现在的数据多种多样,有一些是有结构的,有一些是无结构的,有一些是互有联系的。上述三点导致NOSQL的兴起。
4、In the relational database world, we’re all familiar with ACID transactions:
• Atomic: All operations in a transaction succeed or every operation is rolled back.
 • Consistent: On transaction completion, the database is structurally sound.
 • Isolated: Transactions do not contend with one another, contentious access to state is moderated by the database                  so that transactions appear to run sequentially.
 • Durable: The results of applying a transaction are permanent, even in the presence of failures.
关系型数据库设计考虑的4个重要因素。Atomic是“原子性”,要不然操作成功,要不然操作进行全部回滚。Consistent是“一致性”,数据库事务完成后,数据库结构仍然和以前是一样的,结构不会变化。Isolated是“隔离性”,事务和事务之间是隔离的,不存在竞争关系。Durable是“持久性”,一旦事务成功后,结果就是永久性的。
5、Instead of using ACID, the term BASE has arisen as a popular way of describing the properties of a more optimistic storage strategy.
• Basic Availability: The store appears to work most of the time.
 • Soft-state: Stores don’t have to be write-consistent, nor do different replicas have to be mutually consistent all the time.
 • Eventual consistency: Stores exhibit consistency at some later point (e.g. lazily at read time).
BASE不同于ACID设计策略,是目前NOSQL设计时遵循的一些原则。其中,Basic Availability是“基本可行行”,系统大部分时间时可以运行的,这条说明存储系统允许错误发生或者硬件出现故障等。Soft-state是“软约束”,存储系统不必保存写一致性,也不必不同的备份之间是互相一致的。Eventual consistency是“最终一致性”,存储系统在后来的某点上,呈现一致性。
6、NOSQL可以分为四类:key-value, document, graph db以及bigtable,如下图所示,
7、Document存储系统
文档存储系统是以文档为基本单位,一般文档都会有一个ID,同时会从文档中提取出一些特征来代表文档,MongoDB就是一种文档存储系统。如下图所示:
8、Key-Value存储系统
They act like (large, distributed) hashmap data structures where (usually) opaque values are stored and retrieved by key.
Key-Value存储系统类似于哈希map一样。通过key去查找value的值,key相当于索引。
一个典型的分布式Key-Value系统如下:
9、BigTable存储系统
BigTable存储系统类似于矩阵,由行和列组成,每一个单元存放数据。一般而言,BigTable由如下4种成分组成:
10、Key-Value、Document以及BigTable存储系统很难解决互有联系的数据。
==================================小结============================================
第二章着重讲述了NOSQL的设计原则以及分类,同时需要知道Key-Value、Document以及BigTable三个存储系统都很难解决互有联系的数据。本章是为了引出Graph DB做铺垫。
Graph Databases—The NOSQL Phenomenon阅读笔记的更多相关文章
- Deep Learning of Graph Matching 阅读笔记
		
Deep Learning of Graph Matching 阅读笔记 CVPR2018的一篇文章,主要提出了一种利用深度神经网络实现端到端图匹配(Graph Matching)的方法. 该篇文章理 ...
 - 《Graph Neural Networks: A Review of Methods and Applications》阅读笔记
		
本文是对文献 <Graph Neural Networks: A Review of Methods and Applications> 的内容总结,详细内容请参照原文. 引言 大量的学习 ...
 - [论文阅读笔记] GEMSEC,Graph Embedding with Self Clustering
		
[论文阅读笔记] GEMSEC: Graph Embedding with Self Clustering 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 已经有一些工作在使用学习 ...
 - [论文阅读笔记] Are Meta-Paths Necessary, Revisiting Heterogeneous Graph Embeddings
		
[论文阅读笔记] Are Meta-Paths Necessary? Revisiting Heterogeneous Graph Embeddings 本文结构 解决问题 主要贡献 算法原理 参考文 ...
 - [开发笔记] Graph Databases on developing
		
TimeWall is a graph databases github It be used to apply mathematic model and social network with gr ...
 - 论文阅读笔记(十八)【ITIP2019】:Dynamic Graph Co-Matching for Unsupervised Video-Based Person Re-Identification
		
论文阅读笔记(十七)ICCV2017的扩刊(会议论文[传送门]) 改进部分: (1)惩罚函数:原本由两部分组成的惩罚函数,改为只包含 Sequence Cost 函数: (2)对重新权重改进: ① P ...
 - Mongodb Manual阅读笔记:CH9 Sharding
		
9.分片(Sharding) Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mongodb ...
 - Mongodb Manual阅读笔记:CH3 数据模型(Data Models)
		
3数据模型(Data Models) Mongodb Manual阅读笔记:CH2 Mongodb CRUD 操作Mongodb Manual阅读笔记:CH3 数据模型(Data Models)Mon ...
 - 《深入实践Spring Boot》阅读笔记之三:核心技术源代码分析
		
刚关注的朋友,可以回顾前两篇文章: 基础应用开发 分布式应用开发 上篇文章总结了<深入实践Spring Boot>的第二部分,本篇文章总结第三部分,也是最后一部分.这部分主要讲解核心技术的 ...
 
随机推荐
- 一个中高级PHP工程师所应该具备的能力
			
很多面试,很多人员能力要求都有“PHP高级工程师的字眼”,如果您真心喜欢PHP,并且您刚起步,那么我简单说说一个PHP高级工程师所应该具备的,希望给初级或已经达到中级的PHP工程师一些帮助. 一.平静 ...
 - UFLDL课程学习(一)
			
章节地址:http://ufldl.stanford.edu/tutorial/supervised/LinearRegression/ 章节名称:线性回归 (Linear Regression) 第 ...
 - (转)精通 JS正则表达式
			
精通 JS正则表达式 (精通?标题党 ) 正则表达式可以: •测试字符串的某个模式.例如,可以对一个输入字符串进行测试,看在该字符串是否存在一个电话号码模式或一个信用卡号码模式.这称为数据有效性验证 ...
 - parent.location.href和location.href区别
			
parent.location.href='ind.php'parent用于框架结构,需要全网页转向如果你的网页是左右框架,那么,直接把当前页面全部转到ind.php中 location.href=' ...
 - MySQL忘记root密码的解决方案
			
在实际操作中忘记MySQL的root密码是一件令人很头痛的事情,不要急以下的文章就是介绍MySQL的root密码忘记的时候解决方案,我们可以对其进行如下的步骤重新设置,以下就是文章的详细内容描述. ...
 - gc内存回收机制
			
判断哪些对象可回收 GC是通过对象是否存活来决定是否进行回收,判断对象是否存活主要有两种算法:引用计数算法.可达性分析算法 引用计数算法 引用计数的算法原理是给对象添加一个引用计数器,每被引用一次计数 ...
 - iOS9之后对于NSURL的编码转换方法变化说明
			
在iOS9之后,官方推荐使用下面的方法对NSString进行转换 - (nullable NSString *)stringByAddingPercentEncodingWithAllowedChar ...
 - PHP 函数的引用传递
			
$a = "nowamagic";$b =& $a;echo $b.$a; 这意味着 $a 和 $b 指向了同一个变量.同一个变量内容有不同的变量名,引用就是这么个回事. ...
 - JavaScript 显示弹出窗口
			
window . showModalDialog ( sURL,vArguments , sFeatures )参数说明: sURL--必选参数,用来指定对话框要显示的文档的URL. //要显示页面的 ...
 - IBM X3650 服务器更换内存的过程记录
			
前几天,由于天气气温太高,导致中心机房UPS自动保护性关闭,最终导致所有服务器都掉电.其中一台IBM X3650服务器报警,显示内存故障.原来这台服务器共有4G内存,现在打开服务器进入系统后,显示只有 ...