Architettura DBMS

Materie:Riassunto
Categoria:Informatica

Voto:

1 (3)
Download:180
Data:28.05.2007
Numero di pagine:6
Formato di file:.doc (Microsoft Word)
Download   Anteprima
architettura-dbms_1.zip (Dimensione: 4.2 Kb)
trucheck.it_architettura-dbms.doc     11.11 Kb
readme.txt     59 Bytes


Testo

DBMS : insieme di programmi che permettono di interagire con una base di dati consentendo operazioni (interventi SOTTO CONTROLLO) agli utenti autorizzati nel rispetto delle regole stabilite.
Un DBMS si occupa di memorizzare e gestire sia dati che metadati.
Metadato : informazione sulla struttura del dato. (descrzione attributi che compongono un indice)
I componenti + importanti di un DBMS sono : gestore di interfaccia,gestore delle interrogazioni,gestore delle transazioni,gestore dei guasti e gestore della memoria.

– Gestore dell'interfaccia : и il componente di + alto livello e interagisce con l'utente fornendo un interfaccia grafica in cui и possibile richiedere operazioni->interagisce con il gestore delle interrogazioni!
Le relative richieste possono essere di vario tipo :
MODALITA' INTERATTIVA
In molti casi utilizza il QBE (Query by Example),uno strumento che consente all'utente di specificare i campi della tabella che intende visualizzare,i criteri di interrogazione e visualizza il risultato a video in una tabella senza dover usare il linguaggio SQL.
MODALITA' BATCH
Consente di utilizzare comandi scritti in altri linguaggi.

– Gestore delle interrogazioni : esegue le operazioni sui dati provenienti dal gestore dell' interfaccia trovando il modo ottimale per portarle a termine.->interagisce con il gestore della memoria.
Trasforma le richieste di operazioni (query SQL) in una sequenza di richieste elementari e le invia al gestore della memoria.
Ottenuto il risultato compone una tabella e la restituisce al gestore dell'interfaccia.
Piano di esecuzione delle interrogazioni (query plan) : sequenza di interrogazioni elementari.
Bisogna scegliere il piano di esecuzione di interrogazioni migliore xk riduce il numero di accessi alla memoria di massa.

– Gestore delle transazioni : gestisce la modalitа di accesso ai dati.(concorrenza compresa),interagisce con il gestore delle interrogazioni oltre che con quello dell'interfaccia,gestisce i file di log.->interagisce con il gestore della memoria
File di log : file nei quali vengono registrate tutte le operazioni effettuate sul database.
Le principali funzioni sono :
-gestire le autorizzazioni di accesso sul database
-gestire le transazioni e il ripristino dei dati
-gestire gli accessi concorrenti sul database

le operazioni consentite sono :
-inserimento nuovi dati
-modifica dati presenti
-cancellazione dati presenti
-lettura e interrogazione dei dati presenti
-modifica dello schema dei dati o modifica metadati.

Riservatezza dei dati : non tutti i dati devono essere accessibili a chiunque
integritа dei dati : devono essere protetti da modifiche non autorizzate-->rendono i dati corroti (non leggibili),i valori dei dati diventano non ammissibili (violano il vincolo di integritа),dati inconsistenti (lo stesso dato puт comparire + volte con valori diversi),dati non attinenti(danni irreversibili)

Studio di una transazione :

Transazione : operazione individuata univocamente con un numero progressivo che viene eseguita su un database.
И composta da una serie di operazioni elementari che devono essere eseguite per considerare la transazione completata,altrimenti la transazione non viene eseguita.
1-la transazione viene ATTIVATA (iniziata) e si trova in esecuzione
2-vengono eseguite tutte le operazioni elementari da cui и composta
3.1-se prima dell'esecuzione dell'ultima operazione vi и qualche errore -> transazione fallita
3.2-transazione parzialmente completata NON diventa subito completa xk vi si potrebbero verificare errori durante la scrittura
3.3-transazione eseguite senza errori->transazione completata

Per chiudere definitivamente una transazione e farla diventare completata ci sono 2 tecniche :
-scrittura immediata->disfare quanto eseguito annullando gli effetti di scrittura,rende + efficienti le transazioni ma richiede gestione + complessa del giornale delle transazioni.
-scrittura differita->la scrittura viene effettuata su una zona temporanea dando l'illusione di essere fatta sulla base dati...la scrittura verrа eseguita sulla base dati solo in seguito.

Quando vi и un fallimento vengono eseguite le operazioni di rolling back in modo da arrivare allo stato finale dove la transazione si puт definire abortita annullando gli effetti parziali delle operazioni elementari.

Una transazione deve possedere l'atomicitа,cioи deve apparire come un unica azione indivisibile,le conseguenze delle sue azioni elementari sono visibili solo se la transazione viene completata.

Bisogna anche gestire la concorrenza...l'accesso simultaneo da parte di diversi utenti non deve compromettere l'integritа dei dati!
Le situazioni anomale sono : last update e dirty read.

