`

什么是NoSql及简单介绍

阅读更多

一,什么是NoSQL

NoSQL,泛指非关系型的数据库。

NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,是一项全新的数据库革命性运动

 

二,NoSQL作用

NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。

 

三,NoSQL数据库的四大分类

(1)键值(Key-Value)存储数据库
这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。Key/value模型对于IT系统来说的优势在于简单、易部署。但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。[3]  举例如:Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB.
(2)列存储数据库。
这部分数据库通常是用来应对分布式存储的海量数据。键仍然存在,但是它们的特点是指向了多个列。这些列是由列家族来安排的。如:Cassandra, HBase, Riak.
(3)文档型数据库
文档型数据库的灵感是来自于Lotus Notes办公软件的,而且它同第一种键值存储相类似。该类型的数据模型是版本化的文档,半结构化的文档以特定的格式存储,比如JSON。文档型数据库可 以看作是键值数据库的升级版,允许之间嵌套键值。而且文档型数据库比键值数据库的查询效率更高。如:CouchDB, MongoDb. 国内也有文档型数据库SequoiaDB,已经开源。
(4)图形(Graph)数据库
图形结构的数据库同其他行列以及刚性结构的SQL数据库不同,它是使用灵活的图形模型,并且能够扩展到多个服务器上。NoSQL数据库没有标准的查询语言(SQL),因此进行数据库查询需要制定数据模型。许多NoSQL数据库都有REST式的数据接口或者查询API。[2]  如:Neo4J, InfoGrid, Infinite Graph.
因此,我们总结NoSQL数据库在以下的这几种情况下比较适用:1、数据模型比较简单;2、需要灵活性更强的IT系统;3、对数据库性能要求较高;4、不需要高度的数据一致性;5、对于给定key,比较容易映射复杂值的环境。
 
四,NoSQL数据库的四大分类表格分析

 
 五,共同特征
对于NoSQL并没有一个明确的范围和定义,但是他们都普遍存在下面一些共同特征:
  1. 不需要预定义模式:不需要事先定义数据模式,预定义表结构。数据中的每条记录都可能有不同的属性和格式。当插入数据时,并不需要预先定义它们的模式。
  2. 无共享架构:相对于将所有数据存储的存储区域网络中的全共享架构。NoSQL往往将数据划分后存储在各个本地服务器上。因为从本地磁盘读取数据的性能往往好于通过网络传输读取数据的性能,从而提高了系统的性能。
  3. 弹性可扩展:可以在系统运行的时候,动态增加或者删除结点。不需要停机维护,数据可以自动迁移。
  4. 分区:相对于将数据存放于同一个节点,NoSQL数据库需要将数据进行分区,将记录分散在多个节点上面。并且通常分区的同时还要做复制。这样既提高了并行性能,又能保证没有单点失效的问题。
  5. 异步复制:和RAID存储系统不同的是,NoSQL中的复制,往往是基于日志的异步复制。这样,数据就可以尽快地写入一个节点,而不会被网络传输引起迟延。缺点是并不总是能保证一致性,这样的方式在出现故障的时候,可能会丢失少量的数据。
  6. BASE:相对于事务严格的ACID特性,NoSQL数据库保证的是BASE特性。BASE是最终一致性和软事务。
NoSQL数据库并没有一个统一的架构,两种NoSQL数据库之间的不同,甚至远远超过两种关系型数据库的不同。可以说,NoSQL各有所长,成功的NoSQL必然特别适用于某些场合或者某些应用,在这些场合中会远远胜过关系型数据库和其他的NoSQL。
 
六,适用场景
NoSQL数据库在以下的这几种情况下比较适用:1、数据模型比较简单;2、需要灵活性更强的IT系统;3、对数据库性能要求较高;4、不需要高度的数据一致性;5、对于给定key,比较容易映射复杂值的环境。
 
七,NoSQL的优点/缺点

优点:

  • - 高可扩展性
  • - 分布式计算
  • - 低成本
  • - 架构的灵活性,半结构化数据
  • - 没有复杂的关系

缺点:

  • - 没有标准化
  • - 有限的查询功能(到目前为止)
  • - 最终一致是不直观的程序
分享到:
评论

相关推荐

    NoSQL入门介绍

    1、NoSQL技术介绍 1.1、NoSQL是什么 1.2、NoSQL为什么会存在 1.3、NoSQL产品分类 1.4、NoSQL技术的特点 1.5、NoSQL技术的不足 1.6、NoSQL的适用场景 2、一些概念 2.1、CAP 2.2、ACID 2.2、BASE 3、常见NoSQL介绍 ...

    NoSQL事例与介绍

    《NoSQL事例与介绍:MongoDB实践指南》 在当今的信息化社会,数据库系统扮演着至关重要的角色。传统的SQL(结构化查询语言)数据库在处理大量数据和高并发访问时,逐渐显露出其局限性。为了解决这些问题,NoSQL(非...

    NoSQL英文介绍文档

    1. 键值对存储:键值对存储是最简单的NoSQL类型,如Redis和Memcached。这种存储模式由键和对应的值组成,键是唯一的,值可以是任何数据类型。键值对存储适用于缓存、快速查找和高并发场景。 2. 列族存储:列族...

    NoSQL介绍、比较详细介绍NoSQL

    ### NoSQL介绍与比较 #### 一、NoSQL概述 NoSQL(Not Only SQL)泛指非关系型数据库,旨在解决传统关系型数据库在处理Web2.0网站,尤其是超大规模和高并发SNS类型纯动态网站时所面临的挑战。随着互联网技术的发展...

    NoSQL 入门.ppt

    1、NoSQL技术介绍 1.1、NoSQL是什么 1.2、NoSQL为什么会存在 1.3、NoSQL产品分类 1.4、NoSQL技术的特点 1.5、NoSQL技术的不足 1.6、NoSQL的适用场景 2、一些概念 2.1、CAP 2.2、ACID 2.2、BASE 3、常见NoSQL介绍 3.1...

    nosql数据库简介.pptx

    1. 键值存储数据库:如Redis和Oracle BDB,适用于内容缓存和高访问负载的日志系统,具有快速查找速度和简单的数据模型。 2. 列存储数据库:如HBase、Riak和Cassandra,适合分布式文件系统和海量数据存储,具备优秀...

    NOSQL数据库入门

    NOSQL的简单介绍和使用 NOSQL数据库入门

    NoSQL数据库技术与应用.pptx

    键值存储是NoSQL数据库中最简单的一种,以键值对的形式存储数据。其中,键是唯一标识符,而值则可以是任意类型的数据。图形数据库是一种基于图结构的NoSQL数据库,适用于处理复杂的关系型数据。文档数据库是一种基于...

    NoSQL与Python学习

    NoSQL数据库具有高度的可扩展性、灵活的数据模型以及简单的水平扩展能力,特别适用于大规模数据存储和高并发读写操作的场景。常见NoSQL数据库包括MongoDB、Cassandra、Redis、CouchDB等。 二、环境信息准备 文档中...

    NoSQL权威指南

    - **NoSQL是什么以及为什么需要它**: - **NoSQL的特性**:包括但不限于模式灵活、易于扩展、高性能等。 - **应用场景**:例如社交网络、物联网、实时分析等场景下表现优异。 - **初次接触NoSQL**: - **安装与...

    nosql专业版(英文版)

    1. **NoSQL概述**:介绍NoSQL的起源、发展和其与关系型数据库的区别。NoSQL应运而生,为了解决传统RDBMS在处理大规模数据、高并发和分布式环境下的局限性。 2. **NoSQL类型**:NoSQL数据库分为多种类型,包括键值...

    NoSQL精粹 中文完整版.pdf

    下面将基于这一推测,详细介绍NoSQL数据库的相关知识点。 ### NoSQL简介 NoSQL(Not Only SQL)是一种非关系型数据库管理系统,其设计目的是为了处理大数据量,提供灵活的数据模型,并实现高可用性和可扩展性。与...

    NoSQL数据库之Redis数据库管理视频教程

    ### NoSQL数据库之Redis数据库管理视频教程 ...通过以上介绍,我们可以看到NoSQL数据库如Redis在特定场景下具有非常明显的优势。了解其特点及应用场景可以帮助开发者更好地选择合适的数据库解决方案。

    NoSQL Manager for MongoDB

    下面将详细介绍这款工具的功能、优势以及其在实际应用中的使用场景。 首先,作为一款可视化工具,"NoSQL Manager for MongoDB"提供了友好的图形用户界面(GUI),使得非编程背景的用户也能轻松上手。它支持多种操作...

    [NOSQL] Cassandra 数据库系统简单介绍.doc

    2. **真正的可扩展性**:可以通过简单地添加新节点来扩展集群,无需停机或数据迁移。 3. **多数据中心支持**:支持跨多个地理位置的部署,确保数据的冗余和容灾能力。 4. **范围查询**:允许按键的范围进行查询,...

Global site tag (gtag.js) - Google Analytics