2-NoSQL(非关系型数据库)-入门概述

1、NoSQL是什么?

         NoSQLNot only SQL,不仅仅是数据库),泛指非关系型数据库数据库,其数据存储不需要固定的模式,无需多余操作就可以横向扩展。

f8a344e92061ef39ce07c26a7cd4419f041.jpg

2、传统的RDBMS VS NOSQL

83a1cec130be7541cf8b048fa557d70109f.jpg    8d272f08bb8349d841469975db0965982fd.jpg

3、传统的非关系型数据库:RedisMemcacheMongoDB

  • MongoDB是最像关系型数据库的一种非关系型数据库
  • 若只想干一件事,比如只干“高速缓存”,就采用Memcache
  • 但若想一招多能,数据类型丰富,采用Redis,Redis主要用于:KV+Cache+Persistence+……

 

4、当下NOSQL的经典应用  【应该将SQLNOSQL一起使用】

问:阿里巴巴中文站商品信息如何存放?【以女装/女包包为例】

f65df3275316220031c1a931ade9234729c.jpg           314a1986980a4f8c4431996b243267ca2d2.jpge0d5618546188ee00985625f320521d9f9c.jpg                     1bfad8b00349d07d364cd4409eeef86e7ba.jpg

8afba9cf59a03c71237addf731dfcbee27f.jpg                 db66112fe3c355caafb1aa1fc1e58409689.jpg

 

5NOSQL数据模型简介   

问题:以一个电商客户、订单、订购、地址模型来对比下关系型数据库和非关系型数据库?

1)关系型数据库:用户表、订单表、地址表、订单类别、支付、商品   【ER图(1:1、1:N、N:N,主外键等常见)】

6a6500d5298e882c92bd0154583d82bce43.jpg【ER图】

2)非关系型数据库(NOSQL):需要用BSON(类似于Json的存储格式)画出构建的数据模型

非关系型数据库中:customer>orders>orderPayment

30e5748d018588fa05deb9343907eba5b05.jpg

ea5244cfa6fa670edd38bba72179cc72501.jpg

3)总结:NOSQL数据库模型===>聚合模型:包括KV键值、Bson、列族、图形

①KV键值对(典型:新浪(BerkeleyDB+redis);美团(redis+tair);阿里、百度(memcache+redis))

②文档型数据库(bson格式(类似于json串的数据表达和描述)比较多,一般采用MongoDB)

③列存储数据库(按列存储数据,特点:方便存储结构化和半结构化数据、数据压缩,对针对某一列或者某几列的查询有非常大的IO优势。)

④图关系数据库(一般都是存放关系:比如朋友圈社交网络、推荐系统等)eb786a60eb78e83e5afef5abf772c8cce90.jpg

四者比较:fddf19ef9930107f7060920f456406c11f8.jpg

 

6、在分布式数据库中CAP原理CAP+BASE

1)传统的关系型数据库需要具备ACID 【注:ACID必须要全部具备】

原子性(A-Atomicity):整个事务中的所有操作,要么全部完成,要么全部不完成。

一致性(C-Consistency):在事务开始之前和事务结束以后,数据库的完整性约束没有被破坏。

独立性(I-Isolation):有两个事务在相同的时间内执行相同的功能,隔离性将确保每一事务在系统中认为只有该事务在使用系统。【串行化】

持久性(D-Durability):在事务完成以后,该事务所对数据库所作的更改便持久的保存在数据库之中,并不会被回滚。

2NOSQL非关系数据库需要具备CAP

CConsistency一致性):所有的节点上的数据时刻保持同步

AAvailability可用性):每个请求都能接受到一个响应,无论响应成功或失败

PPartition tolerance分区容错):系统应该能持续提供服务,即使系统内部有消息丢失(分区)  【必须实现!】

3CAP只能32

c9a7b005bf80caf96b1b704b5bf52ced420.jpg     

一般的使用:f12914433a04101bee408b3266262b63ba9.jpg

4BASE为了解决关系数据库强一致性引起的问题而引起的可用性降低而提出的解决方案。

BASE=Basically Available (基本可用)+Soft state(软状态)+Eventually consistent(最终一致)   【即:相当于牺牲C,完成AP】

5)分布式+集群简介

①分布式:不同的多台服务器上面部署不同的服务模块(工程),他们之间通过Rpc/Rmi之间通信和调用,对外提供服务和组内协作。

②集群:不同的多台服务器上面部署相同的服务模块,通过分布式调度软件进行统一的调度,对外提供服务和访问。

                   【集群=人多力量大】

③分布式系统:(distributed system):由多台计算机和通信的软件组件通过计算机网络连接(本地网络或广域网)组成。分布式系统是建立在网络之上的软件系统。正式软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。分布式系统可以应用在不同的平台上,如:PC、工作站、局域网和广域网等。

转载于:https://my.oschina.net/pansy0425/blog/3073618

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值