事务的定义:
事务是数据库系统中执行的一个工作单位,它是由用户定义的一组操作序列。一个事务可以是一组SQL语句、一条SQL语句或者整个程序,一个应用程序可以包括多个事务。
定义事务的语句有:
(1)BEGIN TRANSACTION:表示事务的开始
(2)COMMIT:表示事务的提交
(3)ROLLBACK:表示事务的回滚
(1) 原子性(Atomicity):一个事务是一个不可分割的工作单位,事务在执行时,应该遵循“要么不做,要么全做”的原则,即不允许完成部分的事务。即使因为故障而使事务未能完成,它执行的部分也要被取消。
(2) 一致性(Consistency):事务对数据库的作用是数据库从一个一致状态转变到另一个一致状态。所谓数据库的一致状态是指数据库中的数据满足完整性约束。
(3) 隔离性(Isolation):如果多个事务并发地执行,应像各个事务独立执行一样,一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是随机的。并发控制就是为了保证事务间的隔离性。
(4) 持久性(Durability):持久性指一个事务一旦提交,它对数据库中数据的改变就应该是持久的,即使数据库因故障而受到破坏,DBMS也应该能够恢复。
1、一致性(C):在分布式系统中的所有数据备份,在同一时刻是否同样的值。
2、可用性(A):保证每个请求不管成功或者失败都有响应。
3、分区容忍性(P):系统中任意信息的丢失或失败不会影响系统的继续运作。
1、 基本可用(Basically Available):保证数据的可用性。任何请求都会有响应(也可能是失败)。
2、 软状态(Soft state):软状态和硬状态相对,是指允许系统中的数据存在中间状态,并认为该中间状态的存在不会影响系统的整体可用性,即允许系统在不同节点的数据副本之间进行数据传输的过程存在延时。
3、 最终一致性(Eventually consistent):强调的是系统中所有的数据副本,在经过一段时间的同步后,最终能够达到一个一致的状态。
(1) 第一范式:如果关系模式R所有的属性均为原子属性,即每个属性都是不可再分的,则称R属于第一范式,记作R∈1NF。
(2) 第二范式:如果关系模式R∈1NF,且每个非主属性都完全依赖于R的主码,则称R属于第二范式,记作R∈2NF.
(3) 第三范式:如果关系模式R∈2NF,且每个非主属性都不传递函数依赖于R的主码,则称R属于第三范式,记作R∈3NF.
(4) BC范式:如果关系模型R∈1NF,且所有的函数依赖X→Y(Y不属于X),决定因素X都包含了R的一个候选码,则称R属于BC范式,记作R∈BCNF。
(1) 列是同质的,即每一列中的分量必须来自同一个域,必须是同一类型的数据。
(2) 不同属性可来自同一个域,但不同属性必须有不同的名字。
(3) 列的顺序是可以任意交换。
(4) 关系中元组的顺序(行序)可任意,在一个关系中可以任意交换两行的次序。
(5) 关系中不允许出现相同的元组。
(6) 关系中每一分量必须是不可分的数据项。
关系与关系模式
1、在关系数据库中,关系模式是型,关系是值。关系模式是对关系的描述。
2、关系是笛卡尔积的子集,是元组的集合,是实体与实体之间的联系。
3、关系模式必须指出这个元素集合的结构,应当是一个五元组。R(U,D,DOM,F)
R:关系名 U:组成该关系的属性名集合 D:属性组(U中属性所来自的域)
DOM:属性向域的映像集合 F:属性间数据的依赖关系集合
1、关系数据库的型称为关系数据库模式,是对关系数据库的描述,它包括若干域的定义以及在这些域上定义的若干关系模式。
2、关系数据库的值称为关系数据库,是这些关系模式在某一时刻对应关系的集合。
数据独立性:数据库中的数据与应用程序间相互独立,即数据的逻辑结构、存储结构以及存取方式不影响应用程序。
在数据库系统中,数据库的结构可以分为三级:用户逻辑结构、数据库逻辑结构和物理结构。
数据独立性分为两级:物理独立性和逻辑独立性。
1、外模式:也称为子模式或用户模式。是数据库用户能看到并允许使用的那部分数据的逻辑结构和特征的描述。外模式一般是模式的子集,一个数据库可以有多个外模式。
2、模式:也称概念模式。是数据库全体数据的逻辑结构和特征的描述。一个数据库只有一个模式。
3、内模式:也成为存储模式或物理模式。与实际存储数据方式有关的一层。是对数据库存储结构的描述,是数据在数据数据库内部的表示方式。只有一个内模式。
1、外模式/模式::对于每一个外模型都存在一个外模式/模式映像。保证数据的局部逻辑
结构(外模式)不变,保证了数据与程序之间的逻辑独立性。
2、模式/内模式:模式/内模式映像是唯一的。保证数据存储结构变化不影响数据的全局逻辑结构的改变,从而不必修改应用程序,确保了数据的物理独立性。
(1) 保证数据的独立性。将模式与内模式分开,保证了数据的的物理独立性;将外模式和模式分开,保证了数据的逻辑独立性。
(2) 简化了用户接口。按照外模式编写应用程序或输入命令,而不需了解数据库内部的存储结构,方便用户使用系统。
(3) 有利于数据共享。在不同的外模式下可由多个用户共享系统中的数据,减少了数据冗余。
(4) 有利于数据的安全保密。在外模式下根据要求进行操作,只能对限定的数据操作,保证了其他数据的安全。
概念:是数据特征的抽象,它从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表示与操作提供一个抽象的框架。
分类:
(1) 概念模型(信息模型):按照用户的观点对数据和信息建模,是对现实世界的事物及其联系的第一级抽象。不依赖于具体的计算机系统,不涉及信息在计算机内如何表示、如何处理等问题,只是用来描述某个特定组织所关心的信息结构。
(2) 逻辑模型(数据模型)和物理模型。
(1)数据结构:描述了数据库的组成对象以及对象之间的联系。数据结构描述的是数据库的静态特性。
(2)数据操作:是指对数据库中各种数据允许执行的操作的集合,包括操作以及相应操作规则,描述了数据库的动态特性。包括增删改查。
(3)数据的完整性约束:数据的完整性约束条件是一组完整性规则。
脏数据是一个临时的数据,不代表最终结果。
脏读:一个事务A在修改数据,提交之前,另一个事务B读取了数据,此时A极有可能在提交的时候是不同的数据(后续又修改了),此时事务B读到的就是‘无效的数据’,称为脏读。