Dreke90 di Dreke90
Genius 6795 punti

La gestione della concorrenza

Analizziamo ora il caso di un database condiviso tra più utenti connessi tramite una rete locale o via web. Il database potrebbe ad esempio essere allocato fisicamente sul computer come funzione di server della rete, mentre gli utenti potrebbero consultarlo ed elaborarlo attraverso computer con funzioni di client in una LAN o via internet.
Prendiamo ad esempio in considerazione un sito di un'agenzia turistica che vende via web viaggi per le vacanze estive. Il database condiviso contenente tutte le informazioni sui viaggi è allocato fisicamente sul server che ospita che il sito dell'agenzia. A questo sito accedono contemporaneamente più utenti via web per consultare le ultime novità in fatto di mete turistiche e per avere informazioni o acquistare i viaggi messi a disposizione dall'agenzia. Attraverso i loro processi, i diversi utenti connessi via web al sito leggono e modificano le informazioni raccolte nel database condiviso, anche nello stesso istante, concorrendo all'utilizzo della stessa risorsa, cioè le tabelle, le righe e gli attributi del database dell'agenzia turistica.

Due processi si dicono concorrenti quando l'esecuzione di uno di essi inizia quando l'esecuzione dell'altro non è ancora terminata. I processi concorrenti possono essere disgiunti, quando non usano le stesse risorse o usano le risorse ma in tempi diversi, o interagenti, quando usano le stesse risorse nello stesso intervallo di tempo.
Il DBMS può in certi casi mettere lo stato di blocco (Lock), per cui solo la transazione che ha avuto accesso a tali dati può aggiornarli,mentre tutti gli altri tentativi di aggiornamento da parte di altre transizioni concorrenti vengono impediti. In altre parole, ponendo un dato da aggiornare in stato di blocco si impedisce alle altre transazioni di aver accesso al dato in aggiornamento, in modo che solo la transazione che ha effettuato il blocco possa agire su di esso in muta esclusione .
Solo al termine dell'aggiornamento il dato è sbloccato, in modo che le altre transazioni concorrenti in attesa possano a questo punto proseguire nella loro esecuzione.

Registrati via email