关系型数据库和非关系型数据库(NOSQL)

关系型数据库和非关系型数据库(NOSQL)

简介

关系型数据库,可以用 SQL 语句查询,数据表比较复杂。

NOSQL(Not Only SQL)允许部分数据使用SQL系统存储,而其他数据允许使用NOSQL系统存储。其数据存储可以不需要固定的表格模式以及中介数据(metadata),也经常会避免使用SQL的JOIN操作,通常以键值对或者文档的形式存储,数据之间不具有耦合性,一般有水平可扩展性的特征。

分类

NOSQL: MongoDB, CouchDB, RethinkDB, DynameDB

SQL: MySQL, Oracle, PostgrSQL, MariaDB, MS SQL

关系型数据库

关系型数据库遵循 ACID 规则:

A(Atomicity) 原子性:transaction 里的操作要么不执行,要么全部执行完。

C(Consistency) 一致性:数据库中的数据要遵循一致性约束,transaction 的运行不会改变一致性约束,比如不能改变表格列的名称、数据类型等。

I(Isolation)独立性:transaction 之间不会相互影响,只有一个 transaction 执行完毕,才会最终产生影响。

D(Durability) 持久性:一旦 transaction 提交之后,所做的修改会永久存储在数据库里,即使宕机也不会有影响。

非关系型数据库

CAP 理论:一个分布式系统不能够同时满足一致性(Consistency可用性(Availability分区容错性(Partition tolerance),最多只能同时较好的满足两个。

img

BASE(Basic Available, Soft-state, Eventually Consistent):是 NOSQL 数据库通常对可用性和一致性的弱要求原则:

  • Basic Available:基本可用。
  • Soft-state:软状态/柔性事务,'soft sate' 可以理解为无连接的,'hard state'理解为面向连接的。
  • Eventually Consistent:最终一致性(也是 ACID 的最终目的)
原文地址:https://www.cnblogs.com/leafs99/p/sql_and_nosql.html