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>的第二部分,本篇文章总结第三部分,也是最后一部分.这部分主要讲解核心技术的 ...
随机推荐
- sqlserver中的统计语法
set statisitcs io {on | off} 显示与执行的sql语句有关的磁盘活动量的信息 set statistics profile {on | off} 显示语句的配置文件信息 se ...
- LayoutInflater.inflate() 参数研究
参考连接:http://blog.csdn.net/lovexieyuan520/article/details/9036673 http://www.2cto.com/kf/201407/31305 ...
- UITableViewCell实现3D缩放动画
gif效果图: 代码部分: import UIKit class TableViewController: UITableViewController { override func viewDidL ...
- JS实现Tab切换
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- VC++6.0 下配置 pthread库2010年12月12日 星期日 13:14VC下的pthread多线程编程 转载
VC++6.0 下配置 pthread库2010年12月12日 星期日 13:14VC下的pthread多线程编程 转载 #include <stdio.h>#include &l ...
- win7下搭建nginx+php的开发环境
本来在win7下用的是IIS做web服务器,但近来因项目需求的原因,需要在服务器遇到404错误的时候自动做转向(不是在客户端的跳转,而是在服务器收到客户端请求去某目录下读取文件返回时,如果发现目录或目 ...
- Oracle数据库之PL/SQL异常处理
Oracle数据库之PL/SQL异常处理 异常指的是在程序运行过程中发生的异常事件,通常是由硬件问题或者程序设计问题所导致的. PL/SQL程序设计过程中,即使是写得最好的程序也可能会遇到错误或未预料 ...
- Css溢出隐藏
display: -webkit-box;-webkit-line-clamp: 2; /*多少行数之后显示为省略...*/word-wrap: break-word;word-break: ...
- sqlalchemy--group_concat的使用
今天,一个app客户端同事需要我服务器端提供一组数据,这组数据要按类分好,把整个结构都展示给他,他直接使用就可以了.数据大概如下面这种: 同事需要的结构大概就是类型1有多少,分别是什么;类型2有多少, ...
- 导出函数结构 EXPORT_DIRECTORY
typedef struct _IMAGE_EXPORT_DIRECTORY { DWORD Characteristics; DWORD TimeDateStamp; //输出表的创建时间 WORD ...