Tapahtumanhallinta DBMS:ssä: Mitä ovat ACID-ominaisuudet?

Mikä on tietokantatapahtuma?

A Tietokantatapahtuma on looginen käsittelyyksikkö DBMS:ssä, joka sisältää yhden tai useamman tietokannan käyttöoperaation. Lyhyesti sanottuna tietokantatapahtumat edustavat minkä tahansa yrityksen todellisia tapahtumia.

Kaiken tyyppisiä tietokannan käyttötoimintoja, joita pidetään tapahtuman alkamis- ja loppulausekkeiden välissä, pidetään yhtenä loogisena tapahtumana DBMS:ssä. Tapahtuman aikana tietokanta on epäjohdonmukainen. Vasta kun tietokanta on sitoutunut, tila muutetaan yhtenäisestä tilasta toiseen.

Tietokantatapahtuma
Tietokantatapahtuma

Faktaa tietokantatransaktioista

  • Tapahtuma on ohjelmayksikkö, jonka suorittaminen voi muuttaa tietokannan sisältöä tai ei.
  • DBMS:n tapahtumakonsepti suoritetaan yhtenä yksikkönä.
  • Jos tietokantatoiminnot eivät päivitä tietokantaa, vaan vain hakevat tietoja, tämän tyyppistä tapahtumaa kutsutaan vain luku -tapahtumaksi.
  • Onnistunut tapahtuma voi muuttaa tietokannan yhdestä KONSISTENTTITILASTA toiseen
  • DBMS-tapahtumien on oltava atomeja, johdonmukaisia, eristettyjä ja kestäviä
  • Jos tietokanta oli epäjohdonmukaisessa tilassa ennen tapahtumaa, se pysyisi epäjohdonmukaisessa tilassa tapahtuman jälkeen.

Miksi tarvitset samanaikaisuutta tapahtumissa?

Tietokanta on jaettu resurssi, jota käytetään. Sitä käyttävät monet käyttäjät ja prosessit samanaikaisesti. Esimerkiksi pankkijärjestelmä, rautatie- ja lentovarausjärjestelmät, osakemarkkinoiden seuranta, supermarkettien varastot ja kassat jne.

Samanaikaisen käytön hallinta voi aiheuttaa ongelmia, kuten:

  • Laitteistovika ja järjestelmä kaatuu
  • Saman tapahtuman suorittaminen samanaikaisesti, umpikujatai hidas suorituskyky

Liiketoimien tilat

DBMS:n tapahtumakonseptin eri tilat on lueteltu alla:

Osavaltio Tapahtumatyypit
Aktiivinen tila Tapahtuma siirtyy aktiiviseen tilaan, kun suoritusprosessi alkaa. Tämän tilan aikana voidaan suorittaa luku- tai kirjoitustoimintoja.
Osittain sitoutunut Tapahtuma siirtyy osittain sitoutuneeseen tilaan tapahtuman päätyttyä.
Sitoutunut tila Kun tapahtuma on sitoutunut tilaan, se on jo suorittanut suorituksensa onnistuneesti. Lisäksi kaikki sen muutokset tallennetaan tietokantaan pysyvästi.
Epäonnistunut tila Tapahtuma katsotaan epäonnistuneeksi, kun jokin tarkistuksista epäonnistuu tai jos tapahtuma keskeytetään sen ollessa aktiivisessa tilassa.
Päätetty valtio Tapahtuman tila saavuttaa lopetetun tilan, kun tiettyjä järjestelmästä lähteviä tapahtumia ei voida käynnistää uudelleen.
Tilasiirtymäkaavio
Tietokantatapahtuman tilasiirtymäkaavio

Opiskellaan a tilasiirtymäkaavio joka korostaa, kuinka tapahtuma liikkuu näiden eri tilojen välillä.

  1. Kun tapahtuma ilmoittaa suorituksen, se muuttuu aktiiviseksi. Se voi suorittaa READ- tai WRITE-toiminnon.
  2. Kun READ- ja WRITE-toiminnot on suoritettu loppuun, tapahtumat muuttuvat osittain sitoutuneiksi.
  3. Seuraavaksi joidenkin palautusprotokollien on varmistettava, että järjestelmävika ei johda kyvyttömyyteen tallentaa tapahtuman muutoksia pysyvästi. Jos tämä tarkistus onnistuu, tapahtuma sitoutuu ja siirtyy sitoutuneeseen tilaan.
  4. Jos tarkistus epäonnistuu, tapahtuma siirtyy epäonnistunut-tilaan.
  5. Jos tapahtuma keskeytetään sen ollessa aktiivisessa tilassa, se siirtyy epäonnistuneeseen tilaan. Tapahtuma tulee peruuttaa, jotta sen kirjoitustoimintojen vaikutus tietokantaan voidaan kumota.
  6. Lopetettu tila viittaa tapahtumaan, joka lähtee järjestelmästä.

Mitä ovat ACID-ominaisuudet?

ACID-ominaisuudet käytetään tietokannan eheyden ylläpitämiseen tapahtuman käsittelyn aikana. ACID in DBMS tarkoittaa Amyrkyllisyys, Cpysyvyys, Ilohdutusta ja Dkäytettävyyttä.

  • Atomicity: Tapahtuma on yksi toimintayksikkö. Joko suoritat sen kokonaan tai et suorita sitä ollenkaan. Osittaista toteutusta ei voi tehdä.
  • Johdonmukaisuus: Kun tapahtuma on suoritettu, sen pitäisi siirtyä johdonmukaisesta tilasta toiseen.
  • Eristäminen: Tapahtuma tulee suorittaa erillään muista tapahtumista (ei lukkoja). Samanaikaisen tapahtuman suorittamisen aikana samanaikaisesti suoritettujen tapahtumien välitapahtumatuloksia ei pitäisi asettaa toistensa saataville. (Taso 0,1,2,3)
  • Kestävyys:· Kun tapahtuma on suoritettu onnistuneesti, tietokannan muutosten pitäisi säilyä. Jopa järjestelmävikojen tapauksessa.

