logo

SQL-TAPAHTUMAT

SQL-tapahtuma on yhden tai useamman SQL-operaation sarja (esim.INSERT UPDATE DELETE) toteutetaan yhtenä työyksikkönä. Tapahtumat varmistavat, että joko kaikki toiminnot onnistuvat tai niitä ei käytetä tietojen eheyden säilyttämiseksi.

SQL-tapahtumien tärkeimmät ominaisuudet: ACID

SQL-tapahtumien eheyttä säätelevät ACID-ominaisuudet, jotka takaavat luotettavat tietokantatapahtumat. Nämä neljä ominaisuutta toimivat yhdessä varmistaakseen, että tietokanta pysyy yhtenäisenä ja luotettavana.

  • Atomuus: Kaupan lopputulos voi olla joko täysin onnistunut tai täysin epäonnistunut. Koko tapahtuma on peruutettava, jos jokin sen osa epäonnistuu.
  • Johdonmukaisuus: Tapahtumat säilyttävät eheysrajoitukset siirtämällä tietokannan kelvollisesta tilasta toiseen.
  • Eristäytyminen: Samanaikaiset tapahtumat on eristetty toisistaan, mikä varmistaa tietojen oikeellisuuden.
  • Kestävyys: Kun tapahtuma on tehty, sen muutokset pysyvät voimassa myös järjestelmävian sattuessa.

SQL-tapahtumien ohjauskomennot

SQL:ssä tapahtumien ohjauskomennot hallitsevat SQL-toimintojen suorittaminen, mikä varmistaa tietokantatapahtumien eheyden ja luotettavuuden. Nämä komennot auttavat hallitsemaan tietokantaan tehtyjen muutosten aloitusta ja palautusta. Alla on SQL:n tärkeimmät tapahtumanhallintakomennot, jotka on selitetty syntaksin ja esimerkkien kanssa.



1. BEGIN TRANSACTION -komento

TheBEGIN TRANSACTIONkomento merkitsee uuden tapahtuman alkua. Kaikki tätä komentoa seuraavat SQL-käskyt ovat osa samaa tapahtumaa, kunnes aCOMMIT tai ROLLBACK on kohdattu. Tämä komento ei tee mitään muutoksia tietokantaan, vaan käynnistää tapahtuman.

Syntaksi:

BEGIN TRANSACTION transaction_name ;

Esimerkki SQL-tapahtumasta pankkisiirtoskenaarion kanssa

Katsotaanpa esimerkkiä pankkisiirrosta kahden tilin välillä. Tämä esimerkki osoittaa useiden kyselyjen käytön yhdessä tapahtumassa.

BEGIN TRANSACTION;  

-- Deduct 0 from Account A
UPDATE Accounts
SET Balance = Balance - 150
WHERE AccountID = 'A';

-- Add 0 to Account B
UPDATE Accounts
SET Balance = Balance + 150
WHERE AccountID = 'B';

-- Commit the transaction if both operations succeed
COMMIT;

Jos tapahtuu virhe, kuten ongelmaUPDATEkysely, jota voit käyttääROLLBACKperuuttaaksesi kaikki tapahtuman aikana tehdyt muutokset:

ROLLBACK;

Tämä varmistaa, että järjestelmä ei päädy epäjohdonmukaiseen tilaan, kuten rahojen vähentämiseen yhdeltä tililtä lisäämättä sitä toiselle.

BEGIN TRANSACTION TransferFunds;

2. COMMIT-komento

TheCOMMIT-komentoa käytetään tallentamaan kaikki nykyisen tapahtuman aikana tehdyt muutokset tietokantaan. Kun tapahtuma on tehty, muutokset ovat pysyviä. 

Syntaksi:

COMMIT;

Esimerkki

Tässä on näyteStudenttaulukko, jota käytetään tämän esimerkin toimintojen suorittamiseen. Tämä taulukko sisältää opiskelijan perustiedot, kuten tunnuksen nimen iän ja muita olennaisia ​​tietoja, joita käsitellään erilaisilla tapahtuman ohjauskomennot.

ulostulo' title=Opiskelijapöytä

Seuraavassa on esimerkki, joka poistaa taulukosta ne tietueet, joiden ikä on = 20, ja SITOI sitten muutokset tietokantaan. 

DELETE FROM Student WHERE AGE = 20;  
COMMIT;

Lähtö

ulostulo' loading='lazy' title=ulostulo

3. ROLLBACK-komento

TheROLLBACKkomentoa käytetään kumoamaan kaikki nykyiseen tapahtumaan tehdyt muutokset. Sitä käytetään, kun tapahtuu virhe tai kun haluttuja muutoksia ei voida suorittaa. Tietokanta palautuu tilaan, jossa se oli ennen BEGIN TRANSACTION teloitettiin.

