事务并发控制新机制_第1页
事务并发控制新机制_第2页
事务并发控制新机制_第3页
事务并发控制新机制_第4页
事务并发控制新机制_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1/1事务并发控制新机制第一部分事务并发控制机制概述 2第二部分乐观并发控制与悲观并发控制 5第三部分时间戳并发控制算法 8第四部分锁定机制的分类与实现 10第五部分多版本并发控制(MVCC) 13第六部分无锁并发控制技术 16第七部分分布式事务并发控制 19第八部分事务并发控制机制性能分析 21

第一部分事务并发控制机制概述关键词关键要点悲观并发控制

1.事务获取数据前会对数据进行加锁,防止其他事务修改或读取所锁定的数据。

2.分为共享锁和排他锁,共享锁允许事务读取数据,排他锁允许事务读取和修改数据。

3.存在死锁风险,需要采取死锁检测和处理机制。

乐观并发控制

1.事务在提交时才对数据加锁,其他事务可以同时读取或修改数据。

2.提交时对数据进行冲突检测,如果检测到冲突则回滚事务,不存在死锁风险。

3.效率较高,但并发争用频繁时可能会导致大量回滚。

基于时间戳的并发控制

1.为每个事务分配一个时间戳,代表事务的开始时间。

2.读取操作仅读取时间戳较早的事务写入的数据,写入操作仅允许写入时间戳较早的数据。

3.无需加锁,不存在死锁风险,并发性较好。

多版本并发控制

1.保存数据历史版本,每个更新操作创建一个新版本。

2.读操作读取特定版本的数据,写操作创建新版本,防止读写冲突。

3.空间开销较大,但提高并发性和事务隔离性。

无锁并发控制

1.通过原子操作和不可变数据结构来避免锁争用。

2.使用乐观并发控制原理,提交时进行冲突检测。

3.适用于数据争用较少的情况,并发性高,但需要保证原子操作的正确实现。

分布式事务并发控制

1.在分布式环境中实现事务并发控制,面临网络延迟和分区问题。

2.使用两阶段提交协议、三阶段提交协议或分布式一致性算法来保证分布式事务的原子性和隔离性。

3.复杂性高,性能开销较大。事务并发控制机制概述

并发控制是数据库管理系统中一种至关重要的机制,用于确保并发事务访问共享数据时的正确性和一致性。事务并发控制机制的目标是:

*保证事务原子性:事务中的所有操作要么全部完成,要么全部回滚,保持数据库数据的完整性。

*确保事务隔离:一个事务对数据库的修改不会被其他并发事务看到,直到该事务提交为止。

*保持事务持久性:一旦一个事务提交,其对数据库的修改将永久生效,即使系统发生故障。

为了实现这些目标,数据库管理系统采用了一系列并发控制机制,主要包括:

#互斥锁

互斥锁是一种基于锁定的并发控制机制。当一个事务需要访问共享数据时,它会请求一个锁。只有当锁可用时,事务才能进行操作。如果锁被另一个事务持有,该事务必须等待,直到锁可用为止。

互斥锁可以实现事务原子性和隔离性,但它可能会导致严重的并发问题,如死锁和饥饿。

#乐观并发控制

乐观并发控制是一种非阻塞的并发控制机制。它假设并发事务不会冲突,因此允许多个事务同时访问共享数据。只有当事务提交时,它才会检查是否有冲突。如果检测到冲突,则回滚冲突事务并重新执行。

乐观并发控制可以避免死锁和饥饿,但它可能会导致较高的回滚率和性能下降。

#多版本并发控制

多版本并发控制是一种混合的并发控制机制,它结合了互斥锁和乐观并发的优点。它为共享数据维护多个版本,每个事务读取和写入其自己的版本。当事务提交时,它会将自己的版本合并到公共版本中。

多版本并发控制可以实现事务原子性和隔离性,避免死锁和饥饿,并提供良好的并发性。

#时间戳并发控制

时间戳并发控制是一种基于时间戳的并发控制机制。它为每个事务分配一个唯一的时间戳。当事务访问共享数据时,它会检查数据的版本是否与自己的时间戳一致。如果不一致,则会回滚事务并重新执行。

