Il modello relazionale – La normalizzazione
Transcript
Il modello relazionale – La normalizzazione
1 Introduzione alle Basi di Dati Massimo Paolucci ([email protected]) DIST – Università di Genova 2 Sistema Azienda Sistema organizzativo è costituito da una serie di risorse e di regole necessarie per lo svolgimento coordinato delle attività al fine del perseguimento degli scopi Sistema informativo è un sottosistema di un’organizzazione aziendale che gestisce le informazioni di interesse per l’attività dell’azienda Sistema informatico gestisce le informazioni per mezzo della tecnologia informatica allo scopo di razionalizzare e standardizzare le procedure di archiviazione e gestione delle informazioni, che sono rappresentate attraverso i dati Introduzione – I DBMS 3 Base di Dati • Collezione di dati, utilizzati per rappresentare le informazioni di interesse per una o più applicazioni di una organizzazione • Collezione di dati gestita da un DBMS 4 Introduzione – I DBMS Un Data Base Management System (DBMS) è un sistema che permette di utilizzare un calcolatore per memorizzare e recuperare informazioni Un DBMS è un sistema software "general purpose” Un DB è in generale una struttura organizzata di dati secondo un modello ben definito e specificato a priori Un DBMS è un sistema di "facilities" per effettuare le tre operazioni fondamentali sui dati: ricerca, aggiornamento, cancellazione 5 Introduzione – I DBMS Un DBMS permette: il controllo centralizzato dei dati la riduzione della ridondanza dei dati Programmi di evitare inconsistenze nei dati applicativi la condivisione dei dati tra gli utenti l’uso di standard di rappresentazione l’uso di restrizioni d’accesso ai dati il mantenimento dell'integrità dei dati per mezzo di procedure di validazione la realizzazione della data independence DataBase Utenti finali 6 Introduzione – I DBMS L’architettura a tre livelli dei DBMS Livello esterno • Lo schema esterno descrive parte della base di dati in un modello logico (viste parziali, derivate) Livello logico • Lo schema logico descrive l’intera base di dati nel modello logico “principale” del DBMS Livello fisico • Lo schema fisico rappresenta lo schema logico attraverso strutture fisiche di memorizzazione 7 Introduzione – I DBMS L’architettura a tre livelli dei DBMS Utenti finali Linguaggio Host + DSL Linguaggio Host + DSL Vista esterna A Linguaggio Host + DSL Vista esterna B ... mappatura esterna/concettuale DBMS Vista Concettuale mappatura concettuale/interna Data Base Fisico 8 Introduzione – I DBMS I DBMS come sistemi transazionali • La condivisione dei dati e l’accesso concorrente comporta il problema del mantenimento della congruenza dei dati Un esempio: l’addebito su un conto corrente (cc) effettuato con la sequenza di due operazioni: – (a) il controllo della disponibilità – (b) la sottrazione della somma addebitata Due addebiti contemporanei di 1000 € su un cc con saldo di 1000 € A verifica cc >= 1000 € B verifica cc >= 1000 € A sottrae 1000 € B sottrae 1000 € ottenendo sul cc un saldo finale di -1000 €! 9 Introduzione – I DBMS I DBMS come sistemi transazionali • Transazione: Un insieme di operazioni sui dati che devono essere eseguite completamente, prima che gli stessi dati siano nuovamente disponibili • La transazione rappresenta un’insieme di operazioni non decomponibili sui dati ("atomicità della transazione”) • Nell’esempio le operazioni (a) e (b) devono essere contenute in un’unica transazione 10 I modelli di dati – concetti generali Il modello dei dati caratterizza il livello concettuale e quello esterno dei DBS (DataBase System) E’ definito da regole precise e permette di esprimere sia le proprietà statiche che quelle dinamiche dei dati Evoluzione dei modelli • • • • Modello Gerarchico Modello Reticolare Modello Relazionale Modelli Object Relational ed Object Oriented 11 Il modello relazionale I dati nei RDB sono memorizzati in tabelle La tabella corrisponde ad un particolare costrutto matematico detto relazione Le informazioni sono rappresentate dai righe presenti nelle tabelle • Un esempio: Il database di una azienda che produce strumenti elettronici sono conservate informazioni relative ai componenti usati, ai fornitori ed alle spedizioni effettuate Tre Tabelle/Relazioni: Fornitori, Parti e Spedizioni 12 Il modello relazionale Un esempio: le tabelle TABELLA FORNITORI F# FNOME CODICE F1 ROSSI 20 F2 BIANCHI 10 F3 PARODI 30 CITTA' SAVONA GENOVA GENOVA TABELLA PARTI P# PNOME P1 RESISTENZA P2 CAPACITA' P3 INDUTTORE P4 CONDUTTORE DIMENSIONI PESO GRANDE 20 MEDIA 15 PICCOLO 15 GRANDE 22 TABELLA SPEDIZIONI F# F1 F1 F1 F2 F2 F3 P# QUANTITA' P1 300 P2 200 P3 200 P1 300 P2 400 P2 200 CITTA' SAVONA GENOVA IMPERIA SAVONA 13 Il modello relazionale Terminologia TABELLA = RELAZIONE ≈ FILE RIGA RECORD TUPLA F# FNOME • • • • • • F1 ROSSI • • • • • • ••• ••• COLONNE CAMPI ATTRIBUTI 14 Il modello relazionale Caratteristiche generali del modello relazionale: • Le righe di una tabella sono definite dall'insieme dei valori corrispondenti ai campi della tabella stessa • I valori che possono essere assegnati a ciascun campo sono il dominio di quel campo • Il dominio di un campo è l’insieme di tutti e soli i valori che possono essere assunti da un determinato attributo di una relazione. (Ad esempio, il dominio dei codici fiscali è formato da stringhe di 16 caratteri composte seguendo una precisa regola) • Informazioni contenute in tabelle distinte possono essere associate semplicemente per mezzo della condivisione di campi (ossia di domini) tra tali tabelle • Il modello relazionale basa la propria forza sulla semplicità 15 Il modello relazionale Definizione formale Relazione: Data una collezione di insiemi D1,...,Dn, non necessariamente distinti, una relazione R su tali insiemi è un insieme di ennuple ordinate (d1,...,dn) tali che d1∈D1,..., dn∈Dn Gli insiemi Di si dicono Domini della relazione Il valore n è il grado della relazione Il numero di n-uple presenti in R rappresenta la cardinalità di R. Una relazione R sugli insiemi D1,...,Dn è un sottinsieme del prodotto cartesiano D1x ... xDn 16 Il modello relazionale Una tabella (relazione) è un insieme di righe, ciascuna formata dallo stesso numero di campi Ad ogni campo è assegnato un determinato valore tra quelli ammessi per il dominio su cui è definito, oppure non è assegnato alcun valore (NULL, valore nullo) Tutti i campi (attributi) di una tabella devono essere distinti, mentre un dominio può ripetersi più volte Ad esempio COMPONENTI P#_PRINC. P1 P1 P5 P3 P6 P5 P2 P#_SEC. P7 P4 P3 P6 P1 P6 P4 QUANTITA' 2 4 1 3 9 8 6 17 Il modello relazionale Vincoli di integrità • Proprietà che devono essere soddisfatte dalle istanze che rappresentano informazioni corrette per le applicazioni Intrarelazionale • Tupla – può essere valutato su ciascuna tupla indipendentemente dalle altre • Dominio – impone restrizioni sul dominio di un attributo Interrelazionale – vincolo che coinvolge più relazioni • Integrità referenziale 18 Il modello relazionale Tutte le relazioni di un DB relazionale devono essere normalizzate, cioè, ciascun attributo in ogni riga, deve essere "atomico", ossia non scomponibile in valori elementari Ad esempio Non Normalizzata Normalizzata DOPO PRIMA PQ F# P# QTY F1 F2 F3 F4 P1 P2 P3 P4 300 200 400 200 P1 P2 P2 300 400 P2 P4 P5 200 300 400 200 P# QTY F1 P1 F1 P2 P3 300 200 400 200 F# F1 F1 F2 F2 P4 P1 P2 F3 F4 P2 P2 F4 F4 P4 P5 300 400 200 200 300 400 19 Il modello relazionale Il concetto di chiave e tipi di chiavi • Una tabella (relazione) non deve contenere due righe identiche • E’ sempre possibile scegliere un sottinsieme di campi di una tabella in maniera da identificare univocamente ciascuna riga della tabella • Chiave Primaria (Primary Key, PK) di una tabella: il minimo sottinsieme di campi che permette di identificare univocamente le righe della tabella Esempi: F# nella tabella FORNITORI P# nella tabella PARTI (F#, P#) nella tabella SPEDIZIONI Il codice fiscale in una ipotetica tabella anagrafica del Ministero delle Finanze è certamente la chiave primaria ! 20 Il modello relazionale Il concetto di chiave e tipi di chiavi • Chiavi candidate: più attributi in una relazione esistono con la proprietà di poter essere chiave primaria Ad esempio AUTOVETTURE TARGA ANNO TELAIO GEA12345 1985 2314567 SV345678 1987 8769843 GED987566 1990 1423657 IM234567 1988 8887652 PROPRIETARIO ROSSI VERDI BIANCHI BRUNI • Tra le chiavi candidate deve essere scelta la chiave primaria • Le chiavi escluse si dicono chiavi alternative 21 Il modello relazionale Il concetto di chiave e tipi di chiavi • Le righe di una tabella rappresentano "entità" nel mondo reale (ad es., autovetture, fornitori, ecc.) • la chiave primaria rappresenta il modo con cui è possibile distinguere tra loro le entità 1a Regola di Integrità (chiavi primarie) Nessuna componente della chiave primaria di una relazione può assumere valore nullo 22 Il modello relazionale Il concetto di chiave e tipi di chiavi • Le informazioni presenti in tabelle diverse possono essere associate tra loro perchè tali tabelle hanno dei domini in comune Ad esempio: F# è condiviso tra FORNITORI e SPEDIZIONI • Quando il dominio di un campo che è chiave primaria in una tabella A è presente anche in un’altra tabella B, il campo di B definito su di esso è detto Chiave Esterna (Foreign Key, FK) verso la tabella A Ad esempio, F# è chiave primaria in FORNITORI ed è chiave esterna in SPEDIZIONI verso la tabella FORNITORI 23 Il modello relazionale Il concetto di chiave e tipi di chiavi 2a Regola di Integrità (chiavi esterne) Una chiave esterna in una relazione A verso una relazione B può assumere valore nullo oppure solamente uno tra i valori assunti dalla chiave primaria di B 24 Il modello relazionale – gli operatori Algebra relazionale Operazioni fondamentali • Unione • Differenza • Prodotto cartesiano • Selezione • Proiezione Operazioni derivate • Intersezione • Join 25 Il modello relazionale – gli operatori Gli operatori relazioni rappresentano la base teorica per i linguaggi di interrogazioni di RDB, quindi per SQL Gli operatori relazionali permettono l’esecuzione di ricerche considerando le tabelle come insiemi, senza operare record per record Gli operatori prendono in input tabelle e generano in output nuove tabelle Esistono tre operatori relazionali fondamentali: SELECT, PROJECT, JOIN 26 Il modello relazionale – gli operatori Un esempio: effettuare nel database FORNITORI, PARTI e SPEDIZIONI le seguenti ricerche: a) trovare la CITTA' del fornitore F2 b) trovare il numero F# ed il CODICE per i fornitori di Genova c) trovare il nome della parte (PNOME) per quelle parti fornite dal fornitore F1 d) trovare, per ciascuna parte che è già stata fornita, il P# e il nome della CITTA' di immagazzinamento 27 Il modello relazionale – gli operatori Operatore SELECT ¾ costruisce una nuova relazione estraendo un sottinsieme orizzontale delle righe di una relazione specificata in input; le righe selezionate sono quelle che soddisfano una condizione espressa sui valori degli attributi della relazione in input • Ad esempio: Estrarre dalla tabella FORNITORI i dati relativi al fornitore F1 SELECT FORNITORI WHERE F#=“F1” GIVING RISULTATO1 RISULTATO1 F# FNOM E CODICE CITTA' F1 ROSSI 20 SAVONA 28 Il modello relazionale – gli operatori Operatore PROJECT ¾ costruisce una nuova relazione estraendo un sottinsieme verticale degli attributi di una relazione specificata in input, rimuovendo inoltre eventuali n-uple duplicate • Ad esempio: Proiettare la tabella FORNITORI estraendo solo il campo relativo alle CITTA’ PROJECT FORNITORI OVER CITTA’ GIVING RISULTATO2 RISULTATO2 CITTA' SAVONA GENOVA 29 Il modello relazionale – gli operatori Gli esempi ... • Gli operatori SELECT e PROJECT sono sufficienti per poter risolvere i primi due problemi di ricerca in due passi (vediamo il primo) a) trovare la CITTA' del fornitore F2 1. SELECT FORNITORI WHERE F#=“F2” GIVING TEMP TEMP F# F2 FNOME CODICE CITTA' BIANCHI 10 GENOVA 2. PROJECT TEMP OVER CITTA’ GIVING RISULTATO RISULTATO CITTA' GENOVA 30 Il modello relazionale – gli operatori Operatore JOIN (naturale o equi-join) ¾ genera una tabella unione di due tabelle sulla base di un attributo (dominio) comune alle due tabelle originali. La nuova tabella è formata da righe che sono la concatenazione delle righe della prima tabella con le righe della seconda tabella che hanno lo stesso valore per l'attributo comune • Ad esempio: Unire le tabelle FORNITORI e PARTI sulla base del campo CITTA' JOIN FORNITORI AND PARTI OVER CITTA’GIVING RISULTATO3 RISULTATO 3 F# F1 F1 F2 F3 FNOM E ROSSI ROSSI BIANCHI PARO DI CODICE 20 20 10 30 CITTA' SAVONA SAVONA GENOVA GENOVA P# P1 P4 P2 P2 PNOM E RESISTENZA CONDUTTORE CAPACITA' CAPACITA' DIM ENSIONI PESO G RANDE 20 G RANDE 22 M EDIA 15 M EDIA 15 31 Il modello relazionale – gli operatori Un esempio di uso di join c) trovare il nome della parte (PNOME) per quelle parti fornite dal fornitore F1 1. SELECT SPEDIZIONI WHERE F#=F1 GIVING TEMP1 F# F1 F1 F1 TEMP1 P# QUANTITA' P1 300 P2 200 P3 200 2. JOIN TEMP1 AND PARTI OVER P# GIVING TEMP2 F# F1 F1 F1 P# P1 P2 P3 Q U AN T IT A' 300 200 200 TE M P 2 PNOME D IM E N S IO N I R E S IS T E N Z A G R AN D E C AP AC IT A' M E D IA IN D U T TO R E P IC C O L O PESO 20 15 15 C IT TA' S AV O N A GENOVA IM P E R IA 3. PROJECT TEMP OVER PNOME GIVING RISULTATO RISULTATO PNOME RESISTENZA CAPACITA' INDUTTORE 32 Il modello relazionale – La normalizzazione La teoria della normalizzazione interviene nella fase del progetto dei DBR Dalle proprietà semantiche dei dati consente di analizzare/definire la struttura più appropriata per le tabelle La teoria definisce diverse regole che le tabelle devono rispettare per evitare la presenza di dati ridondanti, quindi di anomalie durante le operazioni di DM Un esempio: una tabella SPEDIZIONI con i seguenti campi (F#, P#, QUANTITA’, CODICE) presenta anomalie 33 Il modello relazionale – La normalizzazione Una relazione è in una Forma Normale (Normal Form NF) se rispetta un certo insieme di regole Relazioni Normalizzate e non Relazioni Normalizzate (1NF) 2NF 3NF BCNF 4NF Project/Join NF 34 Il modello relazionale – La normalizzazione La dipendenza funzionale Definizione Data una relazione R con due attributi X e Y, si dice che Y dipende funzionalmente da X se per ogni valore di X in R è associato uno ed un solo valore di Y X Y Definizione alternativa Data una relazione R con due attributi X e Y, Y dipende funzionalmente da X se ogni coppia di ennuple che presentano uno stesso valore per X, presentano anche lo stesso valore per Y 35 Il modello relazionale – La normalizzazione La dipendenza funzionale • La dipendenza funzionale dipende dalle proprietà semantiche dei dati • I diagrammi di dipendenza funzionale descrivono tali proprietà ed i vincoli di consistenza associati Dipendenza funzionale completa Data una relazione R con due attributi X e Y, si dice che Y dipende funzionalmente in maniera completa da X attributo composto di R se e solo se Y dipende funzionalmente da X e non da sottoinsiemi di X. 36 Il modello relazionale – La normalizzazione Prima forma normale (1NF) Definizione Una relazione R è 1NF se e solo se è Normalizzata, ossia tutti i suoi domini sono atomici PRIMA F# F1 F1 F1 F1 F1 F1 F2 F2 F3 F4 F4 F4 CAP 16200 16200 16200 16200 16200 16200 16100 16100 16100 16200 16200 16200 CITTA' SAVONA SAVONA SAVONA SAVONA SAVONA SAVONA GENOVA GENOVA GENOVA SAVONA SAVONA SAVONA P# P1 P2 P3 P4 P5 P6 P1 P2 P2 P2 P4 P5 QUANTITA' 300 200 400 200 100 100 300 400 200 200 300 400 37 Il modello relazionale – La normalizzazione Prima forma normale (1NF) F# CAP QUANTITA' P# CITTA' • Le relazioni 1NF presentano anomalie quando si effettuano operazioni di DM (insert, delete, update) Soluzione: spezzare la relazioni in nuove relazioni aumentando il livello di normalizzazione (Project) 38 Il modello relazionale – La normalizzazione Seconda forma normale (2NF) Definizione Una relazione R è 2NF se e solo se è 1NF ed ogni attributo non chiave è completamente dipendente dalla chiave primaria • Passaggio 1NF a 2NF: project (non c’è perdita di informazione) • Passaggio 2NF a 1NF: join (ci può essere perdita di informazione) 39 Il modello relazionale – La normalizzazione Seconda forma normale (2NF) Nel caso della tabella PRIMA: PROJECT PRIMA OVER F#, CODICE, CITTA’ GIVING SECONDA PROJECT PRIMA OVER F#, P#, QUANTITA’ GIVING SP CAP F# F# QUANTITA' P# CITTA' SP SECONDA 40 Il modello relazionale – La normalizzazione Seconda forma normale (2NF) SECONDA presenta ancora anomalie SP SECONDA F# F1 F2 F3 F4 F5 CAP 16200 16100 16100 16200 16300 C IT T A ' SAVONA GENOVA GENOVA SAVONA IM P E R IA F# F1 F1 F1 F1 F1 F1 F2 F2 F3 F4 F4 F4 P# P1 P2 P3 P4 P5 P6 P1 P2 P2 P2 P4 P5 QUANTITA' 300 200 400 200 100 100 300 400 200 200 300 400 41 Il modello relazionale – La normalizzazione Terza forma normale (3NF) Definizione Una relazione R è 3NF se e solo se è 2NF ed ogni attributo non chiave non dipendente in maniera transitiva dalla chiave primaria • Passaggio 2NF a 3NF: project (non c’è perdita di informazione) • Passaggio 3NF a 2NF: join (ci può essere perdita di informazione) 42 Il modello relazionale – La normalizzazione Terza forma normale (3NF) Nel caso della tabella SECONDA: PROJECT SECONDA OVER F#, CITTA’ GIVING FC PROJECT SECONDA OVER CITTA’, CODICE GIVING CC CITTA' F# FC F# F1 F2 F3 F4 F5 CITTA' SAVONA GENOVA GENOVA SAVONA IMPERIA CITTA' CAP CC CAP 16200 16100 16300 16400 CITTA' SAVONA GENOVA IMPERIA LA SPEZIA 43 Il modello relazionale – La normalizzazione Boyce-Codd normal form (BCNF) • Determinante Un attributo, anche composto, da cui altri attributi di una relazione dipendono funzionalmente in maniera completa Definizione Un relazione R è BCNF se e solo se ogni determinante è chiave candidata • LA BCNF può essere considerata una migliore definizione della 3NF che non fa riferimento alle precedenti forme normali. 44 Il modello relazionale – La normalizzazione Boyce-Codd normal form (BCNF) • Un esempio: la relazione SMI esiste un solo insegnante che insegna una certa materia ad un particolare studente un insegnante insegna una sola materia una materia può essere insegnata da più insegnanti SMI STUDENTE INSEGNANTE MATERIA STUDENTE ROSSI ROSSI BIANCHI BIANCHI MATERIA MATEMATICA FISICA MATEMATICA FISICA INSEGNANTE Prof. VERDI Prof. BRUNI Prof. VERDI Prof. NERI 45 Il modello relazionale – La normalizzazione Boyce-Codd normal form (BCNF) • Un esempio: la relazione SMI Determinanti: (Studente, Materia) e Insegnante Chiavi candidate: (Studente, Materia) e (Studente, Insegnante) Insegnante non è chiave candidata ⇒ SMI non è BCNF • Si può trasformare SMI in BCNF con due PROJECT: PROJECT SMI OVER Studente, Insegnante GIVING SI PROJECT SMI OVER Insegnante,Materia GIVING IM 46 Il modello relazionale – La normalizzazione Boyce-Codd normal form (BCNF) • Un esempio: la relazione SMI trasformata in BCNF SI STUDENTE IM INSEGNANTE INSEGNANTE MATERIA 47 Il modello relazionale – La normalizzazione Quarta forma normale (4NF) • Si basa sul concetto di dipendenza multi-valente • Se U e V sono sottoinsiemi degli attributi di una relazione R, e se W è l’insieme degli attributi di R non compresi in U e V, la dipendenza multi-valente U->->V esiste in R se e solo se R è il join delle sue proiezioni R(UV) e R(UW) Definizione Una relazione è 4NF se e solo se, qualora vi compaia una dipendenza multi-valente, A->->B, tutti gli attributi della relazione dipendono anche funzionalmente da A 48 Il modello relazionale – La normalizzazione Quarta forma normale (4NF) • Un esempio: la relazione CIT Un corso può avere uno o più insegnanti e prevedere uno o più libri di testo Ogni insegnante adotta tutti i libri di testo previsti dal corso Insegnante Corso Testo 49 Il modello relazionale – La normalizzazione Quarta forma normale (4NF) • Un esempio: la relazione CIT in 4NF Corso Italiano Italiano Italiano Italiano Italiano Italiano Matematica Insegnante Rossi Rossi Rossi Verdi Verdi Verdi Bianchi Matematica Bianchi Matematica Neri Matematica Neri Matematica Parodi Matematica Parodi Testo Vocabolario Antologia Grammatica Vocabolario Antologia Grammatica Algebra Moderna Geometria Applicata Algebra Moderna Geometria Applicata Algebra Moderna Geometria Applicata Corso Italiano Italiano Matematica Matematica Matematica Insegnante Rossi Verdi Bianchi Neri Parodi Corso Testo Italiano Vocabolario Italiano Antologia Italiano Grammatica Matematica Algebra Moderna Matematica Geometria Applicata 50 Il modello relazionale – La normalizzazione Quinta forma normale (5NF) • Si basa sulla dipendenza Projection/Join (JD) • Una relazione R(X,Y,Z) soddisfa la dipendenza di join (JD) se e solo se R è uguale al join delle sue proiezioni su X, Y e Z, dove X, Y e Z costituiscono sottoinsiemi degli attributi di R Definizione Una relazione R è 5NF se e solo se ogni dipendenza di join in R è una conseguenza delle sue chiavi candidate • Una relazione 5NF non presenta altre anomalie che possano essere rimosse mediante proiezione e join 51 Il modello relazionale – La normalizzazione Quinta forma normale (5NF) • Un esempio: la relazione APF Una azienda acquista uno o più prodotti Una azienda può essere cliente di più fornitori per i prodotti che acquista Un fornitore può vendere più articoli Azienda ACME ACME ACME Rossi s.n.c. Prodotto A B A A Fornitore Bianchi Bianchi Neri Bianchi 52 Il modello relazionale – La normalizzazione Quinta forma normale (5NF) • Un esempio: la relazione APF in 5NF Azienda ACME ACME Rossi s.n.c. Azienda ACME ACME Rossi s.n.c. Prodotto A B A Fornitore Bianchi Neri Bianchi Prodotto A B A Fornitore Bianchi Bianchi Neri