数据库技术汇总

数据库技术的分类,大的方向上可以分为关系型数据库和非关系型数据库:


数据库技术汇总_第1张图片

1. CAP定理

CAP定理指出对一个分布式计算系统来说,不可能同时满足一下三点:

  • 一致性(Consistency), 所有的节点在同一时间具有相同的数据;
  • 可用性(Availability),保证每个请求不管成功失败,都有响应;
  • 分区容错性(Partition Tolerance), 系统中任意信息的丢失或失败不会影响系统的继续运行;
数据库技术汇总_第2张图片

举个例子来描述一下,当存在A和B两个存储节点;当一个client尝试往A节点写入一条数据的时候,A会把这条记录也同步到B,这样的话令一个client就可以从B里面去读取这条记录了;当A和B之间的同步出现了问题,比如说连接段快了,那么A的记录很有可能没法儿同步到B,这个时候就出现了分区,另一个client要从B读取这条信息的时候,你有两个选择

  • 系统允许读取,但返回的数据可能不是最新的,也就是牺牲了一致性,保证可用性;
  • 系统停止服务,不允许读取,直到A和B节点的状态都同步了。牺牲了可用性,保障了一致性;

据此,可以将数据库分成三大类,

  • 满足CA - 单点集群,满足一致性可用性,比如说关系型数据库;
  • 满足CP - 满足一致性和分区容忍性,比如说MongoDB和Redis;
  • 满足AP - 这种系统对一致性的要求低一点

2. ACID原则

关系型数据库(RDBMS)必须遵循这个原则

  1. A(Atomicity)原子性
    事物的所有操作都是原子性的,要么全部完成,要么全部都不做;
  2. C(Consistency)一致性
    数据库要一直处于一致的状态
  3. I(Isolation)独立性
    并发的事物(Transaction)不会互相影响
  4. D(Durability)持久性
    一旦事务提交以后,它所做的修改将会永远保存在数据库上。宕机不丢失数据。

3. BASE原则

BASE是NoSQL数据库对可用性以及一致性的弱要求原则,也就是说分区容忍性是必须的。

  • Basically Availability - 基本可用
  • Soft state - 软状态/柔性事物
  • Eventually Consistency - 最终一致性

4. SQL和NOSQL

SQL NoSQL
通常称之为关系型数据库(RDBMS) 是Not Only SQL的缩写,通常也叫做非关系型数据库或者分布式数据库
基于表格的数据库,数据存储成一个n行的表格 可以是基于文档,基于键值对,或者是基于图的数据结构
需要预先定义schema 可以针对不同非结构化的数据有动态的schema
可以纵向扩展,只能通过增加硬件能力来增加容量 可以横向扩展,可以通过增加资源池里的数据库服务器来降低负载
采用SQL(结构化的查询语言)来进行数据的操作 不同的数据库有不同的查询格式
适合复杂查询 复杂查询比较困难
不适合分层数据保存 适合分层数据,非常适合大数据集

5, 不同的数据库技术

  • Mongo - 文档存储,JASN格式文档存储;
  • Redis - 键值对存储
  • MySQL - 表格存储
数据库产品 类型 简介
Mongo 文档存储,NoSQL 使用JSON类型的数据结构,存储内容是文档型;多线程的软件架构,一个连接一个线程
Redis 键值存储,NoSQL 使用key-value的方式存储,支持String,set,hash,list等类型;单进程单线程线程的软件架构,只支持单核,支持高并发
MySQL 表格存储,SQL 常用的SQL数据库

你可能感兴趣的:(数据库技术汇总)