NoSQL简介(NoSQL Distilled读书笔记)

随着NoSQL的流行,了解这种新型数据库十分有必要。

首先,为什么我们要选择NoSQL?

主要是两个原因:一是待处理的数据量很大,或对数据访问的效率要求很高,从而必须将数据放在集群上;二是想采用一种更为方便的数据交互方式来提高应用程序开发效率

而传统关系数据库最大的问题,应该就是阻抗失谐

第二,NoSQL数据库的共同特性是什么?

不使用关系模型;在集群中运行良好;开源;适用于21世纪的互联网公司;无模式

第三,NoSQL数据模型:

模型主要可以分为四类:‘键值’ ‘文档’ ‘列族’ ‘图’ 前三种数据模型有一个共同的特征,就是“面向聚合”。

面向聚合所用的方式,操作数据时所用的单元,结构比元组集合复杂得多,以这种复杂结构来存放列表或嵌套其他记录结构。

     具体来说

1)键值数据模型和文档数据模型    两者之间界限比较模糊。区别如下:键值数据库的聚合不透明。只包含一些没有太多意义的大块信息;文档数据库的聚合中,可以看到其结构。不透明的优点是聚合中可以存储任意数据,除了限制大小外,其他方面很随意。文档数据库则要限制其中存放的内容,定义了允许的结构与数据类型,可以更好地访问数据

键值数据库基本上都是通过键来搜索聚合的内容,在文档数据库中,提交的查询关键词往往基于文档的内部结构

2)列族存储

    采用大表格式数据模型。最好的理解方式是将其视为两级聚合结构。第一个键值代表行标识符,可以用它来获取想要的聚合。列族结构与“键值存储”的区别在于,“行聚合”本身又是一个映射,包含更详细的值。这些二级值就叫做列。

三种方式的对比:

共同点:使用聚合这一概念,聚合中有一个可以查找其内容的索引键。在集群上运行时,聚合是中心环节,因为数据库必须保证将聚合内的数据存放在同一个节点上。

不同点:键值数据模型将聚合看做不透明的整体,只能根据键来查出整个聚合,而不能仅仅查询或获取其中的一部分;文档模型的聚合对数据库透明,于是可以只查询并获取其中一部分数据,不过,由于文档没有模式,因此,在想优化存储并获取聚合中的部分内容时,数据库不太好调整文档结构;列族模型把聚合分为列族,让数据库将其视为行聚合内的一个数据单元。此类聚合的结构有某种限制,但是数据库可利用此种结构的优点来提高其易访问性。

3)图数据库

重视数据间的“关系”,图是一种图形数据结构,其中含有连接节点的边。遍历十分迅速

第四:分布式模型

分布式模型基于服务器集群上的横向扩展。聚合成了数据分布的单元。数据分布有两条路径,复制和分片,它们是两项正交的技术,可以两者选其一,也可以都使用。接下来是几个分布式相关的概念

1)分片

不同的用户需要访问数据集中的不同部分,我们因此把数据的各个部分存放于不同的服务器中,以此实现横向扩展,这种技术叫分片

2)主从复制

把数据复制到多个节点,其中一个节点叫做“主节点“或”主要节点”,存放权威数据,而且通常负责处理数据更新操作。其余节点叫做从节点或“次要节点”,复制操作就要让从节点与主节点同步。

在需要频繁读取数据集的情况下,“主从复制”有助于提升数据访问性能,可以增强读取操作的故障恢复能力;但是一旦主节点出错,数据会丢失

3)对等复制

没有主节点的概念,所有副本地位相同,可以接受写入请求,而且丢失其中一个副本,并不影响整个数据库的访问

时间: 2024-08-12 15:12:42

NoSQL简介(NoSQL Distilled读书笔记)的相关文章

《JavaScript高级程序设计 第三版》 前2章 Javascript简介与HTML 读书笔记

第一章:Javascript简介 1.JavaScript诞生于1995年,当时,它的主要目的是处理以前由服务器端语言(如Perl)负责的一些输入验证操作.现在,JavaScript是一种专为与网页交互而设计的脚本语言. 注:Netscape(网景)公司研发,Java是sun公司研发,原名为LiveScript,为了搭上媒体热炒的Java的顺风车,更名为JavaScript 2.微软推出JSript的和网景的JavaScript相竞争,最后微软胜利.ECMA指定了规定并重新命名为ECMAScri

《NoSQL精粹》思维导图读书笔记

