DBMS中的可序列化性大多数现代应用程序的支柱是DBMS的形式。当我们正确地设计表单时,它将为我们的应用程序提供高性能和相对的存储解决方案。在这个主题中,我们将解释序列化概念以及这个概念如何深刻地影响DBMS。我们还通过一些示例来理解可序列化性的概念。最后,我们将用一个说明可序列化性重要性的示例来结束这个主题。 什么是DBMS的可序列化性?在计算机科学领域,可序列化性是一个术语,它是系统的一种属性,描述了不同的进程如何操作共享数据。如果系统给出的结果与系统执行的操作相似,那么在这种情况下,我们称该系统为可序列化的。在这里,系统的合作意味着在执行数据时没有重叠。在DBMS中,当数据被写入或读取时,DBMS可以阻止所有其他进程访问数据。 在MongoDB开发人员证书中,DBMS使用各种锁系统来允许其他进程,同时保持数据的完整性。在MongoDB中,最受限制的序列化级别是雇员,可以通过两阶段锁定或2PL进行限制。在锁定级别的第一阶段,数据对象在操作执行之前被锁定。当事务完成后,就会释放数据对象的锁。此过程保证在操作中没有冲突,并且所有事务都将数据库视为冲突数据库。 两阶段锁定或2PL系统为数据库的冲突提供了强有力的保证。 它可以减少性能下降,然后增加获取容量的开销,然后释放数据锁。因此,系统允许约束序列化以提高DBMS的性能。这样可以确保最终结果与某些顺序执行相同,并对数据库中涉及的操作进行改进。 因此,可序列化性是描述不同进程如何操作共享数据的系统属性。在DBMS中,通过在其他进程执行期间锁定数据,采用了总体Serializable属性。此外,可序列化性确保最终结果等同于数据的顺序操作。 什么是可序列化的时间表?
可序列化性类型在DBMS中,即使所有事务都是并发的,也应该按照特定的顺序排列。如果所有事务都不可序列化,则会产生不正确的结果。 在DBMS中,有不同类型的可序列化对象。每种类型的序列化都有一些优点和缺点。两种最常见的可序列化类型是视图可序列化性和冲突可序列化性。 1.冲突可串行性冲突序列化性是序列化性中的一种冲突操作,它操作应按特定顺序执行的相同数据项,并维护数据库的一致性。在DBMS中,每个事务都有一些唯一的值,数据库的每个事务都基于数据库的这个唯一值。 这个惟一的值确保不会并发执行具有相同冲突值的两个操作。例如,让我们考虑两个示例,即订单表和客户表。一个客户可以有多个订单,但是每个订单只属于一个客户。数据库的冲突序列化性有一些条件。如下所示。
如果并发执行两个事务,则一个操作必须添加第一个客户的事务,而另一个操作则由第二个操作添加。此过程确保数据库中不会出现不一致的情况。 2.视图可串行性视图可序列化性是可序列化性中的一种操作,其中每个事务应该产生一些结果,这些结果是正确顺序执行数据项的输出。与冲突序列化不同,视图序列化的重点是防止数据库中的不一致。在DBMS中,视图的可序列化性为用户提供了一种冲突的方式来查看数据库。 在DBMS中,我们应该理解调度S1和S2,以便更好地理解视图的序列化性。这两个调度应该在两个事务T1和T2的帮助下创建。为了维护事务的等效物,每个调度都必须服从这三个事务。这三个条件如下。
用实例测试DBMS的可序列化性可序列化性是DBMS的一种属性,其中每个事务都是独立自动执行的,即使这些事务是并发执行的。换句话说,我们可以说,如果并发执行多个事务,那么序列化功能的主要工作是以顺序的方式安排这几个事务。 为了更好地理解,让我们用一个例子来解释这些。假设有两个用户Sona和Archita。每个执行两个事务。假设T1和T2事务由Sona执行,T3和T4事务由Archita执行。假设事务T1读写数据项A,事务T2读数据项B,事务T3读写数据项C,事务T4读数据项d,我们按如下方式调度上述事务。 让我们首先讨论为什么这些事务是不可序列化的。 为了使计划被认为是可序列化的,它必须首先满足冲突序列化属性。在上面的示例调度中,注意事务1 (T1)和事务2 (T2)在写入数据项B之前读取数据项B。这会导致T1和T2之间的冲突,因为它们都试图并发地读取和写入相同的数据项。因此,给定的调度不会与可序列化性冲突。 但是,我们的示例确实满足了另一种类型的序列化性,称为视图序列化性。视图序列化性要求,如果两个事务不能看到彼此的更新(即,一个事务不能看到另一个并发事务的影响),则该调度被认为是视图序列化的。在我们的示例中,事务2 (T2)看不到事务4 (T4)所做的任何更新,因为它们不共享公共数据项。因此,该调度被视为可序列化的。 需要注意的是,冲突序列化性是比视图序列化性更强的属性,因为它要求在进行任何更新之前解决所有潜在的冲突(即,每个事务必须在任何其他事务可以写入每个数据项之前读取或写入每个数据项)。视图序列化性只要求如果两个事务不能看到彼此的更新,那么调度是视图序列化的&它们之间是否存在潜在冲突无关紧要。 总而言之,这两个属性对于确保数据库管理系统中并发事务的正确性是必要的。 在DBMS中序列化的好处下面是在数据库中使用serializable的好处。
结论DBMS事务必须遵循ACID属性才能被认为是可序列化的。在DBMS中有不同类型的可序列化性,每种类型都有自己的优点和缺点。在大多数情况下,选择正确的序列化类型将在性能和正确性之间进行权衡。 选择错误的可序列化性类型可能会导致数据库出现难以调试和修复的错误。希望本指南能让您更好地理解DBMS中的可序列化性是如何工作的,以及存在哪些类型的可序列化性。
下一个话题
1 DBMS中的层结构
|