L'approccio strutturato di progettazione di una base di dati puo' essere visto come:
"L'arte di progettare le componenti di un sistema e le relazioni tra queste nel miglior modo possibile".I risultati piu' significativi nella formalizzazione delle attivita' di progettazione di una base di dati sono:
La finalita' di un progetto base di dati e' di fornire:
I criteri di efficienza devono informare su tutte le fasi del ciclo di vita, dall'analisi dei requisiti alla manutenzione.
L'indipendenza dei dati e' l'immunita' delle applicazioni alle variazioni nelle strutture di allocazioni e strategie di accesso ai dati.
Le varie applicazioni necessitano solitamente viste differenti sugli stessi dati
Il DBA deve poter cambiare liberamente l'allocazione dei dati e/o le strategie di accesso ai dati in risposta ad una variazione di requisiti senza dover modificare le applicazioni esistenti
A questo livello l'analisi consiste nella rilevazione dei dati rilevanti in un determinato contesto o ambiente. Il prodotto dell'analisi e' uno schema concettuale.
Attivita' da svolgere per la progettazione concettuale:
Rappresenta tipici elementi (entita') per i quali si possono definire elementi descrittivi (attributi)
Tali attributi possono assumere vari insiemi di valori per le varie entita'
Esistono delle associazioni tra le entita' espresse con un link semantico
Ogni associazione ha una cardinalita' (univoca, biunivoca, ..)
Sono testi standard che contengono una serie di oggetti 'organizzativi', 'informativi', 'tecnologici' che possono essere studiati durante le varie fasi
Vengono generalmente compilati in accompagnamento ai vari diagrammi per completare le informazioni che non possono essere espresse graficamente
Norme operative - Individuare le entita' ed Associazioni oggetto di studio:
Al livello logico lo schema concettuale viene convertito in uno schema logico, basandosi su uno dei possibili modelli logici esistenti (gerarchico, reticolare, relazionale).
Lo schema logico e' esaminato alla luce degli aspetti che non erano considerati prima (volumi, accessi, ..).
Attivita' da svolgere per la progettazione logica:
Risultati da fornire:
Norme operative - Individuare le entita' ed Associazioni oggetto di studio:
E' quando il sistema viene implementato, seguendo definizioni e fattori non considerati precedentemente, come la rappresentazione dei dati, l'impacchettamento dei records, la clusterizzazione, l'indicizzazione, ecc.., il tutto in dipendenza delle piattaforme tecnologiche utilizzate.
Attivita' da svolgere per la progettazione fisica:
Risultati da fornire:
La normalizzazione e' fondamentalmente una formalizzazione di semplici idee, evitando per quanto possibile le ridondanze.
E' una tecnica che permette di descrivere la struttura logica dei dati in un sistema informativo assicurandone l'efficienza.
E' un procedimento graduale e reversibile che garantisce che si possa recuperare l'originale collezione di relazioni e quindi non si ha in genere nessuna perdita di informazioni.
E' un processo che trova largo impiego come strumento di progettazione di una base dati al di fuori dei sistemi relazionali.
Una data relazione (in un DataBase relazionale) anche se normalizzata puo' ancora possedere certe proprieta' non desiderabili.
Con i concetti delle varie forme normali, la teoria della normalizzazione ci permette di riconoscere le proprieta' non desiderabili e ci aiuta a trasformarle.
Normalmente la normalizzazione viene ritenuta sufficiente a livello di una terza forma normale.
Una relazione e' un prima forma normale (1FN) se ogni attributo di R e' definito su un dominio semplice.
Anomalie
Una relazione in 1FN presenta situazioni in cui delle modifiche semplici dello stato del mondo esterno provocano delle modifiche complesse nello stato della base dati corrispondente. I tre tipi di anomalie sono di inserimento, aggiornamento e cancellazione.
Una relazione e' in seconda forma normale (2FN) se e' in prima forma normale e ogni attributo non primario di R e' completamente e funzionalmente dipendente dalla chiave di R.
Anomalie
Una relazione in 2FN presenta situazioni di anomalie sia di inserimento che di aggiornamento e cancellazione.
Una relazione e' in terza forma normale (3FN) se e' in seconda forma normale e nessun attributo non primario di R e' transitivamente funzionalmente dipendente dalla chiave di R.
Le caratteristiche che deve avere un sistema di gestione del DataBase per essere considerato "completamente relazionale" sono state enunciate in un articolo di E.C. CODD.
Usando un linguaggio informale, ecco l'elenco delle regole:
Un sistema di gestione di un DataBase relazionale deve utilizzare solamente le funzioni relazionali per gestire le informazioni memorizzate nel DataBase
Tutte le informazioni immagazzinate in un DataBase relazionale devono essere rappresentate solamente dai valori immagazzinati nelle tabelle che costituiscono il DataBase. Le associazioni tra i valori non si devono rappresentare logicamente in alcun altro modo, ovvero non sono ammessi puntatori da una tabella all'altra.
Ogni valore memorizzato in un DataBase relazionale deve essere accessibile indicando il nome della tabella in cui si trova, il nome della colonna e il valore della chiave primaria che definisce la riga in cui e' memorizzata.
Il sistema di gestione del DataBase deve avere un metodo efficace di rappresentare i valori nulli. Ad esempio valori nulli per i tipi numerici devono essere distinti dallo zero e da qualunque altro valore numerico, mentre una stringa nulla deve essere distinta dalle stringhe di spazio o da qualunque altro carattere.
La descrizione logica del DataBase relazionale deve essere rappresentata allo stesso modo di un dato ordinario, in modo che gli strumenti del sistema di gestione del DataBase relazionale si possano usare per gestire la descrizione stessa del DataBase.
Un sistema di gestione di DataBase relazionale pu• offrire molti tipi di linguaggi di descrizione dei dati e di accesso al DataBase. Comunque ci essere almeno un linguaggio che utilizza normali stringhe di caratteri per la definizione dei dati e delle viste, la loro manipolazione, i vincoli di integrita' dei dati, la gestione delle informazioni riguardanti le autorizzazioni e i limiti delle unita' di ripristino.
Deve essere possibile al sistema di gestione del DataBase aggiornare qualunque vista che possa essere definita usando combinazioni di tabelle base che, in teoria sono aggiornabili a loro volta.
Qualunque operando che descriva il risultato di una singola operazione di lettura deve poter essere applicato ad una singola operazione di inserzione, aggiornamento o cancellazione.
I cambiamenti che vengono fatti alla struttura fisica di memorizzazione e ai meccanismi di accesso non devono comportare cambiamenti ai programmi applicativi.
I cambiamenti fatti alle tabelle che non modificano nessuno dei dati gia' memorizzati non devono comportare cambiamenti ai programmi applicativi.
Le regole che si applicano all' integrita' di entita' e all'integrita' referenziale devono essere esprimibili dal linguaggio dei dati implementato dal sistema di gestione del DataBase e non dai comandi codificati nei programmi applicativi.
Il linguaggio dei dati implementato dal sistema di gestione del DataBase deve offrire la possibilita' di distribuire il DataBase senza richiedere modifiche ai programmi applicativi. Questa possibilita' deve essere fornita dal linguaggio dei dati sia che il DBMS stesso supporti i DataBase distribuiti sia che non li supporti.
Se il sistema di gestione del DataBase offre strumenti che consentano ai programmi applicativi di operare sulle tabelle una riga alla volta, ad un programma applicativo che usa questo tipo di accesso al DataBase deve essere impedito di infrangere le regole di integrita' di entita' o interita' referenziale definite per quello stesso DataBase.