DBMS-tapahtumien hallinta: mitkä ovat ACID-ominaisuudet?

Sisällysluettelo:

Anonim

Mikä on tietokantatapahtuma?

Database Transaction on looginen yksikkö käsittely DBMS joka merkitsee yhden tai useamman tietokannan pääsy toiminta. Lyhyesti sanottuna tietokantatapahtumat edustavat minkä tahansa yrityksen todellisia tapahtumia.

Kaikentyyppisiä tietokannan käyttöoperaatioita, joita pidetään alku- ja lopputapahtumalausekkeiden välillä, pidetään yhtenä loogisena tapahtumana DBMS: ssä. Tapahtuman aikana tietokanta on epäjohdonmukainen. Vasta kun tietokanta on sitoutunut, tila muutetaan yhtenäisestä tilasta toiseen.

Tässä opetusohjelmassa opit:

  • Tietoja tietokantatapahtumista
  • Miksi tarvitset samanaikaista tapahtumaa?
  • Liiketoimet
  • Mitkä ovat ACID-ominaisuudet?
  • Tapahtumatyypit
  • Mikä on aikataulu?

Tietoja tietokantatapahtumista

  • Tapahtuma on ohjelmayksikkö, jonka toteutus voi muuttaa tietokannan sisältöä.
  • DBMS: n tapahtumakonsepti toteutetaan yhtenä yksikkönä.
  • Jos tietokantatoiminnot eivät päivitä tietokantaa, mutta noutavat vain tietoja, tällaista tapahtumaa kutsutaan vain luku -tapahtumaksi.
  • Onnistunut tapahtuma voi muuttaa tietokannan yhdenmukaisesta tilasta toiseen
  • DBMS-tapahtumien on oltava atomisia, johdonmukaisia, eristettyjä ja kestäviä
  • Jos tietokanta olisi epäjohdonmukaisessa tilassa ennen tapahtumaa, se pysyisi epäjohdonmukaisessa tilassa tapahtuman jälkeen.

Miksi tarvitset samanaikaista tapahtumaa?

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 inventaariot ja kassat jne.

Rinnakkaisen käyttöoikeuden hallinnoimattomuus voi aiheuttaa esimerkiksi

  • Laitteistovika ja järjestelmä kaatuu
  • Saman tapahtuman samanaikainen toteutus, umpikuja tai hidas suorituskyky

Liiketoimet

DBMS: n tapahtumakäsitteen eri tilat on lueteltu alla:

Osavaltio Tapahtumatyypit
Aktiivinen tila Tapahtuma siirtyy aktiiviseen tilaan, kun toteutusprosessi alkaa. Tämän tilan aikana voidaan suorittaa luku- tai kirjoitusoperaatioita.
Osittain sitoutunut Tapahtuma siirtyy osittain sitoutuneeseen tilaan tapahtuman päättymisen jälkeen.
Sitoutunut valtio Kun tapahtuma on sitoutunut ilmoittamaan, se on jo suorittanut suorituksensa onnistuneesti. Lisäksi kaikki sen muutokset tallennetaan tietokantaan pysyvästi.
Epäonnistunut tila Tapahtuma katsotaan epäonnistuneeksi, kun jokin tarkastuksista epäonnistuu tai jos tapahtuma keskeytetään sen ollessa aktiivisessa tilassa.
Irtisanottu valtio Tapahtuman tila saavuttaa lopetetun tilan, kun tiettyjä järjestelmästä poistuvia tapahtumia ei voida käynnistää uudelleen.
Tilan siirtymäkaavio tietokantatapahtumalle

Tutkitaan tilasiirtymäkaaviota, joka korostaa kuinka tapahtuma liikkuu näiden eri tilojen välillä.

  1. Kun tapahtuma ilmoittaa toteutuksen, se muuttuu aktiiviseksi. Se voi antaa READ- tai WRITE-toiminnon.
  2. Kun LUE- ja KIRJOITA -toiminnot on suoritettu, tapahtumista tulee osittain sitoutuneita.
  3. Seuraavaksi joidenkin palautusprotokollien on varmistettava, että järjestelmän vika ei johda kyvyttömyyteen tallentaa tapahtuman muutoksia pysyvästi. Jos tämä tarkistus onnistuu, tapahtuma sitoutuu ja siirtyy sitoutuneeseen tilaan.
  4. Jos tarkistus on epäonnistunut, tapahtuma siirtyy epäonnistuneeseen tilaan.
  5. Jos tapahtuma keskeytetään sen ollessa aktiivisessa tilassa, se menee epäonnistuneeseen tilaan. Tapahtuma tulisi palauttaa, jotta sen kirjoitustoimintojen vaikutus tietokantaan kumotaan.
  6. Lopetettu tila viittaa tapahtumaan, joka poistuu järjestelmästä.

Mitkä ovat ACID-ominaisuudet?

ACID-ominaisuuksia käytetään ylläpitämään tietokannan eheyttä tapahtumien käsittelyn aikana. Happo DBMS tarkoittaa tomicity, C onsistency, I solation, ja D urability.

  • Atomisuus: Tapahtuma on yksi toimintayksikkö. Suoritat joko sen kokonaan tai et suorita sitä lainkaan. Osittaista suorittamista ei voida suorittaa.
  • Johdonmukaisuus: Kun tapahtuma on suoritettu, sen pitäisi siirtyä yhtenäisestä tilasta toiseen.
  • Eristäminen: Tapahtuma tulisi suorittaa erillään muista tapahtumista (ei lukkoja). Samanaikaisen tapahtuman suorittamisen aikana samanaikaisesti suoritettujen tapahtumien välitapahtumien tuloksia ei pitäisi asettaa toisilleen saataville. (Taso 0,1,2,3)
  • Kestävyys: · Tapahtuman onnistuneen suorittamisen jälkeen tietokannan muutosten tulisi jatkua. Jopa järjestelmän vikojen tapauksessa.