各主题笔记 这本书短小精悍,虽不能解答所有NoSQL疑问,但在读书过程中会抛给你不少未曾想过的问题,给人以更深入的思考: 这里对每一个主题分别做了笔记: 详见以下博客文章: NoSQL系列:选择合适的数据库 NoSQL聚合数据模型 NoSQL数据库的分布式模型 NoSQL数据库:数据的一致性 思维导图 参考 <NoSQL精粹>   Posted by: 大CC | 09JUL,2014 博客:blog.me115.com [订阅] 微博:新浪微博 <NoSQL精粹>思维导图读书笔记

《Linux/Unix系统编程手册》读书笔记7 (/proc文件的简介和运用)

<Linux/Unix系统编程手册>读书笔记 目录 第11章 这章主要讲了关于Linux和UNIX的系统资源的限制. 关于限制都存在一个最小值,这些最小值为<limits.h>文件中的常量. 通过cat 命令查看: [email protected]:~/Code/tlpi$ cat /usr/include/limits.h /* Copyright (C) 1991, 1992, 1996, 1997, 1998, 1999, 2000, 2005 Free Software

【读书笔记-《Android游戏编程之从零开始》】1.Android 平台简介与环境搭建

简单的记录下笔记,具体可百度! Android SDK (Software Development Kit)- Android 软件开发工具包,用于辅助Android 操作系统软件开发,是开发Android 软件.文档.范例.工具的一个集合.Android NDK (Native Development Kit) - 类似 Android SDK,可用C/C++语言编写Android程序. developer.android.com - 可查阅到 Android SDK. 开发指南.API说明等

《淘宝技术这十年》读书笔记 (一).淘宝网技术简介及来源

我似乎是2007年初中看<赢在中国>的时候喜欢上马云的,当时对电脑都不是很了解,更别提阿里巴巴和淘宝网了.但当时还是被马云的几句点评深深地吸引,其中我印象最深的一句话就是"短暂的激情是不值钱的,只有长久的激情才是值钱的",以至于我在本科毕业德育答辩时用的题目就是这句话(德育答辩开题我用的题目也是马云的<If not now,when? If not me,who?>其含义是如果不是现在努力,什么时候努力呢?如果不是为了自己奋斗,又是为谁奋斗呢?).的确,想做成任

《JavaScript 高级程序设计》读书笔记一 简介

一   历史 二   实现 a. javascript三个部分: ECMAScript:由ECMA-262定义,提供核心语言功能: DOM:提供HTML的应用程序编程接口/提供访问和操作网页内容的方法和接口: BOM:提供与浏览器交互的方法和接口: 三   版本 <JavaScript 高级程序设计>读书笔记一 简介

Android SDK简介-读书笔记(一)

从现在开始,决定每天抽空学习Android,所以后面会不间断的留下一些读书笔记. 今天主要看了Android的SDK体系介绍,参考文献为:http://blog.csdn.net/cbk861110/article/details/8837888 一.什么是Android SDK SDK = Software Development Kit ,Android SDK主要是提供了在windows/linux/mac平台上的支持Android应用的开发组件,还包括在Android平台上的开发移动应用

《NOSQL数据库入门》学习笔记

<nosql数据库入门> 第1章 nosql数据库的基础知识 1 1.1 关系型数据库和nosql数据库 2 1.1.1 什么是nosql 2 1.1.2 关系型数据库简史 2 1.1.3 数据库的分类 3 1.1.4 关系型数据库的优势 5 1.1.5 关系型数据库的不足 5 1.1.6 nosql数据库 9 1.2 nosql数据库是什么 12 1.2.1 键值存储 13 1.2.2 面向文档的数据库 14 1.2.3 面向列的数据库 14 1.3 如何导入nosql数据库 16 1.3.

《Java并发变成实践》读书笔记---第一章 简介

<Java并发编程实战>深入浅出地介绍了Java线程和并发,是一本完美的Java并发参考手册.书中从并发性和线程安全性的基本概念出发,介绍了如何使用类库提供的基本并发构建块,用于避免并发危险.构造线程安全的类及验证线程安全的规则,如何将小的线程安全类组合成更大的线程安全类,如何利用线程来提高并发应用程序的吞吐量,如何识别可并行执行的任务,如何提高单线程子系统的响应性,如何确保并发程序执行预期任务,如何提高并发代码的性能和可伸缩性等内容,最后介绍了一些高级主题,如显式锁.原子变量.非阻塞算法以及