数据库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中也没有事务的概念,每一个操作都是原子级的
数据库ACID,SQL和NoSQL的更多相关文章
- 大数据学习资料之SQL与NOSQL数据库
这几年的大数据热潮带动了一激活了一大批hadoop学习爱好者.有自学hadoop的,有报名培训班学习的.所有接触过hadoop的人都知道,单独搭建hadoop里每个组建都需要运行环境.修改配置文件测试 ...
- SQL与NoSQL(关系型与非关系型)数据库的区别
永远正确的经典答案依然是:具体问题具体分析. 数据表VS.数据集 关系型和非关系型数据库的主要差异是数据存储的方式.关系型数据天然就是表格式的,因此存储在数据表的行和列中.数据表可以彼此关联协作存储, ...
- 技术分享|SQL和 NoSQL数据库之间的差异:MySQL(VS)MongoDB
在当今市场上,存在各种类型的数据库,选择适合你业务类型的数据库对应用的开发和维护有着重要意义.本篇文章,将为大家分享SQL和NoSQL语言之间的区别,同时还将比较这两种类型的数据库,以帮助小伙伴们选择 ...
- SQL VS NoSQL 如何选择数据库
在前一篇文章中我们主要的讨论了SQL与NoSQL数据库之间的主要的差别.接下来,我们将会利用上一篇中的知识来确定在特定的场景中如何确定比较好的选择. 首先我们先来总结一下: SQL数据库: 使用表存 ...
- 数据库 --> SQL 和 NoSQL 的区别
SQL 和 NoSQL 的区别 一.概念 SQL (Structured Query Language) 数据库,指关系型数据库.主要代表:SQL Server,Oracle,MySQL(开源), ...
- SQL 、NoSQL数据库教程
前言: 嗯,先说说数据库的分类吧,其实主要大的分类就是关系型数据库(SQL)和非关系型数据库(NoSQL); 实验楼上有常见的数据库教程,这里做一个整理,希望对你学习数据库方面的知识有所帮助: 关系型 ...
- 初识关系型数据库(SQL)与非关系型数据库(NOSQL)
一.关系型数据库(SQL): Mysql,oracle 特点:数据和数据之间,表和字段之间,表和表之间是存在关系的 例如:部门表 001部分, 员工表 001 用户表,用户名.密码 分类表 和 商 ...
- SQL与NoSQL区别--商业SQL数据库衰落--oracle面临困境
转自:商用数据库之死:Oracle 面临困境 这二十年来,商业数据库市场仍然是 IT 行业最稳定.最具黏性的领域之一,Oracle.IBM 和微软三家厂商瓜分了 80% 的份额.然而,我们认为这个领域 ...
- 非关系型数据库(NOSQL)和关系型数据库(SQL)区别详解
前言: 在我们的日常开发中,关系型数据库和非关系型数据库的使用已经是一个成熟的软件产品开发过程中必不可却的存储数据的工具了.那么用了这么久的关系数据库和非关系型数据库你们都知道他们之间的区别了吗?下面 ...
随机推荐
- E: 未发现软件包 install_flash_player_11_linux.x86_64.tar.gz
1 错误描述 youhaidong@youhaidong:~$ sudo apt-get install install_flash_player_11_linux.x86_64.tar.gz 正在读 ...
- TypeError: Error #1034: 强制转换类型失败:无法将 "0.49" 转换为 mx.graphics.IFill。
1.错误描述 TypeError: Error #1034: 强制转换类型失败:无法将 "0.49" 转换为 mx.graphics.IFill. at mx.charts.ser ...
- 申请Jetbrain教育帐号,免费使用一年
JetBrains是一家捷克的软件开发公司.旗下IDE产品有(不限于):(1) IntelliJ,IDEA Java集成开发工具:(2) PHPStorm,PHP 集成开发工具:(3) PyChar ...
- EF6CodeFirst+MVC5+Autofac泛型注册 入门实例
贴一个EF6 CodeFirst模式结合MVC5和Autofac(泛型注册)的一个入门实例 网上类似的例子实在太少,最近自己也有用到这一块的知识,总结了一下,不要让后人踩了自己踩过的坑. 1:新建三个 ...
- Tomcat 请求处理流程详解
Overview Connector 启动以后会启动一组线程用于不同阶段的请求处理过程. Acceptor 线程组.用于接受新连接,并将新连接封装一下,选择一个 Poller 将新连接添加到 Poll ...
- 由html,body{height:100%}引发的对html和body的思考
html,body{height:100%} 今天看到一个CSS样式:html,body{height:100%},第一次看到,感觉挺奇怪,为什么html还需要设置height:100%呢,html不 ...
- JDBC存在的问题
1.数据库连接频繁的创建和关闭,缺点是浪费数据库资源,影响操作效率. 设想:使用数据库连接池 2.sql语句是硬编码,如果需求变更需要修改sql,就需要修改java代码,需要重新编译,系统不易维护. ...
- VS中使用.NET Reactor进行代码混淆
.NET Reactor相信大家都不陌生,网上使用教程也很多.但绝大多数都只介绍到软件的使用,而对于在VS中使用介绍的不多. 首先,在.NET Reactor的Help中Add In,如下图. 重启V ...
- LeetCode之Easy篇 ——(1)Two Sum
1.Two Sum Given an array of integers, return indices of the two numbers such that they add up to a s ...
- Django 2.0 学习(03):Django视图和URL(下)
接上篇博文,继续分析Django基本流程. 编写第一个(view)视图函数 1.打开文件polls/views.py,输入下面的Python代码: from django.http import Ht ...