看了一些关于NoSql的文章,记录下自己的理解,方便以后重温下。
一些链接:
NoSQL有时也称作Not Only SQL的缩写,是对不同于传统的关联式数据库的数据库管理系统的统称。
这句话是维基百科上的解释。
现在大数据,云计算这些热门词汇屡见不鲜,但是归根结底,这些都是对海量数据的处理。这些数据怎么来的?比方说,用户逛网上商城,他浏览过哪些商品,买过什么商品,这些信息都会被采集保存到数据库当中,同时网站会提供相类似的商品信息供顾客比较选择。再比如,SNS社交网站,微博微信,这些数据巨大的信息都是要被处理的。面对这么庞大的数据,传统关系型数据库并不能高效快速的处理这些数据。传统的关系型数据库读写操作都是事务的,具有ACID(原子性Atomicity、一致性Consistency、隔离性Isolation、持久性Durability)的特点,C就是一致性(Consistency),这个特点是关系型数据库的灵魂(其他三个AID都是为其服务的),这个特性使得关系型数据库可以用于几乎所有对一致性有要求的系统中,如典型的银行系统。
但是,在网页应用中,尤其是SNS应用中,一致性却不是显得那么重要,用户A看到的内容和用户B看到同一用户C内容更新不一致是可以容忍的,或者说,两个人看到同一好友的数据更新的时间差那么几秒是可以容忍的,因此,关系型数据库的最大特点在这里已经无用武之地,起码不是那么重要了。
相反的,关系型数据库为了维护一致性所付出的巨大代价就是其读写性能比较差,而像微博,facebook这类SNS的应用,对并发读写能力要求极高,关系型数据库已经无法应付(在读方面,传统上为了克服关系型数据库缺陷,提高性能,都是增加一级memcache来静态化网页,而在SNS中,变化太快,memcache已经无能为力),因此,必须用新的一种数据结构化存储来来代替关系数据库。
关系数据库的另一个特点就是其具有固定的表结构,因此,其扩展性极差,而在SNS中,系统的升级,功能的增加,往往意味着数据结构巨大改动,这一点关系型数据库也难以应付,需要新的结构化数据存储。
于是,非关系数据库(NoSQL)应运而生,由于不可能用一种数据结构化存储方式应付所有的新的需求,因此,非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。
必须强调的是,数据的持久存储,尤其是海量数据的持久存储,还是需要关系数据库这员老将。
NoSql首先它不仅仅是一个SQL,它并不是说排斥SQL。另外,我觉得NoSQL有几个核心点或者说核心概念,它是一个可扩展的系统,我们要求系统的扩展性非常高。另外一点是它的架构,它是一个自由架构的结构,它不像关系模型一定要把架构制定得非常严格,这是我的理解。第三点是它基于大量PC结构来支持,因为现在PC很便宜,单机性能很高,它能够通过机柜堆叠来扩展以达到比一个小型机更高的性能。我理解NoSQL是一个过程,或者说,NoSQL对我们来说是对现有架构的补充,并不是说它一定要把谁干掉。
依据结构化方法以及应用场合的不同,主要分为以下几类:
面向高性能并发读写的Key-Value数据库:Key-Value数据库的主要特点就是具有极高的并发读写性能,Redis,Tokyo Cabinet,Flare就是这类的代表。
面向海量数据访问的面向文档数据库(Document store):这类数据库的特点是,可以在海量的数据中快速的查询数据。典型代表为MongoDB以及CouchDB。
面向可扩展性的分布式数据库(Object Store):这类数据库想解决的问题就是传统数据库在可扩展性上的缺陷,这类数据库可以适应数据量的增加以及数据结构的变化,Google Appengine的Big Table就是这类的典型代表,并且,BigTable特别适用于Map Reduce处理。
相关推荐
NoSQL数据库,全称为"Not Only SQL",是近年来在应对Web2.0网站及大规模、高并发场景下兴起的一种非关系型数据库。随着互联网的发展,传统的关系型数据库在处理特定需求时表现出局限性,促使了NoSQL数据库的诞生。...
"NoSQL学习笔记" 在这个学习笔记中,我们将探讨NoSQL技术的优劣,并对常用的NoSQL技术进行对比和深入分析,同时也会涉及到Memcached数据缓冲技术。 首先,让我们来了解为什么我们需要使用非关系数据库。随着互联网...
山东大学 NoSQL 期末笔记 NoSQL 数据库是一种分布式数据库,具有高可用性和高扩展性的特点。本文总结了 NoSQL 数据库的核心思想、数据一致性、CAP 定理、BASE 理论、eBay 模式、NWR、两阶段提交协议、时间戳、向量...
Notes-App-NoSQL(英文) 使用NoSQL数据库(MongoDB)的笔记应用程序使用express作为节点的框架,我真的很想在heroku上托管它,但事实证明,您不能再通过mlab来免费使用它。.2020年11月之后,您必须按顺序付款使用...
在NoSQL的学习笔记中,我们首先接触到的是CAP理论,它是NoSQL数据库设计的基础。CAP理论指出,在分布式系统中,无法同时保证一致性(Consistency)、可用性(Availability)和分区容忍性(Partition Tolerance)。...
【 NosQL 数据库详解】 NosQL(Not Only SQL)是一种非关系型数据库,它与传统的关系型数据库不同,强调水平扩展、高并发处理和大数据存储。在 NosQL 期末复习中,我们需要掌握的关键知识点包括数据库的类型、特性...
【NOSql数据库笔记】 NOSQL,全称为Not Only SQL,意为“不仅仅是SQL”,是一种非关系型的数据库系统,旨在处理大规模数据分布式、集群环境下的存储和访问。NOSQL数据库通常以键值对、列存储、文档存储、图形数据库...
### NoSQL数据库之Redis知识点详解 #### 一、NoSQL数据库概述 - **NoSQL**:Not Only SQL,指的是非关系型数据库。这类数据库的设计旨在处理海量数据,并且支持高并发访问,通常用于大规模分布式存储环境中。 - *...
### 《大数据挑战-NoSQL数据库技术》读书笔记 #### 一、概论 NoSQL数据库是一种新型数据库管理系统,它区别于传统的关系型数据库,具备非关系型、分布式、不具备传统意义上的ACID特性的三大特点。 - **非关系型**...
NoSQL数据库之Redis数据库笔记是兄弟连NoSQL视频教程 redis讲的课程所做的笔记,里面很全面的讲述了Redis的完整使用和说明,很详细
《大数据挑战与NoSQL数据库技术》共分为三部分。理论篇重点介绍大数据时代下数据处理的基本理论及相关处理技术,并引入NoSQL数据库;系统篇主要介绍了各种类型NoSQL数据库的基本知识;应用篇对国内外几家知名公司在...
读书笔记:nosql数据库入门与实践代码
**Neo4j笔记_nosql_neo4j_** 在当今大数据时代,关系型数据库(RDBMS)已经无法满足所有需求,特别是在处理复杂网络数据和高并发读写场景时。这时,非关系型数据库(NoSQL)应运而生,其中一种非常流行的图数据库...
提供的资料“资料.txt”可能包含了视频教程的链接、笔记或相关阅读材料。在学习过程中,这份资料将作为重要的辅助工具,帮助您更好地理解和掌握课程内容。请确保下载并妥善保存这些资源,以便随时查阅和复习。 总的...
【Redis完整版笔记】深入解析Redis作为NoSQL数据库的关键特性 Redis是一款高性能的Key-Value内存数据库,广泛应用于缓存、消息队列、计数器等多个场景。在NoSQL数据库的大潮中,Redis以其出色的速度和灵活性...
4. **数据库接口**:在小程序中,通常采用NoSQL数据库如MongoDB或者云数据库Tencent Cloud Database(TCDB)来存储笔记数据。源码中的接口设计和调用,展示了如何通过HTTP请求与数据库进行交互,实现数据的存取。 5...
在数据库管理方面,笔记可能涉及SQL语言、关系型数据库如MySQL和Oracle的管理、事务处理、性能优化以及NoSQL数据库的介绍。 网络技术部分可能包括TCP/IP协议栈、HTTP协议、网络安全、网络编程接口(如套接字)等...
同时,笔记还探讨了为什么要使用NoSQL数据库,以及NoSQL数据库的特点。 Redis入门部分介绍了Redis五大基本数据类型:String(字符串)、List(列表)、Set(集合)、Hash(哈希)、Zset(有序集合),以及三种特殊...
读书笔记:【Java学习+面试学习库】更新Mysql,NoSql,Java,消息队列微服务等知识