Transazione (basi di dati)

Nell'ambito dei DBMS si definisce transazione una sequenza di operazioni che, quando eseguita correttamente, produce una variazione dello stato della base di dati. Affinché sia considerata corretta una transazione deve godere di alcune proprietà, dette "ACIDe".

Descrizione

Una transazione, per essere tale, deve godere delle cosiddette proprietà ACID, in particolar modo nei sistemi in cui possono essere eseguite più transazioni contemporaneamente. La transazione è un sistema di tipo on/off che non può concludersi in uno stato intermedio. Le transazioni sono normalmente implementate da Database management system o da gestori di transazioni (application server o ambienti direttamente installati sulla macchina host dove risiede il database (es. CICS)).

Le transazioni devono possedere le seguenti proprietà logiche: Atomicity, Consistency, Isolation, e Durability (in acronimo ACID).

In caso di successo, il risultato delle operazioni deve essere permanente o persistente, mentre in caso di insuccesso si deve tornare allo stato precedente all'inizio della transazione.

Gestione

Lo stesso argomento in dettaglio: Database management system.

Nei linguaggi di accesso ai DBMS, la gestione delle transazioni fa parte del Data Manipulation Language (linguaggio di manipolazione dei dati). Infatti, le modifiche allo schema del database o alle autorizzazioni non sono facilmente gestibili con transazioni. Si dice che il DBMS è transazionale se è capace di garantire e mantenere l'integrità dei dati, vale a dire se la transazione non può finire in uno stato intermedio (sistema on/off). Le transazioni in linguaggio SQL iniziano con un'istruzione BEGIN TRAN e si concludono con un COMMIT TRAN (con eventuale notifica di transazione completata correttamente), oppure con un ROLLBACK TRAN, ad esempio in caso di errore (abort) e ripristino dello stato iniziale (in modo automatico o manualmente)[1].

Esecuzione

Un tipico flusso di esecuzione di una transazione è il seguente:

  • Prima di eseguire una transazione, si esegue un'istruzione di "inizio transazione".
  • Si eseguono le operazioni di interrogazione e modifica dei dati.
  • Se si riscontra qualche anomalia, si esegue un'istruzione detta di abort, per abortire la transazione che produce un meccanismo di rollback.
  • Se si sono eseguite tutte le operazioni senza riscontrare anomalie, si esegue un'istruzione detta di commit, per confermare la transazione.

Alcuni sistemi non prevedono un'istruzione di inizio transazione, perché quando ci si collega al DBMS, si inizia automaticamente una transazione, e quando si esegue un commit o un rollback, si inizia automaticamente un'altra transazione.

Se ci si scollega dal DBMS senza eseguire un commit, alcuni DBMS eseguono automaticamente un commit (autocommit), altri un rollback.

Per implementare una transazione, tipicamente si usa un'apposita area d'appoggio del disco fisso in cui vengono copiati i dati originali appena prima di essere modificati. Quando viene eseguito un commit, i dati originali copiati vengono eliminati. Quando viene eseguito un rollback, si ricopiano indietro i dati originali copiati. Pertanto, un commit è più efficiente di un rollback.

Annullamento

In caso di errori durante l'esecuzione potrebbe essere necessario abortire la transazione, attivando una procedura di annullamento o rollback (in inglese).

Esistono due tipi di abort:

  • Abort a runtime, che viene lanciato all'interno dell'esecuzione della transazione quando il DBMS riscontra qualche anomalia, come ad esempio una divisione per 0 ed esegue automaticamente un rollback;
  • Abort di sistema, che viene lanciato nel caso in cui si verifichi un errore di sistema come l'interruzione brusca del DBMS, per intervento esterno, o per un bug, o per spegnimento improvviso del computer. Il DBMS, quando viene riattivato, esegue automaticamente il rollback delle transazioni che erano in corso al momento del crash.

Una possibile causa del fallimento di una transazione è l'insufficienza di spazio d'appoggio in memoria per copiare i dati originali.

Implementazione

Lo stesso argomento in dettaglio: Database management system.

