INDIETRO SU AVANTI

Progettazione e normalizzazione di un database RDBMS

Progettazione di un database

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:

Progetto base di dati

La finalita' di un progetto base di dati e' di fornire:


Tecniche di progettazione strutturata

Perche' indipendenza dei dati

L'indipendenza dei dati e' l'immunita' delle applicazioni alle variazioni nelle strutture di allocazioni e strategie di accesso ai dati.

Problemi da tenere presente nella valutazione dell'opportunita' di impiego di un D.B.M.S.


I livelli di rappresentazione dei dati

Il Livello Concettuale

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:

Diagramma entita'/relazioni

Norme operative - Individuare le entita' ed Associazioni oggetto di studio:

  1. tracciare per ogni entita' un rettangolo
  2. scrivere all'interno del rettangolo il nome dell'entita'
  3. tracciare tra ogni entita' associata ad un altra un rombo con una linea che lo collega alle due entita'
  4. indicare alle estremita' del rombo le cardinalita' dell'associazione
  5. scrivere all'interno del rombo il verbo che determina il legame tra le due entita'

Il Livello Logico

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:

Diagramma di Bachman

Norme operative - Individuare le entita' ed Associazioni oggetto di studio:

  1. tracciare per ogni entita' un rettangolo
  2. scrivere all'interno del rettangolo il nome dell'entita'
  3. collegare le entita' associate rispettando la cardinalita' delle associazioni; valgono le seguenti regole:

Il Livello Fisico

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:


I livelli di rappresentazione dei dati



Normalizzazione di un Database di Modello Relazionale

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.

Step di normalizzazione

Relazione in 1' 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.

Relazione in 2' forma normale

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.

Relazione in 3' forma normale

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.

Vantaggi della normalizzazione

Svantaggi della normalizzazione

Regole di Codd

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:

  1. Gestione di un DataBase Relazionale

    Un sistema di gestione di un DataBase relazionale deve utilizzare solamente le funzioni relazionali per gestire le informazioni memorizzate nel DataBase

  2. Rappresentazione delle informazioni

    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.

  3. Accessibilita' logica

    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.

  4. Rappresentazione dei valori nulli

    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.

  5. Dizionario

    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.

  6. Linguaggi dei Dati

    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.

  7. Aggiornamento delle viste

    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.

  8. Inserimento, Aggiornamento e Cancellazione

    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.

  9. Indipendenza fisica dei dati

    I cambiamenti che vengono fatti alla struttura fisica di memorizzazione e ai meccanismi di accesso non devono comportare cambiamenti ai programmi applicativi.

  10. Indipendenza logica dei dati

    I cambiamenti fatti alle tabelle che non modificano nessuno dei dati gia' memorizzati non devono comportare cambiamenti ai programmi applicativi.

  11. Regole di Integrita'

    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.

  12. Distribuzione del DataBase

    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.

  13. NON sottoversioni

    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.