Il Modello Relazionale

Dimensione: px
Iniziare la visualizzazioe della pagina:

Download "Il Modello Relazionale"

Transcript

1 Elaborazione Automatica dei Dati IL MODELLO LOGICO DEI DATI Enrico Cavalli Anno Accademico Il Modello Relazionale

2 Le relazioni Il successo del modello relazionale si fonda sulla visione tabellare dei dati, semplice e intuitiva, ma basata sul concetto matematico di relazione che ne permette una formalizzazione rigorosa Relazione: In matematica si definisce prodotto cartesiano di due insiemi A e B, A B l insieme delle coppie ordinate (a,b), dove: a A, b B. A = {2, 3}, B = {4, 9, 6} A B = { (2,4), (2,9), (2,6), (3,4), (3,9), (3,6) } una relazione (binaria) sugli insiemi A e B, detti domini della relazione, è un insieme R A B. R = { (2,4), (3,9) } è una relazione su A e B che si può indicare con il nome RadiceQuadrataDi RadiceQuadrataDi (2,4) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 3 Relazioni e Tabelle A = {2, 3}, B = {4, 9, 6} A B = { (2,4), (2,9), (2,6), (3,4), (3,9), (3,6) } R = { (2,4), (3,9) } A B. A B Un dominio rappresenta l insieme di valori ammessi per l attributo RadiceQuadrataDi (a, b) Relazione su A e B Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 4 2

3 Relazioni e Tabelle Le definizioni di prodotto cartesiano tra due insiemi e di relazione binaria si estendono naturalmente al caso di n insiemi. Grado della relazione: il numero delle componenti del prodotto cartesiano Cardinalità della relazione: il numero di n-uple che compaiono nella relazione Consideriamo una relazione sui domini A, B, C: A = { Fiat, Citroen }, B = { Punto, Idea, C3 }, C = { B, G } A B C Fiat Fiat Punto Punto B B Fiat Fiat Punto Punto G R( A, B, C ) G Fiat Fiat Idea Idea B B Fiat Fiat Punto Punto B B Fiat Fiat Idea Idea G G Fiat Fiat Punto Punto G Fiat Fiat C3 C3 B B Fiat Fiat Idea Idea B B Fiat Fiat C3 C3 G G Fiat Fiat Idea Idea G Citroen Citroen Punto Punto B B Citroen Citroen C3 C3 B B Citroen Citroen Punto Punto G G Citroen Citroen C3 C3 G Citroen Citroen Idea Idea B B Citroen Citroen Idea Idea G G Citroen Citroen C3 C3 B B Citroen Citroen C3 C3 G G Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 5 Relazioni con attributi Juventus Lazio 3 Lazio Milan 2 0 Juventus Roma 2 Roma Milan 0 Milan Inter 0 0 Inter Milan La relazione, che descrive i risultati di alcune partite di calcio, è un sottoinsieme di: stringa stringa intero intero Una relazione è un insieme, pertanto: Non è definito un ordinamento tra le n-uple della relazione: le righe della relazione non sono ordinate (gli insiemi non sono ordinati) Le n-uple della relazione sono distinte l una dall altra. In una relazione non ci possono essere due righe uguali (gli elementi di un insieme sono distinti) La n-upla è al proprio interno ordinata: l i-esimo valore proviene dall i-esimo dominio. La posizione è significativa per l interpretazione dei dati della relazione: si veda ad esempio la n-upla: ( Juventus Roma 2 ) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 6 3

4 Relazioni con attributi Squadra Squadra Squadra Squadra 2 2 Goal Goal Goal Goal 2 2 Juventus Juventus Lazio Lazio 3 3 Lazio Lazio Milan Milan Juventus Juventus Roma Roma 2 2 Roma Roma Milan Milan 0 0 Milan Milan Inter Inter Inter Inter Milan Milan Associamo ad ogni dominio della relazione un nome, detto attributo, che descrive il ruolo giocato dal dominio stesso Il nome della relazione con i suoi attributi è detto schema della relazione CAMPIONATO(Squadra, Squadra2, Goal, Goal2) Le righe di una relazione, ad esclusione della riga che descrive gli attributi, sono dette tuple. Il nome di un attributo è costruito mediante la dot notation: NomeRelazione.NomeAttributo Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 7 Relazioni con attributi Squadra Squadra 2 Goal Goal 2 Juventus Lazio 3 Lazio Milan 2 0 Juventus Roma 2 Roma Milan 0 Milan Inter 0 0 Inter Milan Squadra 2 Squadra Goal Goal 2 Lazio Juventus 3 Milan Lazio 2 0 Roma Juventus 2 Milan Roma 0 Inter Milan 0 0 Milan Inter L introduzione degli attributi modifica la definizione di relazione e rende l ordine degli attributi irrilevante Relazioni matematiche: elementi individuati per la posizione Database relazionali: elementi riconosciuti dal nome degli attributi Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 8 4

5 Relazioni e basi di dati Una base dati è composta da diverse relazioni Schema della base dati è l insieme degli schemi delle relazioni che la compongono Il modello relazionale è un modello basato sui valori: il collegamento fra dati in relazioni diverse è rappresentato mediante valori corrispondenti Esami Studente Voto Corso Studenti Matricola Cognome Nome DataNascita Corsi 545 Rossi Maria 25// Neri Anna 23/04/ Verdi Giuseppe 2/02/ Rossi Pablito 0/0/ Bruni Carla 0/2/98 34 Cavour Benso 05/0/983 Codice Titolo Docente Matematica Allevi 3 Informatica Gnudi 4 Economia Leoni Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 9 Relazioni e basi di dati Hanno senso relazioni con un solo attributo? Si pensi alla relazione Studenti ed alla necessità di avere informazioni sugli studenti lavoratori, oppure sui laureandi: Studenti Matricola Cognome Nome DataNascita 545 Rossi Maria 25// Neri Anna 23/04/ Verdi Giuseppe 2/02/ Rossi Pablito 0/0/ Bruni Carla 0/2/98 34 Cavour Benso 05/0/983 Lavoratori Matricola Laureandi Matricola Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 0 5

6 Chiavi di una relazione Studenti Matricola Matricola Cognome Cognome Nome Nome DataNascita DataNascita Facoltà Facoltà Rossi Rossi Maria Maria 2/05/983 2/05/983 Eco Eco Neri Neri Anna Anna 23/04/982 23/04/982 Eco Eco Verdi Verdi Giuseppe Giuseppe 2/02/982 2/02/982 Ing Ing Rossi Rossi Maria Maria 0/0/98 0/0/98 Mat Mat Cavour Cavour Benso Benso 0/0/98 0/0/98 Ling Ling Supponendo che Cognome, Nome e DataNascita identifichino univocamente un individuo, una tupla può essere riconosciuta dai valori di: Matricola Cognome, Nome, DataNascita Matricola, DataNascita Matricola, Facoltà Cognome, Nome, DataNascita, Facoltà Ogni insieme di attributi che include Matricola oppure l insieme di attributi Nome, Cognome, DataNascita permette di identificare una sola tupla Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo Studenti( Matricola, Cognome, Nome, DataNascita, Facoltà, CodFis ) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 2 6

7 Chiavi Ci sono insiemi di attributi che permettono di identificare univocamente ogni tupla di una relazione, mentre altri non lo permettono Un insieme di attributi A si dice superchiave di una relazione se nella relazione non vi sono due tuple con il medesimo valore di A Un insieme di attributi A si dice chiave (o chiave candidata) di una relazione se A è una superchiave minimale della relazione, cioè non esiste alcun sottoinsieme proprio di A che sia superchiave Chiave primaria di una relazione è una delle chiavi candidate secondo un criterio di scelta deciso dal progettista del database Identificare superchiavi e chiavi di Studenti Una relazione ha sempre una chiave? Perché DataNascita non può essere una chiave di Studenti? Se nella tabella Studenti tutti i Nomi fossero differenti si potrebbe dire che Nome è una chiave? Sarebbe una scelta ragionevole? Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 3 Chiave esterna di una relazione Infrazioni Agenti Veicoli Codice Data Agente Articolo Prov Numero /0/ RM 4E /0/ RM 4E /0/ RM 2F /0/ MI 2F /0/ MI 2F7646 Matricola CF Cognome Nome 567 RSSMRO Rossi Mario 456 NRELGI Neri Luigi 638 NREPRO. Neri Piero Prov Numero Proprietario Indirizzo RM 2F7643 Verdi Piero Via Tigli RM A2396 Verdi Piero Via Tigli RM 4E5432 Bini Luca Via Aceri MI 2F7646 Luci Gino Via Aceri Gli attributi chiave sono sottolineati, le chiavi esterne sono in corsivo Infrazioni contiene riferimenti ad Agenti e Veicoli: Infrazioni.Agente Agenti.Matricola { Infraz.Prov, Infraz.Numero } { Veicoli.Prov, Veicoli.Numero } Agente e { Prov, Numero } sono Chiavi Esterne di Infrazioni Infrazioni( Codice, Data, Agente, Articolo, Prov, Numero ) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 4 7

8 Esercizi Per ognuna delle seguenti basi di dati, identificare: dominio di ogni attributo, chiavi, chiavi esterne. Data Base Multe: Agenti ( Matricola, CodFis, Cognome, Nome ) Infrazioni ( Codice, Agente, Data, Articolo, Prov, Numero ) Veicoli ( Prov, Numero, Proprietario, Indirizzo ) 2. Data Base Università: Studenti ( Matricola, Cognome, Nome, DataNascita, CodiceFiscale ) Corsi ( Codice, NomeCorso, Docente ) Esami ( Studente, Corso, Voto, Lode, Data ) 3. Data Base Banca: Clienti ( Nome, Via, Città, NumConto ) Conti ( NumConto, Saldo ) 4. Data Base Banca2: Agenzie ( NomeAgenzia, Indirizzo, Capitalizzazione ) Clienti ( NomeCliente, Indirizzo, Città ) Prestiti ( NomeAgenzia, NumeroPrestito, NomeCliente, Importo ) Depositi ( NomeAgenzia, NumeroDeposito, NomeCliente, Importo ) 5. Data Base ContiTrattoria: Ricevute ( Num, Data, Totale ) Dettaglio ( Num, Qta, Descrizione, Importo ) e anche l alternativa per Dettaglio: Dettaglio (Num, Riga, Qta, Descrizione, Importo) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 5 Dal modello concettuale al modello logico 8

