NoSql数据模型简介

温馨提示:本文更多的是个人学习时的一些笔记,仅供大家粗略阅读即可,有一部分亮点和常用地方会在后期回顾时,做相应标记,不建议大家直接用于学习效果可能不是很好,相关视频可直接扫下方二维码进行联系。

一、NoSql数据模型简介

1.1 传统模型

E-R图:一对多,多对一,多对多

1.2 Nosql设计

  1. BSON - 是一种类json的一种二进制形式的存储格式,简称 Binary JSON,和JSON一样支持内嵌的文档对象和数组。

  2. Nosql - 聚合模型

  3. 分布式事务是支持不了太多的并发的

1.3 聚合模型 - 数据类型

  1. 键值对
  2. BSON
  3. 列族 - 按列存储数据的,最大的特点是方便存储结构化半结构化数据,方便数据压缩,针对某一列或几列查询有非常大的IO有事。
  4. 图形

二、数据库的四大分类

2.1 KV键值:典型介绍

  1. 新浪: BerkeleyDB+redis
  2. 美团:redis+tair
  3. 阿里、百度:memcache+redis

2.2 文档型数据库(BSON格式比较多):典型介绍

  1. CouchDB
  2. MongDB
    是一个机遇分布式文件存储的数据库。有C++语言编写,为WEB应用提供可扩展的高性能数据存储解决方案。介于关系数据库和非关系数据库之间的产品,是非关系数据库中功能最丰富最像关系数据库的。

2.3 列存储数据库

Cassandra,HBase
分布式文件系统

2.4 图关系数据库

不是放图形的,放的是关系(如:朋友圈社交网络、广告推荐系统)
专注构建关系图谱
Neo4J,InfoGrid

2.5 四者对比

这里写图片描述

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

3.1 传统的ACID

  1. A(Atomicity)原子性
  2. C(Consistency)一致性
  3. I(Isolation)独立性
  4. D(Durability)持久性

3.2 CAP

  1. C:Consistency(强一致性)

  2. A:Availability(可用性)

  3. P:Partition tolerance(分区容错性)

  4. 核心理论:
    一个分布式系统不可能同时很好地满足一致性,可用性和分区容错性,最多只能同时较好的满足两个。分区容忍性是我们必须实现的,所以只能下载一致性和可用性之间权衡。

3.3 CAP的3进2

  1. 大部分网站:弱一致性 + 分布式容忍性
  2. 事务一致性
  3. 任何大量数据量的web系统,都非常忌讳多个达标关联查询。特别是SNS类型的网站,从需求及产品设计角度,避免产生。往往更多的只是单表查询,及单表的简单条件分页查询,sql功能被极大地弱化。

3.4 BASE

  1. 解决关系数据库强一致性引起的问题而引起的可用性性能而提出的解决方案。
  2. 基本可用(Basically Available)、如软状态(Soft state)、最终一致性(Eventually consistent)
  3. 他的思想是通过让系统放松对某一时刻数据一致性的要求换取系统整体伸缩性和性能上的改观。

3.5 分布式 + 集群简介

3.51 负载均衡

3.52 分布式系统(distributed system)

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

简单来讲:
1. 分布式: 不同的多服务器上部署不同的服务模块(工程),他们之间通过Rpc/Rmi之间通信和调用,对外不提供服务和组内协作.
2. 集群: 不同的多条服务器上部署相同服务模块,同构分布式调度软件进行统一调度,对外提供服务和访问。

猜你喜欢

转载自blog.csdn.net/java_18945106612/article/details/80969198