授权控制可以用“谁(授权者)可以授权”来描述。表4.4授权矩阵的例子对象上的权利可以像授权规则一样记录在数据目录(字典)里。如表4.4所示,最常用的方法是将所有的权限用一个授权矩阵表示。其中,每一行表示一个授权事项,每一列代表一个对象。正像前面所提到的,Oracle也为授权标识提供了一套口令系统,在Oracle中称为用户名。Oracle为授权标识提供了更进一步的应用,并在SQL中增加了CREATE user命令。每个角色应当是表示某一功能的连贯的权限组。......
2025-09-30
事务管理器(系统)是DBMS中负责调度的相关软件。按照经典数据库理论,有四个重要性质是事务管理器必须关注的。这四个性质用四个字母表示,即ACID。
ACID为四个英语单词的缩写:atomicity(原子性,A)、consistency(一致性,C)、isolation(隔离性,I)、durability(持续性,D)。
原子性(A)与持续性(D)密切相关,一致性(C)与隔离性(I)密切相关。A与D相关,使得事务管理器中有专门的软件模块负责保障,这个软件模块是并发控制(子)系统。C与I相关,使得事务管理器中有专门的软件模块负责保障,这个软件模块就是可靠性(子)系统。这个(子)系统是每个数据库管理系统里必须提供的软件模块。
在数据库管理系统中,会有许多事务同时执行。这些事务应当相互隔离。一个事物的执行不应该影响其他事务的执行。为了保证这一点,DBMS必须使用相应的调度算法。
一种调度算法是串行调度(serial scheduling)。在这种调度算法里,事务一个接着一个执行。
事务的性质可以用ACID来表示,即原子性(atomicity)、一致性(consistency)、隔离性(isolation)和持续性(durability)。这些性质并非完全独立的,而是互相有关联的。
1.原子性
原子性是指把一个事务看成是一个基本的操作单位。因此,要么事务的所有操作都完成,要么什么也没做,这就是称为all-or-nothing的性质。原子性要求事务的执行在出故障时被中断,DBMS负责决定事务如何从故障中恢复。这时,有两个选择可用:让恢复动作继续完成没完成的工作,让系统回退到事务执行前的状态。
故障的种类很多。第一类是事物本身造成的,如输入数据出错、死锁或其他原因。在这类故障中维持事务原子性的机制一般称为事务恢复(transaction recovery)。第二类故障可能起因于系统故障,如介质故障、处理器故障、通信链路故障、电源故障,等等。在这类故障中维持事务原子性的机制称为故障恢复(crash recovery)。两者的区别是后者的结果是易失存储器内信息的丢失。
2.一致性
事务的一致性,简单地说,就是它的正确性。换言之,事务是能够把数据库从一个一致状态转换成另一个一致状态的正确程序。验证事务是否一致是由语义数据控制实现的。保证事务的一致性是靠事务管理来实现的。
要指出的是,下面说到的脏数据(dirty data),是指被一个事务更新后但未提交的数据。我们可以将一致性分成如下等级。
●0级一致性:如果满足以下条件,则事务T看到的是0级一致性:T不会复写其他事务的脏数据。
●1级一致性:如果满足以下条件,则事务T看到的是1级一致性:T不会复写其他事务的脏数据;EOT前,T不提交任何写操作。
●2级一致性:如果满足以下条件,则事务T看到的是2级一致性:T不会复写其他事务的脏数据;EOT前,T不提交任何写操作;T不读其他事务产生的脏数据。
●3级一致性:如果满足以下条件,则事务T看到的是3级一致性:T不会复写其他事务的脏数据;不到所有写操作完成的时候(即不到EOT),T不提交任何写操作;T不读其他事务产生的脏数据;在T完成前,其他事务不弄脏由T读过的数据。
显然,高一级一致性蕴含了所有低一级一致性。系统中可能有的事务满足高一级一致性,有些事务满足低一级一致性。
3.隔离性
隔离性是事务的另一个性质,它要求每个事务始终看到的是一个一致的数据库。换言之,执行中的事务在其提交前不能将自己的操作结果暴露给其他并发事务。
【例8.6】 假设有两个并发事务(T1和T2)对用户的银行账户x进行处理,它们都要存取数据项x。假设在它们执行前x的账面值是5000元。T1要从账上划走200元,T2是要还给这个账户300元。这两个事务程序的步骤如下:
下面是一种它们可能的执行序列。
T1:Read(x)
T1:x←x-200
T1:Wr i te(x)
T1:Commi t
T2:Read(x)
T2:x←x+300
T2:Wr i te(x)
T2:Commi t
显然,这里事务T1和T2是先后相继执行的,T2读到的x值是4800。但是,由于这两个事务是并发的,所以下面执行的序列也是可能的:
T1:Read(x)
T1:x←x-200
T2:Read(x)
T1:Wr i te(x)
T2:x←x+300(https://www.chuimin.cn)
T2:Wr i te(x)
T1:Commi t
T2:Commi t
此时,事务T 2读到的x值是5000,这是不正确的,因为x已被事务T 1修改成4800了,而且最后T1修改的值又被T2复写了,这个账户凭空多出了200元,这是忌讳的。
通过不让其他事务看到未完成的结果来保证隔离性,所解决的问题称为解决丢失更新问题(lost updates problem)。
从一致性分层结构看,0级一致性除防止更新丢失外,没有其他功能了,因此提供的是很小的隔离性。2级一致性增加了避免级联夭折的功能。3级一致性则提供了全隔离性。
下面使用ANSI SQL2(即SQL-92)标准说明对隔离性级别进行定义。根据ANSI定义,下面是一些不可取的现象。
脏读(dirty read):脏数据指的是一个事务对数据执行了修改操作,但该事务还没有提交,该被修改数据就称为脏数据。如果事务T1修改了一个数据项,在它提交前,这个数据项被另外一个事务T2读取,一旦T1夭折,T2就变成读了一个在数据库中根本不存在的数据,这是不可取的。
不可重复性或模糊读(non-repeatable or fuzzy read):事务T1读一个数据项,另一个事务T2接着修改或删除这个数据项。如果T1试图再次读这个数据项,则它读到的是另外一个值,或者它根本找不到这个数据项。这样一个事务T1两次读同一个数据项返回的却是不同的结果。
幻象(phantom):这种现象出现在下述这种情况,即事务T 1按一个谓词p搜索一个关系,事务T 2插入了一个满足此谓词的元组(如y),T 1读了该元组,但T 2又夭折了,T 1读到的y就是幻象。
根据这些现象,可以将隔离性级别定义如下。
●读未提交(read uncommitted)(事务)的数据:这个层面上的事务操作三种现象都可能出现。
●读已提交(read committed)(事务)的数据:可能出现模糊读与幻象,但不会脏读。
●可重复地读(repeatable read):只可能出现幻象。
●异常可串行化(anomaly serializable):不可能出现幻象。
4.持续性
持续性是指在一个完整事务发生变化前就写入了硬盘,一旦系统崩溃,这个变化就会记住,在系统重启时将之恢复。应当避免不完整事务,以便保证数据库的一致性。为了能够撤销不完整事务所执行的操作,DBMS会维护一个日志文件。对硬盘上的所有操作在将数据写入前都记录在日志文件上。
持续性保证事务一旦提交,其结果就是永久的,不能从数据库中抹去。持续性性质涉及数据库恢复(database recovery)这个问题,就是说任何情况下都要把数据库恢复到能反映提交动作的状态。
与独立的数据库系统比较,一个复制(有副本)数据库是一个分布式数据库,其中相同的数据项有多个副本存放在多个节点上。复制数据库应当如提供ACID保证的无副本环境一样的情况,称为1-copy equivalence。这样ACID可以定义如下。
●copy atomicity:保证一个事务在实施操作的每个副本都有相同的决策,即都提交或都夭折。因此,需要副本间保证强加某种形式的契约协议(agreement protocol)。
●1-copy consistency:在所有执行事务的副本上强加一个结束后不损坏的完整性约束,保证有一个一致的数据库状态。
●1-copy isolation:保证多个副本上执行的一组并发事务等价于一个串行执行,也称1-copy-serializability。
●1-copy durability:保证一旦一个副本出现故障,随后就能恢复,不仅要求重做本地已经提交的事务,还要求做在宕机期间耽误的系统上所有已全局提交的更新。
值得一提的是,ACID的要求面临新的挑战。新的理论出现了,如CAP理论和BASE理论。
1)CAP理论
在分布式数据库系统,尤其是基于Web的系统中,数据在不同的节点有多个副本。为了尽快定位指定数据项的位置,DBA常考虑设置索引。处理索引对关系型数据库管理系统来说很累赘,特别是在数据变化很快时。同时,在关系型数据库系统里,为了响应用户的请求,常常要实施多个表的连接运算,这也是开销很大的。在分布式数据库系统里,为了强制满足ACID,在用户可以访问数据前,必须保证所有数据项在所有节点上都是一样的,需要耗费的时间很多。
近年来,是否放宽对ACID要求的思想开始吸引大家的注意,例如CAP理论(Brewer,2012),试图在竞争点上寻找平衡点。考虑的竞争点就是CAP理论。
●C(consistency):一致性。ACID中的一致性要求是严格的。在CAP理论里,在分布式系统中同一数据项的所有数据备份,在同一时刻是否为同样的值(等同于所有节点访问同一份最新的数据副本)是可以商榷的。
●A(availability):可用性。在计算/存储集群中,一部分节点出现故障后,集群整体是否还能响应客户端的读/写请求。
●P(partition tolerance):分割容忍性。以实际效果而言,网络分割相当于将通信的时限要求破坏了。系统如果不能在时限内达成数据一致性,就意味着发生了分割的情况,必须就当前操作在C和A之间做出选择。
CAP是应NoSQL数据库所面临的态势提出的。CAP理论是在分布式存储环境中,最多只能实现上面的其中两点。进一步说,由于当前的网络硬件肯定会出现延迟丢包等问题,所以分割容忍性是必须实现的。因此我们只能在一致性和可用性之间来权衡,没有一个NoSQL数据库能同时保证C、A、P这三点。
2)BASE理论
BASE是Basically Available(基本可用)、Soft state(软状态)和Eventually consistent(最终一致性)三个短语的简写,BASE是对CAP中一致性和可用性权衡的结果,是基于CAP理论逐步演化而来的,其核心思想是,即使无法做到强一致性(strong consistency),但每个应用都可以根据自身的业务特点,采用适当的方式来使系统达到最终一致性(eventual consistency)。
本质上,BASE针对的是大多数NoSQL数据库,面对的是分布式存储环境,就像关系型数据库系统强调ACID一样。
相关文章
授权控制可以用“谁(授权者)可以授权”来描述。表4.4授权矩阵的例子对象上的权利可以像授权规则一样记录在数据目录(字典)里。如表4.4所示,最常用的方法是将所有的权限用一个授权矩阵表示。其中,每一行表示一个授权事项,每一列代表一个对象。正像前面所提到的,Oracle也为授权标识提供了一套口令系统,在Oracle中称为用户名。Oracle为授权标识提供了更进一步的应用,并在SQL中增加了CREATE user命令。每个角色应当是表示某一功能的连贯的权限组。......
2025-09-30
进而,更精确地说:在同一座建筑中分类明晰地使用三种铜合金,这是对中国传统中“刚柔并济”的复合材料技术思想的继承和应用。无论材质如何变化,其核心思想都是“刚柔相济”的基本原理。谈到了包括“刚柔”在内的多对范畴,这是较早将“刚柔相济”作为哲学概念进行讨论的记载。综上所论,昆明太和宫铜殿的材料设计是在“六齐”与“刚柔并济”的材料观念下进行的,这是技术思想和哲学概念的双重理论指导。......
2025-09-30
非线性算子的性质包括连续性、有界性、全连续性、可微性等.这是一些基本概念和性质,在后面各章中都要用到.设E1和E2时两个实Banach 空间,D E1.设A∶D→E2为非线性的.定义1设x0∈D.若ε>0,δ=δ(x0,ε)>0 使得当x ∈D且‖x-x0‖ < δ 时,恒有‖Ax -Ax0‖ < ε,则称A 在x0连续;若A 在D 中每一点都连续,则称A 在D 上连续;若上述δ 只与ε 有关而......
2025-09-30
在上下文中,视图是一个从基关系导出的关系,实施方式是将其作为一个查询的结果。目前,实际系统在通过视图执行更新操作方面的限制都很大。这样,排除了在通过连接、聚集等生成的视图上实施更新的可能。然而,理论上可以支持更新的视图集合应大得多。......
2025-09-30
在基于BRP的电力系统中,各参与方在电力市场环境中通过平衡机制来确保电力系统的安全运行。对于最后的这个措施,BRP可以使用储能以减少不平衡。图1-10给出了法国电力系统的不平衡调节曲线。总之,减少电能供需不平衡的需求导致了BRP对储能的应用需求,使其进行每日的充放电循环。在电力系统中,采用储能所带来的收益,取决于其建设和使用成本,以及系统进行不平衡调节所需的费用水平。......
2025-09-29
我们选用C-POREL作为样例,原因是其设计有特色。与POREL一样,C-POREL将数据目录设计成长目录、短目录两大类。C-POREL的目录体系是链接的表格结构。图4.1POREL的主要数据目录表关联图图4.1中主要表格的含义如下。在C-POREL中会区别对待它们,采用不同的并发控制策略,从而有利于提高并发度和系统的整体性能。......
2025-09-30
中央一级的学生管理行政机构主要是教育部高校学生司,地方设立高校学生处等,中心城市的教委也有设立学生处的情况。在现行情况下,教育部高校学生司和省教委的高校学生处还负责招生和就业制度改革,高等教育学历文凭的统一管理。由此可见,我国高校学生工作是深受教育行政影响的。但学生事务管理的理念要得以体现,并不是通过体制。因此,高校学生事务管理机制具有实现高校学生事务管理目标的功能。......
2025-09-30
查询分解是把分布演算查询映射到一个全局关系的代数查询上。从代数优化看,使用直接分步骤的算法可以获得一个“好的”结果,但是,进一步看未必是最佳的。换句话说,每次选最好的,不见得最终结果是最佳的。就像有一筐苹果,每天选一个质量最好的苹果吃,不见得是最好的吃法。数据定位决定查询涉及哪些数据片,并将分布查询转化成分片查询。......
2025-09-30
相关推荐