NoSql 简介

1、概述

NoSql=Not only sql 意思是不仅仅是sql泛指非关系型数据库,nosql无需当时为要存储的数据建设字段,随时能够存储自定义的数据格式,而在关系数据库里,增删字段是一件十分麻烦的事件,如果是十分大数据量的表,减少字段就很麻烦。

2、Nosql与关系型数据库(RDBMS)的区别

NOSQLRDBMS
代表着不仅仅是sql高度组织化结构化的数据
没有申明性查询语言结构化查询语言sql
没有预约义的模式数据和关系都存储在独自的表中
键值对存储,列存储,文档存储,图形化数据库数据操纵语言没数据定义语言dml ddl
最终一致性,而非acid属性严格的一致性
非结构化和不可预知的数据根底事务
cap定理(Consistency(一致性), 数据统一更新,所有数据变动都是同步的Availability(可用性), 好的响应性能Partition tolerance(分区容忍性) 可靠性)
高性能,高可用性和可伸缩性

3、NoSql 个性

3V+3高 海量Volume多样Variety实时Velocity 高并发 高可扩 高性能

4、当下nosql的经典利用(nosql和sql一起应用)

nosql数据模型简介

  • 商品根本信息(名称,价格,出产日期,生产产商等)关系型数据库
  • 商品形容,详情,评估信息(多文字类)文档数据库mongDB
  • 商品图片 商品图片展示类 分布式的文件系统中(淘宝本人的tfs google的gfs hadoop的hdfs)
  • 商品的关键字(搜索引擎 ISearch)
  • 商品的波段性的热点高频信息(内存数据库:tair redis memcached)

5、NoSql数据模型

以一个电商客户、订单、订购、地址模型来比照下关系型数据库和菲关系型数据库

  • 传统形式 1:1 1:N N:N 主外键
  • nosql json
{ "customer":{   "id":1136,   "name":"Z3",   "billingAddress":[{"city":"beijing"}],   "orders":[    {      "id":17,      "customerId":1136,      "orderItems":[{"productId":27,"price":77.5,"productName":"thinking in java"}],      "shippingAddress":[{"city":"beijing"}]      "orderPayment":[{"ccinfo":"111-222-333","txnid":"asdfadcd334","billingAddress":{"city":"beijing"}}],      }    ]  }}

6、nosql数据库四大分类

  1. KV键值:新浪(berkeley+redis)美团(redis+tair)阿里,百度(memcached+redis)
  2. 文档型(bson格局较多):CouchDB,MongDB(是一个基于分布式文件存储的数据库,由c++语言编写,旨在为web利用提供可扩大的高性能数据存储解决方案,其介于关系数据库和非关系数据库之间,是非关系数据库当中性能最丰盛的,最像关系数据库的)
  3. 列存储数据库:Cassandra,Hbase,分布式文件系统
  4. 图关系数据库(它不是放图形的,放的是关系比方:朋友圈社交网网络,广告举荐):Neo4j.InfoGird