DBMS

Materie:Appunti
Categoria:Informatica

Voto:

1 (2)
Download:167
Data:06.07.2007
Numero di pagine:3
Formato di file:.doc (Microsoft Word)
Download   Anteprima
dbms_1.zip (Dimensione: 6.9 Kb)
trucheck.it_dbms.doc     36 Kb
readme.txt     59 Bytes


Testo

DBMS
Un DBMS è un insieme di programmi che permettono di interagire con una base di dati, consentendo operazioni agli utenti autorizzati, nel rispetto delle norme stabilite.
Un DBMS si occupa quindi della memorizzazione e della gestione di dati e metadati che rappresentano le informazioni sulla struttura del dato.
I più importanti DBMS sono caratterizzati da un architettura pressochè uguale ed è possibile riconoscere e di componenti comuni:
gestore di interfaccia;
gestore delle interrogazioni;
gestore delle transazioni;
gestore della memoria;
gestore dei guasti.
Il gestore dell’interfaccia ci fornisce un’interfaccia grafica per comunicare le richieste di operazione sui dati o metadati.
Il gestore delle interrogazioni prende in input le query utilizzando il gestore dell’interfaccia e le trasforma in richieste da inviare al gestore della memoria. Una volta ottenuti questi dati il gestore delle interrogazioni compone la tabella risultato finale e la restituisce di nuovo al gestore dell’interfaccia.
Il gestore delle transazioni ha diverse funzionalità:
permette di gestire le autorizzazioni di accesso essendo il DBMS “sotto controllo”;
permette di gestire le transazioni e il ripristino dei dati;
permatte di gestire gli accessi concorrenti al database.
Un DBMS utilizza una tabella di autorizzazioni nella quale sono inseriti gli utenti autorizzati e le operazioni che questi utenti possono svolgere.
Una transazione è un operazione che deve essere eseguita su un database. Una transazione è costituita da una serie di operazioni elementari che devono essere necessariamente eseguite per essere considerate completate.
Queste operazioni sono le seguenti:

Prima di dichiarare il successo di una transazione occorre che il sistema abbia avuto il tempo di registrare delle informazioni sul cosiddetto giornale delle modifiche detto file di log.
Una delle caratteristiche principali che deve avere una transazione è quella di apparire come un’unica azione indivisibile. Questa proprietà viene chiamata atomicità.
A un database accade spesso che degli utenti lavorino contemporaneamente sugli stessi dati. Ed è per questo che un DBMS deve gestire la concorrenza degli accessi.
Si possono verificare 2 situazioni pericolose per questo motivo.
Situazione dell’ultima modifica e situazione di lettura sporca.

La prima si verifica come nell’esempio di seguito:
la transazione1 (T1) legge un dato x
la transazione2 (T2) legge lo stesso dato x
T1 modifica x
T2 modifica x

La seconda situazione invece si verifica quando :
T1 legge x
T1 modifica x
T2 legge x
T1 ripristina il vecchio valore di x
T2 modifica x in base al valore letto

Ci sono varie tecniche per il problema della concorrenza.
Per prima cosa dobbiamo dire che una transazione deve avere la tecnica di serializzazione cioè deve dare la sensazione ad una transazione di lavorare in un ambiente di monoutenza.
Per essere “rappresentata” questa tecnica bisogna che venga introdotto un lock che viene aggiunto a ogni dato dal dbms in modo tale che non possa essere utilizzato da altri utenti quando esso è già in uso.
Esistono 2 tipi di lock:
exclusive lock. Con questo lock nessuna transazione può accedere al dato;
shared lock. Con questo lock le altre transazioni possono accedere al dato ma in sola lettura.
Un altro problema molto grave di un DBMS è il problema dello stallo.
Questo si verifica quando ad esempio:
T1 blocca la risorsa R
T2 blocca la risorsa T
Successivamente
T1 richiede la risors T
T2 richiede la risorsa R

Per risolvere questo problema dello stallo ci sono 2 soluzioni.
Una consiste nel far richiedere alle transazioni tutti lock prima dell’inizio della sua esecuzione. In questo caso, un componente chiamato lock manager, stabilisce se concedere o meno i lock consultando una tabella di lock.
Un’altra tecnica è chiamata abort o restart e consiste nel far abortire forzatamente una risorsa ad una transazione per poi riconcederla con una priorità più alta.

Esempio