La progettazione fisica ha come obiettivo quello di consentire l'implementazione del modello dei dati e delle tabelle individuate con la progettazione logica in un sistema informatico, assicurando un efficiente metodo di accesso per effettuare operazioni di interrogazione, inserimento e aggiornamento dei dati.
Gli strumenti informatici che danno il supporto necessario, sono i Database Management System (DBMS).
Un DBMS è un sistema software progettato per consentire la creazione, la manipolazione e l'interrogazione efficiente di dati opportunamente strutturati, a loro volta detti database.
Un DBMS può essere ospitato su un'architettura hardware dedicata (server) oppure su un computer di uso generale, in funzione della mole di dati che deve trattare e delle prestazioni desiderate.
I DBMS svolgono un ruolo fondamentale in numerose applicazioni informatiche, dalla contabilità, alla gestione delle risorse umane e alla finanza fino a contesti tecnici come la gestione di rete o la telefonia.
Ciascun DBMS è progettato per supportare uno specifico modello di dati. In particolare, i DBMS che supportano il modello di dati relazionale sono detti Relational Database Management System (RDBMS) e sono quelli su cui focalizzeremo l'attenzione.
La maggior parte degli RDBMS supportano il linguaggio SQL.
Questo linguaggio, a dispetto del nome che richiama esclusivamente la possibilità di fare interrogazione, fornisce un supporto completo per la gestione dei database (creazione, popolamento, interrogazione, amministrazione).
La progettazione fisica consiste delle seguenti attività:
scelta delle strutture di memorizzazione delle tabelle e delle strutture ausiliarie di accesso ai dati (indici);
traduzione dello schema logico dei dati in uno schema fisico dei dati contenente le definizioni delle tabelle, dei relativi vincoli di integrità e delle viste espresse in SQL;
implementazione delle transazioni in SQL.
Terminata questa fase la base di dati è stata completamente progettata e si passa alla sua realizzazione, cioè alla costruzione fisica delle tabelle e all'implementazione delle applicazioni della base di dati. Le applicazioni sono scritte in linguaggi di programmazione ad alto livello (C/C++, Java, PHP, Python) e possono riutilizzare il codice SQL scritto per le transazioni. La fase di realizzazione è spesso seguita da una fase di ottimizzazione in cui le prestazione del DBMS sulla specifica base di dati vengono valutate e sono possibili cambiamenti dei parametri decisi durante la progettazione fisica (ad esempio, l'aggiunta di un nuovo indice).
Indice
Un indice (nel campo dei database) è una struttura dati realizzata per migliorare i tempi di ricerca (query) dei dati. Se una tabella non ha indici, ogni ricerca obbliga il sistema a leggere tutti i dati presenti in essa. L'indice consente invece di ridurre l'insieme dei dati da leggere per completare la ricerca.
Ad esempio, se si ha un insieme di dati disordinato, è possibile creare un "indice" in ordine alfabetico, e sfruttare le proprietà dell'ordine alfabetico per arrivare prima al dato o ai dati cercati. Si potrebbe pensare, ad esempio, di applicare una ricerca binaria all'indice ordinato per reperire in tempi più brevi le informazioni richieste.
Vista
Le viste possono essere immaginate come tabelle virtuali, ottenute collegando e filtrando opportunamente più tabelle.
Sono, quindi, un modo efficace di mostrare informazioni che provengono da tabelle differenti.
Transazione
Una transazione è una sequenza di operazioni sui dati che può concludersi con un successo o un insuccesso; in caso di successo, il risultato delle operazioni deve essere permanente, mentre in caso di insuccesso si deve tornare allo stato precedente all'inizio della transazione.
In termini più rigorosi si dice che una transazione deve godere della proprietà ACID, così definita:
Atomicità: l'insieme delle operazione che costituiscono la transazione devono essere considerate un tutt'uno e quindi non devono essere separabili.
Consistenza: l'esecuzione della transazione deve lasciare il database in uno stato consistente.
Isolamento: l'esecuzione di una transazione non deve essere influenzata da altre operazioni eseguite contemporaneamente.
Durabilità: gli effetti di una transazione che ha terminato correttamente la sua esecuzione devono essere persistenti nel tempo.
Un esempio di transazioni è il prelevamento di denaro da uno sportello Bancomat: deve essere garantito che la cifra da elargire sia effettivamente disponibile sul conto corrente e che l'operazione, una volta conclusa, consegni denaro all'utente e registri una scrittura contabile sul conto corrente; la scrittura deve essere permanente (non può "svanire", ad esempio, in caso di ammanco di corrente elettrica) e non deve accadere che, eventuali operazioni contemporanee effettuate su altri sportelli bancomat, prosciughino il conto corrente mentre l'operazione di prelevamento è in corso (proprietà di isolamento).
Sito: 7ecnologie
Sezione: 11. Base di dati
Capitolo: 06. La progettazione fisica
Indice dei capitoli: 00. Risorse - 01. Sistema informativo, informazione e dato - 02. Gli archivi - 03. Il progetto informatico - 04. La progettazione concettuale - 05. La progettazione logica - 06. La progettazione fisica - 07. Tutorial - 98. Esercizi