数据库中一些基本概念的深入理解

1.怎样理解事务的一致性

  一致性就是一个这样的东西,一致性对于不同的应用领域有着不同的定义,因为它就是按照业务规则来说明这个是一致的,那个是不一致的,这个角度上讲,一致性就是一个系统的状态,一个合理的状态。而合理则表现在这个状态是否符合业务规则。例如:转账业务中合理的状态就是,转出和转入帐户必须出入相等,如果不等那就意味着不合理,也就是不一致,有时候我们很容易就能把它定为“守恒一致性”,也就是说总体来说什么也不多,什么也不少就是一致性。而这个规则能够使用于其他的义务吗?我们不能说不能,但是从狭义的角度来讲是不能的,在存款业务中,帐户是多了钱,那如何去守恒呢?或许你会说,那个东西可以和客户手中的钱两来平衡阿,对,你说的对,或许我们从更为广义的角度上讲这个一致性就是“守恒一致性”(未证实)。但是我们没有必要做那么宏观的定义(毕竟对我们开发合理系统没有太大的帮助)。
于是,我们抽象的定义,一致性,就是在任何时候系统中的数据是符合业务规则的。那么从一开始,业务初始化的时候保持一致性是很容易的,在业务进行下去,一个个事务完整进行(或不进行)后,一致性发生转移,但始终符合一致性,所以保持系统一致性的关键还在于事务的一致性问题,也就是说,该事务是否会造成系统不一致性状态的出现,是事务的一个属性。
从这个角度我们发现,事务所具备的原子性与一致性是一个互补的状态,一致性保证了这个事务所包含的一系列的操作完成后系统仍然在一个一致的状态(但它不能保证事务内部不会有不一致的出现),所以原子性就需要来保证这些操作必须要全部执行或全部不执行。从这个角度上讲,一致性似乎应该放在原子性之前,当然我不是在挑战权威,这是一个小插曲。(摘自CSDN论坛)

数据库中一些基本概念的深入理解,布布扣,bubuko.com

时间: 2024-11-06 15:33:29

数据库中一些基本概念的深入理解的相关文章

数据库中的schema概念

原文地址:http://blog.sina.com.cn/s/blog_7952e89001010jlj.html 数据库的初学者往往会对关系型数据库模式(schema).数据库(database).表(table).用户(user)之间感到迷惘,总感觉他们的关系千丝万缕,但又不知道他们的联系和区别在哪里,对一些问题往往说不出个所以然来.下面,我们就以SQL Server为核心,对其模式(schema).数据库(database).表(table).用户(user)之间的关系展开讨论. 首先,我

数据库中的基本概念

在同一个数据集合中,不同的选择条件对应了不同的输出结果,数据库就是这样一种按数据结构来组织.存储和管理数据的仓库.程序或用户可以通过它来进行数据的访问与修改,它是数据存储的灵魂. 数据管理经历了人工管理.文件系统到数据库系统3个阶段.数据库是具有逻辑关系和确定意义的数据结合,它能克服传统文件组织所产生的一系列问题,数据冗余小,由于关系型数据库管理系统对于信息查询具有很大的灵活性,并且设计简单,所以已经被广泛使用在了实际的系统开发中. 关系数据库系统与文件数据库系统区别 SQL语言的功能有哪些 内

数据库中Schema(模式)概念的理解

在学习SQL的过程中,会遇到一个让你迷糊的Schema的概念.实际上,schema就是数据库对象的集合,这个集合包含了各种对象如:表.视图.存储过程.索引等.为了区分不同的集合,就需要给不同的集合起不同的名字,默认情况下一个用户对应一个集合,用户的schema名等于用户名,并作为该用户缺省schema.所以schema集合看上去像用户名. 如果把database看作是一个仓库,仓库很多房间(schema),一个schema代表一个房间,table可以看作是每个房间中的储物柜,user是每个sch

T-SQL查询进阶--理解SQL Server中索引的概念,原理以及其他

简介 在SQL Server中,索引是一种增强式的存在,这意味着,即使没有索引,SQL Server仍然可以实现应有的功能.但索引可以在大多数情况下大大提升查询性能,在OLAP中尤其明显.要完全理解索引的概念,需要了解大量原理性的知识,包括B树,堆,数据库页,区,填充因子,碎片,文件组等等一系列相关知识,这些知识写一本小书也不为过.所以本文并不会深入讨论这些主题. 索引是什么 索引是对数据库表中一列或多列的值进行排序的一种结构,使用索引可快速访问数据库表中的特定信息. 精简来说,索引是一种结构.

数据库中对存储过程的理解

1.存储过程的概念 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集.经编译后存储在数据库中. 存储过程是数据库中的一个重要对象,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它. 存储过程是由 流控制 和 SQL语句书写的过程,这个过程经编译和优化后存储在数据库服务器中. 存储过程 可由应用程序通过一个调用来执行,而且允许用户声明变量. 同时,存储过程可以接收和输出参数.返回执行存储过程的状态值,也可以嵌套调用. 2.存储过程的优点 ① 存

javascript中重要概念-闭包-深入理解

在上次的分享中javascript--函数参数与闭包--详解,对闭包的解释不够深入.本人经过一段时间的学习,对闭包的概念又有了新的理解.于是便把学习的过程整理成文章,一是为了加深自己闭包的理解,二是给读者提供学习的途径,避免走弯路. 在javascript--函数参数与闭包--详解这篇文章中,我详细介绍了闭包的概念.以下的分享对闭包的基本概念只会稍稍带过.如果对闭包的概念不熟悉的同学,请移步至javascript--函数参数与闭包--详解. 以下的分享会分为如下内容: 1.let命令 2.闭包特

iOS项目中工作空间Workspaces概念的理解

我在之前的一篇博客中讨论过Eclipse和Android Studio的工作空间问题,并做了一定的区别.其实只要理解并会使用前两者,Xcode中的工作空间也就不难理解了.我们通过实际的操作步骤来理解Xcode的工作空间. (1)在Xcode中点击:File-->New-->Workspace.   在Save as中输入工作空间的名称.并选择存放的目录: . (2)去刚才的目录下查看,发现多了一个MyApplication.xcworkspace文件.该文件就是工作空间.先关闭Xcode,双击

文件系统的block 数据库中的block 以及内存中的page基础知识汇总(自己理解 可能有误)

1. 操作系统文件系统中的的block 文件系统中的block 是文件系统最小的读写单元,在HDD的磁盘时代, 一般block的大小可能与磁盘的扇区大小一致为 512bytes 也因为这个原因MBR启动的手 0磁道 0扇区的 512bytes 首先加载到内存, 先包含了 446byte的MBR启动信息, 还包含 64bytes 的磁盘分区信息 所以MBR的磁盘格式只支持4个主分区 并且大小仅能够扩展到2TB 后来使用GPT分区的模式可以扩充使用2TB大小以上的磁盘. 操作系统的文件簇大小 可以与

理解数据库中的undo日志、redo日志、检查点

理解数据库中的undo日志.redo日志.检查点 2014-6-18 原文:https://www.letiantian.me/2014-06-18-db-undo-redo-checkpoint/ 数据库存放数据的文件,本文称其为data file.数据库的内容在内存里是有缓存的,这里命名为db buffer.某次操作,我们取了数据库某表格中的数据,这个数据会在内存中缓存一些时间.对这个数据的修改在开始时候也只是修改在内存中的内容.当db buffer已满或者遇到其他的情况,这些数据会写入da