Kuvaile tapahtumia

Valmis

Tapahtuma on yksi tai useampi T-SQL-lausekkeet, joita käsitellään yksikkönä. Jos yksittäinen tapahtuma epäonnistuu, kaikki tiliotteet epäonnistuvat. Jos tapahtuma onnistuu, tiedät, että kaikki tapahtuman tietojen muokkauslausekkeet onnistuivat ja sidottiin tietokantaan.

Tapahtumat varmistavat, että kaikki tapahtuman sisältämät lausekkeet joko onnistuvat tai epäonnistuvat tai että osittainen täydentäminen ei ole sallittua. Tapahtumat tiivistävät toiminnot, joiden on tapahduttava loogisesti yhdessä, kuten useita merkintöjä liittyviin taulukoihin, jotka ovat osa yhtä toimintoa.

Harkitse liiketoimintaa, joka tallentaa ostot Sales.Order-taulukkoon , ja maksuja Sales.Payment-taulukossa . Kun käyttäjä ostaa jotakin, molemmat taulukot on päivitettävä. Jos tämä otetaan käyttöön ilman tapahtumia ja virhe ilmenee, kun maksua kirjoitetaan tietokantaan, Sales.Order-lisäys on edelleen varattu, joten maksutaulukosta jätetään merkintä ilman merkintää.

Kun tämä otetaan käyttöön tapahtumissa, joko molemmat merkinnät tehdään tai kumpaakaan merkintää ei tehdä. Jos maksua kirjoitetaan taulukkoon virhe, myös tilauksen lisäys peruutetaan. Tämä tarkoittaa sitä, että tietokanta on aina yhtenäisessä tilassa.

Kaavio, joka näyttää tapahtumien käyttämisen ja siitä poikkeamisen.

On huomattava, että tämä viittaa vakaviin virheisiin, kuten laitteisto- tai verkkovirheisiin. SQL-lausekkeiden virheet vain hidastavat tapahtumaa tietyissä tilanteissa, ja on tärkeää tarkastella tämän moduulin seuraavia osioita, jotta ymmärrät täysin tapahtumien käyttämisen vaikutukset.

Tapahtumatyyppejä on erityyppisiä:

Eksplisiittiset tapahtumat

Avainsanat BEGIN TRANSACTION ja joko COMMIT tai ROLLBACK start and end each batch of statements. Näin voit määrittää, mitkä lausekkeet on joko sidottava tai peruutettava yhdessä.

Implisiittiset tapahtumat

Tapahtuma käynnistetään, kun edellinen tapahtuma on suoritettu. Jokainen tapahtuma on eksplisiittisesti suoritettu COMMIT- tai ROLLBACK-lausekkeella.

HAPAN OMINAISUUDET

Verkkokaupan käsittelyjärjestelmät (OLTP, Online Transactional Processing) edellyttävät, että tapahtumat täyttävät "ACID"-ominaisuudet:

  • Atomisuus – jokaista tapahtumaa käsitellään yhtenä yksikkönä, joka onnistuu kokonaan tai onnistuu kokonaan. Molemmat toimenpiteet on suoritettava esimerkiksi tapahtumassa, johon liittyy varojen veloitus yhdeltä tililtä ja saman määrän hyvitys toiselle tilille. Jos jommankumman toiminnon suorittamiseen ei voida tehdä, toisen toiminnon täytyy epäonnistua.
  • Johdonmukaisuus – tapahtumat voivat viedä tietokannan tiedot vain yhdestä kelvollisista osavaltioista toiseen. Yllä olevan veloitus- ja luotonsiirron jatkamiseksi tapahtuman valmiin tilan on kuvastettava rahansiirtoa yhdeltä tililtä toiselle.
  • Eristäminen – samanaikaiset tapahtumat eivät voi häiritä toisiaan, ja ne voivat johtaa yhtenäiseen tietokantatilaan. Vaikka esimerkiksi tapahtuma, jolla siirretään varoja yhdeltä tililtä toiselle, on käsittelyssä, toisen tapahtuman, joka tarkistaa näiden tilien saldoa, on palautettava yhtenäiset tulokset - taseen tarkistustapahtuma ei voi noutaa yhden tilin arvoa, joka heijastaa saldoa ennen siirtoa, ja toisen tilin arvoa, joka heijastaa saldoa siirron jälkeen.
  • Kestävyys – kun tapahtuma on tehty, se pysyy sitoutuneena. Kun tilinsiirtotapahtuma on valmis, tarkistetut tilin saldot säilyvät niin, että vaikka tietokantajärjestelmä poistettaisiin käytöstä, varattu tapahtuma näytettäisiin, kun se otetaan käyttöön uudelleen.