时间戳并发控制可以避免死锁和饥饿,但它可能会导致较高的冲突率和性能下降。

#无锁并发控制

无锁并发控制是一种不使用显式锁定的并发控制机制。它依赖于特殊的数据结构和算法来确保并发事务之间的正确性。

无锁并发控制可以提供极高的并发性,但它可能复杂且难以实现。

#其他并发控制机制

除了上述主要并发控制机制外,还有其他并发控制机制,如:

*悲观并发控制:假设并发事务会冲突,因此在事务访问共享数据之前就获取锁。

*顺序化并发控制:强制事务按顺序执行,避免并发冲突。

*验证锁定:检查事务提交之前是否与其他事务冲突。

*快照隔离:为事务提供一个特定时间点的数据库快照,隔离其免受其他并发事务的影响。

数据库管理系统会根据具体应用场景和性能要求选择最合适的并发控制机制。第二部分乐观并发控制与悲观并发控制关键词关键要点乐观并发控制

1.在事务开始时不加锁,仅在提交事务时检查是否与其他事务冲突。

2.如果存在冲突,回滚事务并重试。

3.适用于冲突较少且数据读取操作较多的应用场景。

悲观并发控制

乐观并发控制

乐观并发控制是一种并发控制机制,假设事务不会发生冲突,直到它们实际发生。在这种方法中,每个事务都可以自由地读取和写入数据,而无须加锁。只有当一个事务尝试提交时,才会检查其是否与任何已提交的事务冲突。如果存在冲突,则回滚失败的事务。

优势:

*吞吐量高,因为事务不会被不必要的锁阻塞。

*可扩展性好,因为锁定的范围仅限于提交的事务。

*适用于读取密集型应用程序。

劣势:

*可能会导致大量的回滚,特别是在冲突频繁发生的情况下。

*需要额外的机制来处理死锁。

*不适用于写密集型应用程序。

实现:

*基于时间戳:每个事务在开始时分配一个时间戳。提交时,事务将检查其时间戳是否比任何已提交的事务的时间戳更新。如果更新,则提交成功;否则,回滚。

*基于版本:每个数据项都存储其不同版本的历史记录。事务可以读取或写入任何版本,而无须加锁。提交时,事务将创建一个新版本,并检查其是否与任何其他已提交版本冲突。如果冲突,则回滚。

悲观并发控制

悲观并发控制是一种并发控制机制,假设事务可能会发生冲突,并采取措施防止冲突发生。在这种方法中,事务在访问数据之前必须先获取锁。如果一个事务持有一个锁,则其他事务必须等待,直到锁被释放。

优势:

*保证事务的隔离性,防止冲突。

*适用于写密集型应用程序。

*易于实现和理解。

劣势:

*吞吐量较低,因为事务可能会被锁阻塞。

*可扩展性差,因为锁定的范围会随着事务数量的增加而扩大。

*适用于写入密集型应用程序。

实现:

*排他锁(X锁):事务在修改数据之前必须获取排他锁。持有一个X锁的事务具有对数据的独占访问权。

*共享锁(S锁):事务在读取数据之前必须获取共享锁。持有一个S锁的事务具有读取数据的权限,但不能修改数据。

*意向锁(IX锁和IS锁):事务在修改或读取大量数据之前必须获取意向锁。IX锁表示事务打算对数据进行修改,而IS锁表示事务打算读取数据。

比较

|特征|乐观并发控制|悲观并发控制|

||||

|并发性|高|低|

|可扩展性|好|差|

|适用性|读密集型|写密集型|

|回滚可能性|高|低|

|死锁处理|需要额外机制|不会出现死锁|

|实现复杂性|中等|低|

选择

选择并发控制机制取决于应用程序的具体要求。对于读密集型应用程序,乐观并发控制通常是更好的选择,因为它提供了更高的吞吐量和可扩展性。对于写密集型应用程序,悲观并发控制通常是更好的选择,因为它保证了数据的隔离性和完整性。第三部分时间戳并发控制算法关键词关键要点【时间戳并发控制算法】

1.原理:为每个事务分配一个唯一的时间戳,以区分并发执行的事务。当事务对数据项进行访问或更新时,会检查时间戳的顺序,以确保只有具有最新时间戳的事务才能执行操作。

