Tietokannan eristysominaisuuden ymmärtäminen
Eristäminen on tietokanta-tason ominaisuus, joka ohjaa, miten ja milloin muutoksia tehdään ja tulevatko ne näkyviksi toisilleen, käyttäjille ja järjestelmille. Yksi eristämisen tavoitteista on sallia useiden tapahtumien tapahtuminen samanaikaisesti ilman, että ne vaikuttavat haitallisesti kunkin suorittamiseen.
Eristäminen on olennainen osa tietokannan tapahtumaominaisuuksia. Se on kolmas ominaisuus HAPPO (atomisuus, konsistenssi, eristys, kestävyys) standardeja, jotka varmistavat tietojen olevan johdonmukaisia ja tarkkoja.
Kuinka eristäminen toimii
Jos Joe antaa a tietokantatapahtuma Samaan aikaan, kun Mary antaa eri tapahtuman, molempien tapahtumien tulisi toimia tietokannassa erillään. Tietokannan tulisi joko suorittaa Joen koko tapahtuma ennen Maryn suorittamista tai päinvastoin.
Tämä yksinoikeus estää Joen tapahtumaa lukemasta välitietoja, jotka on tuotettu osana Maryn tapahtumaa ja joita ei lopulta sitouduta tietokantaan.
Eristysominaisuus ei takaa, että tietty tapahtuma suoritetaan ensin, vain, että ne eivät häiritse toisiaan.
Eristystasot
Eristystasoja on neljä. Korkeampi eristys rajoittaa käyttäjien mahdollisuuksia käyttää samoja tietoja samanaikaisesti. Mitä korkeampi eristystaso, sitä enemmän järjestelmäresursseja tarvitaan ja sitä todennäköisemmin tietokantatapahtumat estävät toisensa.
- Sarjasoitavissa on korkein taso, mikä tarkoittaa, että yksi tapahtuma on suoritettava loppuun ennen kuin toinen tapahtuma voi alkaa.
- Toistettavissalukee sallia tapahtumiin pääsyn, kun tapahtuma on alkanut, vaikka se ei olisi päättynyt. Tämä taso mahdollistaa haamulukemisen tai lisättyjen tai poistettujen rivien tunnistamisen, vaikka olemassa olevien rivien muutokset eivät olisi luettavissa.
- Lue sitoutunut mahdollistaa pääsyn tietoihin sen jälkeen, kun tiedot on sitoutunut tietokantaan, mutta ei ennen sitä.
- Lue sitoutumaton on alhaisin eristyksen taso ja mahdollistaa pääsyn tietoihin ennen kuin muutokset on tehty.
Kun eristystasoa alennetaan, sitä suurempi on mahdollisuus, että käyttäjät kohtaavat lukuilmiöitä, kuten sitoutumattomia riippuvuuksia, myös Tunnetaan likaisina lukuina, jotka johtavat tietojen lukemiseen riviltä, jota toinen käyttäjä on muokannut mutta jota ei ole vielä sitoutunut tietokantaan.