Johdatus SQL-tapahtumiin

SQL-tapahtuma, jota yleisesti kutsutaan maksujen suorittamiseksi (lähettäminen, vastaanottaminen, ostaminen jne.), Mutta teknisten kenttien yhteydessä se on tapa päivittää tietokannan looginen tietoyksikkö.

Tapahtuma on yhden tai useamman muutoksen toteuttaminen tietokantaan. Voimme ryhmitellä useita SQL-kyselyjä ja suorittaa kerralla tapahtumassa. Kaikki SQL-kyselyt joko suoritetaan yhdellä kertaa tai kaikki hylätään. Sillä olisi vain kaksi lopputulosta joko menestys tai epäonnistuminen.

Sitouduttuaan tapahtuma ei voi olla peruuttaminen. Se voi olla peruuttaminen vain, jos tapahtumaa ei ole sitoutunut. MYSQL tekee muutokset tietokantaan automaattisesti, jos kaikki kyselyt suoritetaan onnistuneesti. Jotta muutokset voidaan nimenomaisesti sitoutua tietokantaan, on ensin poistettava automaattinen sitoutuminen käytöstä komennolla -

Syntaksi: SET automaattinen lähetys = 0;

Tapahtuman ominaisuudet

Seuraavassa on tapahtumien tärkeät ominaisuudet, jokaisen tapahtuman on noudatettava näitä ominaisuuksia

1. Atomisuus

Tapahtuman on oltava atomi, tietyn loogisen yksikön tietojen käsittely on suoritettava loppuun. Tämä ominaisuus varmistaa, että datamuutokset tapahtuvat kokonaan, muuten tapahtuma peruutetaan.

2. Johdonmukaisuus

Kun tapahtuma on valmis, kaikki käytettävissä olevat tietueet ovat yhdenmukaiset koko tapahtuman ajan. Tämä ominaisuus varmistaa, että tietokannan ominaisuus vaihtuu tilaan onnistuneen sitoutumisen jälkeen.

3. Eristäminen

Eristämisellä tarkoitetaan tietyn loogisen yksikön tietojen muutoksia, jotka eivät saisi vaikuttaa toiseen yksikköyn. Se mahdollistaa tapahtuman suorittamisen itsenäisesti.

4. Kestävyys

Tapahtumien aikana tehtyjen muutosten tulee olla pysyviä järjestelmässä. Järjestelmävirheen tapauksessa tämä ominaisuus varmistaa myös, että tietojen muutokset tapahtuvat vai eivät.

Edellä annettu kaupan omaisuus tunnetaan myös nimellä ACID-omaisuus.

Kaupan vaiheet

1. Aloita

Tapahtuma voi tapahtua useissa SQL-suorituksissa, mutta kaiken SQL: n tulisi suorittaa kerralla. Jos jokin tapahtumista epäonnistuu, koko tapahtuma palautetaan. Tapahtuman aloittamista koskeva lause on ”START TRANSACTION” .Seuraa lyhenne START TRANSACTION.

Syntaksi: Aloita kauppa;

2. Sitoutu

Sitoumukset heijastavat pysyvästi tietokannan muutoksia. Tapahtuman aloittamista koskeva lause on ”SITO”.

Syntaksi: COMMIT;

3. Palautus

Palautusta käytetään muutosten palauttamiseen, ts. Tietuetta ei muuteta, se olisi aiemmassa tilassa. Kaupan aloittamista koskeva lause on ”ROLLBACK”.

Syntaksi: ROLLBACK;

4. Tallennuspiste

SAVEPOINT on myös tapahtumalaskelma. Tätä lausetta käytettiin tallennuspisteen luomiseen järjestelmään, jotta ROLLBACK-toiminta voi saavuttaa tallennuspisteen tilan.

5. Vapauta Savepoint

RELEASE SAVEPOINT on lause, jonka avulla järjestelmä vapauttaa tallennuspisteen luomiseen tarvittavan tallennuspisteen ja muistin.

Syntaksi: RELEASE SAVEPOINT SP

Huomautuksia - SP on tallennuspisteen nimi, kun tämä tallennuspiste luotiin ennen tapahtuman alkamista.

6. Aseta tapahtuma

SET TRANSACTION -komentoa käytetään määrittämään tapahtumattribuutti, kuten annettu tapahtuma on vain luku- tai kirjoitusistunto.

Syntaksi : SET TRANSACTION (LUKAA KIRJOITUS | VAIN LUE);

Tapahtumaa käytetään suorittamaan tietokannan monimutkaiset muutokset. Sitä käytetään pääasiassa pankkitietoihin muuttuessa relaatiotietokantaan.

Kauppaa tukee MYSQL-moottori InnoDB. Oletusarvoisesti automaattinen sitoutuminen pysyy käytössä, siksi aina, kun jokin SQL suorittaa suorituksen jälkeen, se tapahtuu automaattisesti.

Tapahtumat SQL: n avulla

Esimerkki # 1