9 Dal modello E/R al modello relazionale Ogni Entità diventa una relazione Ogni attributo delle Entità diventa una colonna di una relazione Domini degli attributi Chiavi Impiegato Matricola Nome Età Stipendio {PK} Impiegati Matricola Nome Età Stipendio 0 M.Rossi M.Bianchi L.Neri N.Bini M.Celli S.Bisi N.Bini S.Rossi M.Rossi Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 7 Le associazioni: regole base () L associazione uno a uno diventa un unica relazione che contiene gli attributi di entrambe le entità e, se ci sono, gli attributi dell associazione L associazione uno a molti si traduce in una coppia di tabelle: una prima relazione è derivata dall entità che gioca il ruolo di entità a uno nell associazione la seconda relazione è ottenuta integrando gli attributi dell entità che gioca il ruolo di entità a molti nell associazione con: la chiave primaria dell entità a uno, che diventa chiave esterna della nuova relazione gli eventuali attributi dell associazione Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 8 9

10 Le associazioni: regole base (2) L associazione molti a molti si traduce in tre relazioni: due tabelle sono derivate dalle due Entità che compaiono nell associazione con i corrispondenti attributi la terza tabella è costruita con: le chiavi delle precedenti entità gli eventuali attributi dell associazione la chiave primaria della nuova relazione è composta dalle chiavi delle due entità e da ogni altro attributo necessario a garantire l unicità della chiave Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 9 Associazione uno a uno Spettatore Occupare Posto Codice Nome {PK} Settore Fila Numero Note {PPK} {PPK} {PPK} Si consideri il caso: Cittadini, Parlamentari Occupazione Codice Nome Settore Fila Numero Note 2340 Nino Verdi A Lino Bianchi A 2 2 R 2323 Marzia Rossi A Franco Dini B Silvia Gualeni B 4 3 H Franco Bassetti B Enrico Toti A 8 Occupazione: Qual è la chiave? Come si sceglie? Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 20 0

11 Associazione uno a molti Facoltà Essere Iscritto N Studente Codice {PK} Descrizione NumeroAnni DataIscrizione AltriDati Matricola Nome Indirizzo {PK} Facoltà Codice Descrizione NumeroAnni eco Economia 4 ing Ingegneria 5 lin Lingue 4 med Medicina 6 Studenti Matricola Nome Indirizzo CodFacoltà DataIscrizione AltriDati 2340 Nino Verdi Milano ing 2/2/ Lino Bianchi Torino ing 3/2/ Marzia Rossi Bergamo eco 5/9/ Franco Dini Bergamo eco 7/0/ Silvia Gualeni Como lin 8// Franco Bassetti Milano eco 5/09/ Enrico Toti Brescia lin 5/0/0 Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 2 Associazione molti a molti Studente N Superare N Corso Matricola Nome Indirizzo {PK} Data Voto Codice {PK} Docente Descrizione Qual è la chiave di Esami? Studenti Matricola Nome Indirizzo 22 Adriana Firenze 28 Daniele Lecce 25 Enrico Milano 23 Franco Torino 29 Gian Franco Bergamo 30 Giorgio Bergamo 20 Giovanna Como 26 Laura Milano 2 Lucia Brescia 24 Marida Bergamo 27 Vittorio Bergamo Esami Matricola Codice Data Voto 23 inf 0/0/ mgen 0/0/ filo 03/0/ mgen 25/07/ mgen 25/06/ mfin 30/09/ mgen 30/06/ Corsi Codice Docente Descrizione econ Leoni Economia filo Cottino Filosofia inf Cavalli Informatica mfin Bertocchi Mat.Finanziaria mgen Allevi Mat.Generale Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 22

12 Le associazioni: dettagli () La regola base per l associazione uno a uno viene integrata con: Associazione uno a uno con partecipazione opzionale di una delle due entità: viene trattata come un associazione uno a molti dove l entità con partecipazione facoltativa gioca il ruolo a uno Per evitare di costruire una sola tabella con molti campi a valore nullo Esempi: Cittadino-Parlamentare, Docente-Classe (Coordinare), Docente- Facoltà (Presiedere), Dipendente-PostoMacchina Dipendente Matricola {PK} Nome Occupare Parchegio Numero Settore Posto Note {PK} Se ci sono molti dipendenti e pochi posti una sola tabella avrebbe molte righe con valori nulli Dipendenti (Matricola, Nome) Parcheggi (Numero, Settore, Posto, Note, Matricola ) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 23 Le associazioni: dettagli (2) Associazione uno a uno con partecipazione opzionale di entrambe le entità. La scelta dell entità che gioca il ruolo a uno va fatta caso per caso, in base alla numerosità delle singole partecipazioni Per evitare di costruire una sola tabella con molti campi a valore nullo Esempi: Maschio-Genitore; Dipendente-AutoAziendale Dipendente Assegnare Auto Matricola Nome {PK} Targa Tipo {PK} Due possibili scelte: Dipendenti (Matricola, Nome, Targa) Auto(Targa, Tipo) Dipendenti (Matricola, Nome) Auto (Targa, Tipo, Matricola ) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 24 2

13 Le associazioni: dettagli (3) Associazioni uno a uno ricorsive con partecipazione opzionale in dei due ruoli o di entrambi. Si può procede come nei casi precedenti ma, in alternativa, si può creare una nuova tabella. Esempi: Femmine (Essere primogenito), Carrozza(Trainare) Trainare Successiva Precedente Carrozza Carrozze( IDCarro, TipoCarro, DataCostruzione, DataRevisione, NextCarro ) Carrozze( IDCarro, TipoCarro, DataCostruzione, DataRevisione) Composizione( IDCarro, NextCarro ) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 25 Le associazioni: dettagli (4) Considerazioni analoghe valgono per le associazioni uno a molti ricorsive (e non) con partecipazione opzionale del ruolo a molti Esempi: Femmina (EssereFiglia), Dipendente(Dirigere), Madre Figlio (AvereGemelli) Dirigere N Collaboratore Manager Dipendente Dipendenti( Matricola, Nome, Cognome, Assunzione, Manager ) Dipendenti( Matricola, Nome, Cognome, Assunzione ) Supervisione( Collaboratore, Manager) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 26 3

14 Esempi ed esercizi () Attore N Recitare N Film IDAttore {PK} NumeroScene IDFilm {PK} Ingaggio Attori ( IDAttore, Nome, Cognome ) Film ( IDFilm, Titolo, Anno, Durata, Acolori, Genere ) Cast ( IDAttore, IDFilm, NumeroScene, Ingaggio ) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 27 Esempi ed esercizi (2) Attore Stipulare N Contratto N Riguardare Film IDAttore {PK} Data IDFilm {PK} NumeroScene Ingaggio Attori ( IDAttore, Nome, Cognome ) Film ( IDFilm, Titolo, Anno, Durata, Acolori, Genere ) Contratti (IDAttore, IDFilm, Data, NumeroScene, Ingaggio ) Si confronti questo schema con quello dell esempio precedente... Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 28 4

15 Esempi ed esercizi (3) Indirizzo Essere residenza N Residente DataResidenza Indirizzi ( Via, Numero, CAP, Quartiere ) Residenti ( CodiceFiscale, Nome, Cognome, Via, Numero, DataResidenza ) CodiceSSN Essere attribuito Cittadino CodiciSSN ( SSN, Azienda, Sede ) Cittadini ( CodiceFiscale, Nome, Cognome, Nascita, SSN ) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 29 Esempi ed esercizi (4) Cliente IDCliente {PK} CodFiscale Nome Cognome Indirizzo Telefono N Iscrizione N Effettuare Numero {PK} DataIscrizione Pagamento Ricevere Corso IDCorso {PK} Descrizione Giorno Ora Costo Clienti ( IDCliente, CodFiscale, Nome, Cognome, Indirizzo, Telefono ) Corsi ( IDCorso, Descrizione, Giorno, Ora, Costo ) Iscrizioni (Numero, DataIscrizione, Pagamento, IDCliente, IDCorso ) Fornitore Fornire N Prodotto Fornitori ( IDFornitore, RagioneSociale, Indirizzo, Telefono ) Prodotti ( IDProdotto, Descrizione, IDFornitore ) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 30 5

16 Esempi ed esercizi (5) Posto Occupare N Passeggero DaStazione AStazione Posti ( Carrozza, Fila, Numero, Caratteristiche ) Passeggeri ( Codice, Nome, Carrozza, Fila, Numero, DaStazione, AStazione ) Docente N Insegnare N Materia AnnoScolastico Docenti ( IDDocente, Nome, Cognome, DataAssunzione ) Materie ( IDMateria, Descrizione, Gruppo ) Assegnazioni ( IDDocente, IDMateria, AnnoScolastico ) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 3 Esempi ed esercizi (6) Docente N Insegnare N Classe Materia NumOre Docenti ( IDDocente, Nome, Cognome, DataAssunzione ) Classi ( IDClasse, Classe, Sezione, Descrizione, Localizzazione ) Insegnamenti ( IDDocente, IDClasse, Materia, NumOre ) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 32 6

17 Esempi ed esercizi (7) Coordinare Manager Dirigere Collaboratore Addetto EssereAssegnato Negozio N DataAssegnazione Addetti ( Matricola, Nome, Cognome, DataAssunzione, Qualifica, IDNegozio, Manager, DataAssegnazione ) Negozi ( IDNegozio, Indirizzo, Città, Manager ) Addetti ( Matricola, Nome, Cognome, DataAssunzione, Qualifica, IDNegozio, DataAssegnazione ) Negozi ( IDNegozio, Indirizzo, Città, Manager ) Supervisione ( Collaboratore, Manager ) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 33 Esempi ed esercizi (8) Precedere Precedente Successiva Carrozza Trainare Locomotiva NumTreno IDCarro {PK} TipoCarro DataCostruzione DataRevisione NumTreno IDMotrice {PK} TipoMotrice DataCostruzione DataRevisione Locomotive ( IDMotrice, TipoMotrice, DataCostruzione, DataRevisione ) Carrozze ( IDCarro, TipoCarrozza, DataCostruzione, DataRevisione ) Composizione ( IDMotrice, IDCarro, NumTreno ) Composizione2 ( IDCarro, IDCarroTrainato, NumTreno ) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 34 7

