版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Chapter10
UpdateTransaction2022/12/23UpdateTransaction2ch10UpdateTransactionDef.10.1TransactionAtransactionisameanstopackagetogetheranumberofdatabaseoperationsperformedbyaprocess,sothedatabasesystemcanprovideseveralguarantees,calledtheACIDproperties.BEGINTRANSACTIONop1;op2;opN;ENDTRANSACTION2022/12/23UpdateTransaction3ch10UpdateTransactionBeginatransactionfirstdatabaseoperationEndatransactionbyexecutingBEGINTRANSACTIONop1;op2;opN;ENDTRANSACTIONexecsqlcommitwork;orexecsqlrollbackwork;2022/12/23UpdateTransaction4TransactionsManyenterprisesusedatabasestostoreinformationabouttheirstatee.g.,BalancesofalldepositorsatabankWhenaneventoccursintherealworldthatchangesthestateoftheenterprise,aprogramisexecutedtochangethedatabasestateinacorrespondingwaye.g.,BankbalancemustbeupdatedwhendepositismadeSuchaprogramiscalledatransaction2022/12/23UpdateTransaction5WhatDoesaTransactionDo?ReturninformationfromthedatabaseRequestBalancetransaction:Readcustomer’sbalanceindatabaseandoutputitUpdatethedatabasetoreflecttheoccurrenceofarealworldeventDeposittransaction:Updatecustomer’sbalanceindatabaseCausetheoccurrenceofarealworldeventWithdrawtransaction:Dispensecash(andupdatecustomer’sbalanceindatabase)2022/12/23UpdateTransaction6TransactionsTheexecution
ofeachtransactionmustmaintaintherelationshipbetweenthedatabasestateandtheenterprisestate2022/12/23UpdateTransaction7Example:bankingapplicationswithfilesystemproblemsCreatinganinconsistentresultErrorsofconcurrentexecutionUncertaintyastowhenchangesepermanent2022/12/23UpdateTransaction8Problems:CreatinganinconsistentresultOurapplicationistransferringmoneyfromoneaccounttoanother(differentpages).Oneaccountbalancegetsouttodisk(runoutofbufferspace)andthenthecomputercrashes.2022/12/23UpdateTransaction9problemsErrorsofconcurrentexecutionTeller1transfersmoneyfromAcctAtoAcctBofthesamecustomer,whileTeller2isperformingacreditcheckbyaddingbalancesofAandB.Teller2canseeAaftertransfersubtracted,Bbeforetransferadded.2022/12/23UpdateTransaction10problemsUncertaintyastowhenchangesepermanentAttheveryleast,wewanttoknowwhenitissafetohandoutmoney:don'twanttoforgetwediditifsystemcrashes,thenonlydataondiskissafe.2022/12/23UpdateTransaction11TransactionsThereforeadditionalrequirementsareplacedontheexecutionoftransactionsbeyondthoseplacedonordinaryprograms:AtomicityConsistencyIsolationDurabilityACIDproperties2022/12/23UpdateTransaction12Atomicity
(原子性)Thesetofrecordupdatesthatarepartofatransactionareindivisible(eithertheyallhappenornonehappen).Thisistrueeveninpresenceofacrash.Consistency
(一致性)Ifalltheindividualprocessesfollowcertainrules(moneyisneithercreatednordestroyed)andusetransactionsright,thentheruleswon'tbebrokenbyanysetoftransactionsactingtogether.2022/12/23UpdateTransaction13Isolation
(隔离性)MeansthatoperationsofdifferenttransactionsseemnottobeinterleavedintimeasifALLoperationsofoneTxbeforeorafteralloperationsofanyotherTy.Durability
(持久性)WhenthesystemreturnstothelogicafteraCommitWorkstatement,itguaranteesthatallTxUpdatesareondisk.NowATMmachinecanhandoutmoney.ACIDguarantees2022/12/23UpdateTransaction1410.1TransactionalHistoriesActionsinthedatabaseReadsandWritesofdataitemsRi(A):transactionwithidentificationnumberi(Ti)readsdataitemA.Wj(B):transactionTjwritesB.AUpdateStatementwillresultinalotofoperations:Rj(B1)Wj(B1)Rj(B2)Wj(B2)...Rj(Bn)Wj(Bn)2022/12/23UpdateTransaction15[10.1.2]
historyorschedule(调度)Figure10.1ThejoboftheSchedulerlookatthehistoryofoperationsasitcomesinandprovidetheIsolationguarantee,bysometimesdelayingsomeoperations,andoccasionallyinsistingthatsometransactionsbeaborted.R2(A,50)W2(A,20)R1(A,20)R1(B,50)R2(B,50)W2(B,80)C1C22022/12/23UpdateTransaction1610.1TransactionalHistoriesserialschedule(串行调度)alloperationsofaTxareperformedinsequencewithnointerleavingwithothertransactions.Schedulerassuresthatthesequenceofoperationsinhistoryisequivalentineffecttosomeserialschedule.2022/12/23UpdateTransaction17Example10.1.1ThetwoelementsAandBin(10.1.2)areaccountrecordswitheachhavingbalance50tobeginwith.T1isaddingupbalancesoftwoaccountsT2istransferring30unitsfromAtoBR2(A,50)W2(A,20)R1(A,20)R1(B,50)R2(B,50)W2(B,80)C1C2resultoftransaction(schedule10.1.2)T1:A+B=70T2:A=20,B=80(failsthecreditcheck)2022/12/23UpdateTransaction18Example10.1.1(cont.)2022/12/23UpdateTransaction1910.1TransactionalHistoriesExample10.1.1(cont.)Butthiscouldneverhavehappenedinaserialschedule,wherealloperationofT1occurredbeforeorafteralloperationsofT2.(following)R1(A,50)R1(B,50)C1
R2(A,50)W2(A,20)
R2(B,50)W2(B,80)C2R2(A,50)W2(A,20)
R2(B,50)W2(B,80)C2
R1(A,20)R1(B,80)C1
or2022/12/23UpdateTransaction20ACID(1)AtomicThesetofupdatescontainedinatransactionmustsucceedorfailasaunit.ConsistentCompletetransactionaltransformationsondataelementsbringthedatabasefromoneconsistentstatetoanother.2022/12/23UpdateTransaction21ACID(2)IsolatedEventhoughtransactionsexecuteconcurrently,itappearstoeachsuccessfultransactionthatithasexecutedinaserialschedulewiththeothers.DurableOnceatransactioncommits,thechangesithasmadetothedatawillsurviveanymachineorsystemfailures.2022/12/23UpdateTransaction2210.2InterleavedRead/WriteOperationsIfaserialhistoryisalwaysconsistent,whydon'twejustenforceserialhistories?Figure10.3TxhasrelativelysmallCPUburstsandthenI/OduringwhichCPUhasnothingtodo.Whatdowewanttodo?Figure10.4:LetanotherTyrunduringslackCPUtime.2022/12/23UpdateTransaction2310.2InterleavedRead/WriteOperationsFigure10.5~6Ifwehavemanydisksinuse,wecankeeptheCPU100%occupied.WhenonethreaddoesanI/O,wanttofindanotherthreadwithcompletedI/Oreadytorunagain.2022/12/23UpdateTransaction2410.3SerializabilityandthePrecedenceGraphSerializabilitySchedule(可串行化调度)TheseriesofoperationsisEQUIVALENTtoaSerialscheduleScheduler(调度器)findasetofrulesfortheSchedulertoallowoperationsbyinterleavedtransactionsandguaranteeSerializability.Howcanweguaranteethis?2022/12/23UpdateTransaction2510.3SerializabilityandthePrecedenceGraphFirstIftwotransactionsneveraccessthesamedataitems,soWecancommuteoperationsinthehistoryofrequestspermittedbythescheduleruntilalloperationsofoneTxaretogether(serialhistory).Theoperationsdon'taffecteachother,andorderdoesn'tmatter.2022/12/23UpdateTransaction26Ifwehaveoperationsbytwodifferenttransactionsthatdoaffectthesamedataitem,whatthen?Thereareonlyfourpossibilities...R1(A)R2(A)...Thiscanbecommuted.IfthereisathirdtransactionT3,where:...R1(A)...W3(A)...R2(A)...thenthereads(R1andR2)cannotbecommuted....R1(A)W2(A)......W1(A)R2(A)......W1(A)W2(A)...Thesetwooperationscannotcommute.2022/12/23UpdateTransaction2710.3SerializabilityandthePrecedenceGraphDef.10.3.1ConflictingOperations(冲突动作)TwooperationsXi(A)andYj(B)inahistoryaresaidtoconflict
(i.e.,theordermatters)ifandonlyifthefollowingthreeconditionshold:A
BijOneofthetwooperationsXorYisawrite(W).OthercanbeRorW.2022/12/23UpdateTransaction28Def.10.3.1ConflictingOperations(冲突动作)TwooperationsXi(A)andYj(B)inahistoryA
BOperationsondistinctdataitemsneverconflict.ijOperationsconflictonlyiftheyareperformedbydifferenttransactions.TwooperationsoftheSAMEtransactionalsocannotbecommutedinahistory,why
?OneofthetwooperationsXorYisawrite(W).OthercanbeRorW.2022/12/23UpdateTransaction2910.3SerializabilityandthePrecedenceGraphFigure10.7TheThreeTypesRi(A)Wj(A)meaning,inahistory,Ri(A)followedbyWj(A)Wi(A)Rj(A)Wi(A)Wj(A)2022/12/23UpdateTransaction3010.3SerializabilityandthePrecedenceGraphDef.10.3.2AninterpretationofanarbitraryhistoryHconsistsof3parts.Adescriptionofthepurposeofthelogicbeingperformed.Specificationofprecisevaluesfordataitemsbeingreadandwritteninthehistory.Aconsistencyrule,apropertythatisobviouslypreservedbyisolatedtransactionsofthelogicdefinedin1).2022/12/23UpdateTransaction3110.3SerializabilityandthePrecedenceGraphExample10.3.1R2(A)W2(A)R1(A)R1(B)R2(B)W2(B)C1C2H1:HereisaninterpretationT1isdoingacreditcheck,addingupthebalancesofAandB.T2istransferringmoneyfromAtoB.TheConsistencyRule:Neithertransactioncreatesordestroysmoney.2022/12/23UpdateTransaction32ThescheduleH1isnotserializability(SR)becauseIfscheduleH1isequivalenttoserializabilityscheduleS(H1),thenW2(A)&R1(A)isconflictingoperations,and W2(A)<<H1R1(A),soW2(A)<<S(H1)R1(A)ItmeansthatT2<<S(H1)T1R1(B)&W2(B)isconflictingoperations,and R1(B)<<H1W2(B),soR1(B)<<S(H1)W2(B)ItmeansthatT1<<S(H1)T2so,scheduleH1isnotserializability.(non-SR)Example10.3.1R2(A)W2(A)R1(A)R1(B)R2(B)W2(B)C1C2H1:2022/12/23UpdateTransaction3310.3SerializabilityandthePrecedenceGraphExample10.3.2lostupdate(dirtywrite)H2:R1(A)R2(A)W1(A)W2(A)C1C2operations1and4implythatT1<<S(H2)T2operations2and3implythatT2<<S(H2)T1so,H2isnon-SRscheduleH2T1&T2T2&T1valueofA150190190anexampleofH2R1(A,100)R2(A,100)W1(A,140)W2(A,150)C1C22022/12/23UpdateTransaction3410.3SerializabilityandthePrecedenceGraphExample10.3.3BlindWritesH3:W1(A)W2(A)W2(B)W1(B)C1C2operations1and2implythatT1<<S(H3)T2operations3and4implythatT2<<S(H3)T1so,H3isnon-SRscheduleH3T1&T2T2&T1valueofA808050valueofB502050anexampleofH3W1(A,50)W2(A,80)W2(B,20)W1(B,50)C1C22022/12/23UpdateTransaction3510.3SerializabilityandthePrecedenceGraphDef.10.3.3.ThePrecedenceGraphAprecedencegraphforahistoryHisadirectedgraphdenotedbyPG(H).TheverticesofPG(H)correspondtothetransactionsthathaveCOMMITTEDinHmittedtransactionsdon'tcount.AnedgeTiTjexistsinPG(H)whenevertwoconflictingoperationsXiandYjoccurinthatorderinH.Thus,TiTjshouldbeinterpretedtomeanthatTimustprecedeTjinanyequivalentserialhistoryS(H).2022/12/23UpdateTransaction36Theorem10.3.4TheSerializabilityTheoremAhistoryHhasanequivalentserialexecutionS(H)ifftheprecedencegraphPG(H)containsnocircuit.Proof.Assumetherearemtransactionsinvolved,andlabelthemT1,T2,...,Tm.BecauseInanydirectedgraphwithnocircuitthereisalwaysavertexwithnoedgeenteringit,thusthereisavertex,ortransactionTk,withnoedgeenteringit.WechooseTktobeTi(1).2022/12/23UpdateTransaction37Proof.(cont.)NotethatsinceTi(1)hasnoedgeenteringit,thereisnoconflictinHthatforcessomeothertransactiontocomeearlier.Nowremovethisvertex,Ti(1),fromPG(H)andalledgesleavingit.CalltheresultinggraphPG1(H)withnocircuit.Continueinthisfashion,removingTi(2)andallit'sedgesfromPG1(H),andsoon,choosingTi(3)fromPG2(H),...,Ti(m)fromPGm-1(H).2022/12/23UpdateTransaction3810.4LockingEnsuresSerializabilityTwo-PhaseLocking(2PL)封锁(lock)封锁类型常用的两种类型封锁锁相容矩阵2022/12/23UpdateTransaction393910.4LockingEnsuresSerializability封锁(lock)使用封锁技术的前提在一个事务访问数据库中的数据时,必须先获得被访问的数据对象上的封锁,以保证数据访问操作的正确性和一致性。封锁的作用在一段时间内禁止其它事务在被封锁的数据对象上执行某些类型的操作(由封锁的类型决定)同时也表明:持有该封锁的事务在被封锁的数据对象上将要执行什么类型的操作(由系统所采用的封锁协议来决定)2022/12/23UpdateTransaction4010.4LockingEnsuresSerializability封锁类型常用的封锁类型有两种排它锁(eXclusivelock,简称X锁)又被称为‘写封锁’
(WL–WriteLock)共享锁(Sharinglock,简称S锁)又被称为‘读封锁’
(RL–ReadLock)2022/12/23UpdateTransaction41排它锁(X锁)特性只有当数据对象A没有被其它事务封锁时,事务T才能在数据对象A上施加‘X锁’;如果事务T对数据对象A施加了’X锁’,则其它任何事务都不能在数据对象A上再施加任何类型的封锁。10.4LockingEnsuresSerializability2022/12/23UpdateTransaction42排它锁(cont.)作用如果一个事务T申请在数据对象A上施加‘X锁’并得到满足,则:事务T自身可以对数据对象A作读、写操作,而其它事务则被禁止访问数据对象A这样可以让事务T独占该数据对象A,从而保证了事务T对数据对象A的访问操作的正确性和一致性。缺点:降低了整个系统的并行性10.4LockingEnsuresSerializability‘X锁’必须维持到事务T的执行结束2022/12/23UpdateTransaction43共享锁(S锁)特性如果数据对象A没有被其它事务封锁,或者其它事务仅仅以‘S锁’的方式来封锁数据对象A时,事务T才能在数据对象A上施加‘S锁’;10.4LockingEnsuresSerializability2022/12/23UpdateTransaction44共享锁(cont.)作用如果一个事务T申请在数据对象A上施加‘S锁’并得到满足,则:事务T可以对‘读’数据对象A,但不能‘写’数据对象A不同事务所申请的‘S锁’可以共存于同一个数据对象A上,从而保证了多个事务可以同时‘读’数据对象A,有利于提高整个系统的并发性在持有封锁的事务释放数据对象A上的所有‘S锁’之前,任何事务都不能‘写’数据对象A‘S锁’不必维持到事务T的执行结束(依封锁协议而定)10.4LockingEnsuresSerializability2022/12/23UpdateTransaction45‘排它锁’与‘共享锁’的相互关系可以用如下图所示的‘锁相容矩阵’来表示。当前事务申请的锁其它事务已持有的锁YesYesNoS锁YesNoNoX锁-S锁X锁锁相容矩阵10.4LockingEnsuresSerializability2022/12/23UpdateTransaction46合适(wellformed)事务如果一个事务在访问数据库中的数据对象A之前按照要求申请对A的封锁,在操作结束后释放A上的封锁,这种事务被称为合适事务。‘合适事务’是保证并发事务的正确执行的基本条件。10.4LockingEnsuresSerializability2022/12/23UpdateTransaction4710.4LockingEnsuresSerializabilityDef.10.4.1Two-PhaseLocking(2PL)Lockstakeninreleasedfollowingthreerules.锁申请规则锁申请的等待规则单个事务的锁申请与释放规则2022/12/23UpdateTransaction4810.4LockingEnsuresSerializabilityDef.10.4.1Two-PhaseLocking(cont.)BeforeTicanreadadataitem,Ri(A),schedulerattemptstoReadLocktheitemonit'sbehalf,RLi(A);before
Wi(A),tryWriteLock,WLi(A).2022/12/23UpdateTransaction4910.4LockingEnsuresSerializabilityDef.10.4.1Two-PhaseLocking(cont.)2)Ifconflictinglockonitemexists,requestingTx
mustWAIT.Conflictinglockscorrespondingtoconflictingoperations:twolocksonadataitemconflictiftheyareattemptedbydifferentTxsandatleastoneofthemisaWL.2022/12/23UpdateTransaction5010.4LockingEnsuresSerializabilityTherearetwophasestolockingthegrowingphasetheshrinkingphasewhenlocksarereleased:RUi(A);Theschedulermustensurethatcan'tshrink(dropalock)andthengrowagain(takeanewlock).Rule3)impliescanreleaselocksbeforeCommit;MoreusualtoreleasealllocksatonceonCommit,andweshallassumethisinwhatfollows.2022/12/23UpdateTransaction5110.4LockingEnsuresSerializabilityNotethatatransactioncanneverconflictwithitsownlocks!IfTi
holdsRLonA,cangetWLonAsolongasnootherTx
holdsalockonA(mustbeRL).aTx
withaWLdoesn'tneedaRL(WLmorepowerfulthanRL).2022/12/23UpdateTransaction5210.4LockingEnsuresSerializabilityClearlylockingisdefinedtoguaranteethatacircuitinthePrecedenceGraphcanneveroccur.ThefirstTx
tolockanitemforcesanyotherTxthatgetstoitsecondto"comelater"inanySG.ButwhatifotherTxalreadyholdsalockthefirstonenowneeds?Thiswouldmeanacircuit,butintheWAITrulesoflockingitmeansNEITHERTx
CANEVERGOFORWARDAGAIN.ThisisaDEADLOCK.2022/12/23UpdateTransaction53Example10.4.1ScheduleExplanationABRL1(A)50501R1(A,50)5050RL2(A)50502R2(A,50)5050WL2(A)T2WAIT5050RL1(B)50506R1(B,50)50507C1T2cangetWL2(A)50503W2(A,20)2050RL2(B)20504R2(B,50)2050WL2(B)20505W2(B,80)20808C22080H41R1(A)2R2(A)3W2(A)4R2(B)5W2(B)6R1(B)7C18C2non-SRSerializability2022/12/23UpdateTransaction54Example10.4.2ScheduleABT1T2RL1(A)50501R1(A,50)5050RL2(B)50502R2(B,50)5050WL2(B)50503W2(B,80)5080RL2(A)50804R2(A,50)5080WL2(A)5080T2waitingRL1(B)T1waitingH51R1(A)2R2(B)3W2(B)4R2(A)5W2(A)6R1(B)7C18C2non-SRDeadlock2022/12/23UpdateTransaction5510.4LockingEnsuresSerializabilityTheorem.10.4.2LockingTheoremAhistoryoftransactionaloperationsthatfollowsthe2PLdisciplineisSR(Serializability).short-termlocksAlockistakenpriortotheoperation(RorW)andreleasedIMMEDIATELYAFTERWARD.long-termlocksAlockarehelduntilEOT(EndOfTransaction).2022/12/23UpdateTransaction5610.5LevelsofIsolation定义当前用户的事务与其它并发执行事务之间的隔离级别(levelofisolation)事务的隔离级别与所采用的封锁策略紧密相关SETTRANSACTIONISOLATIONLEVELMITTED|MITTED|READREPEATABLE|SERIALIZABLE2022/12/23UpdateTransaction5710.5LevelsofIsolationMITTED:未提交读在该方式下,当前事务不需要申请任何类型的封锁,因而可能会‘读’到未提交的修改结果禁止一个事务以该方式去执行对数据的‘写’操作,以避免‘写’冲突现象。MITTED:提交读在‘读’数据对象A之前需要先申请对数据对象A的‘共享性’封锁,在‘读’操作执行结束之后立即释放该封锁。以避免读取未提交的修改结果。2022/12/23UpdateTransaction5810.5LevelsofIsolationREADREPEATABLE:可重复读在‘读’数据对象A之前需要先申请对数据对象A的‘共享性’封锁,并将该封锁维持到当前事务的结束。可以避免其它的并发事务对当前事务正在使用的数据对象的修改。SERIALIZABLE:可序列化(可串行化)并发事务以一种可串行化的调度策略实现其并发执行,以避免它们相互之间的干扰现象。2022/12/23UpdateTransaction5910.5LevelsofIsolation不管采用何种隔离级别,在事务‘写’数据对象A之前需要先申请对数据对象A的‘排它性’封锁(write-lock),并将该封锁维持到当前事务的结束。2022/12/23UpdateTransaction6010.5LevelsofIsolationlong-termshort-termshort-termNoReadLocks(Predicates)Nolong-termYesSerializableUpdateAnomalylong-termYesRepeatableReadLostUpdateshort-termYesReadCommittedDirtyReadsNoNo(ReadOnly)ReadmittedProblemReadLocks(row)WritelocksLevelsofIsolationTypesofLocks2022/12/23UpdateTransaction6110.6TransactionalRecoveryLogsThelogentriescontain"BeforeImages"and"AfterImages"ofeveryupdatemadebyaTransaction.BeforeImageAfterImage2022/12/23UpdateTransaction6210.6TransactionalRecoveryBeforeImageInrecovery,wecanbackupanupdatethatshouldn'thavegottentodisk(thetransactiondidn'tcommit)byapplyingaBeforeImage.AfterImageInrecovery,wecanapplyAfterImagestocorrectfordiskpagesthatshouldhavegottentodisk(thetransactiondidcommit)butnevermadeit.2022/12/23UpdateTransaction6310.6TransactionalRecoveryThreetypesofLogsUNDOLogsonlyBeforeImageRecoveryforthetransactiondidn’tcommit.REDOLogsonlyAfterImageRecoveryforthetransactiondidcommit.UNDO/REDOLogsBeforeImage&AfterImageRecoveryforalltransactions.2022/12/23UpdateTransaction6410.7RecoveryinDetail:LogFormatsFigure10.13(pg.673)OperationLogentryExplanationR1(A,50)(S,1)StarttransactionT1-nologentryiswrittenforaReadoperation.W1(A,20)(W,1,A,50,20)T1WritelogforupdateofA.balance.Thevalue50istheBeforeImage(BI)forA.balancecolumninrowA,20istheAfterImage(AI)forA.balanceR2(C,100)(S,2)Anotherstarttransactionlogentry.W2(C,50)(W,2,C,100,50)AnotherWritelogentry.C2(C,2)CommitT2logentry.(WriteLogBuffertoLogFile)R1(B,50)NologentryW1(B,80)(W,1,B,50,80)C1(C,1)CommitT1(WriteLogBuffertoLogFile)2022/12/23UpdateTransaction6510.7RecoveryinDetail:LogFormatsAssumethataSystemCrashoccurredimmediatelyaftertheW1(B,80)operation.2022/12/23UpdateTransaction66Logentry5(S,1)4(W,1,A,50,20)3(S,2)2(W,2,C,100,50)1(C,2)FailureROLLBACKACTIONPERFORMEDMakeanotethatT1isnolonger"Active".Nowthatnotransactionswereactive,wecanendtheROLLBACKphase.TransactionT1hasnevercommitted(it'slastoperationwasaWrite).Therefore,thesystemperformsUNDOofthisupdatebyWritingtheBeforeImagevalue(50)intodataitemA.PutT1into"mittedList“.MakeanotethatT2isnolonger"Active"SinceT2ison"CommittedList",wedonothing.PutT2into"CommittedList"2022/12/23UpdateTransaction67LogentryROLLFORWARDACTIONPERFORMED6(S,1)Noactionrequired.7(W,1,A,50,20)T1ismitted—Noactionrequired.8(S,2)Noactionrequired.9(W,2,C,100,50)SinceT2isonCommittedList,weREDOthisupdatebywritingAfterImagevalue(50)intodataitemC.10(C,2)Noactionrequired.11Wenotethatwehaverolledforwar
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 年秋季学期小学安全工作计划
- 《施工质量控制要点》课件
- 2024志愿者个人工作计划
- 元旦文艺晚会计划方案
- 关于办公室文秘工作计划
- 2024年小学语文四年级教学计划
- 推动计划生育事业健康发展的规定
- 有关骨干教师工作计划锦集
- 8住房保障工作总结和某年工作计划
- 学校行政部门年度工作计划
- 五年级上册英语一课一练-Unit 6 In a nature park课时(4) 人教PEP(word版含答案)
- 2024年中国中信集团招聘笔试参考题库含答案解析
- 贷款服务保密协议
- 2024年会计总结及工作计划
- 统编本五年级上册语文选择题100道附参考答案
- 2023年湖北职业技术学院公开招聘教师20人笔试参考题库(共500题)答案详解版
- XX集团品牌管理制度
- 北师大版六年级上册第三单元观察物体(知识点梳理+能力百分练)二
- 质量目标规划及保证措施及体系图和流程图【图】
- 井下采煤工练习试卷附答案
- DB62∕T 2992-2019 黄土地区高速公路路基施工技术规范
评论
0/150
提交评论