2.优点:避免死锁和数据不一致性,无需显式锁定机制,开销较低。

3.缺点:可能导致事务中止,因为拥有较早时间戳的事务必须等待较晚时间戳的事务完成。

【时间戳顺序机制】

时间戳并发控制算法

时间戳并发控制算法是数据库系统中使用的一种并发控制机制,该机制利用时间戳对事务进行排序和管理,以确保事务执行的正确性和一致性。其核心思想是为每个事务分配一个唯一的时间戳,用于表示事务的起始时间。

算法原理

时间戳并发控制算法通过以下步骤实现并发控制:

1.时间戳分配:当事务开始执行时,系统会分配一个唯一的时间戳。这个时间戳通常是基于系统时钟或其他类似机制生成的。

2.读操作:当事务需要读取数据项时,它会检查该数据项的当前时间戳。如果数据项的时间戳比事务本身的时间戳小,则该事务可以读取该数据项。否则,该事务需要等待,直到数据项的时间戳更新。

3.写操作:当事务需要写入数据项时,它会检查该数据项的当前时间戳。如果数据项的时间戳比事务本身的时间戳小,则该事务可以写入该数据项,并将数据项的时间戳更新为自己的时间戳。否则,该事务需要等待,直到数据项的时间戳更新。

4.事务提交:当事务准备提交时,它会检查所有已读数据项的时间戳。如果任何数据项的时间戳比事务本身的时间戳大,则该事务将被中止。否则,该事务可以提交,其执行结果将成为数据库的永久部分。

优势

时间戳并发控制算法具有以下优势:

*简单有效:该算法实现简单,开销较低。

*保证正确性:它可以保证事务的原子性和隔离性,避免丢失更新和脏读等并发问题。

*支持并发:该算法允许多个事务并发执行,提高了系统的吞吐量。

*分布式性:该算法可以用于分布式数据库系统中,为跨多个节点的事务提供并发控制。

劣势

时间戳并发控制算法也存在一些劣势:

*时间戳冲突:如果多个事务同时尝试对相同的数据项进行写操作,则可能发生时间戳冲突。系统需要采取额外的机制来解决这些冲突,例如等待-回滚或标记-释放。

*饥饿问题:低时间戳的事务可能会被高时间戳的事务无限期饿死,无法获得执行的机会。

*时间戳管理:系统需要管理大量的时间戳,这可能会导致额外的开销和复杂性。

应用场景

时间戳并发控制算法适用于以下场景:

*读操作为主的系统:该算法在读操作远多于写操作的系统中表现良好,因为它可以减少写操作对读操作的阻塞。

*分布式数据库系统:该算法可用于分布式数据库系统中,因为它可以跨多个节点实施并发控制。

*轻量级数据库系统:该算法由于其简单和低开销,适用于轻量级数据库系统。

结论

时间戳并发控制算法是一种高效且可靠的并发控制机制,它可以保证事务的正确性和一致性。该算法适用于多种场景,并且在读操作为主的系统和分布式数据库系统中尤其有效。然而,在写操作频繁或存在时间戳冲突的场景中,可能需要考虑其他并发控制算法。第四部分锁定机制的分类与实现关键词关键要点【锁定机制的分类】:

1.悲观锁(悲观并发控制):

-假设并发操作会产生冲突。

-在操作数据之前,必须先获取锁。

-只有获取到锁才能操作数据,否则等待锁释放。

2.乐观锁(乐观并发控制):

-假设并发操作不会产生冲突。

-不在操作数据之前获取锁。

-在提交修改时,检查数据是否被其他事务修改。

-如果未被修改,则提交成功;否则,回滚事务。

【实现技术】:

锁定机制的分类与实现

数据库并发控制的核心技术之一是锁定机制。锁定机制是为了保证事务之间访问共享数据时的正确性和一致性,防止脏读、不可重复读和幻读等并发问题。

锁定的分类

根据锁定粒度,锁定机制可分为以下类型:

*表锁:对整个表进行加锁,锁定粒度最大,并发度最低。

*页锁:对表中的某个页面进行加锁,锁定粒度介于表锁和行锁之间,并发度适中。

