SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione



Documenti analoghi
FORME NORMALI E DIPENDENZE

Normalizzazione. Normalizzazione. Normalizzazione e modello ER. Esempio. Normalizzazione

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota

Il modello relazionale dei dati e stato introdotto da Codd. nel 1970 (E.F. Codd, \A relational model of data for large

Normalizzazione. Relazionali

Progettaz. e sviluppo Data Base

Introduzione alla teoria dei database relazionali. Come progettare un database

Il Modello Relazionale

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

database: modello entityrelationship

LA NORMALIZZAZIONE. Introduzione

Decomposizione senza perdita. Decomposizione senza perdita. Conservazione delle dipendenze. Conservazione delle dipendenze

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Basi di Dati e Sistemi Informativi. Progettazione logica: Il modello relazionale

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

Lezione 2. Il modello entità relazione

MODELLO RELAZIONALE. Introduzione

Raffinamento dello schema e forme normali. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Normalizzazione (Codd, 1972)

Lezione V. Aula Multimediale - sabato 29/03/2008

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

Volumi di riferimento

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

DIP. FUNZIONALI E FORME NORMALI esempi cfr. Albano Ghelli Orsini Basi di dati relazionali e a oggetti Zanichelli, 1997, cap.6 RIDONDANZE E ANOMALIE

Gestione Voti Scolastici

Traduzione da ER a Relazionale

Progettazione di Basi di Dati

Operazioni sui database

Basi di dati. Concetti Introduttivi ESEMPIO. Fisica, Analisi, Informatica. Entità Relazioni Interrogazioni. Database 2

Progettazione Logica. Progettazione Logica

Organizzazione degli archivi

SQL/OLAP. Estensioni OLAP in SQL

Secondo Compitino di Basi di Dati

Vincoli di integrità

BASI DI DATI - : I modelli di database

DBMS (Data Base Management System)

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

BASI DI DATI DIPENDENZE FUNZIONALI E FORME NORMALI

Il BACKUP è disponibile in

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Basi di dati II prova intermedia 16 Marzo 2006 Compito 1

Compito DA e BD. Tempo concesso: 90 minuti 12 giugno 03 Nome: Cognome: Matricola: Esercizio 1

Progettazione concettuale

Sviluppata da: Lo Russo - Porcelli Pag. 1 di 6 6FRSR utilizzare il DBMS Postgresql per imparare il linguaggio SQL.

Definizione di domini

Introduzione ai Sistemi di Gestione di Basi di Dati XML

Capitolo 2. Operazione di limite

Il Modello Relazionale

Informatica (Basi di Dati)

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

Il seguente esempio ha lo scopo di illustrare i 3 tipi di relazione 1:1,1:N,N:N. Tabella Conto: Tabella Conto:

SOFTWARE A SUPPORTO DELLA GESTIONE AMMINISTRATIVA DELLO SPORTELLO UNICO SPECIFICA DEI REQUISITI UTENTE

Progettazione di Database. Un Esempio

Modello dei Dati ENTITÀ-RELAZIONE (ENTITY-RELATIONSHIP) é l insieme di concetti, simboli, regole che useremo per rappresentare il modello concettuale

Database 1 biblioteca universitaria. Testo del quesito

MANUALE ESSE3 Gestione Registro delle lezioni

Lezione 4. Modello EER

Basi di dati 9 febbraio 2010 Compito A

Capitolo 13. Interrogare una base di dati

ESEMPIO 1: eseguire il complemento a 10 di 765

ISTRUZIONI PER LA GESTIONE BUDGET

Progettare una base di dati che permetta di gestire il problema descritto nel seguito, nei seguenti punti:

BASE DI DATI: sicurezza. Informatica febbraio ASA

Il grafico 3D riportato è la versione multidimensionale del modello ER

Soluzione dell esercizio del 2 Febbraio 2004

EXPLOit Content Management Data Base per documenti SGML/XML

Progettazione di una base di dati Ufficio della Motorizzazione

Il database management system Access

Università degli Studi di Parma Facoltà di Scienze MM. FF. NN. Corso di Laurea in Informatica. Ingegneria del Software. La fase di Analisi

Il Modello Relazionale

MODELLO RELAZIONALE. cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE

APPUNTI DI MATEMATICA LE FRAZIONI ALGEBRICHE ALESSANDRO BOCCONI

Basi di dati. Le funzionalità del sistema non vanno però ignorate

(anno accademico )

Schema della base di dati del Catalogo dei Dati della Pubblica Amministrazione Renzo Orsini

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

N ORE LEZIONI FRONTALI: STUDIO INDIVIDUALE ( ) N ORE ESERCITAZIONI/LABORATORIO: STUDIO INDIVIDUALE ( )

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

Basi Di Dati, 09/12/2003

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

Dispensa di database Access

Esercitazione 7 Progettazione concettuale. Versione elettronica: L07.progConcettuale.pdf

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

Access. P a r t e p r i m a

Progetto di basi di dati Laboratorio di diagnosi mediche

Basi di Dati. Progettazione del Modello ER. K. Donno - Progettazione del Modello ER

Basi di Dati Relazionali

Le Basi di Dati. Le Basi di Dati

Capitolo 8. Esercizio 8.1

NORMALIZZAZIONE DI SCHEMI RELAZIONALI. Prof.ssa Rosalba Giugno

DATABASE RELAZIONALI

Rassegna sui principi e sui sistemi di Data Warehousing

Esercizio data base "Biblioteca"

Archivi e Basi di Dati

Basi di Dati. Conversione Modello ER in Modello Relazionale. K. Donno - Conversione Modello ER in Modello Relazionale

Progettazione logica relazionale (1/2)

Database. Si ringrazia Marco Bertini per le slides

Transcript:

SISTEMI INFORMATIVI AVANZATI -2010/2011 1 Introduzione In queste dispense, dopo aver riportato una sintesi del concetto di Dipendenza Funzionale e di Normalizzazione estratti dal libro Progetto di Basi di Dati Relazionali (Beneventano, Bergamaschi, Guerra, Vincini), viene introdotto il concetto di Denormalizzazione. Dato uno schema di relazione R(X), una dipendenza funzionale su R è un vincolo di integrità espresso nella forma Y Z, dove Y e Z sono sottoinsiemi di X; in tal caso si dice che Y determina funzionalmente Z Un istanza r di R soddisfa la dipendenza funzionale Y Z se in ogni tupla di r il valore di Y determina univocamente il valore di Z. Formalmente, dato uno schema di relazione R(X), un istanza r di R soddisfa il vincolo di dipendenza funzionale Y Z su R se e solo se È facile verificare che se Z Y allora Y Z. Queste dipendenze funzionali vengono dette banali. t 1, t 2 r, t 1 [Y ] = t 2 [Y ] = t 1 [Z] = t 2 [Z] È facile verificare che una chiave K di uno schema R(X) determina funzionalmente tutti gli attributi di X: se K X è chiave di R(X) allora K X Si può verificare che una dipendenza funzionale Y Z, con Z = {A 1,..., A n } è equivalente ad un insieme di dipendenze funzionali Y A i, con 1 i n. Quindi nel seguito sono considerate solo dipendenze funzionali Y A, dove A è un singolo attributo.

2 Richiami: Dipendenze Funzionali, Normalizzazione e Denormalizzazione Esempi di Dipendenze Funzionali Consideriamo il seguente schema E/R: Con le Regole di Progettazione logica relazionale (vedi capitolo 3.2 del libro Progetto di Basi di Dati Relazionali) questo schema E/R viene tradotto nel seguente schema relazionale: CATEGORIA(Categoria) TIPO(Tipo,Categoria) FK : Categoria REFERENCES Categoria PRODOTTO(Prodotto,Tipo) FK : Tipo REFERENCES Tipo Le dipendenze funzionali (ricordiamo che per definizione una dipendenza funzionale è relativa ad una singola relazione) sono solo quelle dichiarate dalle chiavi: Nella relazione PRODOTTO: Prodotto Tipo Nella relazione TIPO: Tipo Categoria Cosa succede se traduciamo lo schema E/R in relazionale, senza seguire le Regole di Progettazione logica relazionale? Ad esempio, riportiamo tutto lo schema E/R in un unica relazione: PRODOTTO(Prodotto,Tipo,Categoria) Nella nuova relazione PRODOTTO si hanno tre dipendenze funzionali non banali : Prodotto Tipo (dichiarata tramite la chiave) Prodotto Categoria (dichiarata tramite la chiave) Tipo Categoria Per indicare la terza dipendenza funzionale, che non viene dichiarata dalla chiave, useremo questa notazione: PRODOTTO(Prodotto,Tipo,Categoria) FD: Tipo Categoria Perchè abbiamo sempre utilizzato, nella progettazione di una base di dati, le Regole di Progettazione logica relazionale? Perchè non tradurre con una sola relazione PRODOTTO? La risposta è nel concetto di normalizzazione. NOTA: Le definizioni e la teoria delle Dipendenza Funzionali è stata estesa anche al modello E/R. Noi non introduciamo questa teoria ma parleremo di dipendenze funzionali negli schemi E/R in modo intuitivo, sulla base delle dipendenze funzionali che si ottengono nello schema relazionale tradotto. Quindi diremo che nello schema E/R PRODOTTO determina TIPO e TIPO determina CATEGORIA, ovvero Un associazione binaria uno-a-molti comporta una dipendenza funzionale.

SISTEMI INFORMATIVI AVANZATI -2010/2011 3 Forme Normali Le Forme Normali sono alla base della teoria della normalizzazione, il cui obiettivo principale è quello di definire formalmente la qualità degli schemi La qualità di uno schema viene essenzialmente definita come l assenza di ridondanza nei dati anomalie di aggiornamento dei dati Esempio 1: Consideriamo la relazione FREQUENZA FREQUENZA(MATR,CODCOR,NUMEROORE,CODDOC) FD: CODCOR CODDOC MATR CODCOR NUMEROORE CODDOC M1 C1 102 D1 M1 C3 98 D1 M2 C1 111 D1 M2 C2 101 D2 Problemi: ridondanza: in tutte le frequenze di un corso si ripete lo stesso docente anomalia di modifica: se un corso cambia docente si devono modificare tutte le tuple relative alla frequenza di quel corso anomalia di inserimento: non si può inserire un corso senza frequenze anomalia di cancellazione: se vengono cancellate tutte le frequenze relative ad un corso si perde anche il docente del corso I problemi derivano da CODCOR CODDOC che stabilisce la dipendenza di un attributo (CODDOC) solo da una parte (CODCOR) della chiave. Esempio 2: Problemi analoghi si hanno se consideriamo lo schema con una dipendenza funzionale: Prodotto(Prodotto,Tipo,Categoria) FD: Tipo Categoria I problemi derivano da Tipo Categoria che stabilisce che un attributo non chiave (Tipo) determina funzionalmente un altro attributo.

4 Richiami: Dipendenze Funzionali, Normalizzazione e Denormalizzazione Seconda e Terza Forma Normale Prima Forma Normale - 1NF : Uno schema R(X) è in 1NF se e solo se i valori di tutti i domini degli attributi A X sono atomici. Seconda Forma Normale - 2NF : Informalmente, la 2NF serve per definire schemi esenti dai problemi derivanti dalla dipendenza parziale di un attributo dalla chiave. Dato uno schema di relazione R(X), un attributo A X e un insieme di attributi Y X, si dice che A dipende completamente da Y se Y A e non esiste nessun sottoinsieme proprio Z di Y, Z Y, tale che Z A. Un attributo che appartiene ad una chiave è detto attributo primo. Definizione di Seconda Forma Normale - 2NF : Uno schema R(X) è in 2NF se e solo se ogni attributo non primo A X dipende completamente da ognuna delle chiavi di R. Terza Forma Normale - 3NF : Informalmente, la 3NF serve per definire schemi esenti dai problemi derivanti da attributi non chiave che determinano funzionalmente altri attributi. Definizione di Terza Forma Normale - 3NF : Uno schema R è in 3NF se e solo se per ogni dipendenza funzionale non banale X A, o X è una superchiave oppure A è primo. Si può verificare che uno schema R che è in 3NF è anche in 2NF. Uno schema in 3NF non è esente da problemi di ridondanza e anomalie: Esempio 3: CAMPIONATO(SQUADRA,PARTITA,GIOCATORE,RUOLO) con la dipendenza funzionale GIOCATORE SQUADRA CAMPIONATO è in 3NF: infatti in GIOCATORE SQUADRA, SQUADRA è primo. Tuttavia la dipendenza funzionale GIOCATORE SQUADRA genera problemi di ridondanza e anomalie simili a quelli visti negli esempi precedenti. La 3NF definisce comunque schemi con un buon livello di qualità e costituisce quindi l obiettivo normalmente adottato per il progetto logico di un database.

SISTEMI INFORMATIVI AVANZATI -2010/2011 5 Progettazione Logica e Normalizzazione La traduzione di uno schema E/R in schema relazionale secondo le Regole di Progettazione logica relazionale produce uno schema relazionale in 3NF. Intuitivamente: le Regole di Progettazione logica relazionale non introducono problemi di normalizzazione: dato uno schema E/R normalizzato, lo schema relazionale ottento è 3NF. La precedente affermazione è solo a livello intuitivo, in quanto usa il concetto di schema E/R normalizzato, che non è stato formalmente definito. Esempio: uno schema E/R con l entità CITTA che ha come attributi PROVINCIA e REGIONE, è non normalizzato in quanto PROVINCIA determina funzionalmente REGIONE: Per tradurre questo schema E/R in relazionale, applichiamo le Regole di Progettazione logica relazionale, ottenendo il seguente schema relazionale: CITTA(Citta,Provincia,Regione) FD: Provincia Regione AZIENDA(Azienda,Citta) FK : Citta REFERENCES CITTA La relazione CITTA non è in 3NF a causa della FD: Provincia Regione: questa FD non è stata introdotta durante la traduzione, ma era già presente nello schema E/R. Se invece traduciamo lo schema E/R in relazionale senza seguire le Regole di Progettazione logica relazionale, si possono introdurre altre FD: AZIENDA(Azienda,Citta,Provincia,Regione) FD: Citta Provincia FD: Citta Regione FD: Provincia Regione La relazione AZIENDA non è in 3NF sia a causa della FD: Provincia Regione, ma anche a causa di FD: Citta Provincia e FD: Citta Regione.

6 Richiami: Dipendenze Funzionali, Normalizzazione e Denormalizzazione Progettazione logica da schemi E/R nel compito scritto Il principale esercizio del compito scritto consiste nella progettazione di un Data Warehouse, partendo da un DBO (DataBase Operazionale) di cui viene fornito lo schema E/R ed il corrispondente schema relazionale. Esempio di compito scritto: Consideriamo un DBO con il seguente schema E/R ed il corrispondente schema relazionale (nello schema relazionale ci possono essere vincoli di integrità aggiuntivi): Nuova notazione: Negli schemi E/R considerati, la maggior parte degli identificatori sono semplici, cioè composti da un solo attributo: di conseguenza nello schema relazionale la maggior parte delle FK sarà su un attributo singolo. Per semplicità introduciamo una notazione semplificata di FK, riportando direttamente la relazione riferita dopo il nome della FK. Ad esempio, nella relazione AZIENDA: AZIENDA(AZIENDA,CITTA) FK : CITTA REFERENCES CITTA la FK CITTA riferita alla relazione CITTA, verrà scritta come: AZIENDA(AZIENDA,CITTA:CITTA) Semplificazione: Nello schema E/R del compito scritto, la maggior parte delle associazioni sono associazioni binarie uno-amolti che servono per specificare delle dipendenze funzionali e quindi una gerarchia di una dimensione. Per semplificare la struttura dello schema E/R, nei casi semplici queste dipendenze funzionali vengono aggiunte soltanto nello schema relazionale e non nello schema E/R, come ad esempio nell entità CITTA dell esempio precedente: La dipendenza funzionale FD: Provincia Regione viene riportata solo nello schema relazionale CITTA(Citta,Provincia,Regione) FD: Provincia Regione Per riassumere: nel testo del compito scritto viene dato un DBO (DataBase Operazionale), specificandone sia il suo schema E/R che lo schema relazionale, con eventuali vincoli di integrità aggiuntivi quali semplici dipendenze funzionali. Quindi nel compito scritto non viene richiesto di effettuare la progettazione logica relazionale da schemi E/R, ma viene già dato lo schema relazionale corrispondente.

SISTEMI INFORMATIVI AVANZATI -2010/2011 7 Esempio di specifiche nel compito scritto Consideriamo un DBO con il seguente schema E/R ed il corrispondente schema relazionale (nello schema relazionale ci possono essere vincoli di integrità aggiuntivi): CITTA(CITTA,REGIONE,STATO) FD: REGIONE STATO DATA(DATA,MESE,ANNO) FD: MESE ANNO AZIENDA(AZIENDA,CITTA:CITTA) PRODOTTO(PRODOTTO,AZIENDA:AZIENDA) CLIENTE(CLIENTE,CITTA:CITTA,PREFER:PRODOTTO) ORDINE(ORDINE,CLIENTE:CLIENTE,DATA:DATA) DETTAGLIO(NRIGA,ORDINE:ORDINE, PRODOTTO:PRODOTTO, DATASPEDIZIONE:DATA, COSTO)

8 Richiami: Dipendenze Funzionali, Normalizzazione e Denormalizzazione Normalizzazione e Denormalizzazione Normalizzazione Una relazione che non è nella forma normale desiderata viene decomposto in sottoschemi allo scopo di raggiungere tale forma normale, tramite un procedimento chiamato appunto normalizzazione. Esempio : Lo schema precedente non in 3NF: PRODOTTO(Prodotto,Tipo,Categoria) FD: Tipo Categoria viene intuitivamente normalizzato tramite decomposizione come segue: si considera la FD: Tipo Categoria che causa la violazione della 3NF 1. gli attributi di tale FD si riportano in una nuova relazione TIPO(Tipo,Categoria) 2. nella relazione originale si toglie l attributo determinato funzionalmente e si mette una FK: PRODOTTO(Prodotto,Tipo) FK : Tipo REFERENCES Tipo DeNormalizzazione Una relazione non in forma normale è detto denormalizzato. La denormalizzazione è il procedimento inverso della normalizzazione: denormalizzare lo schema TIPO(Tipo,Categoria) PRODOTTO(Prodotto,Tipo) FK : Tipo REFERENCES Tipo significa riportarlo nella forma: PRODOTTO(Prodotto,Tipo,Categoria) FD: Tipo Categoria La denormalizzazione è una delle tecniche più utilizzate, soprattutto nel contesto dei datawarehouse, per aumentare le performance delle interrogazioni evitando di fare join tra relazioni. Ad esempio, nello schema denormalizzato, l interrogazione selezionare, per ogni prodotto il tipo e la categoria del può essere eseguita considerando solo la relazione PRODOTTO SELECT Prodotto,Tipo,Categoria FROM PRODOTTO mentre nel caso dello schema normalizzato dobbiamo eseguire il join: SELECT Prodotto,Tipo,Categoria FROM TIPO, PRODOTTO WHERE TIPO.Tipo=PRODOTTO.Tipo

SISTEMI INFORMATIVI AVANZATI -2010/2011 9 Denormalizzazione nel progetto di un Data Warehouse Nella progettazione di un DW la maggior parte delle associazioni sono associazioni del tipo uno-a-molti che rappresentano gerarchie di attributi dimensionali La progettazione logica di un Data Warehouse viene generalmente effettuata secondo il cosiddetto Star Schema, che prevede relazioni completamente denormalizzate, in quanto una intera gerarchia viene riportata in un unica relazione (chiamata Dimension Table) Prodotto(Prodotto,Tipo,Categoria) Un altra possibile tecnica di progettazione logica di un Data Warehouse è quella secondo lo Snowflake Schema, che prevede relazioni normalizzate, che si ottengono come normalizzazione delle corrispondenti relazioni dello Star Schema: Prodotto(Prodotto,Tipo) FK : Tipo REFERENCES Tipo Tipo(Tipo,Categoria)