zoukankan      html  css  js  c++  java
  • NoSQL概述

    一、概述

    NoSQL(Not Only SQL),"不仅仅是SQL", 泛指非关系型的数据库;

    1)特点

    ① 易扩展;

    ② 在大数据量下,NoSQL 数据库具有非常高的读写性能;

    ③ 多样灵活的数据模型;

    2)RDBMS(关系型数据库) 和 NoSQL 比较

    - RDBMS

    1. 高度组织化结构化数据;
    2. 结构化查询语言(SQL);
    3. 数据和关系都存储在单独的表中;
    4. 数据操作语言,数据定义语言;
    5. 严格的一致性;
    6. 基础事务;

    - NoSQL

    1. 没有声明性查询语言;
    2. 没有预定义的模式;
    3. 键值对存储,列存储,文档存储,图形数据库;
    4. 最终一致型,而非ACID属性;
    5. 非结构化和不可预知的数据;
    6. CAP 定理;
    7. 高性能,高可用性和可伸缩性;

    3、3V + 3高

    - 大数据时代的3V(主要是描述问题的)
      1.海量(Volume)
      2.多样(Variety)
      3.实时(Velocity)
    - 互联网需求的3高(主要是对程序的要求)   1.高并发   2.高可扩   3.高性能

    二、NoSQL的四大分类

    1)键值(Key-Value)存储数据库

    这一类数据库主要会使用到一个哈希表,这个表中有一个特定的键和一个指针指向特定的数据。
    Key/value模型对于IT系统来说的优势在于简单、易部署。
    但是如果DBA只对部分值进行查询或更新的时候,Key/value就显得效率低下了。

    如: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。

    如:Neo4J, InfoGrid, Infinite Graph.

    分类Examples举例典型应用场景数据模型优点缺点
    键值(key-value) Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB 内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。 Key 指向 Value 的键值对,通常用hash table来实现 查找速度快 数据无结构化,通常只被当作字符串或者二进制数据
    列存储数据库 Cassandra, HBase, Riak 分布式的文件系统 以列簇式存储,将同一列数据存在一起 查找速度快,可扩展性强,更容易进行分布式扩展 功能相对局限
    文档型数据库 CouchDB, MongoDb Web应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容) Key-Value对应的键值对,Value为结构化数据 数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构 查询性能不高,而且缺乏统一的查询语法。
    图形(Graph)数据库 Neo4J, InfoGrid, Infinite Graph 社交网络,推荐系统等。专注于构建关系图谱 图结构 利用图结构相关算法。比如最短路径寻址,N度关系查找等 很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案。
  • 相关阅读:
    vs2008 服务器控件库
    dropdoenlist 设置默认值
    .NET用HttpFileCollection实现多文件上传
    dropdownlist 绑定
    简单的webservice调用(天气预报)
    统计在线人数
    多文件上传
    dropdownlist1 绑定 value值
    WMI 脚本入门:第一部分 (MSDN)
    WMI 脚本入门:第三部分 (MSDN)
  • 原文地址:https://www.cnblogs.com/Dm920/p/12861300.html
Copyright © 2011-2022 走看看