Tehingute haldamine DBMS-is: mis on ACID-i omadused?
Mis on andmebaasi tehing?
A Andmebaasi tehing on loogiline töötlusüksus DBMS-is, mis hõlmab üht või mitut andmebaasi juurdepääsutoimingut. Lühidalt, andmebaasitehingud esindavad mis tahes ettevõtte reaalseid sündmusi.
Kõiki andmebaasi juurdepääsutoiminguid, mida hoitakse tehingu alguse ja lõpu avalduste vahel, käsitletakse DBMS-is ühe loogilise tehinguna. Tehingu ajal on andmebaas ebaühtlane. Alles siis, kui andmebaas on loodud, muudetakse olek ühest järjekindlast olekust teise.

Faktid andmebaasi tehingute kohta
- Tehing on programmiüksus, mille täitmine võib või ei pruugi muuta andmebaasi sisu.
- DBMS-i tehingukontseptsioon täidetakse ühe üksusena.
- Kui andmebaasitoimingud ei värskenda andmebaasi, vaid toovad ainult andmeid, nimetatakse seda tüüpi tehingut kirjutuskaitstud tehinguks.
- Edukas tehing võib muuta andmebaasi ühest KOKKUVÕTESEst olekust teise
- DBMS-i tehingud peavad olema tuumakad, järjepidevad, isoleeritud ja püsivad
- Kui andmebaas oleks enne tehingut ebajärjekindlas olekus, jääks see ka pärast tehingut ebajärjekindlasse olekusse.
Miks on tehingutes vaja samaaegsust?
Andmebaas on jagatud ressurss, millele pääseb juurde. Seda kasutavad samaaegselt paljud kasutajad ja protsessid. Näiteks pangandussüsteem, raudtee- ja lennubroneerimissüsteemid, börsi jälgimine, supermarketite laoseisud ja kassad jne.
Samaaegse juurdepääsu mittehaldamine võib põhjustada selliseid probleeme nagu:
- Riistvara rike ja süsteemi jookseb kokku
- sama tehingu samaaegne teostamine, ummikseisvõi aeglane jõudlus
Tehingute olekud
DBMS-i tehingukontseptsiooni erinevad olekud on loetletud allpool.
riik | Tehingu tüübid |
---|---|
Aktiivne olek | Tehing läheb täitmisprotsessi alguses aktiivsesse olekusse. Selles olekus saab teha lugemis- või kirjutamistoiminguid. |
Osaliselt pühendunud | Tehing läheb pärast tehingu lõppu osaliselt seotud olekusse. |
Pühendunud olek | Kui tehing on olekusse kinnitatud, on see juba täitmise edukalt lõpetanud. Lisaks salvestatakse kõik selle muudatused andmebaasi püsivalt. |
Ebaõnnestunud olek | Tehing loetakse nurjunuks, kui mõni kontroll ebaõnnestub või kui tehing katkestatakse, kui see on aktiivses olekus. |
Lõpetatud riik | Tehingu olek jõuab lõpetatud olekusse, kui teatud süsteemist väljuvaid tehinguid ei saa taaskäivitada. |