*行锁:对表中的某一行进行加锁,锁定粒度最小,并发度最高。

根据锁定类型,锁定机制可分为以下类型:

*共享锁(读锁):允许多个事务同时对数据进行读取,但禁止写入。

*排他锁(写锁):只允许一个事务对数据进行写入,禁止其他事务读取或写入。

锁定的实现

不同的数据库系统采用不同的方法实现锁定机制,主要有以下几种:

*基于标记的锁定:通过在数据项中添加一个锁标记来表示其锁定状态,标记的值代表锁定的类型和持有锁的事务。

*基于时间戳的锁定:通过给每个事务分配一个时间戳,并比较时间戳来确定锁的优先级。时间戳较小的事务具有更高的优先级。

*基于排队顺序的锁定:通过维护一个请求锁的事务队列来确定锁的顺序,先请求的优先级更高。

*两阶段锁定(2PL):分为获取锁阶段和释放锁阶段,事务在获取锁阶段只能获取新锁,不能释放已有锁;在释放锁阶段只能释放已有锁,不能获取新锁。

锁定的选择

不同的锁定类型和粒度适用于不同的场景:

*高并发场景:采用行锁,可以最大化并发度。

*低并发场景:采用表锁,可以减少锁的开销。

*读多写少的场景:采用共享锁,可以提高读操作的性能。

*写多读少的场景:采用排他锁,可以防止脏读和不可重复读。

死锁的处理

死锁是指两个或多个事务互相等待对方的锁释放,导致系统无法继续执行。死锁的处理方法包括:

*死锁预防:通过限制事务获取锁的顺序来防止死锁。

*死锁检测:定期检查系统是否存在死锁,一旦检测到死锁,就回滚其中一个事务。

*死锁恢复:通过选择一个事务作为牺牲者,回滚其并释放其持有的锁,从而打破死锁。

优化锁定的性能

为了提高锁定机制的性能,可以采取以下优化措施:

*锁粒度调整:根据实际场景选择合适的锁粒度,避免过度锁定。

*锁升级:当多个共享锁要升级为排他锁时,直接升级为排他锁,而不是先释放共享锁再获取排他锁。

*锁合并:当多个同类型锁要并行应用于同一数据项时,合并为一个锁,降低锁定开销。

*锁粒度自适应:根据系统负载和事务类型动态调整锁粒度,提高并发度。第五部分多版本并发控制(MVCC)关键词关键要点多版本并发控制(MVCC)的原理

1.MVCC通过维护数据对象的多个版本来实现并发控制,每个版本都有自己的时间戳。

2.当一个事务读写数据时,它只会看到在事务开始时存在的数据版本。

3.通过比较事务的时间戳和数据版本的时间戳,可以避免写入冲突。

MVCC的实现技术

1.多版本时间戳(MVTS):为每个事务分配一个唯一的时间戳,用于标识其开始时间。

2.快照隔离(SI):读取操作读取事务开始时数据库的状态,而写入操作在事务提交后才可见。

3.读已提交(RC):读取操作只读取已经提交的事务的数据版本。

MVCC的优点

1.高并发性:事务之间不会相互阻塞,从而提高了数据库的并发能力。

2.数据一致性:MVCC确保事务只看到一致的数据状态。

3.可扩展性:由于事务隔离性强,MVCC适合于分布式数据库环境。

MVCC的缺点

1.空间开销:需要存储数据的多版本,可能会导致数据库空间占用增加。

2.回滚困难:如果一个事务回滚,需要删除该事务写入的所有数据版本。

3.复杂性:MVCC的实现和维护相对复杂。

MVCC在数据库中的应用

1.PostgreSQL、Oracle和MySQL等主流关系数据库管理系统(RDBMS)都支持MVCC。

2.MVCC广泛用于电子商务、社交网络和金融等需要高并发性和一致性的应用程序中。

3.新兴的时序数据库和云数据库服务也正在采用MVCC来提高并发控制效率。

MVCC的未来趋势

1.增强并发性:研究人员正在探索基于MVCC的新并发控制机制,以进一步提高数据库的并发能力。

2.时空隔离:MVCC与时空数据库相结合,可以实现更精细的并发控制,满足时空数据应用程序的需求。