18 Esempi ed esercizi (9) Essere Formata Quantità Lavorazione Componente N N Parte Prodotto Codice {PK} Descrizione Gruppo Prezzo Prodotti ( Codice, Descrizione, Gruppo, Prezzo ) Composizione ( IDParte, IDComponente, Quantità, Lavorazione ) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 35 Esercizi () Derivare le relazioni dal seguente modello E/R: Coordinare Capo N Dipendente Caporeparto Sovrintendere Reparto N Prodotto Collaboratore Matricola {PK} N Nome DataAssunzione N Direttore IDReparto {PPK} IDNegozio {PPK} NomeReparto Telefono N Vendere IDProdotto {PK} Descrizione Fornitore Dirigere Negozio IDNegozio {PK} Indirizzo Telefono Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 36 8

19 Esercizi (2) Costruire il modello E/R che ha originato il seguente schema di DB Reparti( CodReparto, NomeReparto ) Prodotti( CodProdotto, Descrizione, Prezzo, CodReparto) Vendite( Numero, Data, Quantità, CodProdotto) Costruire le relazioni per il problema delle ricette e ingredienti (Vedi Modello E/R) Costruire le relazioni per il problema dei dipendenti e le relative specializzazioni (Vedi..) Costruire le relazioni per il problema dei prestiti di libri ai soci di una Biblioteca (Vedi..) Costruire le relazioni per il problema di studenti, esami, corsi, docenti. Ogni corso ha un solo docente che in genere è titolare di più corsi. Un esame può essere ripetuto (Vedi.. ) Costruire le relazioni per il problema del catalogo di una biblioteca (Documento, Soggetto, Autore, Genere,... ) (Vedi E/R) Costruire le relazioni per il problema degli ordini ricevuti dai clienti e le relative fatture. A un ordine è associata una sola fattura (Vedi (E/R) Costruire le relazioni per il problema della progettazione aziendale: progetti, dipendenti, reparti (Vedi E/R) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 37 Vedi Algebra relazionale 9

20 Dipendenze funzionali Modello relazionale dei dati () Terminologia Relazione Dipendenza funzionale Determinante Chiave candidata Chiave composta Chiave primaria Chiave surrogata Chiave esterna Vincoli di chiave esterna Forme normali Dipendenze multivalore Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 40 20

21 Modello relazionale dei dati (2) Caratteristiche delle tabelle Le righe contengono dati di una (sola) entità I valori delle colonne descrivono attributi delle entità Tutti i valori in una colonna sono del medesimo tipo Ogni colonna ha un unico nome Ogni campo contiene un solo valore L ordine delle colonne non è rilevante L ordine delle righe non è rilevante Tabella Non ci possono essere righe duplicate Relazione Colonna Attributo Riga Tupla File Campo Record Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 4 Modello relazionale dei dati (3) Prodotti IDProdotto Descrizione Reparto Compratore 00 Pinne piccole Mare Enrico 002 Pinne medie Mare Enrico 00 Maschera media Mare Mary 0 Maschera grande Mare Mary 200 Tenda igloo Camping Gianni 202 Tenda doppio igloo Camping Gianni 2050 Sci fondo Montagna Damiano 205 Sci discesa Montagna Damiano Ordini IDOrdine 000 IDProdotto 200 Quantità Prezzo 80 Totale Le due tabelle sono ben progettate? Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 42 2

22 Modello relazionale dei dati (4) IDOrdine IDProdotto Quantità Prezzo Descrizione Reparto Compratore Pinne piccole Mare Enrico Pinne piccole Mare Enrico Pinne medie Mare Enrico Pinne medie Mare Enrico Maschera media Mare Mary Tenda igloo Camping Gianni Tenda doppio igloo Camping Gianni Ottenuta dalla fusione delle due precedenti tabelle. Meglio due tabelle o una sola? Compratori Compratore Prodotto Skill Mary Mary Mary Mary Laurea Tedesco Laurea Tedesco Entrambe le tabelle hanno problemi Damiano 2050 Inglese Damiano 205 Inglese Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 43 Le dipendenze funzionali () AreaRet = Base * Altezza Totale = Quantità * Prezzo ( Base, Altezza ) AreaRet ( Quantità, Prezzo ) Totale Si ha dipendenza funzionale tra attributi quando il valore di uno o più attributi A determina univocamente il valore di un attributo B e si indica con A B A determina funzionalmente B B dipende funzionalmente da A A è un determinante per B Sono di interesse le sole dipendenze funzionali non esprimibili matematicamente. Con queste cosa si fa? Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 44 22

23 Le dipendenze funzionali (2) Prodotti IDProdotto Descrizione Pinne piccole Pinne medie Maschera media Maschera grande Tenda igloo Tenda doppio igloo Sci fondo Sci discesa IDProdotto Descrizione IDProdotto Reparto Reparto Mare Mare Mare Mare Camping Camping Montagna Montagna Compratore Enrico Enrico Mary Mary Gianni Gianni Damiano Damiano IDProdotto Compratore IDProdotto ( Descrizione, Reparto, Compratore ) Descrizione ( IDProdotto, Reparto, Compratore ) Compratore Reparto Scoprire le dipendenze funzionali non è facile! Attività simile alla progettazione concettuale dei dati Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 45 Le dipendenze funzionali (3) Ordini IDOrdine IDProdotto Quantità Prezzo Totale IDProdotto Prezzo Quale delle due dipendenze? ( IDOrdine, IDProdotto ) Prezzo ( IDOrdine, IDProdotto ) ( Quantità, Prezzo, Totale ) ( Quantità, Prezzo ) Totale Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 46 23

24 Le dipendenze funzionali (4) Dipendenti( Matricola, Nome, Cognome, Stipendio, CodiceCapo, NomeCapo ) Matricola Nome Cognome Stipendio CodiceCapo CodiceCapo NomeCapo Matricola NomeCapo transitivamente [Matricola] + Matricola Nome Cognome Stipendio CodiceCapo NomeCapo Dipendenza transitiva: se A B, B C allora A C. Si dice che A determina C transitivamente o che C dipende transitivamente da A A +, chiusura di A date certe dipendenze funzionali, risponde alla domanda: Quali sono tutti gli attributi che dipendono funzionalmente da A, in base a un insieme di dipendenze funzionali? Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 47 Chiavi Un insieme di attributi A si dice superchiave di una tabella se A determina funzionalmente tutti gli altri attributi della relazione Un insieme di attributi A si dice chiave candidata di una tabella se A è una superchiave minimale della tabella Chiave primaria di una tabella è una delle chiavi candidate Chiave surrogata di una tabella è una colonna aggiunta alla tabella, i cui valori sono attribuiti automaticamente dal DBMS, e che è usata come chiave primaria [ A A 2... A n ] + è l insieme di tutti gli attributi di R se e solo se A A 2... A n è una superchiave per R Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 48 24

25 Vincoli di integrità Valori nulli NULL indica l assenza di informazione su un attributo, non applicabile in quella riga, valore ignoto... Studenti Matricola Cognome Nome DataNascita 545 Rossi Maria NULL NULL Neri Anna 23/04/ Verdi Giuseppe 2/02/ Rossi Pablito 0/0/98 NULL Bruni Carla 0/2/98 34 Cavour Benso 05/0/983 La presenza di valori nulli ha effetti diversi: in alcuni casi è tollerabile in altri no Esami Corsi Studente Voto Corso NULL 27 NULL NULL Codice Titolo Docente Matematica Allevi 3 Informatica NULL NULL Economia Leoni Matricola di Neri e Bruni? Quando è nata Maria Rossi? 768 ha meritato 24 in? 27 in che materia? Studente? Chi insegna Informatica? Qual è il codice di Economia? Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 50 25

26 Vincoli di integrità Studenti Matricola Cognome Nome DataNascita 545 Rossi Maria 2/05/ Neri Anna 23/04/ Verdi Giuseppe 2/02/ Rossi Pablito 0/0/8 34 Cavour Benso 05/0/83 Esami Corsi Studente Voto Lode Corso lode lode Codice Titolo Docente Matematica Allevi 3 Informatica Gnudi 4 Economia Leoni Il voto 36 non è corretto Il voto 27 lode è irregolare La matricola 653 è duplicata Chi è lo studente 823? Il corso 5 non esiste Lo studente 653 ha sostenuto due volte l esame 4 con esiti differenti ( 28 e 30 Lode ) I valori degli attributi devono essere sottoposti ad opportuni vincoli di integrità sia internamente alla tabella che in relazione ai dati contenuti in altre tabelle Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 5 Vincoli di integrità Vincoli di tupla I vincoli di tupla esprimono condizioni che devono essere soddisfatte dai valori di ciascuna riga indipendentemente dalle altre. Riguardano i domini degli attributi e la relativa semantica Definire il vincolo per gli attributi Voto e Lode in Esami Vincoli di chiave Si impone alla chiave primaria di essere unica ed a valori non nulli Vincoli di integrità referenziale Riguarda un attributo od un insieme di attributi che compare come chiave esterna in una relazione e come chiave primaria in un altra: i valori assunti da una chiave esterna devono essere assunti anche dalla corrispondente chiave primaria Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 52 26

27 Vincoli di integrità referenziale Agenti Matricola CF Cognome Nome 567 RSSMRO Rossi Mario 638 NREPRO. Neri Piero Come si è arrivati a questa situazione? Infrazioni Codice Data Agente Articolo Prov Numero /0/ RM 4E /0/ FI 2F /0/ MI 2F7646 Veicoli Prov Numero Proprietario Indirizzo FI 2F7643 Verdi Piero Via Tigli RM A2396 Verdi Piero Via Tigli MI 2F7646 Luci Gino Via Aceri Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 53 Integrità referenziale Tre possibili cause all origine delle violazioni all integrità referenziale In una tabella, definita una chiave esterna e imposti i vincoli di integrità referenziale, il DBMS impedisce: L inserimento di un record con un valore di chiave esterna che non compare nella tabella madre associata La cancellazione di una riga, la cui chiave primaria è chiave esterna in altre tabelle, se nelle tabelle associate ci sono righe con quel valore nella chiave esterna. La variazione dei valori dei campi di una riga se sono violate le precedenti condizioni Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 54 27

28 Vincoli di integrità referenziale Agenti Matricola CF Cognome Nome Infrazioni 567 RSSMRO Rossi Mario 638 NREPRO. Neri Piero Codice Data Agente Articolo Prov Numero /0/ RM 4E /0/ FI 2F /0/ MI 2F7646 In Agente c è un valore nullo. E un caso di violazione dell integrità referenziale? No. Non si tratta di un caso di violazione dell integrità referenziale. L integrità referenziale richiede solo che se in Agente c è un valore questo deve comparire anche in Matricola. Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 55 Esercizi Per ognuna delle basi di dati riportate identificare: chiavi, chiavi esterne e vincoli di integrità. Data Base Multe: Agenti ( Matricola, CodFis, Cognome, Nome ) Infrazioni ( Codice, Agente, Data, Articolo, Prov, Numero ) Veicoli ( Prov, Numero, Proprietario, Indirizzo ) 2. Data Base Università: Studenti ( Matricola, Cognome, Nome, DataNascita, CodiceFiscale ) Corsi ( Codice, NomeCorso, Docente ) Esami ( Studente, Corso, Voto, Lode, Data ) 3. Data Base Banca: Clienti ( Nome, Via, Città, NumConto ) Conti ( NumConto, Saldo ) 4. Data Base Banca2: Agenzie ( NomeAgenzia, Indirizzo, Capitalizzazione ) Clienti ( NomeCliente, Indirizzo, Città ) Prestiti ( NomeAgenzia, NumeroPrestito, NomeCliente, Importo ) Depositi ( NomeAgenzia, NumeroDeposito, NomeCliente, Importo ) 5. Data Base ContiTrattoria: Ricevute ( Num, Data, Totale ) Dettaglio ( Num, Qta, Descrizione, Importo ) ed anche l alternativa per Dettaglio: Dettaglio (Num, Riga, Qta, Descrizione, Importo) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 56 28

29 Normalizzazione Anomalie () Inventario Prodotto Magazzino Quantità IndirMag 545 Mi8 800 via Tonale Mi via Stelvio Roma2 356 via Ardeatina 3 00 Roma3 245 via Salaria 200 Mi via Stelvio Roma3 370 via Salaria 00 Mi via Stelvio Mi8 720 via Tonale 25 Inventario è una buona tabella? La tabella Inventario presenta diverse anomalie: Se Mi8 si sposta da via Tonale bisogna aggiornare tutte le occorrenze di Mi8 in Inventario: anomalia di aggiornamento Se un magazzino si svuota vengono perse le informazioni sul suo indirizzo: anomalia di cancellazione Se viene aperto un nuovo magazzino in mancanza di merci a magazzino mancano le informazioni sul suo indirizzo: anomalia di inserimento Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 58 29

30 Anomalie (2) Si intuisce che le anomalie sono causate dalla presenza di informazioni eterogenee in un unica tabella. Possibile terapia: mettere le informazioni in tabelle separate Inventario Prodotto Magazzino Quantità 545 Mi Mi Roma Roma Mi Roma Mi Mi8 720 Magazzini Codice IndirMag. Mi8 via Tonale 25 Mi25 via Stelvio 35 Roma2 via Ardeatina 3 Roma3 via Salaria Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 59 Anomalie (3) Per eliminare le anomalie riscontrate in Inventario abbiamo scomposto lo schema: Inventario ( Prodotto, Magazzino, Quantità, IndirMag ) Nei due schemi: Inventario ( Prodotto, Magazzino, Quantità ) Magazzini ( Codice, IndirMag ) Le tabelle, ottenute per proiezione dalla tabella originale, devono permettere la ricostruzione delle informazioni originarie. Inventario Join Magazzini, con: Magazzino = Codice La congiunzione deve ricostruire tutte le informazioni originarie La congiunzione deve ricostruire solo le informazioni originarie Come procedere in modo sistematico per identificare possibili anomalie nello schema delle relazioni? Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 60 30

31 Forme Normali () NF 2NF 3NF BCNF 4NF 5NF Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 6 Forme Normali (2) Sintesi sulle diverse forme di normalizzazione Origine dell anomalia Forme Normali Principi di progettazione Dati non atomici Dipendenze Funzionali Dipendenze multivalore Rare situazioni di vincoli sui dati NF 2NF, 3NF BCNF 4NF 5NF Rispetto delle caratteristiche base del modello relazionale BCNF: progettazione delle tabelle in modo che ogni determinante sia una chiave candidata Mettere tutte le dipendenze multivalore in una tavola a se Trasformare i vincoli in funzione delle chiavi candidate e dei domini Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 62 3

32 Forme Normali (3) La prima forma normale (NF), richiede che siano rispettate le regole fondamentali del modello relazionale. In una tabella: non ci sono righe uguali e tutte le righe contengono lo stesso numero di colonne le righe e le colonne non sono ordinate i valori che compaiono in una colonna sono omogenei per dominio e semplici, ossia gli attributi contengono informazioni elementari Considereremo la sola forma normale di Boyce-Codd, indicata in letteratura con l acronimo BCNF (Boyce Codd Normal Form) e la 4NF Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 63 Condizione di Boyce e Codd () La Forma Normale di Boyce Codd (BCNF) garantisce l assenza di anomalie causate dalle dipendenze funzionali Una relazione R è in forma normale di Boyce e Codd ( BCNF ) se è in prima forma normale e ogni determinante è una chiave candidata Anagrafica( Nome, Cognome, Matricola, Nascita, Indirizzo, NumFigli, CodDip, NomeDip, IndirDip ) CodDip ( NomeDip, IndirDip ) Anagrafica non è in BCNF Inventario( Prodotto, Magazzino, Quantità, IndirMag ) Magazzino IndirMag Inventario non è in BCNF Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 64 32

33 Condizione di Boyce Codd (2) Nella tabella: Inventario ( Prodotto, Magazzino, Quantità, IndirMagazzino ) Valgono le dipendenze funzionali: Prodotto Magazzino Quantita IndirMagazzino Magazzino IndirMagazzino Inventario non è in BCNF Abbiamo scomposto Inventario in due tabelle BCNF: Inventario ( Prodotto, Magazzino, Quantità) Magazzini ( Magazzino, IndirMagazzino) Esiste un metodo automatico per normalizzare o bisogna procedere intuitivamente? Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 65 Scomposizione in BCNF Algoritmo di scomposizione. Identifica tutte le dipendenze funzionali e le chiavi candidate 2. Se esiste una dipendenza funzionale il cui determinante non è chiave candidata: A. Costruisci una nuova tabella con le colonne della dipendenza funzionale B. Il determinante è la chiave primaria della tabella definita in A. C. Costruisci un altra tabella con: le colonne rimaste e una copia del determinante della dipendenza funzionale D. Crea un vincolo di integrità referenziale tra le due tabelle 3. Ripeti il passo 2. sino a che tutti i determinanti di tutte le tabelle sono chiavi candidate Se al passo 2. ci sono più dipendenze funzionali, inizia da quella con il maggior numero di colonne Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 66 33

34 Scomposizione in BCNF (Esempio ) Prodotti ( IDProdotto, Descrizione, Reparto, Compratore ) IDProdotto ( Descrizione, Reparto, Compratore ) Compratore Reparto Descrizione ( IDProdotto, Reparto, Compratore ) Non BCNF Compratori ( Compratore, Reparto ) Prodotti ( IDProdotto, Descrizione, Compratore ) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 67 Scomposizione in BCNF (Esempio 2) Riparazioni Macchina Tipo PrezzoAcq NumRipar DataRipar CostoRipar 00 Trapano /07/ Levigatrice /09/ Trapano /08/ Tornio /09/ Trapano /0/ Trapano // Riparazioni ( Macchina, Tipo, PrezzoAcq, NumRipar, DataRipar, CostoRipar ) Macchina ( Tipo, PrezzoAcq ) Non BCNF NumRipar ( Macchina, Tipo, PrezzoAcq, DataRipar, CostoRipar ) Macchine ( Macchina, Tipo, PrezzoAcq ) Riparazioni ( Macchina, DataRipar, NumRipar, CostoRipar ) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 68 34

35 Scomposizione in BCNF (Esempio 3) Sports IDSocio Nome Sport Costo Pagato 00 Giovanni Calcio Francesco Calcio Francesco Sci Enrico Arrampicata Giuseppe Sci Sports ( IDSocio, Nome, Sport, Costo, Pagato ) IDSocio Nome ( IDSocio, Sport ) Pagato Sport Costo Non BCNF Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 69 Scomposizione in BCNF (Esempio 3) Sports ( IDSocio, Nome, Sport, Costo, Pagato ) IDSocio Nome ( IDSocio, Sport ) Pagato Sport Costo Non BCNF Soci ( IDSocio, Nome ) Temp ( IDSocio, Sport, Costo, Pagato ) Sports ( Sport, Costo ) Pagamenti ( IDSocio, Sport, Pagato ) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 70 35

36 Scomposizione in BCNF (Esempio 4) Prodotti IDProdotto Descrizione Reparto Budget Compratore 00 Pinne piccole Mare BR_00 Enrico 002 Pinne medie Mare BR_00 Enrico 00 Maschera media Mare BR_00 Mary 0 Maschera grande Mare BR_00 Mary 200 Tenda igloo Camping BR_00 Gianni 202 Tenda doppio igloo Camping BR_00 Gianni 2050 Sci fondo Montagna BR_020 Damiano 205 Sci discesa Montagna BR_020 Damiano Prodotti ( IDProdotto, Descrizione, Reparto, Budget, Compratore ) IDProdotto ( Descrizione, Reparto, Budget, Compratore ) Descrizione ( IDProdotto, Reparto, Budget, Compratore ) Compratore ( Reparto, Budget ) Reparto Budget Non BCNF Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 7 Scomposizione in BCNF (Esempio 4) Prodotti ( IDProdotto, Descrizione, Reparto, Budget, Compratore ) IDProdotto ( Descrizione, Reparto, Budget, Compratore ) Descrizione ( IDProdotto, Reparto, Budget, Compratore ) Compratore ( Reparto, Budget ) Reparto Budget Non BCNF Compratori ( Compratore, Reparto, Budget ) Prodotti ( IDProdotto, Descrizione, Compratore ) Reparti ( Reparto, Budget ) Compratori ( Compratore, Reparto ) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 72 36

37 Scomposizione in BCNF - Esercizio Ordini IDOrdine IDProdotto Quantità Prezzo Totale Ordini non è in BCNF Ordini ( IDOrdine, IDProdotto, Quantità, Prezzo, Totale ) ( IDOrdine, IDProdotto ) ( Quantità, Prezzo, Totale ) ( Quantità, Prezzo ) Totale Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 73 Scomposizione in BCNF - Esercizio 2 Dipendenti ( Matricola, Nome, Cognome, Stipendio, CodiceCapo, NomeCapo ) Matricola ( Nome, Cognome, Stipendio, CodiceCapo, NomeCapo ) Dipendenti non è in BCNF CodiceCapo NomeCapo Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 74 37

38 Scomposizione in BCNF - Esercizio 3 Film ( Titolo, Anno, Attore, IndirizzoAttore, NomeStudio, Produttore, IndirizzoProduttore ) Titolo Anno NomeStudio Produttore Attore IndirizzoAttore Produttore IndirizzoProduttore [Titolo Anno ] +?? Film non è in BCNF Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 75 Scomposizione in BCNF - Esercizio 3 Dipendenti ( Matricola, Nome, Cognome, Residenza, Reparto, SedeReparto, Stipendio, Capo, CognomeCapo ) Matricola Nome, Cognome, Residenza, Reparto, Stipendio, Capo Reparto SedeReparto Capo CognomeCapo Reparti ( Reparto, SedeReparto ) Capi ( Capo, CognomeCapo ) ( Capo è Matricola ) Dipendenti ( Matricola, Nome, Cognome, Residenza, Reparto, Stipendio, Capo ) Sono in BCNF? Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 76 38

39 Scomposizione in BCNF - Esercizio 4 Anagrafica ( Nome, Cognome, Matricola, Nascita, Indir, NumFigli, CodDip, NomeDip, IndirDip, Stipendio ) Matricola ( Nome, Cognome, Nascita, Indir, NumFigli, CodDip, NomeDip, IndirDip, Stipendio ) CodDip ( NomeDip, IndirDip ) Inventario ( Prodotto, Magaz, Quantità, IndirizzoMag ) ( Prodotto, Magaz ) Quantità Magaz IndirizzoMag Non sono in BCNF Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 77 Scomposizione in BCNF - Esercizio 5 Anagrafica( Nome, Cognome, Dipart, Ufficio, Stipendio, Città ) Dipartimenti( Nome, Indirizzo, Città ) Nome Nome Cognome Cognome Dipart Dipart Ufficio Ufficio Stipendio Stipendio Città Città Carlo Carlo Bianchi Bianchi Produzione Produzione Torino Torino Carlo Carlo Rossi Rossi Direzione Direzione Milano Milano Franco Franco Neri Neri Distribuzione Distribuzione Napoli Napoli Giuseppe Giuseppe Verdi Verdi Amministrazione Amministrazione Roma Roma Lorenzo Lorenzo Lanzi Lanzi Direzione Direzione Genova Genova Marco Marco Franco Franco Produzione Produzione Roma Roma Mario Mario Rossi Rossi Amministrazione Amministrazione Milano Milano Paola Paola Borroni Borroni Amministrazione Amministrazione Venezia Venezia Nome Nome Indirizzo Indirizzo Città Città Amministrazione Amministrazione Via Via Tito Tito Livio, Livio, Milano Milano Direzione Direzione Via Via Tito Tito Livio, Livio, Milano Milano Distribuzione Distribuzione Via Via Segre, Segre, 9 9 Roma Roma Produzione Produzione Piazza Piazza Lavater, Lavater, 3 3 Torino Torino Ricerca Ricerca Via Via Morone, Morone, 6 6 Milano Milano Anagrafica e Dipartimenti sono in BCNF? Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 78 39

40 Scomposizione in BCNF - Esercizio 6 Film (Titolo, Anno, Attore, NomeStudio, Produttore, Lunghezza, acolori) Titolo Anno NomeStudio Produttore Lunghezza acolori Chiave candidata? Film è in BCNF? Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 79 Ricostruzione delle informazioni Anagrafica ( Nome, Cognome, Matricola, Nascita, Indir, NumFigli, CodDip, NomeDip, IndirDip, Stipendio ) è stata decomposta nelle due tabelle: Anagrafica ( Nome, Cognome, Matricola, Nascita, Indir, NumFigli, CodDip, Stipendio ) Dipartimenti ( CodDip, NomeDip, IndirDip ) L informazione originaria è recuperabile esattamente? Teorema Se una tabella viene scomposta con il metodo descritto la tabella originaria può essere recuperata esattamente combinando, tramite join, le righe delle nuove tabelle Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 80 40

41 Forme Normali - 4NF La 4NF vuole prevenire le anomalie causate dalla presenza di attributi multivalore. Situazioni di questo tipo si hanno quando un attributo è determinante di un altro che può avere molti valori una persona i suoi fratelli uno studente le sue abilità un cibo i vini adatti a quel cibo Compratori Compratore Prodotto Skill Mary 00 Laurea Mary Mary Mary Damiano Tedesco Laurea Tedesco Inglese Prodotto Compratore Compratore Skill Damiano 205 Inglese Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 8 Forme Normali - 4NF Se tali situazioni sono trattate in tabelle a sè stanti non ci sono anomalie di sorta, mentre le tabelle che contengono dipendenze multivalore e altri attributi evidenziano anomalie di aggiornamento. Studenti ( Matricola, Abilità ) Studenti_ ( Matricola, Abilità, Fratelli ) Studenti_2 ( Matricola, Abilità, Cognome ) Studenti: Matricola Abilità; Studenti_: Matricola Abilità; Studenti_2: Matricola Abilità; Studenti OK Matricola Fratelli Matricola Cognome Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 82 4

42 Forme Normali - 4NF Studenti: Matricola Abilità; Studenti_: Matricola Abilità; Matricola Fratelli Studenti_2: Matricola Abilità; Matricola Cognome Anomalie Anomalie Studenti_ Studenti_A ( Matricola, Abilità ) Studenti_B ( Matricola, Fratelli ) Studenti_2 Studenti_2A ( Matricola, Abilità ) Studenti_2B ( Matricola, Cognome ) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 83 Forme Normali - 4NF Le dipendenze multivalore devono essere trattate isolatamente, in tabelle a sé stanti Compratori Compratore Prodotto Skill Mary 00 Laurea Mary 00 Tedesco Mary 0 Laurea Mary 0 Tedesco Damiano 2050 Inglese Damiano 205 Inglese Prodotto Compratore Compratore Skill Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 84 42

43 4NF - Esempio Normalizzazione della tabella Compratori: Compratori ( Compratore, Prodotto, Skill ) Prodotto Compratore Compratore Skill Compratori Compratore Mary Prodotto 00 Prodotto Compratore Mary 0 Damiano 2050 Damiano 205 Skills Persona Mary Skill Laurea Compratore Skill Mary Tedesco Damiano Inglese Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 85 Forme normali NF: requisiti base del modello relazionale 2NF: Una relazione è 2NF se è NF e non ci sono attributi non chiave che dipendono parzialmente dalla chiave 3NF: Una relazione è 3NF se è 2NF e non ci sono attributi non chiave che dipendono transitivamente dalla chiave BCNF: Una relazione è BCNF se è NF e ogni determinante è chiave candidata La NF richiede che siano rispettate le regole di base del modello relazionale La 2NF vieta le dipendenze da un sottoinsieme proprio di una chiave La 3NF vieta le dipendenze transitive da una chiave Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 86 43

44 Esercizi Le informazioni sugli esami sono memorizzate secondo uno dei due seguenti schemi: Esami- ( Corso, Matricola, Data, Voto, NomeCorso ) Esami-2 ( Corso, Matricola, Data, VotoInCifre, VotoInLettere ) Definite, in entrambi i casi, le dipendenze funzionali e individuate le eventuali violazioni alla BCNF e dire se sono in 2NF o 3NF. Se già non lo sono, portarle in BCNF Una tabella contiene per ogni riga il codice del libro, il nome dell autore, il titolo del libro, il nome dell editore, l indirizzo dell editore, il prezzo e l anno di edizione. Normalizzare la tabella in modo da ottenere tabelle in BCNF Portare in BCNF la tabella Materiali definita dallo schema: Materiali ( Codice, Descrizione, Fornitore, Prezzo, IndirizzoFornitore, Quantità, PosizioneInMagazzino, Acciaio, NomeAcciaio, ResistenzaAcciaio, NomeFornitore ) Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 87 Normalizzazione in pratica 44

45 Come si attua la normalizzazione () Riparazioni esiste già Riparazioni ( Macchina, Tipo, PrezzoAcq, NumRipar, DataRipar, CostoRipar ) Macchine ( Macchina, Tipo, PrezzoAcq ) Riparazioni_ ( Macchina, DataRipar, NumRipar, CostoRipar ) MYSQL: CREATE TABLE... SELECT SELECT... INTO Macchine FROM Sintassi SQLServer per creare tabella Macchine SELECT DISTINCT Macchina, Tipo, PrezzoAcq INTO Macchine FROM Riparazioni; Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 89 Come si attua la normalizzazione (2) Creazione di Riparazioni_ SELECT Macchina, DataRipar, NumRipar, CostoRipar INTO Riparazioni_ FROM Riparazioni; Ricostruzione della tabella Riparazioni CREATE VIEW Riparazioni AS SELECT M.Macchina, M.Tipo, M.PrezzoAcq, R. DataRipar, R.NumRipar, R.CostoRipar FROM Riparazioni_ R JOIN Macchine M ON R.Macchine = M.Macchine; Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 90 45

46 Pro e Contro la normalizzazione Vantaggi Elimina le anomalie di inserimento,... Riduce la ridondanza dei dati Elimina i problemi di inconsistenza dei dati Limita lo spazio occupato dai dati Svantaggi Necessità di costruire interrogazioni più complicate Maggior carico di lavoro per il DBMS Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 9 Ragioni per non normalizzare Cliente ( Codice, Nome, Via, Città, Provincia, CAP ) CAP ( Città, Provincia ) Tabelle come Cliente, in genere, non vengono normalizzate perché il CAP non cambia mai (o quasi... ) In genere è fortemente consigliata la normalizzazione ad eccezione di quelle situazioni nelle quali i dati cambiano raramente ( per maggior semplicità applicativa ) I database di sola lettura non sono normalizzati anzi, di norma, sono denormalizzati Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 92 46

47 Riprogettazione di un database Per esaminare le diverse tabelle: contare le righe e esaminare la natura delle colonne di ogni tabella TABLESAMPLE, TOP n, LIMIT n,... Esaminare i dati ed intervistare gli utenti per accertarsi della presenza di: Dipendenze multivalore, Multicolonna Dipendenze funzionali Chiavi e chiavi esterne Controllare la validità dell integrità referenziale e i vincoli sui dati: Valori non nulli Valori duplicati... Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 93 Esercizi Creare con Access un database di nome Test. Creare le tabelle Prodotti, Ordini, OrdiniProdotti e Compratori, vedi diapositive 40 e 4, e popolarle con gli stessi dati. Normalizzare le tabelle creando le nuove tabelle con opportuni comandi SELECT, senza eliminare le tabelle originarie. Creare opportune viste logiche per accedere alle nuove tabelle come se fossero le tabelle originarie. Modificare la tabella Prodotti inserendo alcune righe per avere: righe con descrizioni duplicate, prodotti senza descrizione, compratori che operano in più di un reparto. Inserire in Ordini una riga che faccia riferimento a un prodotto inesistente. Controllare tutte le situazioni anomale e controllare l esistenza della dipendenza funzionale: IDProdotto IDOrdine Prezzo Elaborazione automatica dei dati - Enrico Cavalli - Università di Bergamo 94 47

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

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati Basi di dati Il Modello Relazionale dei Dati Proposto da E. Codd nel 1970 per favorire l indipendenza dei dati Disponibile come modello logico in DBMS reali nel 1981 (non è facile realizzare l indipendenza

Dettagli

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

Normalizzazione. Normalizzazione. Normalizzazione e modello ER. Esempio. Normalizzazione Normalizzazione Normalizzazione Introduzione Forma normale di Boyce Codd Decomposizione in forma normale Normalizzazione Introduzione La normalizzazione è un procedimento che, a partire da uno schema relazionale

Dettagli

Vincoli di integrità

Vincoli di integrità Vincoli di integrità Non tutte le istanze di basi di dati sintatticamente corrette rappresentano informazioni plausibili per l applicazione di interesse Studenti Matricola Nome Nascita 276545 Rossi 23-04-72?

Dettagli

Informatica (Basi di Dati)

Informatica (Basi di Dati) Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Modello Entità-Relazione Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof.

Dettagli

LA NORMALIZZAZIONE. Introduzione

LA NORMALIZZAZIONE. Introduzione LA NORMALIZZAZIONE Introduzione La normalizzazione e' una tecnica di progettazione dei database, mediante la quale si elimina la rindondanza dei dati al fine di evitare anomalie nella loro consistenza

Dettagli

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

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi Modello Relazionale Modello Relazionale Proposto agli inizi degli anni 70 da Codd Finalizzato alla realizzazione dell indipendenza dei dati Unisce concetti derivati dalla teoria degli insiemi (relazioni)

Dettagli

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

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014 Database Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014 Cos'è un database? È una struttura di dati composta da tabelle a loro volta composte da campi. Caratteristiche

Dettagli

MODELLO RELAZIONALE. Introduzione

MODELLO RELAZIONALE. Introduzione MODELLO RELAZIONALE Introduzione E' stato proposto agli inizi degli anni 70 da Codd finalizzato alla realizzazione dell indipendenza dei dati, unisce concetti derivati dalla teoria degli insiemi (relazioni)

Dettagli

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

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota Attributi e domini Assumiamo un universo infinito numerabile U = {A 0, A 1, A 2...} di attributi. Denotiamo gli attributi con A, B, C, B 1, C 1... e gli insiemi di attributi con X, Y, Z, X 1,... per brevità

Dettagli

Progettazione di Basi di Dati

Progettazione di Basi di Dati Progettazione di Basi di Dati Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan Entità-Relazione Progettazione Logica 2 E il modo attraverso il quale i dati sono rappresentati : fa riferimento al modello

Dettagli

BASI DI DATI - : I modelli di database

BASI DI DATI - : I modelli di database BASI DI DATI - : I modelli di database DAL 1960 ci si e' orientati verso 3 direzioni: 1 MODELLO GERARCHICO Se i dati si presentano naturalmente in una struttura ad albero (ES. File System) Limiti: rigidità

Dettagli

Elena Baralis 2013 Politecnico di Torino 1

Elena Baralis 2013 Politecnico di Torino 1 Modello relazionale Docente M2170 Fondamenti di informatica Verdi M4880 Sistemi di elaborazione Bianchi F0410 Basi di dati Neri Docenti Nome Dipartimento Telefono Verdi Informatica 123456 Bianchi Elettronica

Dettagli

Cardinalità e identificatori. Informatica. Generalizzazioni. Generalizzazioni. Generalizzazioni. Generalizzazioni

Cardinalità e identificatori. Informatica. Generalizzazioni. Generalizzazioni. Generalizzazioni. Generalizzazioni e identificatori Codice (0,1) (1,1) Dirige Informatica Lezione 8 Laurea magistrale in Scienze della mente Laurea magistrale in Psicologia dello sviluppo e dell'educazione Anno accademico: 2012 2013 1 Cognome

Dettagli

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione

SISTEMI INFORMATIVI AVANZATI -2010/2011 1. Introduzione 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

Dettagli

Organizzazione degli archivi

Organizzazione degli archivi COSA E UN DATA-BASE (DB)? è l insieme di dati relativo ad un sistema informativo COSA CARATTERIZZA UN DB? la struttura dei dati le relazioni fra i dati I REQUISITI DI UN DB SONO: la ridondanza minima i

Dettagli

Database. Si ringrazia Marco Bertini per le slides

Database. Si ringrazia Marco Bertini per le slides Database Si ringrazia Marco Bertini per le slides Obiettivo Concetti base dati e informazioni cos è un database terminologia Modelli organizzativi flat file database relazionali Principi e linee guida

Dettagli

BASE DI DATI: sicurezza. Informatica febbraio 2015 5ASA

BASE DI DATI: sicurezza. Informatica febbraio 2015 5ASA BASE DI DATI: sicurezza Informatica febbraio 2015 5ASA Argomenti Privatezza o riservatezza Vincoli di integrità logica della base di dati intrarelazionali interrelazionali Principio generale sulla sicurezza

Dettagli

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

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS Basi di Basi di (Sistemi Informativi) Sono una delle applicazioni informatiche che hanno avuto il maggiore utilizzo in uffici, aziende, servizi (e oggi anche sul web) Avete già interagito (magari inconsapevolmente)

Dettagli

Informatica. Il modello relazionale: Relazioni e tabelle. Relazioni con attributi

Informatica. Il modello relazionale: Relazioni e tabelle. Relazioni con attributi Informatica Basi di dati parte 3 Basi di dati relazionali: relazioni, tabelle, chiavi, vincoli Lezione 9 Laurea magistrale in Scienze della mente Laurea magistrale in Psicologia dello sviluppo e dell'educazione

Dettagli

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

Basi di Dati e Sistemi Informativi. Progettazione logica: Il modello relazionale Basi di Dati e Sistemi Informativi Progettazione logica: Il modello relazionale Corso di Laurea in Ing. Informatica Ing. Gestionale Magistrale Introduzione Basato sul lavoro di Codd (~1970) E attualmente

Dettagli

Modulo 2 Data Base 2

Modulo 2 Data Base 2 Modulo 2 Data Base 2 Università degli Studi di Salerno Corso di Laurea in Scienze della comunicazione Informatica generale Docente: Angela Peduto A.A. 2004/2005 Relazioni: riepilogo Relazione : concetto

Dettagli

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

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007 Basi di dati Concetti introduttivi Ultima modifica: 26/02/2007 ESEMPIO INSEGNAMENTI Fisica, Analisi, Informatica Aule Docenti Entità Relazioni Interrogazioni St udent i Database 2 Tabella (I) STUDENTE

Dettagli

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

Decomposizione senza perdita. Decomposizione senza perdita. Conservazione delle dipendenze. Conservazione delle dipendenze Decomposizione senza perdita Data una relazione r su X, se X 1 e X 2 sono due sottoinsiemi di X la cui unione è X stesso, allora il join delle due relazioni ottenute per proiezione di r su X 1 e X 2 è

Dettagli

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

DIP. FUNZIONALI E FORME NORMALI esempi cfr. Albano Ghelli Orsini Basi di dati relazionali e a oggetti Zanichelli, 1997, cap.6 RIDONDANZE E ANOMALIE DIP. FUNZIONALI E FORME NORMALI esempi cfr. Albano Ghelli Orsini Basi di dati relazionali e a oggetti Zanichelli, 1997, cap.6 Ridondanze e anomalie Dipendenze funzionali e implicazione logica Regole di

Dettagli

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

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli gerarchico e reticolare sono più vicini alle strutture

Dettagli

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

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica. Progettazione logica Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica. La progettazione logica è basata su un particolare modello logico dei

Dettagli

Modello relazionale. ing. Alfredo Cozzi 1

Modello relazionale. ing. Alfredo Cozzi 1 Modello relazionale E fondato sul concetto matematico di relazione tra insiemi di oggetti Una relazione su n insiemi A1, A2,..,An è un sottoinsieme di tutte le n-uple a1,a2,,an che si possono costruire

Dettagli

Il Modello Relazionale

Il Modello Relazionale Il Modello Relazionale 1 Proposto da E. F. Codd nel 1970 per favorire l indipendenza dei dati e reso disponibile come modello logico in DBMS reali nel 1981 Si basa sul concetto matematico di relazione,

Dettagli

Normalizzazione. Relazionali

Normalizzazione. Relazionali Normalizzazione di Schemi Relazionali Normalizzazione Forme Normali Una forma normale è una proprietà di uno schema relazionale che ne garantisce la qualità, cioè l assenza di determinati difetti Una relazione

Dettagli

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

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: Il modello relazionale I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due: 1. forniscono sistemi semplici ed efficienti per rappresentare

Dettagli

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

Lezione V. Aula Multimediale - sabato 29/03/2008 Lezione V Aula Multimediale - sabato 29/03/2008 LAB utilizzo di MS Access Definire gli archivi utilizzando le regole di derivazione e descrivere le caratteristiche di ciascun archivio ASSOCIAZIONE (1:1)

Dettagli

database: modello entityrelationship

database: modello entityrelationship Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2007/8 database: modello entityrelationship Prof.Valle D.ssaFolgieri Lez7 25.10.07 Trattamento dati. Database: modello entity-relationship 1 Fasi

Dettagli

DBMS (Data Base Management System)

DBMS (Data Base Management System) Cos'è un Database I database o banche dati o base dati sono collezioni di dati, tra loro correlati, utilizzati per rappresentare una porzione del mondo reale. Sono strutturati in modo tale da consentire

Dettagli

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

Basi di dati. Concetti Introduttivi ESEMPIO. Fisica, Analisi, Informatica. Entità Relazioni Interrogazioni. Database 2 Basi di dati Concetti Introduttivi ESEMPIO Fisica, Analisi, Informatica Entità Relazioni Interrogazioni Database 2 Tabella (I) STUDENTE Attributi Data di Nascita Indirizzo Matricola Luca Neri 27/10/1980

Dettagli

Le Basi di Dati. Le Basi di Dati

Le Basi di Dati. Le Basi di Dati Le Basi di Dati 20/05/02 Prof. Carlo Blundo 1 Le Basi di Dati Le Base di Dati (database) sono un insieme di tabelle di dati strutturate in maniera da favorire la ricerca di informazioni specializzate per

Dettagli

Il Modello Relazionale

Il Modello Relazionale Il Modello Relazionale Il modello relazionale 1 Il modello relazionale Proposto da E. F. Codd nel 1970 per favorire l indipendenza dei dati e reso disponibile come modello logico in DBMS reali nel 1981

Dettagli

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL Basi di dati Il Linguaggio SQL Data Definition Language (DDL) Data Definition Language: insieme di istruzioni utilizzate per modificare la struttura della base di dati Ne fanno parte le istruzioni di inserimento,

Dettagli

MODELLO E/R. Modellazione dei dati

MODELLO E/R. Modellazione dei dati MODELLO E/R Maria Mirto Modellazione dei dati Modellare i dati significa: costruire una rappresentazione semplificata della realtà osservata, individuandone gli elementi caratterizzanti e i legami intercorrenti

Dettagli

Data Base Relazionali

Data Base Relazionali Data Base Relazionali Modello Relazionale dei dati Basi di Dati Relazionali 1 Progettazione di DB METODOLOGIA DI PROGETTO IN TRE FASI Descrizione formalizzata e completa della realtà di interesse REALTA'

Dettagli

Corso di Informatica (Basi di Dati)

Corso di Informatica (Basi di Dati) Corso di Informatica (Basi di Dati) Lezione 1 (12 dicembre 2008) Introduzione alle Basi di Dati Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati 1, Prof. Carlo Batini,

Dettagli

Modello Relazionale. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto san giovanni

Modello Relazionale. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto san giovanni Modello Relazionale Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto san giovanni Cronologia dei modelli per la rappresentazione dei dati Modello gerarchico (anni 60) Modello reticolare

Dettagli

2.2b: RELAZIONI E BASI DI DATI. Atzeni, cap. 2.1.4

2.2b: RELAZIONI E BASI DI DATI. Atzeni, cap. 2.1.4 2.2b: RELAZIONI E BASI DI DATI Atzeni, cap. 2.1.4 Il modello è basato su valori Una Base di Dati è generalmente costituita da più di una Tabella Le corrispondenze fra dati presenti in tabelle diverse sono

Dettagli

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Ambiente Access La Guida di Access Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?) Guida in linea Guida rapida Assistente di Office indicazioni

Dettagli

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali di basi di dati Corso di Access Modulo L2A (Access) 1.1 Concetti di base 1 Prerequisiti Utilizzo elementare del computer Concetti fondamentali di basi di dati 2 1 Introduzione Un ambiente DBMS è un applicazione che consente

Dettagli

Alessandra Raffaetà. Basi di Dati

Alessandra Raffaetà. Basi di Dati Lezione 2 S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali Alessandra Raffaetà Dipartimento di Informatica Università Ca Foscari Venezia Basi di Dati

Dettagli

Introduzione alla teoria dei database relazionali. Come progettare un database

Introduzione alla teoria dei database relazionali. Come progettare un database Introduzione alla teoria dei database relazionali Come progettare un database La struttura delle relazioni Dopo la prima fase di individuazione concettuale delle entità e degli attributi è necessario passare

Dettagli

Progettazione logica relazionale (1/2)

Progettazione logica relazionale (1/2) Progettazione di basi di dati (1/2) Introduzione Ristrutturazione dello schema ER Eliminazione delle gerarchie Partizionamento di concetti Eliminazione degli attributi multivalore Eliminazione degli attributi

Dettagli

FORME NORMALI E DIPENDENZE

FORME NORMALI E DIPENDENZE Sistemi Informativi: Forme Normali e Dipendenze FORME NORMALI E DIPENDENZE La teoria della normalizzazione e delle dipendenze ha come scopo principale quello di fornire gli strumenti teorici e pratici

Dettagli

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci

Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Corso di Laurea Magistrale in Ingegneria per l Ambiente e il Territorio A.A. 2014-2015 Telerilevamento e GIS Prof. Ing. Giuseppe Mussumeci Strutture di dati: DB e DBMS DATO E INFORMAZIONE Dato: insieme

Dettagli

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome.

Gli attributi di STUDENTE saranno: Matricola (chiave primaria), Cognome, Nome. Prof. Francesco Accarino Raccolta di esercizi modello ER Esercizio 1 Un università vuole raccogliere ed organizzare in un database le informazioni sui propri studenti in relazione ai corsi che essi frequentano

Dettagli

Capitolo 2. Esercizio 2.1. Esercizio 2.2

Capitolo 2. Esercizio 2.1. Esercizio 2.2 Capitolo 2 Esercizio 2.1 Considerare le informazioni per la gestione dei prestiti di una biblioteca personale. Il proprietario presta libri ai suoi amici, che indica semplicemente attraverso i rispettivi

Dettagli

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei Introduzione Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei. ESEMPI DI INSIEMI DI DATI DA ORGANIZZARE ED USARE IN MANIERA EFFICIENTE Introduzione Più utenti con

Dettagli

Il database management system Access

Il database management system Access Il database management system Access Corso di autoistruzione http://www.manualipc.it/manuali/ corso/manuali.php? idcap=00&idman=17&size=12&sid= INTRODUZIONE Il concetto di base di dati, database o archivio

Dettagli

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere; Maschere e Query Le Maschere (1/2) Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere; Le maschere sono simili a moduli cartacei: ad ogni campo corrisponde un etichetta

Dettagli

Capitolo 13. Interrogare una base di dati

Capitolo 13. Interrogare una base di dati Capitolo 13 Interrogare una base di dati Il database fisico La ridondanza è una cosa molto, molto, molto brutta Non si devono mai replicare informazioni scrivendole in più posti diversi nel database Per

Dettagli

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi Vogliamo creare una struttura per permettere di memorizzari i voti della classe in tutte le materie Per fare questo untilizziamo tre tabelle Alunni,materie,voti Alunni Materie Voti Creo un record per ogni

Dettagli

TEORIA sulle BASI DI DATI

TEORIA sulle BASI DI DATI TEORIA sulle BASI DI DATI A cura del Prof. Enea Ferri Cos è un DATA BASE E un insieme di archivi legati tra loro da relazioni. Vengono memorizzati su memorie di massa come un unico insieme, e possono essere

Dettagli

Associazioni. Informatica. Associazioni. Associazioni. Associazioni. Attributi. Possono esistere associazioni diverse che coinvolgono le stesse entità

Associazioni. Informatica. Associazioni. Associazioni. Associazioni. Attributi. Possono esistere associazioni diverse che coinvolgono le stesse entità Informatica Possono esistere associazioni diverse che coinvolgono le stesse entità Lezione 7 Lavora a Laurea magistrale in Scienze della mente Laurea magistrale in Psicologia dello sviluppo e dell'educazione

Dettagli

Basi di dati 9 febbraio 2010 Compito A

Basi di dati 9 febbraio 2010 Compito A Basi di dati 9 febbraio 2010 Compito A Domanda 0 (5%) Leggere e rispettare le seguenti regole: Scrivere nome, cognome, matricola (se nota), corso di studio e lettera del compito (ad esempio, A) sui fogli

Dettagli

Corso di Sistemi di Elaborazione delle Informazioni I Anno 2005/2006. Esercizi entità relazione risolti. a cura di Angela Campagnaro 802749

Corso di Sistemi di Elaborazione delle Informazioni I Anno 2005/2006. Esercizi entità relazione risolti. a cura di Angela Campagnaro 802749 Corso di Sistemi di Elaborazione delle Informazioni I Anno 2005/2006 Esercizi entità relazione risolti a cura di Angela Campagnaro 802749 Indice: Esercizio 1: Un insieme di officine 1.1 Testo esercizio.3

Dettagli

DIPARTIMENTO IMPIEGATO PROGETTO SEDE. (0,1) (1,1) DIREZIONE Cognome. Codice. Telefono (0,1) (1,N) AFFERENZA. Stipendio (0,N) Nome (1,1) Età

DIPARTIMENTO IMPIEGATO PROGETTO SEDE. (0,1) (1,1) DIREZIONE Cognome. Codice. Telefono (0,1) (1,N) AFFERENZA. Stipendio (0,N) Nome (1,1) Età PROGETTAZIONE LOGICA 7í0 Progettazione logica Obiettivo: ëtradurre" lo schema concettuale in uno schema logico che rappresenti gli stessi dati in maniera corretta ed eæciente Input: Output: æ schema concettuale

Dettagli

Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale

Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale Basi di dati L Algebra Relazionale Introduzione all Algebra Relazionale Una volta definito lo schema logico di un database, partendo da un Diagramma E-R, e dopo aver inserito le tabelle nel database, eventualmente

Dettagli

Corso sul linguaggio SQL

Corso sul linguaggio SQL Corso sul linguaggio SQL Modulo L2B (SQL) 2.2 Comandi sulle tabelle 1 Prerequisiti Introduzione ai DB Tabelle, relazioni e attributi Chiave primaria Chiave esterna Vincoli di integrità 2 1 Introduzione

Dettagli

Basi di Dati e Microsoft Access

Basi di Dati e Microsoft Access Basi di Dati e Microsoft Access Lun: 16-18 e Mer: 14-17 Alessandro Padovani padoale@email.it Database: definizione Un database (DB) è una collezione di informazioni organizzata in gruppi, che consentono

Dettagli

ARCHIVI E DATABASE (prof. Ivaldi Giuliano)

ARCHIVI E DATABASE (prof. Ivaldi Giuliano) ARCHIVI E DATABASE (prof. Ivaldi Giuliano) Archivio: è un insieme di registrazioni (o records) ciascuna delle quali è costituita da un insieme prefissato di informazioni elementari dette attributi (o campi).

Dettagli

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report Facoltà di Lingue e Letterature Straniere Le QUERY 2 Che cos è una Query? Una Query rappresenta uno strumento per interrogare un database.

Dettagli

BASI DI DATI DIPENDENZE FUNZIONALI E FORME NORMALI

BASI DI DATI DIPENDENZE FUNZIONALI E FORME NORMALI BASI DI DATI DIPENDENZE FUNZIONALI E FORME NORMALI Prof. Fabio A. Schreiber Dipartimento di Elettronica e Informazione Politecnico di Milano ERRORI DI PROGETTAZIONE INSERIMENTO DI ELEMENTI RIDONDANTI SPRECO

Dettagli

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

Raffinamento dello schema e forme normali. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma Raffinamento dello schema e forme normali 1 Forme Normali Le forme normali consentono di valutare la qualità delle relazione Sono state proposte diverse forme normali che includono, in ordine di generalità:

Dettagli

Data Base. Ing. Maria Grazia Celentano www.mariagraziacelentano.it

Data Base. Ing. Maria Grazia Celentano www.mariagraziacelentano.it Data Base Ing. Maria Grazia Celentano www.mariagraziacelentano.it 1 Introduzione 2 Sistemi informativi e informatici 3 Sistemi informativi e informatici 4 Dati e informazioni 5 Le Basi di Dati 6 Proprietà

Dettagli

Partite string string int int. Perché studiare il Modello Relazionale? Capitolo 2. Relazione: tre accezioni. Basi di dati relazionali: definizioni

Partite string string int int. Perché studiare il Modello Relazionale? Capitolo 2. Relazione: tre accezioni. Basi di dati relazionali: definizioni Perché studiare il Modello Relazionale? Capitolo 2 Il modello relazionale È il modello più largamente usato Produttori: IBM, Informix, Microsoft, Oracle, Sybase, etc. Sistemi proprietari nei modelli più

Dettagli

DB - Modello relazionale dei dati. DB - Modello Relazionale 1

DB - Modello relazionale dei dati. DB - Modello Relazionale 1 DB - Modello relazionale dei dati DB - Modello Relazionale 1 Definizione Un modello dei dati è un insieme di meccanismi di astrazione per definire una base di dati, con associato un insieme predefinito

Dettagli

Operazioni sui database

Operazioni sui database Operazioni sui database Le operazioni nel modello relazionale sono essenzialmente di due tipi: Operazioni di modifica della base di dati (update) Interrogazioni della base di dati per il recupero delle

Dettagli

Informatica (Basi di Dati)

Informatica (Basi di Dati) Corso di Laurea in Biotecnologie Informatica (Basi di Dati) Introduzione alle Basi di Dati Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati Lucidi del Corso di Basi di Dati

Dettagli

Archivi e Basi di Dati

Archivi e Basi di Dati Archivi e Basi di Dati A B C File Programma 1 Programma 2 A B C File modificati Programma 1 DBMS DB Programma 2 Informatica Generale (CdL in E&C), A.A. 2000-2001 55 Problemi nella gestione di archivi separati

Dettagli

Introduzione all Algebra Relazionale

Introduzione all Algebra Relazionale Basi di dati L Algebra Relazionale Introduzione all Algebra Relazionale Una volta definito lo schema logico di un database, partendo da un Diagramma E-R, e dopo aver inserito le tabelle nel database, eventualmente

Dettagli

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

Basi di Dati. Progettazione del Modello ER. K. Donno - Progettazione del Modello ER Basi di Dati Progettazione del Modello ER Dai requisiti allo schema ER Entità, relazioni e attributi non sono fatti assoluti dipendono dal contesto applicativo Nella pratica si fa spesso uso di una strategia

Dettagli

Esercizio data base "Biblioteca"

Esercizio data base Biblioteca Rocco Sergi Esercizio data base "Biblioteca" Database 2: Biblioteca Testo dell esercizio Si vuole realizzare una base dati per la gestione di una biblioteca. La base dati conterrà tutte le informazioni

Dettagli

Definizione di domini

Definizione di domini Definizione di domini Come nei linguaggi ad alto livello (es. C) è possibile definire nuovi domini (tipi di dati) a partire da quelli predefiniti, anche se il costruttore è più limitato. create domain

Dettagli

Progettazione di un Database

Progettazione di un Database Progettazione di un Database Per comprendere il processo di progettazione di un Database deve essere chiaro il modo con cui vengono organizzati e quindi memorizzati i dati in un sistema di gestione di

Dettagli

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione Università degli Studi di Salerno : (1) Interrogazioni semplici INFORMATICA GENERALE Prof. Alberto Postiglione Scienze della Comunicazione

Dettagli

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni

Introduzione Ai Data Bases. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni Introduzione Ai Data Bases Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto San giovanni I Limiti Degli Archivi E Il Loro Superamento Le tecniche di gestione delle basi di dati nascono

Dettagli

Introduzione al corso

Introduzione al corso Introduzione al corso Sistemi Informativi L-B Home Page del corso: http://www-db.deis.unibo.it/courses/sil-b/ Versione elettronica: introduzione.pdf Sistemi Informativi L-B Docente Prof. Paolo Ciaccia

Dettagli

Normalizzazione (Codd, 1972)

Normalizzazione (Codd, 1972) Normalizzazione (Codd, 1972) La normalizzazione non è una tecnica, nè una metodologia di progettazione Le forme normali costituiscono uno dei criteri per ottenere basi di dati relazionali ben progettate

Dettagli

Introduzione ai database relazionali

Introduzione ai database relazionali Introduzione ai database relazionali Tabelle Un database (DB) è costituito da un insieme di file che memorizzano dati opportunamente organizzati Nei database relazionale tale organizzazione è costituita

Dettagli

MODELLO RELAZIONALE. cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE

MODELLO RELAZIONALE. cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE MODELLO RELAZIONALE Definizione di relazione Schema e istanza Chiave Valori nulli Predicati e vincoli di integrità Vincolo di integrità referenziale cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE

Dettagli

Progettazione di Database. Un Esempio

Progettazione di Database. Un Esempio Progettazione di Database Un Esempio Data Base Management System Applicazione 1 Applicazione 2 Applicazione 3 DBMS A B C D E Il Modello Relazionale Una relazione è costituita su un insieme di domini, non

Dettagli

Organizzazione delle informazioni: Database

Organizzazione delle informazioni: Database Organizzazione delle informazioni: Database Laboratorio Informatico di base A.A. 2013/2014 Dipartimento di Scienze Aziendali e Giuridiche Università della Calabria Dott. Pierluigi Muoio (pierluigi.muoio@unical.it)

Dettagli

Esercitazione di Basi di Dati

Esercitazione di Basi di Dati Esercitazione di Basi di Dati Corso di Fondamenti di Informatica 15/22 Aprile 2004 Progettazione di un Database (DB) Marco Pennacchiotti pennacchiotti@info.uniroma2.it Tel. 0672597334 Ing.dell Informazione,

Dettagli

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 5

Data Base. Master Bio Info Reti e Basi di Dati Lezione 5 Data Base Master "Bio Info" Reti e Basi di Dati Lezione 5 Sommario I concetti fondamentali Database e DBMS Tipi di Database Database Relazionale Attributi, Tupla, Vincoli di integrità, Chiavi, Vincolo

Dettagli

DATABASE RELAZIONALI

DATABASE RELAZIONALI 1 di 54 UNIVERSITA DEGLI STUDI DI NAPOLI FEDERICO II DIPARTIMENTO DI DISCIPLINE STORICHE ETTORE LEPORE DATABASE RELAZIONALI Dott. Simone Sammartino Istituto per l Ambiente l Marino Costiero I.A.M.C. C.N.R.

Dettagli

Università degli Studi di Verona. Laboratorio di Basi di Dati

Università degli Studi di Verona. Laboratorio di Basi di Dati Università degli Studi di Verona Laboratorio di Basi di Dati Introduzione ad OOo Base: Creazione Tabelle Gabriele Pozzani: gabriele.pozzani@univr.it Materiale prodotto da: Dott.ssa Barbara Oliboni Database:

Dettagli

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 25 Marzo 03 Nome: Cognome: Matricola: Esercizio 1

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 25 Marzo 03 Nome: Cognome: Matricola: Esercizio 1 Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 25 Marzo 03 Nome: Cognome: Matricola: Esercizio 1 Si considerino le seguenti specifiche relative alla realizzazione della base di dati di un circolo

Dettagli

Unità C1 Modello logico

Unità C1 Modello logico Dare una breve descrizione dei termini introdotti: (A) CONOSCENZA TERMINOLOGICA Tupla Modello gerarchico Modello reticolare Modello relazionale Relazione di relazione di database Istanza Regole di derivazione

Dettagli

Strutturazione logica dei dati: i file

Strutturazione logica dei dati: i file Strutturazione logica dei dati: i file Informazioni più complesse possono essere composte a partire da informazioni elementari Esempio di una banca: supponiamo di voler mantenere all'interno di un computer

Dettagli

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014

Archivi e database. Prof. Michele Batocchi A.S. 2013/2014 Archivi e database Prof. Michele Batocchi A.S. 2013/2014 Introduzione L esigenza di archiviare (conservare documenti, immagini, ricordi, ecc.) è un attività senza tempo che è insita nell animo umano Primi

Dettagli

Secondo Compitino di Basi di Dati

Secondo Compitino di Basi di Dati Secondo Compitino di Basi di Dati 10 Giugno 2004 NOME: COGNOME: MATRICOLA: Esercizio Punti previsti 1 18 2 12 3 3 Totale 33 Punti assegnati Esercizio 1 (Punti 18) Si vuole realizzare un applicazione per

Dettagli

Il modello relazionale dei dati

Il modello relazionale dei dati Il modello relazionale dei dati Master Alma Graduate School Sistemi Informativi Home Page del corso: http://www-db.deis.unibo.it/courses/alma_si1/ Versione elettronica: 04Relazionale.pdf Obiettivi della

Dettagli

Progettazione concettuale

Progettazione concettuale Progettazione concettuale Strategie top-down A partire da uno schema che descrive le specifiche mediante pochi concetti molto astratti, si produce uno schema concettuale mediante raffinamenti successivi

Dettagli