NoSql 简介
1、概述
NoSql=Not only sql 意思是不仅仅是sql泛指非关系型数据库,nosql无需当时为要存储的数据建设字段,随时能够存储自定义的数据格式,而在关系数据库里,增删字段是一件十分麻烦的事件,如果是十分大数据量的表,减少字段就很麻烦。
2、Nosql与关系型数据库(RDBMS)的区别
NOSQL | RDBMS |
---|---|
代表着不仅仅是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数据库四大分类
- KV键值:新浪(berkeley+redis)美团(redis+tair)阿里,百度(memcached+redis)
- 文档型(bson格局较多):CouchDB,MongDB(是一个基于分布式文件存储的数据库,由c++语言编写,旨在为web利用提供可扩大的高性能数据存储解决方案,其介于关系数据库和非关系数据库之间,是非关系数据库当中性能最丰盛的,最像关系数据库的)
- 列存储数据库:Cassandra,Hbase,分布式文件系统
- 图关系数据库(它不是放图形的,放的是关系比方:朋友圈社交网网络,广告举荐):Neo4j.InfoGird