Per impedire situazioni del genere si applica la tecnica di blocco temporaneo (lock)
lock : и una sorta di lucchetto che viene aggiunto dal DBMS a ogni dato x evitare che altre transazioni possano utilizzarlo quando и giа in uso da un altra transazione.

2 tipi di lock :
-lock esclusivo : nessuna transazione puт accedere al dato.
-lock condiviso : altre transazioni possono accedere al dato interessato ma SOLO in lettura.

Per utilizzare la tecnica del lock и importante stabilire la granularitа,ovvero la dimensione degli oggetti,elementi dei dati che il DBMS controlla.

La granularitа puт essere :
-grossa : lock sul file
-media : lock sui record dei file
-fine : lock sul campo del record del file

Situazione di stallo :
2 transazioni (dopo aver bloccato le relative risorse) richiedono x proseguire la risorsa all'altra...attesa infinita xk ognuna attende l'altra.
X risolvere questo problema si usa il Lock manager componente che richiede alle transazioni tutti i lock in una sola volta prima di iniziare l'esecuzione.

Oppure viene usata la tecnica del Abort restart,si fa abortire forzatamente una delle 2 transazioni quando ci si accorge che esiste una situazione di stallo.

Giornale delle modifiche :
и un file su cui vengono registrate una serie di informazioni
-transazione attivata
-transazione completata
-transazione fallita
-inserita la riga
-modificata la riga

viene utilizzato come punto di partenza x un eventuale backup.

Progettazione fisica della base dati

prende in input lo schema relazionale e restituisce uno schema fisico.
Occorre scegliere un DBMS adatto al nostro scopo,infatti prendiamo in considerazione :
-efficienza in tempo : i tempi di risposta devono entrare in determinati parametri
-efficienza in spazio : prevedere il volume medio dei dati e il loro tasso di crescita
-efficienza di utilizzo : prevedere il tipo di interazione con il DBMS

– Gestore della memoria

и il componente che si trova a stretto contatto con il file system e si dispositivi fisici (hd,cd,ecc),и interfacciato direttamente con loro x effettuare scritture e\o modifiche quando richiesto.
Generalmente si mette in relazione :
attributo-campo
tupla-record
relazione-file

relazione,tupla e attributo ->struttura logica
campo,record e file ->struttura fisica
la struttura fisica (dettata da parametri come velocitа,tempo di accesso,ecc) non trova corrispondenza esatta con quella logica!

Il gestore della memoria deve recuperare o modificare i blocchi di dati presenti su disco!
Blocco : unitа minima di trasferimento di dati dalla memoria di massa a quella centrale
x svolgere tale operazione il gestore della memoria viene diviso in :
-gestore del buffer di memoria : mappa i blocchi in pagine di memoria centrale
gestore dei file su disco : recupera i blocchi di dati dai dischi su richiesta del gestore del buffer

– Gestore dei guasti

effettua copie periodiche di backup per ripristinare una situazione in seguito a un grave evento

i guasti si distinguono in :
guasti di sistema : problemi hardware dovuti x esempio a cali di tensione o bug del S.O.,producono perdite in memoria centrale.
Guasti di dispositivo : problemi che riguardano i dispositivi di memoria di massa,HD,CD,ecc...
memoria volatile : ram,elevata velocitа,poca capacitа
memoria non volatile : hd raid,lenti ma dalle capacitа di memorizzazione praticamente illimitate

memoria stabile : supporti cd,affidabili,alto grado di ridondanza fisica.

Il gestore dei guasti si occupa del corretto scambio di informazioni tra i 3 tipi di memoria e quando si verifica un guasto deve :
-garantire la minima perdita di informazione
-ripristinare uno stato consistente di piattaforma software-hardware
-ripristinare la base dati.

Checkpoint : attivitа che il gestore dei guasti compie periodicamente.
Consiste nel :
-completare tutte le transazioni in corso e bloccare l'avvio di nuove
-scrivere in memoria stabile le ultime registrazioni effettuate nel file di log
-scrivere in memoria non volatile tutte le modifiche del data base
-scrivere sul file di log “checkpoint”
-consentire l'esecuzione di nuove transazioni.

Tecniche raid :

propone di :
-migliorare le prestazioni di I\O
-realizzare tecniche di immunitа dai guasti e per il recupero dei dati.

RAID 0 : disk striping : lettura e scrittura avviene in parallelo sui dischi,le prestazioni aumentano ma non и immune dai guasti!
RAID 1 : disk mirroring : un disco и la copia dell'altro,la velocitа и ridotta dato k deve eseguire le operazioni su 2 dischi!
RAID 5 : disk striping with parity : 3 o + dischi organizzati in RAID 0 ma a rotazione vengono aggiunti bit di paritа sui dischi.
Se un disco si rompe i dati vengono ricostruiti grazie ai bit di paritа residenti sugli altri.

Trigger : programma controllore.
Nel caso in cui avvengono certe operazioni specifiche (inserimento,cancellazione o modifica) decide se intervenire o no.

Esempio