ACID-ominaisuus DBMS:ssä esimerkin kanssa

Alla on esimerkki ACID-ominaisuudesta DBMS:ssä:

Transaction 1: Begin X=X+50, Y = Y-50 END
Transaction 2: Begin X=1.1*X, Y=1.1*Y END

Tapahtuma 1 siirtää 50 dollaria tililtä X tilille Y.

Tapahtuma 2 hyvitetään jokaiselle tilille 10 %:n korkomaksu.

Jos molemmat tapahtumat lähetetään yhdessä, ei ole takeita siitä, että tapahtuma 1 suoritetaan ennen tapahtumaa 2 tai päinvastoin. Tilauksesta riippumatta tuloksen tulee olla sellainen, kuin tapahtumat tapahtuisivat sarjassa peräkkäin.

Tapahtumatyypit

Sovellusalueiden perusteella

  • Ei jaettu vs. jaettu
  • Korvaavat liiketoimet
  • Tapahtumien ajoitus
  • On-line vs. erä

Perustuu toimiin

  • Kaksi askelta
  • rajoitettu
  • Toimintamalli

Perustuu rakenteeseen

  • Tasaiset tai yksinkertaiset tapahtumat: Se koostuu sarjasta primitiivisiä operaatioita, jotka suoritetaan aloitus- ja lopetusoperaatioiden välillä.
  • Sisäkkäiset tapahtumat: Tapahtuma, joka sisältää muita tapahtumia.
  • Työnkulku

Mikä on aikataulu?

Aikataulu on prosessi, jossa luodaan yksi ryhmä useista rinnakkaisista tapahtumista ja suoritetaan ne yksitellen. Sen tulee säilyttää se järjestys, jossa ohjeet näkyvät kussakin tapahtumassa. Jos kaksi tapahtumaa suoritetaan samanaikaisesti, yhden tapahtuman tulos voi vaikuttaa toisen tapahtumaan.

esimerkki

Initial Product Quantity is 10
Transaction 1: Update Product Quantity to 50
Transaction 2: Read Product Quantity

Jos tapahtuma 2 suoritetaan ennen tapahtumaa 1, vanhentuneet tiedot tuotteen määrästä luetaan. Siksi aikatauluja tarvitaan.

Rinnakkaissuoritus tietokannassa on väistämätöntä. Mutta rinnakkaissuoritus on sallittu, kun samanaikaisesti suoritettavien tapahtumien välillä on ekvivalenssisuhde. Tämä vastaavuus on 3 tyyppiä.

TULOKSEN VASTAAVUUS:

Jos kaksi aikataulua näyttävät saman tuloksen suorituksen jälkeen, sitä kutsutaan tulosvastaavaksi aikatauluksi. Ne voivat tarjota saman tuloksen jollekin arvolle ja erilaisia ​​tuloksia toiselle arvojoukolle. Esimerkiksi yksi tapahtuma päivittää tuotteen määrän, kun taas toinen päivittää asiakkaan tiedot.

Näytä vastaavuus

Näytä vastaavuus tapahtuu, kun molempien aikataulujen tapahtuma suorittaa samanlaisen toiminnon. Esimerkki: yksi tapahtuma lisää tuotetiedot tuotetaulukkoon, kun taas toinen tapahtuma lisää tuotetiedot arkistotaulukkoon. Kauppa on sama, mutta taulukot ovat erilaisia.

KONFLIKTI Ekvivalenssi

Tässä tapauksessa kaksi tapahtumaa päivittää/tarkastelee samaa tietojoukkoa. Tapahtuman välillä on ristiriita, koska suoritusjärjestys vaikuttaa lähtöön.

Mitä on serialoitavuus?

Serialisoitavuus on prosessi, jossa etsitään samanaikaista aikataulua, jonka tulos on sama kuin sarjaaikataulu, jossa tapahtumat suoritetaan peräkkäin. Aikataulujen tyypistä riippuen on olemassa kahdenlaisia ​​sarjoitettavuutta:

  • Konflikti
  • Näytä

Yhteenveto

  • Tapahtumanhallinta on DBMS:n looginen käsittelyyksikkö, joka sisältää yhden tai useamman tietokantaan pääsyn
  • Se on tapahtuma on ohjelmayksikkö, jonka suorittaminen voi muuttaa tietokannan sisältöä tai ei.
  • Samanaikaisen käytön hallinta voi aiheuttaa ongelmia, kuten laitteistovikoja ja järjestelmän kaatumisia.
  • Aktiivinen, Osittain sitoutunut, Sitoutunut, Epäonnistunut ja Lopeta ovat tärkeitä tapahtumatiloja.
  • ACID-ominaisuuksien täysi muoto DBMS is Atomjääisyys, johdonmukaisuus, eristys ja kestävyys
  • Kolme DBMS-tapahtumatyyppiä ovat Base on Application Areas, Action ja Structure.
  • Aikataulu on prosessi, jossa luodaan yksi ryhmä useista rinnakkaisista tapahtumista ja suoritetaan ne yksitellen.
  • Serialisoitavuus on prosessi, jossa etsitään samanaikaista aikataulua, jonka tulos on yhtä suuri kuin sarjaaikataulu, jossa tapahtumat suoritetaan peräkkäin.