关系型数据库和非关系型数据库简单对比|关系型数据库和非关系型数据库简单对比 2020-04-13

关系型数据库的“关系”体现在哪里? 【关系型数据库和非关系型数据库简单对比|关系型数据库和非关系型数据库简单对比 2020-04-13】数据之间存在关联是关系型数据库得名的主要原因,数据间的关联怎么体现呢?用JOIN,中文就是连接,数据连接。数据与数据之间可以JOIN,实现了数据关联
那么对应的局限就有,为了实现“关系”,进行数据的JOIN,关系型数据库需要把数据存储在同一个服务器内(集中),不可分布式存储
关系型数据库遵循ACID规则 事务在英文中是transaction,类似现实世界发生的商业交易,有如下四个特性:

  • 1、A (Atomicity) 原子性
    原子性就是说事务里的所有操作要么全部做完,要么都不做。只要事务有一个操作失败,整个事务就失败,需要回滚。
    比如银行转账,从A账户转100元至B账户,需要分为两个步骤:1)从A账户取100元;2)存入100元至B账户。这两步要么一起完成,要么啥都不做,如果只完成第一步,第二步失败,钱会莫名其妙少了100元。
  • 2、C (Consistency) 一致性
    一致性就是说数据间的约束关系要一直保持一致,事务不能改变数据库原本的一致性约束,否则事务失败。
    例如现有完整性约束a+b=10,如果一个事务改变了a,那么必须得改变b,使得事务结束后依然满足a+b=10,否则事务失败。
  • 3、I (Isolation) 隔离性
    指并发的事务与事务之间存在一定的隔离性,使得A事务的操作不影响B事务的操作。不同的隔离级别对应不同强度的隔离性,读未提交-读提交-可重复读-串行化这4个级别隔离性递增
  • 4、D (Durability) 持久性
    持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上(即存在硬盘),即使突然断电、宕机也不会丢失
NoSql(not only Sql)泛指非关系型的数据库 NoSql数据库用来解决【大数据应用难题】,以及对事务要求不高的操作,即不要求强原子性、强一致性、强隔离性和强持久性(例如社交网络中的用户数据相关操作)。常见的数据存储形式有:
Key-Value Stores, Column Stores, Document Stores and Graph Stores
常见的几个NoSql数据库 MongoDB
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的
相比于关系型数据库对数据进行行存储,MongoDB对数据进行【列存储】,是一个基于【分布式文件】存储的数据库
Redis
基于内存且可持久化(数据存硬盘),对数据进行【Key-Value存储】
数据从内存到硬盘需要序列化,从硬盘到内存需要“反序列化”
序列化就是指把对象转换为字节序列的过程
反序列化就是指把字节序列恢复为对象的过程
序列化和反序列化核心作用就是对象状态的保存和重建
memcached
基于内存,但不可持久化(数据不能存硬盘,只能活在内存中),对数据进行【Key-Value存储】。由于memcached把数据都保存在内存中,当memcached由于故障等原因停止的时候,所有的数据都会丢失,用它来处理那些重要数据是非常危险的

    推荐阅读