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.
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ö
ulostulo3. 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ö:
ulostulo4. 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ö:
ulostuloSelitys:
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ö:
ulostulo6. 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
SELECTkyselyitä. - Kirjoita tapahtumat : Näihin kuuluu tietokannan tietojen muokkaaminen käyttämällä
INSERTUPDATEtaiDELETEtoiminnot. - 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 TRANSACTIONCOMMITjaROLLBACK.
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.
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
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
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ä.
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.
Palaaminen kohtaan "TALLENNAPISTE A" kumoaa kaikki tämän tallennuspisteen jälkeen tehdyt muutokset, jotka ovat "PÄIVITYS" ja "POISTA".
Tietokilpailu suoritettu onnistuneesti pisteesi: 2/5Tarkkuus: 0 %Kirjaudu sisään nähdäksesi selityksen 1/5 1/5 < Previous Seuraava >