数据库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)区别详解
前言: 在我们的日常开发中,关系型数据库和非关系型数据库的使用已经是一个成熟的软件产品开发过程中必不可却的存储数据的工具了.那么用了这么久的关系数据库和非关系型数据库你们都知道他们之间的区别了吗?下面 ...
随机推荐
- 微软依赖注入Unity
Unity是一个依赖注入(Dependency Injection,DI)容器.DI的标准描述文章来自Martin Flower[0].作为一个快速的摘要,依赖注入容器就是一个用于构建高度松耦合的软件 ...
- OpenStack_I版 2.keystone部署
生成keystone默认证书,指定用户 修改keystone主配置文件 第625行,修改数据库连接方式 修改完成同步数据库 同步完成可以查看数据库是否有表生成 为了以后调试keystone方便,现 ...
- hihocoder Challenge 29 B.快速乘法
这题的题解和我写的有一拼,异常简洁,爆炸. 这题思路dp 表示的是讨论到第位,并比原数的前n位多了 显然j只能取0,1,毕竟2进制嘛 之后转移就好了,注意下面两个重要状态 #include <c ...
- mybatis的动态增删改查
1.动态SQL片段 通过SQL片段达到代码复用 <!-- 动态条件分页查询 --> <sql id="sql_count"> select count(*) ...
- form表单的action提交写到js中来,同时onclick事件也写在js中来。其action也可以通过ajax来提交的。
1,html脚本 <body> <div style="display: none;"> <form id="submitForm" ...
- JDBCTemplate简化JDBC的操作(二)
一.Spring对不同的持久化支持: Spring为各种支持的持久化技术,都提供了简单操作的模板和回调 ORM持久化技术 模板类 JDBC org.springframework.jdbc.core. ...
- VS2013 图片背景·全透明背景图(转)
Note: 1.xaml编辑器和个别的编辑器(如HTML的)因为是承载在VS的一个子窗口上,所以背景依然是黑色的. 2.该背景必须在VS实验环境下使用. 效果图: 1.准备工作 1.先准备Visual ...
- [BZOJ3460] Jc的宿舍
bzoj 题面放一下 Description WC2014后无数人来膜拜jc,但是来膜拜的人实在太多了, 而且很多人是一连膜拜好几天.所以jc给这些人建了一座树 形的宿舍,而根节点(1号节点)住着jc ...
- java基础:内存分配(上)
java执行中的内存分区: 1.代码域:存放代码 2.数据域:存放静态的数据 3.栈:存放局部变量 4.堆:存放成员变量 (ps:局部变量是类中方法体中申明的变量,只在这个方法中有效:成员变量是类中方 ...
- linux系统文件扩展名介绍
1.源码tar.tar.gz .tgz.zip.tar.bz 表示压缩文件,创建命令等 2.sh表示shell脚本文件,通过shell语言开发的程序. 3.pl 表示perl语言文件,通过perl语言 ...