3.分布式MVCC:随着分布式数据库的普及,分布式MVCC技术将成为未来研究的重点,以支持跨多个节点的高效并发控制。多版本并发控制(MVCC)

多版本并发控制(MVCC)是一种数据库并发控制机制,它通过维护数据项的多个版本来实现并发控制。每个事务对数据项的修改都会创建该数据项的一个新版本,并且事务只能访问其自己的版本。

MVCC的工作原理

*版本化:MVCC将数据项存储为多个版本,每个版本都包含一个时间戳,表示版本创建的时间。

*多版本访问:每个事务都有自己的一致性视图,它包含事务开始时存在的所有数据项版本。

*时间戳读:当一个事务读取数据项时,它获得与事务开始时间戳相对应的版本。

*时间戳写:当一个事务修改数据项时,它创建该数据项的新版本,并将其时间戳设置为当前时间。

*乐观并发:事务在提交之前不锁定数据项。相反,提交时检查数据项是否被其他事务修改。

MVCC的优点

*可扩展性:MVCC允许大量并发事务,因为事务不锁定数据项。

*减少死锁:MVCC消除了事务等待数据项锁定的死锁。

*提高吞吐量:MVCC允许事务并行执行,从而提高吞吐量。

*非阻塞读取:读取操作不阻塞写入操作,反之亦然。

MVCC的缺点

*版本膨胀:MVCC可能会导致版本膨胀,这可能会占用大量存储空间。

*读取幻像:在一个事务中,数据项可能在事务开始后被其他事务插入,然后在事务提交前被删除,从而导致读取幻像。

*写入幻像:在一个事务中,数据项可能在提交前被其他事务更新,从而导致写入幻像。

MVCC的实现

MVCC可以在数据库中通过以下机制实现:

*快照隔离:每当一个事务开始时,它都会创建一个自己的快照。事务只能访问该快照中存在的数据项版本。

*行版本控制:每个数据项都存储在多个版本中,每个版本都有一个时间戳。事务访问与事务开始时间戳相对应的版本。

*多版本时间戳(MVTS):使用基于时间的逻辑时钟来生成每个版本的时间戳。事务只能访问时间戳小于或等于其开始时间戳的版本。

与其他并发控制机制的比较

MVCC与其他并发控制机制(如锁)相比具有以下优点:

*可扩展性:MVCC可以处理大量的并发事务,而锁可能会限制并发性。

*复杂度:MVCC的实现比锁机制更复杂,需要更高级的数据库功能。

*资源开销:MVCC需要额外的存储空间来存储多个版本,而锁机制仅需要在事务执行期间锁定数据项。

适用场景

MVCC特别适合以下场景:

*需要高吞吐量和可扩展性

*需要减少死锁

*读取操作远多于写入操作

*系统频繁更新数据项第六部分无锁并发控制技术关键词关键要点【乐观并发控制】:

1.在事务提交前不加锁,仅在提交时检测冲突。

2.冲突检测通过比较事务开始时的数据库状态与提交时的状态。

3.冲突发生时,回滚冲突事务并重新执行。

【多版本并发控制】:

无锁并发控制技术

无锁并发控制技术是一种并行编程范式,它通过避免使用锁机制来协调对共享数据的并发访问,从而实现高性能和可扩展性。与基于锁的并发控制技术(例如互斥锁和读写锁)不同,无锁技术依赖于原子操作和无锁数据结构,从而消除了传统锁机制带来的开销和争用。

基本原理

无锁并发控制基于以下原则:

*原子操作:原子操作是不可中断的微小操作,它们对共享数据的操作是原子的(一次性)。这意味着一次原子操作要么完全执行,要么不执行。

*无锁数据结构:无锁数据结构是使用原子操作设计的,以确保并发访问的正确性和一致性。它们通过消除锁机制,允许线程同时访问和修改共享数据,从而提高性能。

技术

无锁并发控制技术包括:

*CAS(比较并交换):一种原子操作,它比较一个内存位置的当前值与给定值是否相同。如果相同,则执行交换操作;否则,不执行任何操作。

*LL/SC(加载链接/存储条件):一种原子操作,它将一个新值存储到内存位置,前提是该位置之前的值等于给定的期望值。

