SQL operacija yra vienos ar kelių SQL operacijų seka (pvz.INSERT UPDATE DELETE) atliekamas kaip vienas darbo vienetas. Operacijos užtikrina, kad visos operacijos būtų sėkmingos arba netaikoma nė viena, išlaikant duomenų vientisumą.
Pagrindinės SQL operacijų savybės: ACID
SQL operacijų vientisumą reguliuoja ACID savybės, kurios garantuoja patikimas duomenų bazės operacijas. Šios keturios savybės veikia kartu, kad užtikrintų duomenų bazės nuoseklumą ir patikimumą.
- Atomiškumas: Sandorio rezultatas gali būti visiškai sėkmingas arba visiškai nesėkmingas. Visa operacija turi būti atšaukta, jei viena jo dalis nepavyksta.
- Nuoseklumas: Sandoriai palaiko vientisumo apribojimus, perkeldami duomenų bazę iš vienos galiojančios būsenos į kitą.
- Isolation: Vienu metu vykdomos operacijos yra izoliuotos viena nuo kitos, užtikrinant duomenų tikslumą.
- Patvarumas: Įvykdžius operaciją, jos pakeitimai lieka galioti net ir sistemos gedimo atveju.
SQL operacijų valdymo komandos
SQL operacijų valdymo komandos valdo SQL operacijų vykdymas, užtikrinantis duomenų bazės operacijų vientisumą ir patikimumą. Šios komandos padeda valdyti duomenų bazėje atliktų pakeitimų pradžią ir grąžinimą. Toliau pateikiamos pagrindinės SQL operacijų valdymo komandos, paaiškintos kiekvienos iš jų sintaksė ir pavyzdžiai.
1. BEGIN TRANSACTION komanda
TheBEGIN TRANSACTIONkomanda žymi naujos operacijos pradžią. Visi SQL sakiniai, kurie seka šią komandą, bus tos pačios operacijos dalis iki aCOMMIT arba ROLLBACK yra susidurta. Ši komanda nedaro jokių duomenų bazės pakeitimų, ji tik pradeda operaciją.
Sintaksė:
BEGIN TRANSACTION transaction_name ;SQL operacijos su banko pavedimo scenarijumi pavyzdys
Pažvelkime į banko pavedimo tarp dviejų sąskaitų pavyzdį. Šis pavyzdys parodo kelių užklausų naudojimą vienoje operacijoje.
BEGIN TRANSACTION;
-- Deduct 0 from Account A
UPDATE Accounts
SET Balance = Balance - 150
WHERE AccountID = 'A';
-- Add 0 to Account B
UPDATE Accounts
SET Balance = Balance + 150
WHERE AccountID = 'B';
-- Commit the transaction if both operations succeed
COMMIT;
Jei įvyksta kokia nors klaida, pvz., problema suUPDATEužklausa, kurią galite naudotiROLLBACKNorėdami anuliuoti visus operacijos metu atliktus pakeitimus:
ROLLBACK;Taip užtikrinama, kad sistema nepatektų į nenuoseklią būseną, pvz., nuskaičiuotų pinigų iš vienos sąskaitos nepridedant jų į kitą.
BEGIN TRANSACTION TransferFunds;2. COMMIT komanda
TheCOMMITkomanda naudojama visiems dabartinės operacijos metu atliktiems pakeitimams įrašyti į duomenų bazę. Įvykdžius sandorį, pakeitimai yra nuolatiniai.
Sintaksė:
COMMIT;Pavyzdys
Štai pavyzdysStudentlentelė, kuri bus naudojama šio pavyzdžio operacijoms atlikti. Šioje lentelėje pateikiama pagrindinė informacija apie mokinį, pvz., asmens tapatybės vardo amžius ir kita svarbi informacija, kuria bus galima manipuliuoti naudojant įvairias operacijų valdymo komandos.
Studentų stalasToliau pateikiamas pavyzdys, kuris iš lentelės ištrins tuos įrašus, kurių amžius = 20, o tada PATIKO pakeitimus duomenų bazėje.
DELETE FROM Student WHERE AGE = 20;
COMMIT;
Išvestis
išvestis3. ROLLBACK komanda
TheROLLBACKkomanda naudojama atšaukti visus dabartinės operacijos pakeitimus. Jis naudojamas, kai įvyksta klaida arba kai nepavyksta atlikti norimų pakeitimų. Duomenų bazė grįš į būseną, kuri buvo prieš BEGIN TRANSACTION buvo įvykdyta mirties bausmė.
Sintaksė:
ROLLBACK;Pavyzdys
Iš lentelės ištrinkite tuos įrašus, kurių amžius = 20, ir ATGALINTI duomenų bazės pakeitimus. Šiuo atveju DELETE operacija anuliuojama, o duomenų bazės pakeitimai neišsaugomi.
DELETE FROM Student WHERE AGE = 20;
ROLLBACK;
Išvestis:
išvestis4. SAVEPOINT komanda
ASAVEPOINTnaudojamas kuriant a patikros punktas sandorio metu. Galime grįžti prie konkretausSAVEPOINTužuot atšaukę visą sandorį. Tai leidžia mums anuliuoti dalį operacijos, o ne visą sandorį.
Sintaksė:
SAVEPOINT SAVEPOINT_NAME;Pavyzdys
SAVEPOINT SP1;
//Savepoint created.
DELETE FROM Student WHERE AGE = 20;
//deleted
SAVEPOINT SP2;
//Savepoint created.
Išvestis:
išvestisPaaiškinimas:
Iš anksčiau pateikto pavyzdžio Pavyzdinė lentelė 1 Iš lentelės ištrinkite tuos įrašus, kurių amžius = 20, tada GRĄŽINKITE duomenų bazės pakeitimus išsaugodami išsaugojimo taškus. Čia SP1 yra pirmasis SAVEPOINT, sukurtas prieš ištrinant. Šiame pavyzdyje buvo atliktas vienas ištrynimas. Ištrynus vėl sukuriamas SAVEPOINT SP2.
5. GRĮŽIMAS Į SAVEPOINT
TheROLLBACK TO SAVEPOINTkomanda leidžia grąžinti operaciją į konkretų išsaugojimo tašką, veiksmingai anuliuojant po to atliktus pakeitimus.
Sintaksė:
ROLLBACK TO SAVEPOINT SAVEPOINT_NAME;Pavyzdys
Ištrynimas buvo atliktas, tarkime, kad persigalvojome ir nusprendėme GRĮŽTI į SAVEPOINT, kurį nustatėme kaip SP1, kuris yra prieš ištrynimą. Taigi šiuo atvejuDELETEoperacija anuliuojama ir operacija grąžinama į tokią būseną, kurioje ji buvoSP1išsaugojimo taškas.
ROLLBACK TO SP1;
//Rollback completed
Išvestis:
išvestis6. PALEISKITE SAVEPOINT komandą
Ši komanda naudojama norint pašalinti SAVEPOINT, kurį sukūrėme. Kai SAVEPOINT bus išleistas, nebegalime naudoti ROLLBACK komanda anuliuoti operacijas, atliktas nuo paskutinio SAVEPOINT. Jis naudojamas duomenų bazės transakcijai inicijuoti ir sekančios operacijos charakteristikoms nurodyti.
Sintaksė:
RELEASE SAVEPOINT SAVEPOINT_NAME;Pavyzdys
Kartą išsaugojimo taškasSP2yra paleistas, nebegalime prie jo grįžti.
RELEASE SAVEPOINT SP2; -- Release the second savepoint.Kodėl bankininkystėje naudoti operacijas?
Tokiu atveju be operacijos rizikuojate scenarijus, kai pinigai nurašomi iš vienos sąskaitos, bet nepridedami prie kitos, todėl sistema yra nenuosekli. Sandoriai užtikrina, kad tokių problemų būtų išvengta, užtikrinant, kad abi operacijos bus sėkmingos arba nepavyks kartu.
SQL operacijų tipai
Yra įvairių tipų operacijos, atsižvelgiant į jų pobūdį ir konkrečias jų atliekamas operacijas:
- Skaityti Sandoriai : naudojamas tik duomenims skaityti paprastai naudojant
SELECTužklausų. - Rašyti sandorius : Tai apima duomenų keitimą duomenų bazėje naudojant
INSERTUPDATEarbaDELETEoperacijos. - Paskirstytos operacijos : šios operacijos apima kelias duomenų bazes ir užtikrina jų nuoseklumą.
- Netiesioginiai sandoriai : automatiškai paleidžiamas SQL serverio tam tikroms operacijoms atlikti.
- Aiškūs sandoriai : rankiniu būdu valdomos operacijos, kai vartotojas pradeda ir baigia operaciją naudodamas
BEGIN TRANSACTIONCOMMITirROLLBACK.
SQL operacijų stebėjimas ir optimizavimas
Norėdami išlaikyti našumą ir išvengti problemų, apsvarstykite šiuos metodus:
1. Monitoriaus užraktai : Stebėkite užrakinimo elgesį ir koreguokite užklausas, kad sumažintumėte užrakinimo konfliktus.
2. Apriboti sandorio apimtį : apribokite operacijų paveiktų eilučių arba įrašų skaičių, kad pagreitintumėte apdorojimą.
3. Naudokite paketinį apdorojimą : jei tvarkote didelius duomenų kiekius, operacijas suskaidykite į mažesnes operacijas arba paketus, kad neapkrautumėte sistemos.
Siūloma viktorina Redaguoti viktoriną 5 klausimaiKuris iš toliau pateiktų scenarijų geriausiai apibūdina ACID ypatybės „Isolation“ pažeidimą?
- A
Operacija palieka duomenų bazę tokioje būsenoje, kuri pažeidžia pirminio rakto apribojimą.
- B
Dvi operacijos, vykdomos vienu metu, nuskaito ir rašo tuos pačius duomenis, todėl gaunami nenuoseklūs rezultatai.
- C
Vartotojas sėkmingai atnaujina įrašą, bet sistemos gedimas ištrina pakeitimą.
- D
Sandoris nepavyksta įpusėjus ir visi jo pakeitimai grąžinami.
Tai klasikinis izoliacijos pažeidimo pavyzdys, kai vienos operacijos tarpinė būsena matoma kitam.
Banko paraiškoje lėšų pervedimas apima vienos sąskaitos nurašymą ir kitos kreditavimą. Kuri ACID savybė užtikrina, kad abi operacijos bus baigtos, arba nė viena neįvyksta?
- A
Isolation
- B
Atomiškumas
- C
Patvarumas
- D
Nuoseklumas
Atomiškumas užtikrina, kad visos operacijos operacijos būtų sėkmingai užbaigtos; kitu atveju visas sandoris atšaukiamas.
Sandoris įvykdomas ir išduodamas „COMMIT“. Iš karto po to, kai dingsta elektros tiekimas. Kuri ACID ypatybė garantuoja, kad operacijos atlikti pakeitimai išliks ir po sistemos paleidimo iš naujo?
- A
Nuoseklumas
- B
Atomiškumas
- C
Patvarumas
- D
Isolation
Patvarumas – tai savybė, užtikrinanti, kad atlikus sandorį jis toks išliks net ir dingus maitinimui ar sistemos gedimui.
Koks yra pagrindinis komandos „SAVEPOINT“ tikslas atliekant operaciją?
- A
Įsipareigoti dalį sandorio.
- B
Norėdami pažymėti operacijos tašką, į kurį vėliau galėsite grįžti atgal.
- C
Norėdami visam laikui išsaugoti operacijos būseną.
- D
Norėdami užbaigti operaciją ir padaryti visus pakeitimus visam laikui.
pd sujungti
„SAVEPOINT“ leidžia iš dalies atšaukti operaciją.
Apsvarstykite šią operaciją: „PRADĖTI SANDORIĄ; Įterpti ...; SAVEPOINT A; ATNAUJINTI...; SAVEPOINT B; IŠTRINTI...; GRĮŽIMAS Į IŠSAUGOJIMO TAŠKĄ A;' Kokia yra operacijos būsena po komandos 'ROLLBACK'?
- A
Visas sandoris atšaukiamas.
- B
Anuliuojamas tik „DELETE“.
- C
Įvyko klaida, nes negalite grįžti į išsaugojimo tašką, kuris nėra naujausias.
- D
„Įterpti“ yra išsaugotas, bet „UPDATE“ ir „DELETE“ anuliuojami.
Grįžus į „SAVEPOINT A“, anuliuojami visi pakeitimai, atlikti po to išsaugojimo taško, ty „ATNAUJINTI“ ir „IŠTRINTI“.
Viktorina sėkmingai atlikta jūsų balas: 2/5Tikslumas: 0 %Prisijunkite, kad pamatytumėte paaiškinimą 1/5 1/5 < Previous Kitas >