zoukankan      html  css  js  c++  java
  • 数据库ACID,SQL和NoSQL

    数据库中的事务(transaction)有ACID4个基本特性,可以类比交易:

    1,A(Atomicity)原子性

    事务里的事情要么全部做完,要么执行过程中失败,此时回滚。

    2,C(Consistency)一致性

    数据库要处于一致的状态。

    例如:现有完整性约束 A+B=10,若一个事务改变了A,那么B也得必须改变

    3,I(Isolation)独立性

    并发的事务之间不会相互影响。

    如果一个事务要访问的数据正在被另一个事务修改,只要另一个事务未提交,它所访问的数据就不受未提交数据的影响。

    4,D(Durability)持久性

    事务一旦提交,所做的修改就会永久保存在数据库上

    SQL(Structured Query Language,结构化查询语言)和NoSQL(Not Only SQL,泛指非关系型数据库)的一些区别:

    首先,两者最重要的区别是NoSQL不使用SQL作为查询语言,数据存储不需要固定的表格模式

    避免使用SQL的join操作,水平可扩展。

    SQL数据库的典型代表:SQL Server,Oracle,My SQL

    NoSQL数据库的典型代表:MongoDB,Redis

    1. SQL数据存在特定结构的表中,NoSQL灵活,存储方式可以是JSON,哈希表等方式

    2. SQL中必须定义好表和字段结构后才能添加数据;NoSQL无需先定义表,可以在任何时候任何地方添加

    3.需要关联外部数据的时候,SQL往往需要外键,再建一张表;NoSQL可以把外部数据直接放在原数据集中

    4.SQL中可使用join将多个关系数据表中的数据一次查询出来,NoSQL不支持该用法

    5.SQL数据耦合性强,不能删除外部已使用的数据;NoSQL没有数据耦合的概念,可以任意删除

    6.NoSQL中也没有事务的概念,每一个操作都是原子级

  • 相关阅读:
    Navicat建表MySQL索引类型
    Feign调用全局异常处理解决
    ShardingJDBC、Mycat、drds对比
    MySQL之索引失效分析及优化相关
    SpringBoot2.X集成spring session redis实现session共享
    Redis的消息订阅/发布 Utils工具类
    MySQL索引类型区分
    handler使用(二)
    Android开发指南中文版(七)Content Providers
    Android消息处理(一)进程内通信
  • 原文地址:https://www.cnblogs.com/geeklove01/p/8228434.html
Copyright © 2011-2022 走看看