Basi di Dati 1 Esercitazione 5 08/01/2013 Matteo Picozzi http://home.dei.polimi.it/picozzi {picozzi@elet.polimi.it}
proprietà logiche prevalenti su efficienza tenere sulla stessa entità informazioni che verranno frequentemente consultate assieme tenere su entità separate informazioni destinate ad essere consultate separatamente limitare l incidenza di valori NULL per attributi opzionali N.B. Questa slide non ha la pretesa di essere esaustiva, vuole solo richiamare i concetti fondamentali che devono essere assimilati. Si rimanda alle slide di lezione per esempi e maggiore completezza
1. Eliminazioni delle gerarchie ISA 2. Selezione delle chiavi primarie 3. Eliminazione delle identificazioni esterne 4. Normalizzazione degli attributi composti 5. Normalizzazione degli attributi ripetuti (o multipli) 6. Traduzione di entità e associazioni in schemi di relazioni 7. Verifica di normalizzazione N.B. Questa slide non ha la pretesa di essere esaustiva, vuole solo richiamare i concetti fondamentali che devono essere assimilati. Si rimanda alle slide di lezione per esempi e maggiore completezza
1. Eliminazioni delle gerarchie ISA a. Mantenimento delle entità con associazioni b. Collasso verso l alto c. Collasso verso il basso (solo con copertura totale ed esclusiva) N.B. Questa slide non ha la pretesa di essere esaustiva, vuole solo richiamare i concetti fondamentali che devono essere assimilati. Si rimanda alle slide di lezione per esempi e maggiore completezza
2. Selezione delle chiavi primarie a. Identificatore usato più di frequente per accedere all entità b. Preferibili chiavi semplici rispetto a chiavi composte c. Preferibili chiavi interne a chiavi esterne N.B. Questa slide non ha la pretesa di essere esaustiva, vuole solo richiamare i concetti fondamentali che devono essere assimilati. Si rimanda alle slide di lezione per esempi e maggiore completezza
3. Eliminazione delle identificazioni esterne N.B. Questa slide non ha la pretesa di essere esaustiva, vuole solo richiamare i concetti fondamentali che devono essere assimilati. Si rimanda alle slide di lezione per esempi e maggiore completezza
4. Normalizzazione degli attributi composti a. Attributi dell attributo composto come attributi semplici b. Considerare l attributo come semplice N.B. Questa slide non ha la pretesa di essere esaustiva, vuole solo richiamare i concetti fondamentali che devono essere assimilati. Si rimanda alle slide di lezione per esempi e maggiore completezza
5. Normalizzazione degli attributi ripetuti (o multipli) a. Si crea una nuova entità che contiene l attributo b. La nuova entità è collegata a quella originaria c. Un valore può comparire una volta o più di una volta nella ripetizione N.B. Questa slide non ha la pretesa di essere esaustiva, vuole solo richiamare i concetti fondamentali che devono essere assimilati. Si rimanda alle slide di lezione per esempi e maggiore completezza
6. Traduzione di entità e associazioni (relazioni E-R) in schemi di relazioni (tabelle) a. Entità b. Associazioni (relazioni E-R) n:m traduzione standard 1:n l associazione (relazione E-R) e la chiave dell altra entità diventano attributi dell entità con cardinalità 1:1 si traduce con una sola tabella che comprende tutti gli attributi delle entità ed associazioni (relazioni E- R) coinvolte N.B. Questa slide non ha la pretesa di essere esaustiva, vuole solo richiamare i concetti fondamentali che devono essere assimilati. Si rimanda alle slide di lezione per esempi e maggiore completezza
7. Verifica di normalizzazione Forma Normale 1NF - I domini degli attributi devono comprendere solamente valori atomici (semplici ed indivisibili) - Ogni valore di un attributo deve essere essere singolo Forma Normale 2NF - Gli attributi che non appartengono alla chiave devono dipendere completamente dalla chiave - Se la chiave è formata da più attributi, non ci devono essere altri attributi che non dipendono dalla chiave intera Forma Normale 3NF - Ogni attributo non appartenente alla chiave deve dipendere funzionalmente da ogni chiave e non deve dipendere transitivamente da nessuna chiave Forma Normale di Boyce-Codd (BCNF) N.B. Questa slide non ha la pretesa di essere esaustiva, vuole solo richiamare i concetti fondamentali che devono essere assimilati. Si rimanda alle slide di lezione per esempi e maggiore completezza
Si progetti la base di dati per una compagnia aerea. Elemento principale dell attività della compagnia aerea sono i voli di linea. Ogni volo è caratterizzato da un numero, dall ora di partenza e di arrivo, Infine dalla durata. Si ha anche un elenco di tutti gli aeroporti serviti dalla compagnia, caratterizzati da un, dal dell aeroporto, dalla città e dalla nazione; in particolare, per ogni volo, si vuole sapere l aeroporto di partenza e quello di arrivo. Per ogni volo si devono conoscere i viaggi previsti o da effettuare. Ogni viaggio è identificato dalla data e da un attributo che indica se il volo è previsto o effettuato, pertanto ad ogni volo vengono associati tanti viaggi identificati dalla data. I viaggi sono effettuati con degli aeromobili, identificati dal numero di matricola e caratterizzati dal modello, dalla marca e dall anno di acquisto. Ovviamente, ogni viaggio viene effettuato con uno e un solo aeromobile. Per effettuare i viaggi serve anche il personale viaggiante. Il personale viaggiante è identificato dal numero di matricola ed è caratterizzato da cog, e data di nascita. Il personale viaggiante viene poi suddiviso in piloti ed assistenti (es, le hostess); per i piloti, si vuole conoscere il grado. Per ogni viaggio occorre conoscere il comandante, il vicepilota e gli assistenti del viaggio (almeno uno).
VOLO AEROPORTO VIAGGIO AEROMOBILE PERSONALE PILOTA ASSISTENTE partenza arrivo effettuati fa comandante vicepilota (t,e) assistente numero orapartenza oraarrivo durata città nazione matricola modello marca annoacquisto data stato matricola cog datanascita grado
VOLO AEROPORTO VIAGGIO AEROMOBILE PERSONALE PILOTA ASSISTENTE partenza arrivo effettuati fa comandante vicepilota (t,e) assistente numero orapartenza oraarrivo durata città nazione matricola modello marca annoacquisto data stato matricola cog datanascita grado Attributo ridondante
comandante vicepilota VOLO fa numero orapartenza oraarrivo VIAGGIO PERSONALE (t,e) partenza data stato arrivo effettuati matricola cog datanascita AEROPORTO AEROMOBILE assistente città nazione matricola modello marca annoacquisto PILOTA grado ASSISTENTE
Si progetti la base di dati per un servizio di radio-taxi. Il centralino del radio-taxi riceve le chiamate di richiesta di un taxi; al centralino lavorano le centraliniste, caratterizzate da un, cog,, data di nascita. Le chiamate vengono tutte registrate e sono caratterizzate da un numero di chiamata, la data e l ora della chiamata, il luogo di partenza e il luogo di destinazione (le centraliniste non accettano chiamate se non viene indicato il luogo di destinazione). Per ogni chiamata si vuole anche sapere quale è stata la centralinista che l ha ricevuta. Le chiamate sono poi suddivise in chiamate urgenti e chiamate per appuntamento; per queste ultime si vuole conoscere anche data e ora dell appuntamento richiesto dal cliente. I taxi sono caratterizzati da un, il e il cog del proprietario (che fa anche da conducente); i taxi si dividono in disponibili (che possono quindi servire le chiamate) e indisponibili, e di questi ultimi si vuole sapere fino a che data e ora sono indisponibili. Le chiamate vengono servite dai taxi; si vuole sapere in un certo momento chi sta servendo una certa chiamata (una chiamata può essere servita al più da un taxi e un taxi può servire al più una chiamata), con l indicazione dell ora presunta alla quale il taxi terminerà di servire la chiamata; in più, si vuole tenere storia di tutte le volte che un taxi ha servito una chiamata con l indicazione della data e ora d inizio e data e ora di fine servizio; da ultimo, i taxi disponibili vengono riservati per servire le chiamate ad appuntamento (per ogni chiamata c è al più un taxi riservato).
CHIAMATA CHIAMATA URGENTE CHIAMATA APPUNTAMENTO (t,e) CENTRALINISTA TAXI TAXI DISPONIBILE TAXI NON DISPONIBILE (t,e) numero data ora luogopartenza luogodestinazione dataappuntamento oraappuntamento matricola cog datanascita risposta datadisonibilità oradisponibilità riservato (0,1) storico servizio servizio corrente (0,1) (0,1) cog proprietario presuntaorafine datainizio orainizio orafine datafine
CHIAMATA CHIAMATA URGENTE CHIAMATA APPUNTAMENTO (t,e) CENTRALINISTA TAXI TAXI DISPONIBILE TAXI NON DISPONIBILE (t,e) numero data ora luogopartenza luogodestinazione dataappuntamento oraappuntamento matricola cog datanascita risposta datadisonibilità oradisponibilità riservato (0,1) storico servizio servizio corrente (0,1) (0,1) Proprietario cogproprietario presuntaorafine datainizio orainizio orafine datafine
Progettazione di una base di dati (15 PUNTI) Progettare la base di dati relativa alla situazione descritta nel seguito. Svolgere il progetto concettuale usando il modello ER, e il progetto logico con il modello relazionale. Specificare le chiavi e gli eventuali vincoli d integrità. L università di Milano vuole tenere gestire un database per la memorizzazione di tutti i progetti europei in cui è coinvolta. Ogni progetto è caratterizzato da un e un periodo di svolgimento per il quale si memorizza una data di inizio e una data di fine. Ogni progetto è suddiviso in fasi identificate da un numero progressivo unico nell ambito di ciascun progetto. Per ogni fase si memorizza il periodo in cui si svolge (data inizio e data fine). Per ogni fase di un progetto si redigono un certo numero di rapporti tecnici. Per ogni rapporto tecnico il sistema memorizza, le unità coinvolte, distinguendo l unità responsabile dalle altre unità che collaborano nella redazione, il titolo, il numero di pagine, lo stato di ciascun contributo rilasciato da ciascuna unità (versione provvisoria/definitiva). Ogni rapporto è univocamente identificato dalla fase in cui si svolge e dall unità responsabile. Ogni unità può essere responsabile di un solo rapporto in ciascuna fase. Per ogni progetto si vuole conoscere il finanziamento richiesto da ogni unità che vi partecipa. Le unità coinvolte possono essere sia università che aziende e per ogni unità si memorizza il e la città. Nel caso l unità sia una azienda si memorizza anche il capitale sociale e il numero di dipendenti. Infine il sistema memorizza le persone che lavorano in ciascuna unità delle quali si conoscono il fiscale, il cog, il, la data di nascita, la nazionalità e il ruolo. Il sistema è in grado di ricostruire tutti i progetti in cui una persona ha partecipato con i rispettivi periodi (data inizio e data fine).
PERSONA PROGETTO UNITÀ AZIENDA UNIVERSITÀ (t,e) cf cog datanascita nazionalità datainizio datafine partecipazione FASE RAPPORTO TECNICO ruolo responsabile collaboratore costituita redazione risorsa partecipazione finanziamento numero datainizio datafine titolo stato numeropagine città numerodipendenti capitalesociale
Progettazione di una base di dati (15 PUNTI) Progettare la base di dati relativa alla situazione descritta nel seguito. Svolgere il progetto concettuale usando il modello ER, e il progetto logico con il modello relazionale. Specificare le chiavi e gli eventuali vincoli d integrità. Si vuole progettare un sistema informativo per una società che realizza applicazioni multimediali. Ogni applicazione è caratterizzata da un titolo, una data d inizio della realizzazione, una data di rilascio, un responsabile di progetto, un costo complessivo di realizzazione. La base di dati memorizza il contenuto e la struttura di ogni applicazione in termini di: documenti, fotografie con didascalia e spezzoni di filmati. I documenti sono caratterizzati da un titolo, un testo, una data di realizzazione e una dimensione. Da un documento è possibile raggiungere altri documenti ad esso collegati. Ogni fotografia fa parte di uno e un solo documento e ha un formato e una didascalia descrittiva. Per ogni filmato si descrive il soggetto, la durata, il tipo (bianco, nero o a colori) e il formato. I filmati sono raggiungibili a partire da link presenti in un documento. Diversi documenti possono essere collegati allo stesso filmato. Tutti gli elementi di una applicazione sono identificati da un numerico univoco in tutta la base di dati. Di ogni applicazione multimediale rilasciata vengono utilizzate più copie su CDROM. I CDROM sono identificati da un numero di chiave stampato all esterno del CDROM. In taluni casi ne viene resa disponibile una copia su sito Web (di cui si conosce l indirizzo). Ad ogni applicazione corrisponde un unico sito Web. Si vogliono memorizzare le informazioni sui clienti; al momento dell acquisto il cliente sceglie dalla lista delle applicazioni rilasciate quella che gli interessa e perfeziona l acquisto indicando tutti i propri dati anagrafici: fiscale, cog,, indirizzo, numero di telefono, indirizzo di posta elettronica e data in cui è avvenuto l acquisto.
CLIENTE CD-ROM APPLICAZIONE SITO_WEB DOCUMENTO FOTOGRAFIA FILMATO acquisto acquisto rilascio rilascio composizione contiene link data data (0,1) (0,1) cf cog indirizzo telefono email titolo datainizio datarilascio responsabile costo soggetto durata tipo formato formato didascalia titolo testo datarealizzazione dimensione