Mikä on ACID?
Pyyhkäise näyttääksesi valikon
Aloitamme syventymisen SQL:n edistyneisiin aiheisiin käsittelemällä ACID-periaatteita.
ACID on lyhenne sanoista Atomicity, Consistency, Isolation ja Durability. Nämä neljä ominaisuutta ovat tietokannan hallinnan keskeisiä periaatteita, joiden tarkoituksena on varmistaa tietokantatapahtumien luotettavuus.
Olet ehkä huomannut, että käytämme sanaa transaktio ACID-määritelmässä. Saatat ajatella pankkitapahtumaa kuullessasi tämän sanan, mutta tietokantojen yhteydessä transaktio määritellään hieman eri tavalla.
Transaktio tarkoittaa yhtä tai useampaa peräkkäistä tietokantaoperaatiota, joita käsitellään yhtenä loogisena kokonaisuutena.
Kuvittele käyttäväsi verkkokauppaa.
Lisäät tuotteita ostoskoriin, siirryt kassalle ja suoritat maksun. Koko tämä prosessi voidaan ajatella tietokantatransaktiona. Näin se toimii:
- Transaktion aloitus: aloitat kassaprosessin;
- Toimenpiteet:
- Järjestelmä tarkistaa, että ostoskorin tuotteet ovat edelleen varastossa;
- Maksutietosi käsitellään;
- Varastosaldo päivitetään ostettujen tuotteiden osalta;
- Tilausmerkintä luodaan tietokantaan.
- Transaktion hyväksyminen: kun kaikki vaiheet on suoritettu onnistuneesti, transaktio hyväksytään eli kaikki muutokset tallennetaan tietokantaan;
- Palautus (tarvittaessa): jos jokin vaihe epäonnistuu (esim. maksu ei onnistu), transaktio palautetaan eli mitään muutoksia ei tallenneta. Tämä varmistaa, että tietokanta pysyy johdonmukaisessa tilassa, ikään kuin transaktiota ei olisi koskaan tapahtunut.
Tämä esimerkki osoittaa, kuinka transaktio yhdistää useita toimenpiteitä yhdeksi luotettavaksi prosessiksi.
Miksi tarvitsemme ACID-ominaisuuksia?
ACID-ominaisuudet ovat tärkeitä tietokannoissa kolmesta keskeisestä syystä:
- Ensinnäkin ne takaavat transaktioiden luotettavuuden käsittelemällä transaktiot yhtenäisinä, jakamattomina yksikköinä, estävät osittaiset päivitykset ja ylläpitävät johdonmukaisuutta;
- Toiseksi ne mahdollistavat samanaikaisuuden hallinnan varmistamalla, että transaktiot suoritetaan itsenäisesti, estävät häiriöt ja säilyttävät tietojen johdonmukaisuuden monen käyttäjän ympäristöissä;
- Lopuksi ne varmistavat tietojen pysyvyyden tallentamalla vahvistetut transaktiot pysyvästi, jolloin tiedot säilyvät järjestelmävikojen jälkeen ja palautettavuus on taattu.
Tarkastellaan tilannetta, jossa on kyse pankkitilistä:
- Transaktio 1 (T1): Siirrät 100 $ säästötililtä käyttötilille.
- Samaan aikaan transaktio 2 (T2): Tarkistat säästötilisi saldon verkossa.
- Mutta sitten T1 kohtaa virheen—esimerkiksi verkkoyhteysongelman vuoksi—eikä siirto valmistu.
- Sillä välin T2 valmistuu ja näyttää säästötilisi saldon, mukaan lukien 100 $ siirron, jota ei todellisuudessa vielä tapahtunut.
Tämä rikkoo ACID:n eristysominaisuutta. Vaikka siirto ei valmistunut (T1:n epäonnistumisen vuoksi), olet jo nähnyt sen vaikutuksen tilisi saldossa. Tämä epäjohdonmukaisuus voi hämmentää käyttäjiä ja johtaa virheellisiin taloudellisiin päätöksiin.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Mikä on ACID?
Aloitamme syventymisen SQL:n edistyneisiin aiheisiin käsittelemällä ACID-periaatteita.
ACID on lyhenne sanoista Atomicity, Consistency, Isolation ja Durability. Nämä neljä ominaisuutta ovat tietokannan hallinnan keskeisiä periaatteita, joiden tarkoituksena on varmistaa tietokantatapahtumien luotettavuus.
Olet ehkä huomannut, että käytämme sanaa transaktio ACID-määritelmässä. Saatat ajatella pankkitapahtumaa kuullessasi tämän sanan, mutta tietokantojen yhteydessä transaktio määritellään hieman eri tavalla.
Transaktio tarkoittaa yhtä tai useampaa peräkkäistä tietokantaoperaatiota, joita käsitellään yhtenä loogisena kokonaisuutena.
Kuvittele käyttäväsi verkkokauppaa.
Lisäät tuotteita ostoskoriin, siirryt kassalle ja suoritat maksun. Koko tämä prosessi voidaan ajatella tietokantatransaktiona. Näin se toimii:
- Transaktion aloitus: aloitat kassaprosessin;
- Toimenpiteet:
- Järjestelmä tarkistaa, että ostoskorin tuotteet ovat edelleen varastossa;
- Maksutietosi käsitellään;
- Varastosaldo päivitetään ostettujen tuotteiden osalta;
- Tilausmerkintä luodaan tietokantaan.
- Transaktion hyväksyminen: kun kaikki vaiheet on suoritettu onnistuneesti, transaktio hyväksytään eli kaikki muutokset tallennetaan tietokantaan;
- Palautus (tarvittaessa): jos jokin vaihe epäonnistuu (esim. maksu ei onnistu), transaktio palautetaan eli mitään muutoksia ei tallenneta. Tämä varmistaa, että tietokanta pysyy johdonmukaisessa tilassa, ikään kuin transaktiota ei olisi koskaan tapahtunut.
Tämä esimerkki osoittaa, kuinka transaktio yhdistää useita toimenpiteitä yhdeksi luotettavaksi prosessiksi.
Miksi tarvitsemme ACID-ominaisuuksia?
ACID-ominaisuudet ovat tärkeitä tietokannoissa kolmesta keskeisestä syystä:
- Ensinnäkin ne takaavat transaktioiden luotettavuuden käsittelemällä transaktiot yhtenäisinä, jakamattomina yksikköinä, estävät osittaiset päivitykset ja ylläpitävät johdonmukaisuutta;
- Toiseksi ne mahdollistavat samanaikaisuuden hallinnan varmistamalla, että transaktiot suoritetaan itsenäisesti, estävät häiriöt ja säilyttävät tietojen johdonmukaisuuden monen käyttäjän ympäristöissä;
- Lopuksi ne varmistavat tietojen pysyvyyden tallentamalla vahvistetut transaktiot pysyvästi, jolloin tiedot säilyvät järjestelmävikojen jälkeen ja palautettavuus on taattu.
Tarkastellaan tilannetta, jossa on kyse pankkitilistä:
- Transaktio 1 (T1): Siirrät 100 $ säästötililtä käyttötilille.
- Samaan aikaan transaktio 2 (T2): Tarkistat säästötilisi saldon verkossa.
- Mutta sitten T1 kohtaa virheen—esimerkiksi verkkoyhteysongelman vuoksi—eikä siirto valmistu.
- Sillä välin T2 valmistuu ja näyttää säästötilisi saldon, mukaan lukien 100 $ siirron, jota ei todellisuudessa vielä tapahtunut.
Tämä rikkoo ACID:n eristysominaisuutta. Vaikka siirto ei valmistunut (T1:n epäonnistumisen vuoksi), olet jo nähnyt sen vaikutuksen tilisi saldossa. Tämä epäjohdonmukaisuus voi hämmentää käyttäjiä ja johtaa virheellisiin taloudellisiin päätöksiin.
Kiitos palautteestasi!