La normalizzazione e l'integrità referenziale

Materie:Riassunto
Categoria:Informatica
Download:297
Data:30.05.2006
Numero di pagine:7
Formato di file:.doc (Microsoft Word)
Download   Anteprima
normalizzazione-integrita-referenziale_1.zip (Dimensione: 8.06 Kb)
readme.txt     59 Bytes
trucheck.it_la-normalizzazione-e-l-integrit+     39.5 Kb


Testo

La normalizzazione è un processo formalizzato con il quale le tabelle vengono trasformate in modo tale che ogni tabella corrisponda a un singolo oggetto della realtà, rappresentata con il modello di database: le regole della normalizzazione sono definite per evitare l’inconsistenza dei dati e le anomalie nelle operazioni di aggiornamento.
La chiave o chiave primaria è l’insieme di uno o più attributi che identificano in modo univoco una n-upla (riga della tabella).
L’attributo non-chiave è un campo che non fa parte della chiave primaria.
La dipendenza funzionale tra attributi si ha quando il valore di un attributo A1 determina un singolo valore dell’attributo A2 e si indica con: A1 A2
La dipendenza transitiva si ha quando un attributo A2 dipende da A1 e l’attributo A3 dipende da A2; allora A3 dipende transitivamente da A1: A1 A2 A2 A3 A1 A3 in modo transitivo.
Prima forma normale
• Tutte le righe della tabella contengono lo stesso numero di colonne;
• Gli attributi rappresentano informazioni elementari;
• I valori che compaiono in una colonna sono dello stesso tipo, cioè appartengono allo stesso dominio;
• Ogni riga è diversa da tutte le altre, cioè non ci possono essere due righe con gli stessi valori nelle colonne;
• L’ordine con il quale le righe compaiono nella tabella è irrilevante.
Seconda forma normale
Una relazione è in forma normale (2FN) quando è in prima forma normale e tutti i suo attributi non-chiave dipendono dall’intera chiave, cioè non possiede attributi che dipendono soltanto da una parte della chiave. La seconda forma normale elimina la dipendenza parziale degli attributi dalla chiave e riguarda il caso di relazioni con chiavi composte, cioè formate da più attributi.
Il solo codice non identifica la merce, che può essere presente in magazzini diversi. Se la locazione del magazzino cambia, ogni riga contiene merci presenti in quel magazzino deve essere aggiornata.
La soluzione consiste nel costruire nuove relazioni, togliendo dalla relazione di partenza gli attributi che dipendono solo parzialmente dalla chiave primaria.
Il processo attraverso il quale la struttura della relazione è stata trasformata in tre nuove relazioni rappresenta il significato del termine normalizzazione. La normalizzazione diminuisce la ridondanza dei dati e la possibilità di inconsistenza, ma rende più complesse le operazioni di ritrovamento dei dati. Infatti se si vuole conoscere la località del magazzino dove occorre esaminare la riga di una sola tabella, nella secondo forma normale occorre congiungere le righe di due tabelle diverse secondo l’attributo comune magazzino. La normalizzazione è importante nel modello di un data base perché l’integrità e la consistenza dei dati sono prioritarie rispetto alla velocità di ritrovamento dei dati, che rimane comunque un fattore essenziale.
La terza forma normale
Una relazione è in terza forma normale (3FN) quando è in seconda forma normale e tutti gli attributi non-chiave dipendono direttamente dalla chiave, cioè non possiede attributi non chiave che dipendono da altri attributi non-chiave. La terza forma normale elimina la dipendenza transitiva degli attributi dalla chiave.
Il nome e l’attributo chiave e il telefono della scuola dipende dalla scuola, oltre che essere un’informazione che riguarda lo studente. Nella relazione è presente un attributo non-chiave (telefonoscuola) che dipende da un altro attributo non-chiave (scuola). La relazione non è in terza forma normale in quanto l’attributo telefono scuola dipende transitivamente dalla chiave (nome).
La normalizzazione in 3FN si ottiene componendo la relazione di partenza in due nuove relazioni, nelle quali tutti gli attributi dipendono direttamente dalla chiave, togliendo gli attributi non-chiave che dipendono da un altro attributo non-chiave.
Utilizzando la simbologia vista in precedenza, il passaggio alla terza forma normale si schematizza nel seguente modo: R2 (A1, A2, A3, A4) con A2 A4
Non è in 3FN, e può essere trasformata nelle seguenti relazioni in 3FN R31 (A1, A2, A3) R32(A2, A4). Attraverso la normalizzazione quindi la relazione iniziale viene scomposta in più relazioni, che complessivamente forniscono le stesse informazioni di partenza e mantengono le dipendenze tra gli attributi: in ciascuna di esse ogni attributo dipende direttamente dalla chiave.
L’integrità referenziale
L’integrità referenziale è un insieme di regole del modello relazionale che garantiscono l’integrità dei dato quando si hanno relazioni associate tra loro attraverso la chiave esterna: queste resole servono per rendere valide le associazioni tra le tabelle e per eliminare gli errori i inserimento, cancellazione o modifica di dati collegati tra loro.
L’integrità referenziale viene rispettata quando per ogni valore non nullo della chiave esterna, esiste un valore corrispondente della chiave primaria nella tabella associata.applicare l’integrità referenziale al database significa garantire che un valore presente nella tabella Ordini per la chiave esterna CodiceCliente abbia un corrispondente valore di Codice in una delle righe della tabella Clienti. Inoltre non si deve consentire la cancellazione di un cliente dalla tabella Clienti se ci sono righe nella tabella Ordini che si riferiscono ad esso.
• Non è possibile immettere un valore nella chiave esterna della tabella associata, se tale valore non esiste tra le chiavi della tabella primaria.
• Non è possibile eliminare un n-upla della tabella primaria, se esistono righe legate ad essa attraverso la chiave esterna nella tabella correlata.
• Inoltre non si può modificare, com’è ovvio, il valore alla chiave nella tabella primaria, se ad essa corrispondono righe nella tabella correlata.
La gestione dal database
Il DBMS (database management system) è il software che consente di costruire e gestire una base di dati, realizzandola nella pratica su memoria di massa, a partire da un progetto e da uno schema dei dati definiti a livello concettuale e tradotto poi in un modello logico dei dati.
Implementazioni del modello logico sul sistema di elaborazione
• Definizione dei dati e delle strutture dati derivate dallo schema logico
• Definizione dei sottoschemi (viste), cioè visioni del database legate alle particolari applicazioni dei singoli utenti e che consentono agli utenti di accedere ai dati che servono, ottenute attraverso proiezioni o congiunzioni; la vista si chiama anche tabella virtuale, rispetto alle tabelle del database, dette anche tabelle primarie.
• Organizzazione fisica dei dati sui supporti di memorizzazione
Manipolazione e interrogazione sulla base di dati
• Interfaccia tra i programmi degli utenti e la base dei dati
• Accesso ai dati contenuti nel database per e interrogazioni, attraverso a interfacce o comandi semplici che facilitano soprattutto l’utente finale non specialista.
Controllo dell’integrità dei dati
• Integrità sull’entità
• Integrità referenziale
• Integrità definite dall’utente
Sicurezza e protezione
• Garanzia di sicurezza dei dati contro i danni causati da malfunzionamenti di componenti hardware o software o da interventi dolosi
• Protezione dei dati da eventuali danneggiamenti per garantire l’integrità dei dati, offrendo anche la possibilità di attivare procedure di recovery in caso di perdita dei dati
• Autorizzazione degli utenti che accedono alla base di dati e protezione dei dati dagli accessi nona autorizzati
• Controllo degli accessi in modo concorrente al database da parte di più utenti.