Pankkitapahtuma: Tili, joka on veloitettu 50000 summalta henkilöltä säästötili ja lähetti tämän summan A: n lainalle.

Aloita tapahtuma: Tämä aloitustapahtuma muuntaa kaikki SQL-kyselyt yhdeksi tapahtumayksiköksi.

UPDATE `account` SET `balance` = `balance` - 50000 WHERE user_id = 7387438;

Tämä SQL-kysely vähentää määrän nykyisestä tilisaldosta.

UPDATE `loan_account` SET `paid_amount` = `paid_amount` + 50000 WHERE user_id = 7387438;

Tämä SQL-kysely lisää summan käyttäjän lainatilille.

Insert into `transaction_details`(`user_id`, 'amount') values (7387438, '50000');

Tämä SQL-kysely lisää uuden tietueen tapahtuman yksityiskohtitaulukkoon, tähän taulukkoon sisältyy kaikkien käyttäjien tapahtumien yksityiskohdat. Jos kaikki kysely suoritettiin onnistuneesti, COMMIT-komento on suoritettava, koska muutokset on tallennettava pysyvästi tietokantaan.

Sitoa: Tämä sitoumuslausunto tallentaa muutokset, joihin tapahtuma on vedonnut tietokantaan. Jos jokin tapahtumista epäonnistuu suorituksen aikana, ROLLBACK-komento tulisi suorittaa koko tapahtuman palauttamiseksi

Palautus: Palautus tapahtuu, kun jokin kysely epäonnistuu suorituksen aikana.

Esimerkki 2

Varastotapahtuma: Annetuissa taulukoissa on saatavana 6 tuotetta.

Suoritetaan seuraava START TRANSACTION -käsky tapahtuman aloittamiseksi.

Suorita nyt komento SET AUTOCOMMIT = 0 ; poistaa automaattinen sitoutuminen käytöstä

Suoritamme nyt seuraavan lausunnon tietueen poistamiseksi kohteitaulukosta

Nyt käytettävissä oleva tietue taulukossa on 4 eli tietueet, jotka on väliaikaisesti poistettu taulukon kohteista

Nyt suorittamalla komento ROLLBACK muutosten palauttamiseksi, poistettu tietue olisi käytettävissä taulukon kohteissa kuten aiemmin ennen tapahtuman aloittamista.

Jälleen, jos sovelletaan samaa poistooperaatiota, COMMIT-operaatio muutosten jälkeen tallennetaan pysyvästi tietokantaan

Nyt voimme nähdä, että kun ROLLBACK-komento oli edelleen, tietue oli uudessa tilassa, Se tarkoittaa, että kun COMMIT-operaation suorittamia muutoksia ei voida palauttaa, koska se tekee pysyvästi muutoksia tietokantaan;

Transactionin käytön edut SQL: ssä

a) Transaction -sovelluksen käyttö parantaa suorituskykyä , kun 1000 tietueen lisääminen tapahtumia käyttäen, siinä tapauksessa aika olisi vähemmän kuin normaali lisäys. Kuten normaalissa tapahtumassa, joka kerta, kun COMMIT tapahtuisi jokaisen kyselyn suorituksen jälkeen, ja se pidentäisi suoritusaikaa joka kerta, kun tapahtumassa ei tarvitse suorittaa COMMIT-käskyä jokaisen SQL-kyselyn jälkeen. KOMITTINEN lopussa heijastaa kaikki muutokset tietokantaan pysyvästi kerralla. Myös jos käytetään transaktiota, muutosten palauttaminen olisi paljon helpompaa kuin normaali tapahtuma. ROLLBACK palauttaa kaikki muutokset kerralla ja pitää järjestelmän edellisessä tilassa.

b) Tapahtuma varmistaa tietojen eheyden relaatiotietokannassa. Suurin osa tietokannasta käyttää useita taulukoita tietojen ylläpitämiseen, ja päivityksiä tehtäessä voi olla, että useissa taulukoissa on muutoksia tuolloin, jos jokin SQL-kysely epäonnistuu, tapahtuma pitäisi tiedot ennallaan.

johtopäätös

Transaktioiden käyttäminen on paras tapa päivittää relaatiotietokannan loogista yksikköä. Tapahtumien toteuttamisessa tietokantamoottorin tulisi tukea tapahtumaa kuten InnoDB-moottoria. Tapahtuma SQL-lauseiden yksikkönä voidaan palauttaa kerralla käyttämällä yhtä ROLLBACK-käskyä. Transaction varmistaa tietojen eheyden ja parantaa tietokannan suorituskykyä.

Suositellut artikkelit

Tämä on opas SQL-tapahtumiin. Tässä keskustellaan johdannosta, ominaisuuksista, vaiheista, esimerkkeistä SQL-tapahtumista sekä tapahtumien käytön eduista SQL: ssä.

  1. Mikä on SQL
  2. SQL-hallintatyökalut
  3. SQL-näkymät
  4. Tyypit liittymiset SQL Serverissä
  5. MySQL: n kuusi suosittua liittymistyyppiä ja esimerkkejä