Eristäminen on tietokantatason ominaisuus, joka määrittää, miten ja milloin muutoksia tehdään ja tulevatko ne näkymään toisilleen, käyttäjille ja järjestelmille. Yksi eristämisen tavoitteista on mahdollistaa useiden kauppojen tekeminen samanaikaisesti ilman, että se vaikuttaa kielteisesti kunkin kaupan toteuttamiseen. Eristäminen on olennainen osa tietokannan tapahtumaominaisuuksia. Se on ACID-standardien (Atomicity, Consistency, Isolation, Durability) kolmas ominaisuus, joka varmistaa tietojen olevan johdonmukaisia ja tarkkoja.
Kuinka eristys toimii
Jos Joe antaa tietokantatapahtuman, kun Mary suorittaa toisen tapahtuman, molempien tapahtumien on toimittava erillään tietokannassa. Tietokannan on joko suoritettava Joen koko tapahtuma ennen Maryn tapahtuman 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, vaan 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.
- sarjoitettavissa on korkein taso, mikä tarkoittaa, että tapahtuma on suoritettava loppuun ennen kuin toinen tapahtuma voi alkaa.
- toistettavissa lukee sallia kauppojen avaamisen heti, kun kauppa on aloitettu, vaikka se ei olisi vielä päättynyt. Tämä taso mahdollistaa haamulukemisen tai lisättyjen tai poistettujen rivien havaitsemisen, vaikka olemassa olevien rivien muutokset eivät olisi luettavissa.
- Lue omistautuneena sallii pääsyn tietoihin sen jälkeen, kun tiedot on sitoutunut tietokantaan, mutta ei ennen.
- Lue sitoutumaton on alin eristyksen taso ja mahdollistaa pääsyn tietoihin ennen muutosten tekemistä.
Kun eristystasoa alennetaan, käyttäjät kohtaavat todennäköisemmin lukuilmiöitä, kuten sitomattomia riippuvuuksia, jotka tunnetaan nimellä dirty reads, jotka johtavat tietojen lukemiseen riviltä, jota toinen käyttäjä on muokannut mutta joita ei ole vielä sitoutunut tietokantaan.