1 Introduzione alle Basi di Dati Massimo Paolucci (paolucci@dist.unige.it) DIST Università di Genova Sistema Azienda 2 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 Introduzione I DBMS 4 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
Introduzione I DBMS 5 Un DBMS permette: il controllo centralizzato dei dati la riduzione della ridondanza dei dati di evitare inconsistenze nei dati 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 Programmi applicativi DataBase Utenti finali Introduzione I DBMS 6 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
Introduzione I DBMS 7 L architettura a tre livelli dei DBMS Utenti finali Linguaggio Host + DSL Linguaggio Host + DSL Linguaggio Host + DSL Vista esterna A... mappatura esterna/concettuale Vista esterna B DBMS Vista Concettuale mappatura concettuale/interna Data Base Fisico Introduzione I DBMS 8 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!
Introduzione I DBMS 9 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 I modelli di dati concetti generali 10 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
Il modello relazionale 11 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 Il modello relazionale 12 Un esempio: le tabelle TABELLA FORNITORI F# FNOME CODICE CITTA' F1 ROSSI 20 SAVONA F2 BIANCHI 10 GENOVA F3 PARODI 30 GENOVA TABELLA PARTI TABELLA SPEDIZIONI F# P# QUANTITA' F1 P1 300 F1 P2 200 F1 P3 200 F2 P1 300 F2 P2 400 F3 P2 200 P# PNOME DIMENSIONI PESO CITTA' P1 RESISTENZA GRANDE 20 SAVONA P2 CAPACITA' MEDIA 15 GENOVA P3 INDUTTORE PICCOLO 15 IMPERIA P4 CONDUTTORE GRANDE 22 SAVONA
Il modello relazionale 13 Terminologia TABELLA = RELAZIONE FILE F# FNOME RIGA RECORD F1 ROSSI TUPLA COLONNE CAMPI ATTRIBUTI Il modello relazionale 14 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à
Il modello relazionale 15 Definizione formale Relazione: Data una collezione di insiemi D 1,...,D n, non necessariamente distinti, una relazione R su tali insiemi è un insieme di ennuple ordinate (d 1,...,d n ) tali che d 1 D 1,..., d n D n Gli insiemi D i 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 D 1,...,D n è un sottinsieme del prodotto cartesiano D 1 x... xd n Il modello relazionale 16 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. P#_SEC. QUANTITA' P1 P7 2 P1 P4 4 P5 P3 1 P3 P6 3 P6 P1 9 P5 P6 8 P2 P4 6
Il modello relazionale 17 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 Il modello relazionale 18 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 F# Non Normalizzata PRIMA PQ P# QTY F1 P1 300 P2 200 P3 400 P4 200 F2 P1 300 P2 400 F3 P2 200 F4 P2 200 P4 300 P5 400 Normalizzata F# P# QTY F1 F1 F1 F1 F2 F2 DOPO P1 300 P2 200 P3 400 P4 200 P1 300 P2 400 F3 P2 200 F4 P2 200 F4 P4 300 F4 P5 400
Il modello relazionale 19 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! Il modello relazionale 20 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 PROPRIETARIO GEA12345 1985 2314567 ROSSI SV345678 1987 8769843 VERDI GED987566 1990 1423657 BIANCHI IM234567 1988 8887652 BRUNI Tra le chiavi candidate deve essere scelta la chiave primaria Le chiavi escluse si dicono chiavi alternative
Il modello relazionale 21 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à 1 a Regola di Integrità (chiavi primarie) Nessuna componente della chiave primaria di una relazione può assumere valore nullo Il modello relazionale 22 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
Il modello relazionale 23 Il concetto di chiave e tipi di chiavi 2 a 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 Il modello relazionale gli operatori 24 Algebra relazionale Operazioni fondamentali Unione Differenza Prodotto cartesiano Selezione Proiezione Operazioni derivate Intersezione Join
Il modello relazionale gli operatori 25 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 Il modello relazionale gli operatori 26 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
Il modello relazionale gli operatori 27 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# FNOME CODICE CITTA' F1 ROSSI 20 SAVONA Il modello relazionale gli operatori 28 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
Il modello relazionale gli operatori 29 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# FNOME CODICE CITTA' F2 BIANCHI 10 GENOVA 2. PROJECT TEMP OVER CITTA GIVING RISULTATO RISULTATO CITTA' GENOVA Il modello relazionale gli operatori 30 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 RISULTATO3 F# FNOME CODICE CITTA' P# PNOME DIMENSIONI PESO F1 ROSSI 20 SAVONA P1 RESISTENZA GRANDE 20 F1 ROSSI 20 SAVONA P4 CONDUTTORE GRANDE 22 F2 BIANCHI 10 GENOVA P2 CAPACITA' MEDIA 15 F3 PARODI 30 GENOVA P2 CAPACITA' MEDIA 15
Il modello relazionale gli operatori 31 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 TEMP1 F# P# QUANTITA' F1 P1 300 F1 P2 200 F1 P3 200 2. JOIN TEMP1 AND PARTI OVER P# GIVING TEMP2 TEMP2 F# P# QUANTITA' PNOME DIMENSIONI PESO CITTA' F1 P1 300 RESISTENZA GRANDE 20 SAVONA F1 P2 200 CAPACITA' MEDIA 15 GENOVA F1 P3 200 INDUTTORE PICCOLO 15 IMPERIA 3. PROJECT TEMP OVER PNOME GIVING RISULTATO RISULTATO PNOME RESISTENZA CAPACITA' INDUTTORE Il modello relazionale La normalizzazione 32 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
Il modello relazionale La normalizzazione 33 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 Il modello relazionale La normalizzazione 34 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
Il modello relazionale La normalizzazione 35 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. Il modello relazionale La normalizzazione 36 Prima forma normale (1NF) Definizione Una relazione R è 1NF se e solo se è Normalizzata, ossia tutti i suoi domini sono atomici PRIMA F# CAP CITTA' P# QUANTITA' F1 16200 SAVONA P1 300 F1 16200 SAVONA P2 200 F1 16200 SAVONA P3 400 F1 16200 SAVONA P4 200 F1 16200 SAVONA P5 100 F1 16200 SAVONA P6 100 F2 16100 GENOVA P1 300 F2 16100 GENOVA P2 400 F3 16100 GENOVA P2 200 F4 16200 SAVONA P2 200 F4 16200 SAVONA P4 300 F4 16200 SAVONA P5 400
Il modello relazionale La normalizzazione 37 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) Il modello relazionale La normalizzazione 38 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)
Il modello relazionale La normalizzazione 39 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 F# CAP CITTA' QUANTITA' F# P# SECONDA SP Il modello relazionale La normalizzazione 40 Seconda forma normale (2NF) SECONDA presenta ancora anomalie SECONDA F# CAP CITTA' F1 16200 SAVONA F2 16100 GENOVA F3 16100 GENOVA F4 16200 SAVONA F5 16300 IMPERIA SP F# P# QUANTITA' F1 P1 300 F1 P2 200 F1 P3 400 F1 P4 200 F1 P5 100 F1 P6 100 F2 P1 300 F2 P2 400 F3 P2 200 F4 P2 200 F4 P4 300 F4 P5 400
Il modello relazionale La normalizzazione 41 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) Il modello relazionale La normalizzazione 42 Terza forma normale (3NF) Nel caso della tabella SECONDA: PROJECT SECONDA OVER F#, CITTA GIVING FC PROJECT SECONDA OVER CITTA, CODICE GIVING CC F# CITTA' CAP CITTA' FC F# CITTA' F1 SAVONA F2 GENOVA F3 GENOVA F4 SAVONA F5 IMPERIA CC CAP CITTA' 16200 SAVONA 16100 GENOVA 16300 IMPERIA 16400 LA SPEZIA
Il modello relazionale La normalizzazione 43 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. Il modello relazionale La normalizzazione 44 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 STUDENTE MATERIA INSEGNANTE SMI STUDENTE MATERIA INSEGNANTE ROSSI MATEMATICA Prof. VERDI ROSSI FISICA Prof. BRUNI BIANCHI MATEMATICA Prof. VERDI BIANCHI FISICA Prof. NERI
Il modello relazionale La normalizzazione 45 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 Il modello relazionale La normalizzazione 46 Boyce-Codd normal form (BCNF) Un esempio: la relazione SMI trasformata in BCNF SI STUDENTE IM INSEGNANTE INSEGNANTE MATERIA
Il modello relazionale La normalizzazione 47 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 Il modello relazionale La normalizzazione 48 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 Corso Insegnante Testo
Il modello relazionale La normalizzazione Quarta forma normale (4NF) 49 Un esempio: la relazione CIT in 4NF Corso Insegnante Testo Italiano Rossi Vocabolario Italiano Rossi Antologia Italiano Rossi Grammatica Italiano Verdi Vocabolario Italiano Verdi Antologia Italiano Verdi Grammatica Matematica Bianchi Algebra Moderna Matematica Bianchi Geometria Applicata Matematica Neri Algebra Moderna Matematica Neri Geometria Applicata Matematica Parodi Algebra Moderna Matematica Parodi Geometria Applicata Corso Italiano Italiano Matematica Matematica Matematica Corso Italiano Italiano Italiano Matematica Matematica Testo Insegnante Rossi Verdi Bianchi Neri Parodi Vocabolario Antologia Grammatica Algebra Moderna Geometria Applicata Il modello relazionale La normalizzazione 50 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
Il modello relazionale La normalizzazione 51 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 Prodotto Fornitore ACME A Bianchi ACME B Bianchi ACME A Neri Rossi s.n.c. A Bianchi Il modello relazionale La normalizzazione 52 Quinta forma normale (5NF) Un esempio: la relazione APF in 5NF Azienda ACME ACME Rossi s.n.c. Prodotto A B A Prodotto A B A Fornitore Bianchi Bianchi Neri Azienda ACME ACME Rossi s.n.c. Fornitore Bianchi Neri Bianchi