Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Mikä on ACID? | Acid
SQL-optimointi ja kyselyominaisuudet

Mikä on ACID?

Pyyhkäise näyttääksesi valikon

Aloitamme syventymisen SQL:n edistyneisiin aiheisiin käsittelemällä ACID-periaatteita.

Note
Lisätietoa

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.

Note
Lisätietoa

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:

  1. Transaktion aloitus: aloitat kassaprosessin;
  2. Toimenpiteet:
    • Järjestelmä tarkistaa, että ostoskorin tuotteet ovat edelleen varastossa;
    • Maksutietosi käsitellään;
    • Varastosaldo päivitetään ostettujen tuotteiden osalta;
    • Tilausmerkintä luodaan tietokantaan.
  3. Transaktion hyväksyminen: kun kaikki vaiheet on suoritettu onnistuneesti, transaktio hyväksytään eli kaikki muutokset tallennetaan tietokantaan;
  4. 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.
Note
Huomio

Tarkastellaan tilannetta, jossa on kyse pankkitilistä:

  1. Transaktio 1 (T1): Siirrät 100 $ säästötililtä käyttötilille.
  2. Samaan aikaan transaktio 2 (T2): Tarkistat säästötilisi saldon verkossa.
  3. Mutta sitten T1 kohtaa virheen—esimerkiksi verkkoyhteysongelman vuoksi—eikä siirto valmistu.
  4. 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.

question mark

Mitä ACID tarkoittaa tietokantatransaktioiden yhteydessä?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 2

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Mikä on ACID?

Aloitamme syventymisen SQL:n edistyneisiin aiheisiin käsittelemällä ACID-periaatteita.

Note
Lisätietoa

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.

Note
Lisätietoa

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:

  1. Transaktion aloitus: aloitat kassaprosessin;
  2. Toimenpiteet:
    • Järjestelmä tarkistaa, että ostoskorin tuotteet ovat edelleen varastossa;
    • Maksutietosi käsitellään;
    • Varastosaldo päivitetään ostettujen tuotteiden osalta;
    • Tilausmerkintä luodaan tietokantaan.
  3. Transaktion hyväksyminen: kun kaikki vaiheet on suoritettu onnistuneesti, transaktio hyväksytään eli kaikki muutokset tallennetaan tietokantaan;
  4. 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.
Note
Huomio

Tarkastellaan tilannetta, jossa on kyse pankkitilistä:

  1. Transaktio 1 (T1): Siirrät 100 $ säästötililtä käyttötilille.
  2. Samaan aikaan transaktio 2 (T2): Tarkistat säästötilisi saldon verkossa.
  3. Mutta sitten T1 kohtaa virheen—esimerkiksi verkkoyhteysongelman vuoksi—eikä siirto valmistu.
  4. 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.

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 1. Luku 2
some-alt