ACID-ominaisuus DBMS: ssä, esimerkki:

Alla on esimerkki ACMS-ominaisuudesta DBMS: ssä:

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

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

Tapahtuma 2 hyvittää jokaiselle tilille 10% korkomaksun.

Jos molemmat tapahtumat toimitetaan yhdessä, ei voida taata, että Tapahtuma 1 toteutetaan ennen Tapahtumaa 2 tai päinvastoin. Tilauksesta riippumatta tuloksen on oltava ikään kuin tapahtumat tapahtuisivat sarjaan peräkkäin.

Tapahtumatyypit

Perustuu käyttöalueisiin

  • Ei hajautettu vs. jaettu
  • Liiketoimien korvaaminen
  • Tapahtumien ajoitus
  • On-line vs. erä

Perustuu toimintoihin

  • Kaksi askelta
  • Rajoitettu
  • Toimintamalli

Perustuu rakenteeseen

  • Suorat tai yksinkertaiset tapahtumat: Se koostuu alku- ja lopputoimintojen välillä suoritetuista primitiivisistä operaatioista.
  • Sisäkkäiset tapahtumat: Tapahtuma, joka sisältää muita tapahtumia.
  • Työnkulku

Mikä on aikataulu?

Aikataulu on prosessi, joka luo yhden ryhmän useista rinnakkaisista tapahtumista ja suorittaa ne yksitellen. Sen tulisi säilyttää järjestys, jossa ohjeet näkyvät jokaisessa tapahtumassa. Jos kaksi tapahtumaa suoritetaan samanaikaisesti, yhden tapahtuman tulos voi vaikuttaa muiden tuotoksiin.

Esimerkki

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

Jos tapahtuma 2 suoritetaan ennen tapahtumaa 1, vanhentuneet tiedot tuotemäärästä luetaan. Siksi aikataulut vaaditaan.

Rinnakkainen toteutus tietokannassa on väistämätöntä. Mutta rinnakkainen toteutus on sallittua, kun samanaikaisesti suoritettavien tapahtumien välillä on vastaavuussuhde. Tämä vastaavuus on 3 tyyppiä.

TULOKSEN VASTAAVUUS:

Jos kahdessa aikataulussa näkyy sama tulos suorituksen jälkeen, sitä kutsutaan tulosekvivalentiksi. Ne voivat tarjota saman tuloksen joillekin arvoille ja erilaiset tulokset toiselle arvoryhmälle. Esimerkiksi yksi tapahtuma päivittää tuotemäärän, kun taas toinen päivittää asiakastiedot.

Näytä vastaavuus

Näkymän vastaavuus tapahtuu, kun molempien aikataulujen tapahtuma suorittaa samanlaisen toiminnan. Esimerkki: yksi tapahtuma lisää tuotetiedot tuotetaulukkoon, kun taas toinen tapahtuma lisää tuotetiedot arkistotaulukkoon. Tapahtuma on sama, mutta taulukot ovat erilaiset.

Ristiriidan vastaavuus

Tässä tapauksessa kaksi tapahtumaa päivittää / tarkastelee samaa tietojoukkoa. Tapahtumassa on ristiriita, koska suoritusjärjestys vaikuttaa tulokseen.

Mikä on sarjallisuus?

Sarjattavuus on prosessi, jolla etsitään samanaikaista aikataulua, jonka lähtö on yhtä suuri kuin sarjataulukko, jossa tapahtuma suoritetaan peräkkäin. Aikataulutyypistä riippuen sarjoitettavuutta on kahta tyyppiä:

  • Konflikti
  • Näytä

Yhteenveto:

  • Tapahtumien hallinta on looginen käsittelyyksikkö DBMS: ssä, johon liittyy yksi tai useampi tietokannan käyttöoperaatio
  • Tapahtuma on ohjelmayksikkö, jonka toteutus voi muuttaa tietokannan sisältöä tai olla muuttamatta sitä.
  • Samanaikaisen käytön hallitsematta jättäminen voi aiheuttaa ongelmia, kuten laitevikoja ja järjestelmän kaatumisia.
  • Aktiivinen, osittain sitoutunut, sitoutunut, epäonnistunut ja lopetettu ovat tärkeitä tapahtumien tilaa.
  • DBMS: n ACID-ominaisuuksien täydellinen muoto on atomisuus, johdonmukaisuus, eristäminen ja kestävyys
  • Kolme DBMS-tapahtumatyyppiä ovat perusta sovellusalueille, toiminnalle ja rakenteelle.
  • Aikataulu on prosessi, joka luo yhden ryhmän useista rinnakkaisista tapahtumista ja suorittaa ne yksitellen.
  • Serialisoitavuus on prosessi, jossa etsitään samanaikaista aikataulua, jonka tuotos on yhtä suuri kuin sarjataulukko, jossa tapahtumat suoritetaan peräkkäin.