I linguaggi per database
Le prestazioni del DBMS vengono attivate dall’utente usando appositi comandi, che costituiscono a tutti gli effetti un linguaggio, attraverso il quale l’utente può comunicare con il sistema di elaborazione che gestisce il database.
I comandi che il DBMS mette a disposizione possono essere classificati nelle seguenti categorie di linguaggi:
a) Linguaggio per la descrizione dei dati, delle tabelle e delle viste, detto DDL. Il DDL rappresenta lo strumento attraverso il quale l’utente, facendo riferimento al proprio schema logico, ordina al DBMS la creazione della struttura fisica del database. Il DDL possiede inoltre specifici comandi per definire i sottoschemi relativi alle applicazioni contenute nei programmi dei singoli utenti, oltre che per eliminare tabelle e viste già esistenti
b) Linguaggio DMCL, cioè il linguaggio di controllo dei supporti di memorizzazione dei dati, attraverso il quale la struttura fisica del database viene riferita alle specifiche unità di memoria di massa utilizzate dal sistema di elaborazione
c) Linguaggio per il trattamento dei dati contenuti nel database, detto DML, che consente le usuali operazioni di accesso per inserimenti, modifiche o cancellazioni
d) Linguaggio per fissare i vincoli di integrità, per stabilire le autorizzazioni agli accessi e i tipi di permessi consentiti agli utenti, detto DCL
e) Linguaggio per le interrogazioni alla base di dati, detto Query Language, che consente il ritrovamento dei dati che interessano, sulla base dei criteri di ricerca richiesti dall’utente.
Il linguaggio denominato DDL comprende anche la possibilità di generare in modo automatico, a partire dalle tabelle e dai loto attributi, le maschere video, che servono a facilitare l’utente nell’inserimento, nella modifica e nella consultazione dei dati, i prospetti di output per la rappresentazione ordinata e facilmente leggibile dei dati estratti dalla base di dati.
La diffusione del modello relazionale ha poi favorito l’uso prevalente di linguaggi non procedurali: in questo modo l’utente non ha la necessità di conoscere né le modalità con le quali le informazioni sono state fisicamente registrate, né i cammini per ritrovare le informazioni contenute nella base di dati. Le informazioni vengono ritrovate effettuando interrogazioni e controllando il valore di verità di determinate condizioni, senza indicare le operazioni necessarie per arrivare alle registrazioni richieste.
Si parla allora di linguaggio per basi dati, intendendo un insieme completo di comandi che consente e facilita le operazioni di definizione del database, di manipolazione dei dati, e di interrogare da parte degli utenti: vengono cioè unificate in un unico linguaggio le funzioni dei linguaggi DDL, DMCL, DML, DCL e Quary Language.
Il linguaggi per database relazionali si basano sulla visione gabellare dei dati, che facilita l’utente in quanto non contiene nessuna informazione sul percorso per l’accesso fisico ai dati.
I comandi del linguaggio relazionale operano inoltre su gruppi di righe o sull’intera tabella, anziché su una riga per volta:con una sola richiesta possono essere trattati o ritrovati molti record e non solo un record per volta, come avviene con i tradizionali linguaggi di programmazione.
Nelle recenti versioni dei DBMS, soprattutto nelle implementazioni di prodotti su personal computer, si può trovare un’interfaccia per l’utente, che consente di selezionare i comandi del linguaggio attraverso menu, sottomenu e il puntamento a icone sul video, caratteristiche dell’interfaccia grafica.
Gli utenti
1. La responsabilità della gestione del database è affidata all’Amministratore della base di dati:
• implementazione del modello logico del modello logico del database nel sistema di elaborazione sui supporti fisici delle memorie di massa
• gestione e trattamento dei dati
• autorizzazione agli accessi
Il DBA utilizza, per svolgere le sue funzioni, le prestazioni e i linguaggi del DBMS, e collabora con altre figure nelle diverse fasi: progettazione del database, costruzione delle applicazioni, traduzione dello schema del database nel modello fisico da creare su memoria di massa, manutenzione dei dati nel tempo.
2. I programmatori, che intendono utilizzare per le loro applicazioni i dati organizzati un database, utilizzando un linguaggio DML, oppure comandi che sono un’estensione dei tradizionali linguaggi di programmazione, oppure un linguaggio specifico per basi di dati.
3. Gli utenti finali possono accedere alla base di dati attraverso i comandi di un linguaggio di interrogazione, oppure, per utenti finali ancora meno esperti, attraverso interfacce software, che presentano sul video il menu o le icone.

Esempio