Syntaksi:

ROLLBACK;

Esimerkki

Poista taulukosta ne tietueet, joiden ikä on = 20, ja PALAA sitten tietokannan muutokset. Tässä tapauksessa DELETE toiminto kumotaan eikä tietokantaan tehtyjä muutoksia tallenneta.

DELETE FROM Student WHERE AGE = 20;  
ROLLBACK;

Lähtö:

ulostulo' loading='lazy' title=ulostulo

4. SAVEPOINT-komento

ASAVEPOINTkäytetään luomaan a tarkistuspiste tapahtuman sisällä. Voimme palata tiettyyn asiaanSAVEPOINTsen sijaan, että peruuttaisi koko kauppa. Tämä antaa meille mahdollisuuden kumota osan tapahtumasta sen sijaan, että koko kaupan.

Syntaksi:

SAVEPOINT SAVEPOINT_NAME;

Esimerkki

SAVEPOINT SP1;  
//Savepoint created.
DELETE FROM Student WHERE AGE = 20;
//deleted
SAVEPOINT SP2;
//Savepoint created.

Lähtö:

ulostulo' loading='lazy' title=ulostulo

Selitys:

Yllä olevasta esimerkistä Esimerkkitaulukko1 Poista taulukosta ne tietueet, joiden ikä on 20, ja PALAUTTA sitten muutokset tietokannassa säilyttämällä tallennuspisteet. Tässä SP1 on ensimmäinen SAVEPOINT luotu ennen poistamista. Tässä esimerkissä on tapahtunut yksi poisto. Poiston jälkeen SAVEPOINT SP2 luodaan uudelleen. 

5. PALAUTUS SAVEPOINTIHIN

TheROLLBACK TO SAVEPOINTkomennon avulla voimme palauttaa tapahtuman tiettyyn tallennuspisteeseen kumoamalla sen jälkeen tehdyt muutokset.

Syntaksi:

ROLLBACK TO SAVEPOINT SAVEPOINT_NAME;

Esimerkki

Poisto on tapahtunut, oletetaan, että olemme muuttaneet mieltämme ja päättäneet PALAUTTAA SAVEPOINT-pisteeseen, jonka tunnistimme SP1:ksi, joka on ennen poistamista. Joten tässä tapauksessaDELETEtoiminto kumotaan ja tapahtuma palautetaan tilaan, jossa se oliSP1tallennuspiste.

ROLLBACK TO SP1;  
//Rollback completed

Lähtö:

ulostulo' loading='lazy' title=ulostulo

6. vapauta SAVEPOINT-komento

Tätä komentoa käytetään poistamaan luomamme SAVEPOINT. Kun SAVEPOINT on vapautettu, emme voi enää käyttää ROLLBACKia -komento kumoaa viimeisen SAVEPOINT:n jälkeen suoritetut tapahtumat. Sitä käytetään tietokantatapahtuman käynnistämiseen ja sitä käytetään seuraavan tapahtuman ominaisuuksien määrittämiseen. 

lajitella arraylist java

Syntaksi:  

RELEASE SAVEPOINT SAVEPOINT_NAME;

Esimerkki

Kerran tallennuspisteSP2vapautetaan, emme voi enää palata siihen.

RELEASE SAVEPOINT SP2; -- Release the second savepoint.

Miksi käyttää maksutapahtumia pankkitoiminnassa?

Tässä tapauksessa ilman tapahtumaa vaarana on skenaariot, joissa rahaa vähennetään yhdeltä tililtä, ​​mutta sitä ei lisätä toiselle, jolloin järjestelmä on epäjohdonmukainen. Tapahtumat varmistavat, että tällaiset ongelmat vältetään takaamalla, että molemmat toiminnot onnistuvat tai epäonnistuvat yhdessä.

SQL-tapahtumien tyypit

On olemassa erilaisia ​​tapahtumia niiden luonteen ja niiden suorittamien erityistoimintojen mukaan:

  • Lue Tapahtumat : Käytetään vain tietojen lukemiseen tyypillisesti SELECT kyselyitä.
  • Kirjoita tapahtumat : Näihin kuuluu tietokannan tietojen muokkaaminen käyttämällä INSERT UPDATEtaiDELETEtoiminnot.
  • Hajautetut tapahtumat : Nämä tapahtumat kattavat useita tietokantoja ja varmistavat niiden välisen johdonmukaisuuden.
  • Implisiittiset tapahtumat : SQL Server käynnistää automaattisesti tiettyjä toimintoja varten.
  • Eksplisiittiset tapahtumat : Manuaalisesti ohjatut tapahtumat, joissa käyttäjä aloittaa ja lopettaa tapahtuman käyttämälläBEGIN TRANSACTION COMMITjaROLLBACK.