*ABA问题:当一个内存位置的值从A变为B,又变回A时,CAS操作可能无法检测到变化,从而导致不正确的结果。解决ABA问题的技术包括时间戳和版本控制。

*乐观并发控制:一种无锁技术,允许线程在不获取锁的情况下执行操作。如果多个线程尝试同时修改共享数据,则只允许第一个成功的线程提交其更改,而其他线程会回滚其操作。

*非阻塞算法:一种无锁技术,它使用无锁数据结构和原子操作来设计算法。这些算法保证进行中的操作不会阻塞其他线程的进度。

优点

无锁并发控制技术具有以下优点:

*高性能:由于避免了锁争用,无锁技术可以提供比基于锁的技术更高的性能。

*可扩展性:无锁技术可以轻松扩展到多核或分布式系统,因为它们不依赖于中央锁管理。

*容错性:无锁技术通过消除死锁和饥饿等与锁相关的错误,提高了系统容错性。

*简单性:无锁技术通常比基于锁的技术更易于设计和实现,因为它消除了锁管理的复杂性。

缺点

无锁并发控制技术也有一些缺点:

*复杂性:无锁数据结构和算法的实现通常比基于锁的技术更复杂。

*内存消耗:无锁技术可能需要更多的内存来存储版本信息和其他元数据。

*冲突检测:无锁技术需要高效的冲突检测机制,以确保共享数据的完整性和一致性。

应用场景

无锁并发控制技术广泛应用于以下场景:

*高性能计算:需要高吞吐量和低延迟的并行应用程序。

*并行算法:需要消除锁争用的并行算法,例如并行排序和搜索。

*多核和分布式系统:需要在多核或分布式环境中协调对共享数据的访问。

*实时系统:需要确定性响应时间的系统,因为锁争用可能导致不可预测的延迟。第七部分分布式事务并发控制分布式事务并发控制

在分布式系统中,事务并发控制(TCC)机制对于确保数据一致性至关重要。分布式事务并发控制涉及跨多个数据库或资源协调事务执行,以确保数据完整性和可用性。

CAP理论

在分布式系统中,TCC机制遵循CAP理论,该理论规定分布式系统无法同时满足以下三个属性:

*一致性(Consistency):在任何时间点,所有节点上的数据副本都保持相同。

*可用性(Availability):所有请求都能够在可接受的时间范围内得到响应。

*分区容忍(PartitionTolerance):分布式系统即使在网络分区情况下也能继续运行。

TCC机制通常优先考虑一致性和分区容忍,以支持可靠的数据存储。

TCC机制

TCC机制涉及三个阶段:

1.准备(Prepare):协调器广播"准备"消息到参与者(数据库或资源)。参与者准备提交事务,但不会实际提交。

2.提交(Commit):如果所有参与者都准备就绪,协调器广播"提交"消息。参与者提交事务,使数据变为永久。

3.回滚(Rollback):如果任何参与者无法准备就绪,协调器广播"回滚"消息。参与者回滚事务,确保数据不一致。

TCC机制类型

TCC机制有两种主要类型:

*二阶段提交(2PC):经典的TCC机制,协调器在单个事务中协调所有参与者。

*三阶段提交(3PC):扩展了2PC,引入了"预提交"阶段,增加了弹性和容错性。

TCC机制的优点

TCC机制的优点包括:

*强一致性:确保所有参与者的数据副本在提交后保持一致。

*隔离性:防止并发事务干扰彼此。

*容错性:在网络分区或参与者故障的情况下,可以继续执行事务。

TCC机制的缺点

TCC机制的缺点包括:

*性能开销:协调多阶段事务比单阶段事务需要更多的开销。

*死锁:可能发生死锁,其中两个或更多事务相互等待释放资源。

*协调复杂性:协调分布式事务可能非常复杂,需要仔细的设计和实现。

TCC机制在实践中的应用

TCC机制已广泛用于各种分布式系统中,包括:

*数据库系统(MySQL、PostgreSQL)

*分布式文件系统(HDFS、GFS)

*分布式消息传递平台(Kafka、RabbitMQ)

TCC机制对于确保这些系统的数据一致性和可用性至关重要,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论