Uurime a oleku ülemineku diagramm mis näitab, kuidas tehing nende erinevate olekute vahel liigub.
- Kui tehing märgib täitmist, muutub see aktiivseks. See võib väljastada toimingu READ või WRITE.
- Kui toimingud READ ja WRITE on lõpule viidud, muutuvad tehingud osaliselt kinnistatud olekuks.
- Järgmiseks peavad mõned taasteprotokollid tagama, et süsteemitõrge ei põhjustaks võimetust tehingu muudatusi püsivalt salvestada. Kui see kontroll õnnestub, sooritatakse tehing ja läheb sooritatud olekusse.
- Kui kontroll ebaõnnestus, läheb tehing olekusse Ebaõnnestunud.
- Kui tehing katkestatakse, kui see on aktiivses olekus, läheb see nurjunud olekusse. Tehing tuleks tagasi pöörata, et tühistada selle kirjutamistoimingute mõju andmebaasile.
- Lõpetatud olek viitab süsteemist väljuvale tehingule.
Mis on ACID omadused?
HAPE omadused kasutatakse andmebaasi terviklikkuse säilitamiseks tehingute töötlemise ajal. ACID DBMS-is tähistab Amürgisus, Cjärjekindlus, Ilohutus ja Dkasutatavus.
- Atomicity: Tehing on üks operatsiooniühik. Te kas teostate selle täielikult või ei tee seda üldse. Osalist täitmist ei saa olla.
- Järjepidevus: Kui tehing on sooritatud, peaks see liikuma ühest järjepidevast olekust teise.
- Isolatsioon: Tehing tuleks sooritada teistest tehingutest eraldatult (lukud puuduvad). Samaaegse tehingu teostamise ajal ei tohiks samaaegselt teostatud tehingute vahetehingutulemusi üksteisele kättesaadavaks teha. (Tase 0,1,2,3)
- Vastupidavus:· Pärast tehingu edukat lõpetamist peaksid muudatused andmebaasis püsima. Isegi süsteemitõrgete korral.
ACID-i omadus DBMS-is koos näitega
Allpool on näide ACID-i atribuudist DBMS-is:
Transaction 1: Begin X=X+50, Y = Y-50 END Transaction 2: Begin X=1.1*X, Y=1.1*Y END
Tehing 1 kannab 50 dollarit kontolt X kontole Y.
Tehing 2 on iga konto krediteerimine 10% intressimaksega.
Kui mõlemad tehingud esitatakse koos, ei ole garantiid, et tehing 1 sooritatakse enne 2. tehingut või vastupidi. Olenemata tellimusest peab tulemus olema selline, nagu toimuksid tehingud järjestikku.
Tehingute tüübid
Põhineb rakendusaladel
- Jaotamata vs
- Tehingute hüvitamine
- Tehingute ajastus
- On-line vs partii
Põhineb tegevustel
- Kaheastmeline
- Piiratud
- Tegevusmudel
Põhineb struktuuril
- Korralikud või lihtsad tehingud: koosneb primitiivsete toimingute jadast, mis viiakse läbi alguse ja lõpu operatsioonide vahel.
- Pesastatud tehingud: tehing, mis sisaldab muid tehinguid.
- Töövoo
Mis on ajakava?
Ajakava on protsess, mis loob mitme paralleelse tehingu ühe rühma ja teostab need ükshaaval. See peaks säilitama juhiste kuvamise järjekorra igas tehingus. Kui sooritatakse kaks tehingut korraga, võib ühe tehingu tulemus mõjutada teise väljundit.
Näide
Initial Product Quantity is 10 Transaction 1: Update Product Quantity to 50 Transaction 2: Read Product Quantity
Kui Tehing 2 sooritatakse enne Tehingut 1, loetakse toote koguse kohta aegunud infot. Seetõttu on ajakava vaja.
Paralleelne täitmine andmebaasis on vältimatu. Kuid paralleelne täitmine on lubatud, kui samaaegselt täidetavate tehingute vahel on samaväärsuse seos. Seda samaväärsust on 3 tüüpi.
TULEMUSE VÕRDVÄÄRSUS:
Kui kaks ajakava kuvavad pärast täitmist sama tulemuse, nimetatakse seda tulemusega samaväärseks ajakavaks. Need võivad pakkuda ühe väärtuse jaoks sama tulemust ja mõne teise väärtuste komplekti jaoks erinevaid tulemusi. Näiteks üks tehing värskendab toote kogust, teine aga kliendi andmeid.
Kuva samaväärsus
Vaate ekvivalentsus ilmneb siis, kui mõlema ajakava tehing sooritab sarnase toimingu. Näiteks üks tehing lisab toote üksikasjad tootetabelisse, samas kui teine tehing lisab toote üksikasjad arhiivitabelisse. Tehing on sama, kuid tabelid on erinevad.
KONFLIKTI Ekvivalentsus
Sel juhul värskendavad/vaatavad kaks tehingut sama andmekogumit. Tehingu vahel on konflikt, kuna täitmise järjekord mõjutab väljundit.
Mis on serialiseeritavus?
Serialiseeritavus on samaaegse ajakava otsimise protsess, mille väljund on võrdne jadagraafikuga, kus tehingud täidetakse üksteise järel. Sõltuvalt ajakavade tüübist on serialiseeritavust kahte tüüpi:
- Konflikt
- vaade
kokkuvõte
- Tehinguhaldus on DBMS-i töötlemise loogiline üksus, mis hõlmab ühte või mitut andmebaasi juurdepääsutoimingut
- See on tehing on programmiüksus, mille täitmine võib või ei pruugi muuta andmebaasi sisu.
- Samaaegse juurdepääsu haldamata jätmine võib põhjustada probleeme, nagu riistvaratõrge ja süsteemijooks.
- Aktiivne, osaliselt toime pandud, toime pandud, ebaõnnestunud ja lõpetatud on olulised tehinguolekud.
- ACID Propertiesi täisvorm DB-süsteemid is Atomjäikus, järjepidevus, isoleeritus ja vastupidavus
- Kolm DBMS-i tehingutüüpi on rakendusalade alus, tegevus ja struktuur.
- Ajakava on protsess, mis loob mitme paralleelse tehingu ühe rühma ja teostab need ükshaaval.
- Serialiseeritavus on samaaegse ajakava otsimise protsess, mille väljund on võrdne jadagraafikuga, kus tehingud sooritatakse üksteise järel.