精华内容
下载资源
问答
  • 数据库系统,一个事务是指:由一系列数据库操作组成一个完整逻辑过程。 例如银行转帐,从原账户扣除金额,以及向目标账户添加金额,这两个数据库操作总和,构成一个完整逻辑过程,不可拆分。 这个过程被...

    分布式数据库 CAP



    C(一致性):所有的节点上的数据时刻保持同步
    A(可用性):每个请求都能接受到一个响应,无论响应成功或失败

    P(分区容错):系统应该能持续提供服务,即使系统内部有消息丢失(分区)



    非关系数据库的特性BASE



    Basically Available基本可用。支持分区失败(e.g. sharding碎片划分数据库)


    Soft state软状态 状态可以有一段时间不同步,异步。
    Eventually consistent最终一致,最终数据是一致的就可以了,而不是时时高一致。


    BASE思想的主要实现有
    1.按功能划分数据库
    2.sharding碎片 



    跨数据库事务:2PC (two-phase commit)



    关系数据库系统中ACID


    例如银行转帐,从原账户扣除金额,以及向目标账户添加金额,这两个数据库操作的总和,构成一个完整的逻辑过程,不可拆分。
    这个过程被称为一个事务,具有ACID特性
     原子性(Atomicity) 原子性是指事务是一个不可分割的工作单位,事务中的操作要么都发生,要么都不发生。
    一致性(Consistency) 事务前后数据的完整性必须保持一致。
    隔离性(Isolation) 事务的隔离性是指多个用户并发访问数据库时,一个用户的事务不能被其它用户的事务所干扰,多个并发事务之间数据要相互隔离。
    持久性(Durability) 持久性是指一个事务一旦被提交,它对数据库中数据的改变就是永久性的,接下来即使数据库发生故障也不应该对其有任何影响
     
     
    四大特性
    原子性:一个事务(transcation)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚(Rollback)到事务开始前的状态,就像这个事务从来没有执行过一样。
    一致性:在事务开始之前和事务结束以后,数据库的完整性限制没有被破坏。
    隔离性:两个事务的执行是互不干扰的,两个事务时间不会互相影响。
    持久性:在事务完成以后,该事务对数据库所作的更改便持久地保存在数据库之中,并且是完全的。
     
    实现

    由于一项操作通常会包含许多子操作,而这些子操作可能会因为硬件的损坏或其他因素产生问题,要正确实现ACID并不容易。ACID建议数据库将所有需要更新以及修改的资料一次操作完毕,但实际上并不可行。
    目前主要有两种方式实现ACID:第一种是Write ahead logging,也就是日志式的方式。第二种是Shadow paging
     
     
    事务的隔离级别:
    多个线程开启各自事务操作数据库中数据时,数据库系统要负责隔离操作,以保证各个线程在获取数据时的准确性。
    如果不考虑隔离性,可能会引发如下问题:
    A脏读:
            指一个事务读取了另外一个事务未提交的数据。
    这是非常危险的,假设A向B转帐100元,对应sql语句如下所示
    1.update account set money=money+100 while name=‘b’;
    2.update account set money=money-100 while name=‘a’;
    当第1条sql执行完,第2条还没执行(A未提交时),如果此时B查询自己的帐户,就会发现自己多了100元钱。如果A等B走后再回滚,B就会损失100元。
    B不可重复读:
            在一个事务内读取表中的某一行数据,多次读取结果不同。
    例如银行想查询A帐户余额,第一次查询A帐户为200元,此时A向帐户存了100元并提交了,银行接着又进行了一次查询,此时A帐户为300元了。
            银行两次查询不一致,可能就会很困惑,不知道哪次查询是准的。




           和脏读的区别是,脏读是读取前一事务未提交的脏数据,不可重复读是重新读取了前一事务已提交的数据。




           很多人认为这种情况就对了,无须困惑,当然是后面的为准。我们可以考虑这样一种情况,比如银行程序需要将查询结果分别输出到电脑屏幕和写到文件中,
           结果在一个事务中针对输出的目的地,进行的两次查询不一致,导致文件和屏幕中的结果不一致,银行工作人员就不知道以哪个为准了。
    虚读(幻读):
    是指在一个事务内读取到了别的事务插入的数据,导致前后读取不一致。
    如丙存款100元未提交,这时银行做报表统计account表中所有用户的总额为500元,然后丙提交了,这时银行再统计发现帐户为600元了,造成虚读同样会使银行不知所措,到底以哪个为准。
    数据库共定义了四种隔离级别:
    Serializable:可避免脏读、不可重复读、虚读情况的发生。(串行化)
    Repeatable read:可避免脏读、不可重复读情况的发生。(可重复读)
    Read committed:可避免脏读情况发生(读已提交)。Read uncommitted:最低级别,以上情况均无法保证。(读未提交)
    set   transaction isolation level 设置事务隔离级别
    select @@tx_isolation 查询当前事务隔离级别




    tips:
    mysql的排它锁只针对于索引列建立行级锁,非索引列加排它锁,则为表别锁
     
    展开全文
  • 事务在英文是transaction,和现实世界中的交易很类似,它有如下四个特性: 1、A (Atomicity) 原子性 原子性很容易理解,也就是说事务里所有操作要么全部做完,要么都不做,事务成功条件是事务里所有操作都...

    关系型数据库遵循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账户转100元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的。

    4、D (Durability) 持久性
    持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。
    转载自:https://blog.csdn.net/hu10131013/article/details/52041893

    展开全文
  • 但所谓成也萧何,败也萧何,随着数据量爆炸式增长,特别是近几年大数据蓬勃发展,关系数据库的事务成为了互联网应用性能瓶颈,NoSQL正是摒弃了关系数据库事务某些属性,使得对于某类特殊应用,其性能...

    事务是关系型数据库的核心,关系型数据库之所以在过去这几十年里蓬勃发展,和它对事务的支持密不可分。但所谓成也萧何,败也萧何,随着数据量的爆炸式增长,特别是近几年的大数据的蓬勃发展,关系型数据库的事务成为了互联网应用的性能瓶颈,NoSQL正是摒弃了关系型数据库事务的某些属性,使得对于某类特殊应用,其性能是关系型数据库的好多倍。

    下面先说说什么是事务吧,事务在英文中是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账户转100元至B账户,在这个交易还未完成的情况下,如果此时B查询自己的账户,是看不到新增加的100元的。


    4、D (Durability) 持久性

    持久性是指一旦事务提交后,它所做的修改将会永久的保存在数据库上,即使出现宕机也不会丢失。

    还是举上面那个例子,如果转账成功了,而此时数据库宕机了,重启后,还是能够看到转账成功后的结果。


    下面介绍一个牛人 —— James Gray,他对关系型数据库事务做了不可磨灭的功绩:

    •  定义了事务,完美解决了数据一致性的问题。
    • 提出了锁的机制,
    •  提出日志对事物的控制。
    •  提出了两阶段提交的技术(2PC)。
    向牛人膜拜~~~

    展开全文
  • 广受欢迎开源数据库MySQL 8,包括了众多新特性,下面这篇文章主要给大家介绍了关于MySQL 8.0的关系数据库特性的相关资料,文中通过示例代码介绍非常详细,需要朋友可以参考借鉴,下面来一起看看吧。
  • 我们将对象数据库管理系统定义为一个集成了数据库能力与面向对象编程语言能力的数据库管理系统,ODBMS使数据库对象看起来像是已有一个或多个程序设计语言中的程序设计语言以象。ODBMS在多用户客户机/服务器环境...
  • 数据是数据库中存储基本对象,是按一定顺序排列组合物理符号。数据有多种表现形式,可以是数字、文字、图像,甚至是音频或视频,它们都可以经过数字化后存入计算机。 数据库是数据集合,具有统一结构形式并...

    什么是数据库

    数据库是数据管理的有效技术,是由一批数据构成的有序集合,这些数据被存放在结构化的数据表里。数据表之间相互关联,反映客观事物间的本质联系。数据库能有效地帮助一个组织或企业科学地管理各类信息资源。

    数据是数据库中存储的基本对象,是按一定顺序排列组合的物理符号。数据有多种表现形式,可以是数字、文字、图像,甚至是音频或视频,它们都可以经过数字化后存入计算机。

    数据库是数据的集合,具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。

    在日常生活中,人们可以直接用中文、英文等自然语言描述客观事物。在计算机中,则要抽象出对这些事物感兴趣的特征,并组成一个记录来描述。

    数据库的类型

    数据库通常分为层次式数据库、网络式数据库和关系式数据库三种。

    而不同的数据库是按不同的数据结构来联系和组织的。

    而在当今的互联网中,最常见的数据库模型主要是两种,即关系型数据库和非关系型数据库。

    关系型数据库

    关系数据库,是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。简单说,关系型数据库是由多张能互相联接的二维行列表格组成的数据库。

    关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。

    特性

    1、关系型数据库是指采用了关系模型来组织数据的数据库
    2、保持数据的一致性(事务处理)
    3、由于以标准化为前提,数据更新的开销很小(相同的字段基本上都只有一处)

    优点

    1、容易理解:二维表结构是非常贴近逻辑世界一个概念,关系模型相对网状,层次等其他模型来说更容易理解
    2、使用方便:通用的SQL语言使得操作关系型数据库非常方便;
    3、易于维护:丰富的完整性(实体完整性、参照完整性和用户定义的完整性)大大减低了数据冗余和数据不一致的概率
    4、支持SQL,可用于复杂的查询。

    缺点

    1、为了维护一致性所付出的巨大代价就是其读写性能比较差;
    2、固定的表结构;
    3、高并发读写需求;
    4、海量数据的高效率读写性能差;

    非关系型数据库

    非关系型数据库主要是基于“非关系模型”的数据库(由于关系型太大,所以一般用“非关系型”来表示其他类型的数据库)

    特性

    1、使用键值队存储数据
    2、分布式
    3、一般不支持ACID
    4、非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。

    优点

    1、无需经过sql层的解析,读写性能很高;
    2、基于键值对,数据没有耦合性,容易扩展;
    3、存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,文档形式、图片形式等等,而关系型数据库则只支持基础类型。

    缺点

    1、不提供sql支持,学习和使用成本较高;
    2、无事务处理,附加功能bi和报表等支持也不好;

    展开全文
  • 关系数据库mysql 事务四大特性 一、首先我们先说一下什么是事务 在mysql对数据进行增删改查中的任何一次操作过程都可以被认为是一次事务,事务是一系列严密操作,事务结束有两种结果,当事务中的所有步骤...
  • 前面我们介绍过数据库中 带你了解数据库中JOIN用法 与 带你了解数据库中group by用法相关用法。本章节主要来介绍下数据库中一个非常重要知识点事务,也是我们项目中或面试中经常会遇到知识点。如有错误还...
  • 你可能已经知道 MySQL 从版本 5.7 开始提供了 NoSQL 存储功能,在 8.0 这部分功能也得到了一些改进,但鉴于这个在实际当中用得极少,本人也是没用过,所以本文不会介绍这方面东西,而是关注其关系数据库方面。...
  • 数据库的ACID四大特性

    2020-10-23 16:04:05
    ACID特性 详解 原子性 原子性是指事务是一个不可再分割工作单元,事务中的操作要么都发生,要么...这是说数据库事务不能破坏关系数据完整性以及业务逻辑上一致性。 如A给B转账,不论转账事务操作是否成功,其
  • 事务ACID特性: 原子性:事务中的所有操作作为一个整体像原子一样不可分割,要么全部成功,要么全部失败 一致性:事务执行结果必须使数据库从一个一致性状态到另一个一致性状态。一致性状态是指:1.系统状态...
  • MySQL是一个关系数据库管理系统,由瑞典MySQL AB 公司开发,属于Oracle旗下产品。MySQL 是最流行的关系数据库管理系统之一,在 ...MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同,而不是...
  • 数据库中主键和外键设计原则 主键和外键是把多个表组织为一个有效的关系数据库粘合剂。主键和外键设计对物理数据库性能和可用性都有着决定性影响。 必须将数据库模式从理论上逻辑设计转换为实际...
  • 什么是事务? 事务用于处理操作量大,复杂性高数据,例如,我们删除一个成员...定义:事务使数据库中的数据从一个一致性状态到另一个一致性状态,事务一致性与原子性是密切相关。 I(isolation):隔离性 并
  • 用户可以在 SequoiaDB 巨杉数据库中创建多种类型数据库实例,以满足上层不同应用程序各自需求。 SequoiaDB 巨杉数据库支持 MySQL、PostgreSQL、SparkSQL 和 MariaDB 四种关系型数据库实例、类 MongoDB JSON ...
  • 内存数据库 内存数据库就是将数据放在内存中直接操作数据库,...关系数据库是建立在集合代数基础上,应用数学方法来处理数据库中的数据。现实世界中各种实体以及实体之间各种联系均用关系模型来表示。 实时数据库
  • 中间方框为一个oracle数据库(1000万数据),用户A执行一个查询操作,需要花10分钟才能执行完毕该查询语句(开始执行时间为9:00 -执行完毕时间为9:10), 用户表B执行一个修改语句,正好B用户修改数据正是A...
  • 数据库管理系统(DBMS)自治特性是实现其管理便捷关键,关系到维护成本,并且向终端用户屏蔽了底层复杂性。在自治特性下,管理员可以执行较高层次任务。基于自治特性分析了Oracle自治组件,阐述了Oracle不同...
  • 数据:数据就是数据库中存储基本数据,比如学生学号、学生班级 数据库:存放数据仓库 数据库管理系统:数据库软件,如MySQL、Oracle 数据库系统:数据库+数据库管理系统+应用程序+数据库管理员(大佬) 实体...
  • 前面我们提到,相比关系型数据库,Asset图数据库最大不同的特性就是关系是和实体一样的一等公民。因此,GEL不仅支持基于属性的查询,而且支持基于关系的查询。在构建基于关系的查询之前,我们先来理解一下资产主数据...
  • 数据库中 什么是事务 事务的特性 【事务】:是用户定义的一个数据库操作序列,这些操作要么都做,要么都不做,是一个不可分割的工作单位。 在关系数据库中,一个事务可以是一条SQL语句,也可以是多条SQL语句。 ...
  • 关系模式不涉及到物理存储方面描述,仅仅是对数据特性的描述。 (3)关系实例:元组集合称为关系和实例,一个关系即一张二维表格。 (4)属性:实体一个特征。在关系模型,字段称为属性。...
  • 在任何一个关系数据库中,第一范式(1NF)是对关系模式基本要求,不满足第一范式(1NF)数据库就不是关系数据库。 所谓第一范式(1NF)是指数据库表每一列都是不可分割基本数据项,同一列中不能有多个值,即...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 3,694
精华内容 1,477
关键字:

数据库中关系的特性