La progettazione di una base di dati è un’operazione importante quanto delicata, e deve essere affrontata con le conoscenze e gli strumenti adatti, al fine di costruire uno schema che abbia 4 fondamentali proprietà: correttezza, completezza, leggibilità e assenza di ridondanze.

Possiamo suddividere la progettazione in 3 fasi principali:
- progettazione concettuale: descrizione formale dei dati di interesse, attraverso un modello astratto di rappresentazione (es. E-R)
- progettazione logica: traduzione dello schema concettuale nel relativo modello logico adottato dal DBMS che verrà utilizzato. Questo passaggio prevede tutte le operazioni di ottimizzazione dello schema.
- progettazione fisica: aggiunta delle specifiche legate al DBMS scelto per l’implementazione (es. tabelle di hash, alberi binari, trigger, …)
Progettazione concettuale
Il modello E-R è un modello concettuale, non è l’unico, che fornisce i seguenti costrutti:
- ENTITA’: insieme di oggetti con le medesime proprietà, che hanno esistenza autonoma. Un’entità può essere vuota.
- RELAZIONI: legame logico tra 2 o più entità. Una coppia di istanze di entità relazionate può comparire al massimo una volta nella relazione.
- ATTRIBUTI: descrivono le proprietà di interesse delle entità.
Viene usato appunto per costruire la bozza della futura base di dati, al fine di individuare le principali entità e gli elementi caratteristici. Trattandosi di un modello concettuale di rappresentazione, presenta delle limitazioni: un concetto o una proprietà non è sempre esprimibile in modo completo.
Per questo si utilizzano le regole aziendali, finalizzate a descrivere situazioni e vincoli di integrità della base di dati (es. una particolare istanza di una entità potrà contenere solo 1 valore secondo specifiche dettate dal committente, etc)
Strategie di progetto dello schema concettuale
Le tecniche di progettazione concettuale si suddividono in:
- TOP-DOWN: si individuano i concetti e si cercano possibili generalizzazioni o suddivisioni ulteriori
- BOTTOM-UP: individuate le entità, si cercano le possibili associazioni
- STRETEGIA MISTA: si uniscono i vantaggi delle prime 2 soluzioni
- STRATEGIA INSIDE-OUT: simile alla bottom-up, ma si procede a partire da un concetto per estendersi agli altri collegati.
Progettazione logica
Supponiamo di voler lavorare su un DBMS relazionale, pertanto dovremo in questa fase stabilire i vincoli di integrità, che sono tutte le regole che dovranno essere soddisfatte dalle istanze.
I vincoli possono essere “intrarelazionali” se sono individuabili osservando singole relazioni (o entità E-R, o tabelle), oppure “interrelazionali” se sono individuabili osservando più relazioni.
Nel primo caso possiamo ulteriormente suddividere i vincoli in vincoli di tupla (se riusciamo a stabilirli su una singola riga della relazione) o vincoli di dominio (se siamo in grado di stabilirli attraverso un singolo attributo della relazione).
Nel secondo caso (vincoli interelazionali) troviamo le integrità referenziali, delle quali possiamo dare una definizione matematica: “Date 2 relazioni R1 e R2, definite rispettivamente su un insieme di attributi x1 e x2, sussiste integrità referenziale (abbreviata IR) fra R1 e R2 se alcuni valori di x1 di ogni tupla di R1 compaiono come chiave primaria in R2″.
Progettazione fisica
L’ultimo passo della progettazione di una base di dati, riguarda l’implementazione dei costrutti e dei modelli specifici della base di dati che è stata scelta per la produzione. Es. con Mysql potremo definire le istruzioni SQL, impostare tabelle di hash, gestire le collisioni, etc.
Conclusioni
Questo articolo voleva essere una semplice panoramica delle metodolodie per costruire uno schema efficiente di base di dati. Tutte le tecniche specifiche e gli strumenti pratici verranno trattati in sede separata.


FACEBOOK
TWITTER
