精华内容
下载资源
问答
  • 数据库事务的粒度 1)查询优化 (1) Query Optimization) There are generally a variety of methods for computing the answer. It is the responsibility of the system to transform the query as entered by the ...

    数据库事务的粒度

    1)查询优化 (1) Query Optimization)

    There are generally a variety of methods for computing the answer. It is the responsibility of the system to transform the query as entered by the user into the equivalent query that can be computed more efficiently. The process of finding a good strategy for processing a query called query optimization.

    通常有多种计算答案的方法。 系统负责将用户输入的查询转换为可以更有效地计算的等效查询。 寻找一种用于处理查询的好的策略的过程称为查询优化。

    Query optimization is a function of RDBMS. The query optimizer attempts to determine the most efficient way to execute a given query by considering the possible query by considering the possible query plan. Generally, the query optimizer cannot be accessed by the user, once queries are submitted to the database server and parsed by the parser. They are then passed in query optimizer where optimization occurs. However, the database engine allows guiding the query optimizer with hints.

    查询优化是RDBMS的功能。 查询优化器尝试通过考虑可能的查询计划,通过考虑可能的查询,来确定执行给定查询的最有效方法。 通常,查询一旦提交到数据库服务器并由解析器解析,用户就无法访问查询优化器。 然后将它们传递到进行优化的查询优化器中。 但是,数据库引擎允许使用提示引导查询优化器。

    2)收回交易 (2) Recovery of transaction)

    In the database system must take actions in advance to ensure that the atomicity and durability properties of a transaction. An integral part of a database system that restores the database to the consistent state that existed before the failure. This recovery scheme must also provide high availability that it minimizes the time for which database not usable after failure.

    在数据库系统中必须事先采取措施,以确保事务的原子性和持久性。 数据库系统的组成部分,可将数据库还原到发生故障之前的一致状态。 此恢复方案还必须提供高可用性,以最大程度地减少故障后数据库无法使用的时间。

    3)多种粒度 (3) Multiple granularities)

    Multiple granularities | DBMS

    Locks: Shared lock, exclusive lock, intentionally shared lock (IS), intentional exclusive lock (IX), shared & Intentional executive (SIX).

    锁:共享锁,排他锁,有意共享锁(IS),有意排他锁(IX),共享和有意执行(SIX)。

    Shared lock: Shared locks support read integrity. There are some circumstances for this lock: request for a shared lock must wait if any parallel task owns an exclusive lock on the resource.

    共享锁:共享锁支持读取完整性。 此锁在某些情况下:如果任何并行任务在资源上拥有排他锁,则必须等待共享锁的请求。

    Request for an exclusive lock must wait if other tasks paralleled individually shared locks on this resource. A new request for a shared lock must wait if another task is waiting for an exclusive lock on a resource that already has a shared lock.

    如果其他任务并行共享该资源上的锁,则请求独占锁必须等待。 如果另一个任务正在等待对具有共享锁的资源的排他锁,则必须等待新的共享锁请求。

    Exclusive lock: Exclusive locks support write integrity. They can be owned by only one transaction at a time. Any transaction that requires an exclusive lock must wait if another task currently owns an exclusive lock or a shared lock against the requested resource.

    排他锁:排他锁支持写完整性。 一次只能拥有一项交易。 如果另一个任务当前对请求的资源拥有排他锁或共享锁,则需要排他锁的任何事务都必须等待。

    IS: Explicitly locking of lower level achieve but only with a shared lock.

    IS:显式锁定较低级别,但只能使用共享锁。

    IX: Explicitly locking at a lower level with exclusive (R1, R2 …. Rn) or shared lock (T1, T2 … Ta).

    IX:使用独占锁(R1,R2…。Rn)或共享锁(T1,T2…Ta)显式锁定在较低级别。

    SIX: Subtree rooted by that node is locked explicitly in shared mode & explicit locking is done at a lower level with the explicit mode.

    六:以该节点为根的子树在共享模式下显式锁定,显式锁定在显式模式下以较低级别完成。

    Comparative matrix:

    比较矩阵:

    Comparative matrix | DBMS

    Conclusion:

    结论:

    In this article, we have learned what is query optimization, recovery of transaction and multiple granularity protocol? Have a nice day! Happy Learning!

    在本文中,我们了解了什么是查询优化,事务恢复和多粒度协议 ? 祝你今天愉快! 学习愉快!

    翻译自: https://www.includehelp.com/dbms/query-optimization-recovery-of-transaction-and-multiple-granularity.aspx

    数据库事务的粒度

    展开全文
  • 粒度(数据库)

    2020-12-17 17:38:30
    粒度, 就是统计的粗细程度. 举两个例子, 销售库里的销售额, 可以是一天一个值, 也可以是一个月一个值, 甚至一年一个值, 这就是相对于时间维度表的粒度; 以" 组织结构 “为例, 比如我们的一个层级结构式: 总公司, 分...

    粒度, 就是统计的粗细程度. 举两个例子, 销售库里的销售额, 可以是一天一个值, 也可以是一个月一个值, 甚至一年一个值, 这就是相对于时间维度表的粒度;

    以" 组织结构 “为例, 比如我们的一个层级结构式: 总公司, 分公司, 部门, 科室. 这就是不同的粒度级别. 实际应用中, 比如有人问, 你的某个报表粒度是怎样的, 回答是, 组织结构我们的报表是分公司级别的, 但是数据粒度是到科室的(也就是你的事实表中, 层级聚合到科室级别). 所以我们就能支持到之上的"粗"粒度, 比如总公司, 分公司及部门. 如果我们的数据粒度是到分公司的, 那明显我们的报表就不能支持下级粒度的数据展现, 也就是说, 粒度还不够"细”.

    粒度也不是越细越好, 也要综合分析.

    展开全文
  • 使用基于属性的加密对电子医疗云进行细粒度数据库字段搜索
  • 并通过检测谓词冲突图中是否存在环的方法来避免冲突的全局事务可能会产生的全局死锁,不仅减小了死锁检测粒度,而且还提高了全局事务处理的并发度,同时也保持了集群中局部数据库的自治性。此外,还改进了一种以事务...
  • 数据库—封锁的粒度

    千次阅读 2018-01-01 17:08:53
    封锁的粒度 封锁对象的大小称为封锁粒度。 封锁对象可以是逻辑单元,也可以是...因此,选择封锁粒度要遵循一定的原则:封锁的粒度越大,数据库所能够封锁的数据单元就越少,并发度就越小,系统开销也越小;封锁的粒度

    封锁的粒度

    封锁对象的大小称为封锁粒度。

    封锁对象可以是逻辑单元,也可以是物理单元,其中,逻辑单元包括:属性值、属性值的集合、元组、关系、索引项、整个索引、整个数据库等,物理单元包括:页(数据页或索引页)、物理记录等。

    封锁粒度与系统的并发度和并发控制的开销密切相关。因此,选择封锁粒度要遵循一定的原则:封锁的粒度越大,数据库所能够封锁的数据单元就越少,并发度就越小,系统开销也越小;封锁的粒度越小,并发度较高,但系统开销也就越大。

    多粒度封锁

    在一个系统中同时支持多种封锁粒度供不同的事务选择。

    选择封锁粒度需同时考虑封锁开销和并发度两个因素, 适当选择封锁粒度。

    例如:需要处理大量元组的用户事务:以关系为封锁单元

              需要处理多个关系的大量元组的用户事务:以数据库为封锁单位

              只处理少量元组的用户事务:以元组为封锁单位


    介绍多粒度封锁之前要先了解多粒度树的概念:

    多粒度树:

    1.以树形结构来表示多级封锁粒度;

    2.根结点是整个数据库,表示最大的数据粒度;

    3.叶结点表示最小的数据粒度

    如下图为四级粒度树:


    多粒度封锁协议:

    允许多粒度树中的每个结点被独立地加锁

    对一个结点加锁意味着这个结点的所有后裔结点也被加以同样类型的锁

    在多粒度封锁中一个数据对象可能以两种方式封锁:显式封锁和隐式封锁

    显示封锁与隐式封锁:

    显式封锁:直接加到数据对象上的封锁

    隐式封锁:是该数据对象没有独立加锁,是由于其上级结点加锁而使该数据对象加上了锁。

    显式封锁和隐式封锁的效果是一样的,系统检查封锁冲突时,不仅要检查显式封锁,还要检查隐式封锁。

    如图:

     

    对关系R1加上了封锁,隶属于关系R1的子节点的元组就加上了对应的隐式封锁。在系统检查封锁的冲突时,不仅要检查关系R1的封锁是否有冲突,还要检查子节点的元组的隐式封锁是否有冲突,以及关系R1的祖先节点数据库是否有封锁冲突。

     

    因此,对某个数据对象加锁,系统要检查三项:

    该数据对象有无显式封锁与之冲突

    所有上级结点:检查本事务的显式封锁是否与该数据对象上的隐式封锁冲突(由上级结点已加的封锁造成的)

    所有下级结点:看上面的显式封锁是否与本事务的隐式封锁(将加到下级结点的封锁)冲突

    意向锁

    引进意向锁(intention lock)目的:提高对某个数据对象加锁时系统的检查效率

    如果对一个结点加意向锁,则说明该结点的下层结点正在被加锁

    对任一结点加基本锁,必须先对它的上层结点加相应的意向锁

    例如:

     

    要对元组加X锁,应先对元组的祖先节点(关系R1和数据库)加对应的意向锁。

    常用意向锁

    意向共享锁(Intent Share Lock,简称IS锁)

    意向排它锁(Intent Exclusive Lock,简称IX锁)

    共享意向排它锁(Share Intent Exclusive Lock,简称SIX锁)

    IS锁:如果对一个数据对象加IS锁,表示它的后裔结点拟(意向)加S锁

    如图:


    如果对元组加了S锁,就要对相应的祖先节点(关系R1、数据库)加意向锁IS。

     

    IX锁:如果对一个数据对象加IX锁,表示它的后裔结点拟(意向)加X锁。原理与上图相似。

    如果对元组加了X锁,就要对相应的祖先节点(关系R1、数据库)加意向锁IX。


    SIX锁:如果对一个数据对象加SIX锁,表示对它加S锁,再加IX锁,即SIX = S +IX。

     


    数据锁的相容矩阵:


    如矩阵中所示:这里只对其中几条数据做出解释,例如,第3行第3列,事务T1加了IS锁,说明事务T1的子孙节点加了S锁,事务T2也加S锁,读锁之间是相容的,故两个IS锁之间相容;第3行第4列,事务T1加了IS锁,说明事务T1的子孙节点加了S锁,事务T2加IX锁,说明事务T2的某个子孙节点加了X锁,由于加锁的对象可能不是同一个子孙节点,故相容;第4行第4列,如果事务T1加了IX锁,事务T2也对此节点加IX锁,由于加锁对象可能不同,故相容;第4行第5列,如果事务T1加了IX锁,事务T2想要加SIX锁,由于事务IX锁与S锁不相容,故IX与S锁也不想容。

    锁的强度

    锁的强度是指它对其他锁的排斥程度

    一个事务在申请封锁时以强锁代替弱锁是安全的,反之不一定。

    如图:

     

    锁强:X  >  SIX  >  (S=IX)  >  IS


    具有意向锁的多粒度封锁方法

    申请封锁时应该按自上而下的次序进行

    释放封锁时则应该按自下而上的次序进行

     

    具有意向锁的多粒度封锁方法

    提高了系统的并发度

    减少了加锁和解锁的开销

    在实际的数据库管理系统产品中得到广泛应用

     

     

    展开全文
  • 数据库原理 封锁的粒度

    千次阅读 2020-03-15 11:26:08
    封锁的粒度越大 数据库能够封锁的数据单元就越少,并发度就越小,系统开销也就越小 封锁的粒度越小数据库能够封锁的数据单元就越多,并发度就越高,系统开销也就越大 因此封锁粒度是一把双刃剑,所以在一个系统...

    1、封锁粒度是什么?

    封锁对象的大小称为封锁的粒度

    封锁对象:逻辑单元、物理单元

    2、选择封锁粒度的原则?

    封锁粒度系统的并发度系统的开销密切相关

    • 封锁的粒度越大 数据库能够封锁的数据单元就越少,并发度就越小,系统开销也就越小
    • 封锁的粒度越小 数据库能够封锁的数据单元就越多,并发度就越高,系统开销也就越大

      

    因此封锁粒度是一把双刃剑,所以在一个系统当中如果能够提供多种封锁粒度以便不同的事务按照自己的需求选择就比较完美了

    这就是所谓的:多粒度封锁

    3、具体如何选择封锁粒度呢?

    • 需要处理大量元组的用户事务,以关系为封锁单元
    • 需要处理多个关系的大量元组的用户事务,以数据库为封锁单元
    • 只是处理少量元组的用户事务,以元组为封锁单元

    4、多粒度封锁

    • 以树形结构来表示多级封锁粒度
    • 根节点是整个数据库,表示最大的数据粒度
    • 叶节点是最小的数据粒度

                                          三级粒度树                                                                             四级粒度树

      

    5、多粒度封锁协议

    • 允许粒度树中的每一个节点独立的被加锁
    • 对一个节点加锁,意味着这个节点的所有后裔节点也同样被加上相同类型的锁
    • 因此多粒度封锁中一个数据对象可能以两种方式封锁:显式封锁、隐式封锁

    6、显式封锁和隐式封锁

    • 显式封锁: 直接加到数据对象上的封锁
    • 隐式封锁:是该数据对象没有独立加锁,是由于其 上级结点加锁而使该数据对象加上了锁
    • 显式封锁和隐式封锁的效果是一样的

    显然这种封锁的效率很低,因此引入了一种新型封锁-意向锁

    7、意向锁的目的

    • 目的是简化加锁时系统的检查过程,提高了对某个数据对象加锁时系统的检查效率

        

    8、意向锁的类型

    • 意向共享锁(IS锁)
    • 意向排它锁(IX锁)
    • 共享意向排它锁(SIX锁):当我们想读一个数据对象,并且更新他的后代节点需要加SIX锁

        

        

    9、意向锁的封锁的相容性

    • 要考虑隐式锁的因素
    • 要考虑意向锁并不是给所有的后代节点都加锁
    • 要考虑不同后代的因素,只要有可能不冲突就可以满足意向锁的封锁请求,如果冲突了,系统会在事务给后代节点加锁冲突的时候拒绝他的请求

       

    10、锁的强度

    锁的强度是指他对其它锁的排斥程度

    一个事务在申请封锁的时候以强锁代替弱锁时安全的,反之则不然。

    11、具有意向锁的多粒度封锁方法的特点

    • 申请封锁应该自上而下
    • 释放封锁应该自下而上

      

    优点:

    12、小结+思考

    13、本章总结

      

     

     

    展开全文
  • 关于数据库粒度封锁的学习攻略
  • 数据库锁的粒度

    千次阅读 2014-10-10 18:50:35
    所谓粒度,即细化的程度。锁的粒度越大,则并发性越低且开销大;锁的粒度越小,则并发性高且开销小。
  •  数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。 加锁是实现...
  • 封锁对象的大小被称为封锁的粒度,这个对象可以是数据库、关系,也可以是元组。 为什么要引入多粒度锁协议? 封锁粒度大,系统被封锁的对象越少,并发度越小,系统开销越小。 封锁粒度越小,系统被封锁的对象越多,...
  • 关于数据库的锁粒度

    2019-01-13 15:41:37
    将锁粒度固定在某个级别,可以提供对一些场景的良好的支持,但同时会失去对另外一些场景的支持的性能。 1,表锁 表锁是MySQL中最基本的锁策略,并且是开销最小的策略。表锁非常适用于前面描述的邮箱加锁机制:...
  • 数据库的细粒度访问控制

    千次阅读 2010-10-20 10:28:00
    通常把规定访问整个数据库表或由基本表导出的视图的某个层称为粗粒度的访问控制,而细粒度控制则是把安全控制细化到数据库的行级或列级。 我们给银行上 了一套系统,银行的政策允许所有财务经理可以访问所有...
  • 通过扩展SQL语句支持关系数据库粒度访问控制(FGAC)策略的描述,扩展的SQL语句同时支持封闭式细粒度访问控制策略和开放式细粒度访问控制策略的描述,即支持细粒度的否定授权。给出了基于查询改写思想的动态查询...
  • 讨论了数据库安全的一个前沿屏蔽一访问控制的问题,并且针对当今数据库的发展需求,重点介绍了细粒度的访问控制技术以及它的实施层次问题,在此基础上,详细的阐述了对数据库层次上的细粒度访问控制的问题。
  • 1。利用应用上下文实现细粒度访问控制( 1: Create a PL/SQL Package to Set the Secure Context 2: Create the Secure Context and Associ...
  • 数据库粒度以及事务隔离级别

    千次阅读 2019-01-17 11:55:43
    MySQL锁策略读写锁锁粒度表锁(table lock)行锁(row lock)事务隔离级别READ UNCOMMITTED(未提交读)READ COMMITED(提交读)REPEATABLE READ(可重复读)SERIALIZABLE(可串行化) 锁策略 读写锁 为了避免在同一...
  • 保证最小粒度的动作 父记录必需 父表中的动作
  • 电力物联网场景下基于零信任的分布式数据库粒度访问控制.pdf
  • 程序设计与数据库结构的粒度

    千次阅读 2012-02-24 09:18:27
    先从我做的一个项目开始这个话题,我单位做的一卡通系统在原来设计的的数据库结构上不断的升级目前好像有点吃不消了。原来我给每个用户分配的用户类型来管理用户的单价。 用户类型 编号 4 数字(3) - √ - 名称 20...
  • 第二十三讲 封锁的粒度 ...封锁的粒度越大,数据库所能够封锁的数据单元就越来越少,并发度就越小,系统开销也越小。 封锁的粒度越小,并发度越高,但是系统开销也就越大。 封锁粒度越小,并发度越高。 例 若
  • 数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。 加锁是实现...
  • 使用SpringBoot与shiro实现基于数据库的细粒度动态权限管理系统实例
  • 数据库锁的分类(粒度,级别)

    千次阅读 2019-04-07 21:45:26
    数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性。 加锁是实现...
  • 由于隐私保护和基于Web的安全需求的驱动,数据库粒度访问控制引起了研究者的广泛关注。细粒度访问控制主要通过查询改写方法实现。然而,在以往的查询改写算法中,没有考虑用户提交的SQL语句的特性和细粒度访问控制...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 122,632
精华内容 49,052
关键字:

粒度数据库