Nei DBMS le transazioni vengono processate dal transaction processing. Una query (ovvero un'interrogazione alla base di dati) ed altre azioni vengono raggruppate in una transazione che deve essere eseguita atomicamente, isolatamente dalle altre e comportando eventualmente una modifica permanente del database. Tale comportamento è assicurato dal

  • Concurrency Control Manager o WorkSpace Privato che garantisce l'atomicità e isolamento
  • Logging / Recovery Manager che garantisce la durabilità e coerenza.

Concurrency Control Manager o WorkSpace Privato

La transazione effettua le modifiche su una copia della risorsa database. Se essa non termina con successo la copia viene distrutta, altrimenti le modifiche fatte sulla copia vengono rese permanenti attraverso l'operazione di commit. Il sistema ne garantisce in questo modo l'atomicità. Le transazioni devono essere eseguite in isolamento le une dalle altre ma spesso molte transazioni vengono eseguite concorrentemente nello stesso sistema. Il concurrency control manager si assicura che le singole azioni delle varie transazioni vengano eseguite in un ordine tale da non interferire le une con le altre (isolamento). Il Concurrency Control Manager viene realizzato tramite due istruzioni primitive:

  • lock, istruzione tramite la quale si afferma che una risorsa è bloccata da una determinata transazione;
  • unlock, istruzione tramite la quale si afferma che una risorsa è stata liberata da una determinata transazione.

La serie dei lock viene memorizzata nella lock table (sezione del DBMS apposita). Il concurrency control manager ha anche il compito di risolvere i deadlock causati dai lock facendo abortire una o più transazioni. Per prevenire i lock e gestire al meglio le transazioni si introduce il concetto di scheduler. Lo scheduler ha il compito di garantire l'isolamento, accogliere una transazione ed assegnarle un identificatore unico, chiedere al buffer manager del DBMS di leggere/scrivere sul database secondo una particolare sequenza.

Logging / Recovery Manager

Per assicurare persistenza dei dati del database anche in caso di crash (p.e. stalli nell'accesso delle transazioni alla risorsa), ogni modifica al database viene registrata separatamente sul disco. Il log manager registra queste modifiche per consentire in qualsiasi momento (in seguito ad un crash) al recovery manager di ripristinare il database in uno stato coerente. Il log manager scrive i suoi dati attraverso il Buffer Manager ma prima di continuare si assicura che siano stati effettivamente scritti su disco. Timestamping associa ad ogni transazione e ad ogni risorsa una marca temporale con la quale consentire e controllare l'accesso delle transazioni alle risorse del database.

Note

  1. ^ (EN) Cosa sono BEGIN TRAN, ROLLBACK TRAN, e COMMIT TRAN, su mssqltips.com. URL consultato il 22 aprile 2019 (archiviato il 23 gennaio 2021).

Bibliografia

  • Paolo Atzeni, Stefano Ceri, Piero Fraternali, Stefano Paraboschi e Riccardo Torlone, Basi di dati, 5ª ed., Milano, McGraw-Hill, 2018, ISBN 978-88-386-9445-5.

Voci correlate

Altri progetti

Collegamenti esterni

  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica

Read other articles:

Artikel ini perlu dikembangkan agar dapat memenuhi kriteria sebagai entri Wikipedia.Bantulah untuk mengembangkan artikel ini. Jika tidak dikembangkan, artikel ini akan dihapus. Artikel ini tidak memiliki referensi atau sumber tepercaya sehingga isinya tidak bisa dipastikan. Tolong bantu perbaiki artikel ini dengan menambahkan referensi yang layak. Tulisan tanpa sumber dapat dipertanyakan dan dihapus sewaktu-waktu.Cari sumber: Iklim benua – berita · surat kabar · b...

 

Artikel ini sebatang kara, artinya tidak ada artikel lain yang memiliki pranala balik ke halaman ini.Bantulah menambah pranala ke artikel ini dari artikel yang berhubungan atau coba peralatan pencari pranala.Tag ini diberikan pada November 2022. Darezhan OmirbaevLahir15 Maret 1958 (umur 66)Akkol, RSS KazakhPekerjaanSutradara, penulis naskahTahun aktif1982–kini Darezhan Omirbaev (bahasa Kazakh: Дарежан Омiрбаев, Darejan Omirbaev; lahir 15 Maret 1958) adalah seoran...

 

Kol. Inf. (Purn.) H.Hadi UtomoM.M Ketua Umum Partai Demokrat ke-2Masa jabatan23 Mei 2005 – 23 Mei 2010 PendahuluSubur BudhisantosoPenggantiAnas UrbaningrumAnggota Dewan Perwakilan RakyatMasa jabatan1 Oktober 2004 – 1 Oktober 2009PresidenMegawati Soekarnoputri Susilo Bambang YudhoyonoKetua DPRAgung Laksono Informasi pribadiLahir15 Agustus 1945Semarang, Jawa TengahMeninggal15 Januari 2017(2017-01-15) (umur 71)JakartaKebangsaanIndonesiaPartai politikPartai Demokrat...

Politeknik NSC SurabayaLambang Politeknik NSC SurabayaDidirikan8 Desember 1997 sebagai Politeknik NSC Surabaya Politeknik NSC Surabaya merupakan perguruan tinggi swasta yang terdapat di Kota Surabaya, Provinsi Jawa Timur, Indonesia. Politeknik NSC Surabaya secara resmi berdiri sejak tahun 1997 sebagai sebuah perguruan tinggi politeknik, Politeknik NSC Surabaya menyelenggarakan pendidikan vokasi program diploma tiga (D3) / terapan yang lebih banyak berorientasi pada praktik ketimbang teori. Se...

 

Adult hits radio station in Boston WBGBBoston, MassachusettsUnited StatesBroadcast areaGreater BostonFrequency103.3 MHz (HD Radio)BrandingBig 103ProgrammingLanguage(s)EnglishFormatAdult hitsSubchannelsHD2: Channel QOwnershipOwnerAudacy, Inc.(Audacy License, LLC, as Debtor-in-Possession)Sister stationsWEEIWEEI-FMWMJXWVEIWWBXHistoryFirst air dateJuly 1948; 75 years ago (1948-07)[1]Former call signsWEEI-FM (1948–1983)WHTT (1983–1986)WMRQ (1986–1987)WODS (1987...

 

Ham Seung-jin Ham Seung-jin (함승진, lahir 15 Oktober 1994) adalah seorang penyanyi asal Korea Selatan. Ia adalah mantan anggota grup vokal laki-laki A-JAX.[1] Ia adalah peserta The Unit, dimana ia meraih peringkat #43. Referensi ^ Salinan arsip. Diarsipkan dari versi asli tanggal 2023-08-13. Diakses tanggal 2019-08-21.  Artikel bertopik biografi penyanyi Korea Selatan ini adalah sebuah rintisan. Anda dapat membantu Wikipedia dengan mengembangkannya.lbs

Ryuhei Matsuda, tahun 2000 Ryuhei Matsuda (松田 龍平code: ja is deprecated , Matsuda Ryūhei) (lahir 9 Mei 1983 di Tokyo) merupakan seorang aktor berkebangsaan Jepang. Dia menjadi terkenal saat berperan sebagai samurai di film Taboo. Dilahirkan di Tokyo. Dia berkarier di dunia film sejak tahun 1999. Filmografi Taboo (Gohatto) (1999) Shibito no Koiwazurai(2001) Hashire! Ichiro (2001) Blue Spring (Aoi Haru) (2002) Collage of Our Life (2003) 17 Sai (2003) 9 Souls (2003) Hachigatsu no kariyus...

 

Chronologie de la Belgique ◄◄ 1894 1895 1896 1897 1898 1899 1900 1901 1902 ►► Chronologies La Belgica à l'ancre au mont William (Antarctique), en 1898.Données clés 1895 1896 1897  1898  1899 1900 1901Décennies :1860 1870 1880  1890  1900 1910 1920Siècles :XVIIe XVIIIe  XIXe  XXe XXIeMillénaires :-Ier Ier  IIe  IIIe Chronologies géographiques Afrique Afrique du Sud, Algérie, Angola, Bénin, Botswana, Burkina Faso, Burundi,...

 

Radio station in Tucson, ArizonaKCUBTucson, ArizonaFrequency1290 kHzBrandingWildcats Sports Radio 1290ProgrammingFormatSportsAffiliationsInfinity Sports NetworkArizona WildcatsOwnershipOwnerCumulus Media(Radio License Holding CBC, LLC)Sister stationsKHYT, KIIM-FM, KSZR, KTUCHistoryFirst air dateAugust 1929 (as KVOA)Former call signsKVOA (1929–1958)Technical informationFacility ID56051ClassBPower1,000 wattsLinksWebcastListen liveWebsitewildcatsradio1290.com KCUB (1290 kHz) is a commercial AM...

Australian politician (1891–1985) The Right HonourableSir William McKellGCMG QCMcKell c. 195312th Governor-General of AustraliaIn office11 March 1947 – 8 May 1953MonarchsGeorge VIElizabeth IIPrime MinisterBen ChifleyRobert MenziesPreceded byThe Duke of GloucesterSucceeded bySir William Slim27th Premier of New South WalesElections: 1944In office16 May 1941 – 6 February 1947MonarchGeorge VIGovernorJohn de Vere LoderJohn NorthcottDeputy PremierJack BaddeleyPreceded by...

 

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Parish of the Exaltation of the Holy Cross Prostějov – news · newspapers · books · scholar · JSTOR (November 2017) (Learn how and when to remove this message) Church in Czech Republic, MoraviaParish of the Exaltation of the Holy Cross ProstějovCountryCzech Re...

 

La neutralità di questa voce o sezione sull'argomento radio è stata messa in dubbio. Motivo: toni a volte promozionali. Per contribuire, correggi i toni enfatici o di parte e partecipa alla discussione. Non rimuovere questo avviso finché la disputa non è risolta. Segui i suggerimenti del progetto di riferimento. Radio ZetaPaese Italia Linguaitaliano Data di lancio1º gennaio 2016 (lancio ufficiale) Share di ascolti1.126.000 (2º semestre 2023) EditoreRadio Zeta S.r.l./RTL 1...

BVI company redirects here. For companies called BVI, see BVI (disambiguation). The British Virgin Islands Financial Services Commission has responsibility for oversight of British Virgin Islands companies. The British Virgin Islands company law is the law that governs businesses registered in the British Virgin Islands. It is primarily codified through the BVI Business Companies Act, 2004, and to a lesser extent by the Insolvency Act, 2003 and by the Securities and Investment Business Act, 2...

 

System for condensing gas into liquid by cooling For condensers not involving heat transfer, see Condenser (disambiguation).This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: Condenser heat transfer – news · newspapers · books · scholar · JSTOR (March 2015) (Learn how and when to remove this message) The c...

 

Shopping and mixed-use project in Miami, Florida This article needs to be updated. Please help update this article to reflect recent events or newly available information. (October 2020) Brickell City CentreNovember 2015General informationStatusCompletedTypeMixed useLocationMiami, Florida, U.S.Coordinates25°46′02″N 80°11′35″W / 25.767159°N 80.193087°W / 25.767159; -80.193087Construction started2012-14CompletedNovember 3, 2016CostUS$1 billion+ (phase 1)Heigh...

Railway station in Suffolk, England This article includes a list of general references, but it lacks sufficient corresponding inline citations. Please help to improve this article by introducing more precise citations. (August 2008) (Learn how and when to remove this message) SomerleytonGeneral informationLocationSomerleyton, East SuffolkEnglandGrid referenceTM479965Managed byGreater AngliaPlatforms2Other informationStation codeSYTClassificationDfT category F2HistoryOriginal companyNorfolk Ra...

 

Cet article est une ébauche concernant un sculpteur français. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. Jean-Baptiste StoufJulien Léopold Boilly, Jean-Baptiste Stouf, portrait-charge (vers 1860),Paris, bibliothèque de l’Institut de France.Naissance 1742ParisDécès 1er juillet 1826Charenton-le-PontPériode d'activité 1762-1826Nationalité françaiseActivité SculpteurFormation École nationale supé...

 

Artikel ini membutuhkan rujukan tambahan agar kualitasnya dapat dipastikan. Mohon bantu kami mengembangkan artikel ini dengan cara menambahkan rujukan ke sumber tepercaya. Pernyataan tak bersumber bisa saja dipertentangkan dan dihapus.Cari sumber: BDO International – berita · surat kabar · buku · cendekiawan · JSTOR (Desember 2018) Untuk penggunaan lain, lihat BDO (disambiguasi). Binder Dijker OtteJenisJaringan globalIndustriAkuntansiJasa ProfesionalPa...

This article's factual accuracy is disputed. Relevant discussion may be found on the talk page. Please help to ensure that disputed statements are reliably sourced. (March 2014) (Learn how and when to remove this message) The Gaulish language, and presumably its many dialects and closely allied sister languages, left a few hundred words in French and many more in nearby Romance languages, i.e. Franco-Provençal (Eastern France and Western Switzerland), Occitan (Southern France), Catalan, Rom...

 

Championnat du monde FIM de Sidecar En 2010 sur le SachsenringGénéralités Sport Sport motocycliste : side-car Création 1949 Organisateur(s) Fédération internationale de motocyclisme (FIM) Participants 22 équipes Disciplines Vitesse moto Site web officiel FIM Sidecar World Championship Palmarès Champion constructeur Yamaha Tenant du titre Todd Ellis Emmanuelle Clement (passager) Plus titré(s) Steve Webster (10 titres) modifier Le championnat du monde FIM de Sidecar (FIM Sid...