SQL-tapahtumien seuranta ja optimointi

Harkitse seuraavia tekniikoita suorituskyvyn ylläpitämiseksi ja ongelmien estämiseksi:

1. Näytön lukot : Seuraa lukituskäyttäytymistä ja säädä kyselyitä lukitusristiriitojen minimoimiseksi.

2. Rajoita tapahtuman laajuutta : Rajaa tapahtumaan vaikuttavien rivien tai tietueiden määrää käsittelyn nopeuttamiseksi.

3. Käytä eräkäsittelyä : Jos käsittelet suuria tietomääriä, jaa toiminnot pienempiin tapahtumiin tai eriin välttääksesi järjestelmän ylikuormituksen.

Suositeltu tietokilpailu Muokkaa tietokilpailua 5 kysymystä

Mikä seuraavista skenaarioista kuvaa parhaiten ACID:n "Isolation"-ominaisuuden rikkomista?

  • A

    Tapahtuma jättää tietokannan tilaan, joka rikkoo ensisijaisen avaimen rajoitusta.

  • B

    Kaksi samanaikaisesti käynnissä olevaa tapahtumaa lukevat ja kirjoittavat samoja tietoja, mikä johtaa epäjohdonmukaisiin tuloksiin.

  • C

    Käyttäjä päivittää tietueen onnistuneesti, mutta järjestelmän kaatuminen poistaa muutoksen.

  • D

    Tapahtuma epäonnistuu puolivälissä ja kaikki sen muutokset palautetaan.

Selitys:

Tämä on klassinen esimerkki eristysrikkomuksesta, jossa yhden tapahtuman välitila näkyy toiselle.

Pankkihakemuksessa varojen siirto sisältää yhden tilin veloituksen ja toisen tilin hyvityksen. Mikä ACID-ominaisuus varmistaa, että molemmat toiminnot ovat valmiit tai kumpikaan ei suorita?

  • A

    Eristäytyminen

  • B

    Atomuus

  • C

    Kestävyys

  • D

    Johdonmukaisuus

Selitys:

Atomicity varmistaa, että kaikki tapahtuman toiminnot suoritetaan onnistuneesti; muuten koko kauppa peruutetaan.

Tapahtuma suoritetaan ja 'COMMIT' annetaan. Välittömästi sähkökatkon sattumisen jälkeen. Mikä ACID-ominaisuus takaa, että tapahtuman tekemät muutokset ovat edelleen olemassa järjestelmän uudelleenkäynnistyksen jälkeen?

  • A

    Johdonmukaisuus

  • B

    Atomuus

  • C

    Kestävyys

  • D

    Eristäytyminen

Selitys:

Kestävyys on ominaisuus, joka varmistaa, että kun tapahtuma on tehty, se pysyy sellaisena myös sähkökatkon tai järjestelmän kaatumisen yhteydessä.

Mikä on SAVEPOINT-komennon ensisijainen tarkoitus tapahtumassa?

  • A

    Sitouttaa osa kaupasta.

  • B

    Merkitse tapahtumaan kohta, johon voit myöhemmin palata.

  • C

    Tallentaaksesi tapahtuman tilan pysyvästi.

    array java
  • D

    Voit lopettaa tapahtuman ja tehdä kaikista muutoksista pysyviä.

Selitys:

SAVEPOINT mahdollistaa osittaiset palautukset tapahtuman sisällä.

Harkitse seuraavaa tapahtumaa: ALOITA TAPAHTUMA; LISÄÄ...; SAVEPOINT A; PÄIVITYS...; SAVEPOINT B; POISTA...; PALAUTUS SÄÄSTÖPISTEEN A;' Mikä on tapahtuman tila ROLLBACK-komennon jälkeen?

  • A

    Koko kauppa peruutetaan.

  • B

    Vain 'POISTA' kumotaan.

  • C

    Virhe ilmenee, koska et voi palata tallennuspisteeseen, joka ei ole viimeisin.

  • D

    'INSERT' on tallennettu, mutta 'UPDATE' ja 'DELETE' kumotaan.

Selitys:

Palaaminen kohtaan "TALLENNAPISTE A" kumoaa kaikki tämän tallennuspisteen jälkeen tehdyt muutokset, jotka ovat "PÄIVITYS" ja "POISTA".

SQL-TAPAHTUMATTietokilpailu suoritettu onnistuneesti pisteesi:  2/5Tarkkuus: 0 %Kirjaudu sisään nähdäksesi selityksen 1/5 1/5 < Previous Seuraava >