340 likes | 504 Views
Università degli studi di Catania Facoltà di Medicina Tecnici di Radiologia Medica per immagini e Radioterapia Elaborazione dati informatici. Elaborazione dati informatici. Prof Ing Gaetano La Rosa email: info@glrstudio.com. Cardinalità n-n. Esaminiamo la relazione Classe – Docente:
E N D
Università degli studi di Catania Facoltà di Medicina Tecnici di Radiologia Medica per immagini e Radioterapia Elaborazione dati informatici Prof Ing Gaetano La Rosa
Elaborazione dati informatici Prof Ing Gaetano La Rosa email: info@glrstudio.com Prof Ing Gaetano La Rosa
Cardinalità n-n • Esaminiamo la relazione Classe – Docente: • Un docente può insegnare in più classi; • Una classe può avere più docenti • relazione N-N • Esaminiamo la relazione Cliente – Area_Camper • Un cliente può prenotare più aree (in tempi diversi) • Un’area può essere prenotata da più client (in tempi diversi) • Relazione N- N Prof Ing Gaetano La Rosa
Cardinalità n-n (2) prenota N N Cliente Area Entità relazione Entità • La nota “in tempi diversi” rappresenta degli attributi che appartengono più alla relazione che alle due entità, ne consegue che essi vanno legati alla relazione che pertanto diventa una nuova entità Prof Ing Gaetano La Rosa
Cardinalità n-n (3) Data inizio Data fine prenota N N Cliente Area Entità relazione Entità Prof Ing Gaetano La Rosa
Questo modello esprime che un cliente può effettuare più prenotazioni, ma ognuna è effettuata da un unico cliente Analogamente, un’area può essere oggetto di più prenotazioni ma ogni prenotazione si riferisce ad una sola area Cardinalità n-n (4) Data fine Data inizio invia 1 N Cliente Prenotaz. N Entità relazione Relativa 1 Area Prof Ing Gaetano La Rosa
Cardinalità n-n (5) N Sostiene N Studente Esame Entità relazione Entità • Ogni studente sostiene N esami; • Ogni esame è sostenuto da N studenti Prof Ing Gaetano La Rosa
Cardinalità n-n (6) 1 N 1 N Registro esami Esame Studente Nuova entità Entità Entità • Ogni studente sostiene N esami; • Ogni esame specifico del registro è di un solo studente • Ogni esame è presente in N registrazioni • Ogni registrazione fa riferimento ad un unico esame Prof Ing Gaetano La Rosa
Alcune relazioni legano elementi della stessa entità Ad esempio nell’insieme dei dipendenti il dipendente responsabile coordina se stesso Relazioni riflessive o ricorsive relazione Entità coordina Dipendente Prof Ing Gaetano La Rosa
Caso di studio: biblioteca • Si desidera realizzare un database per gestire elettronicamente il prestito dei volumi presenti in una biblioteca • Il sistema dovrà permettere la ricerca dei volumi per titolo, autore e argomento; • Di alcuni testi sono presenti nella biblioteca più copie; • Costruire il modello E/R che illustri l’organizzazione dei dati prevedendo che un utente possa richiedere contemporaneamente più libri ma non più copie dello stesso libro. Prof Ing Gaetano La Rosa
Risoluzione • Entità presenti: lettore, libro • Relazione lettore - libro • un lettore legge più libri • un libro è letto da più lettori • Relazione N-N Prof Ing Gaetano La Rosa
Risoluzione (2) richiesta N N Lettore Libro Entità relazione Entità • Essendo la relazione N-N dobbiamo individuare una nuova entità in modo da ottenere 2 relazioni 1-N Prof Ing Gaetano La Rosa
Questo modello esprime che un lettore può effettuare più richieste, ma ognuna è effettuata da un unico cliente Analogamente, un libro può essere presente in più richieste ma ogni richiesta si riferisce ad un solo libro Risoluzione (3) Data richiesta effettua 1 N Lettore Richiesta N Entità relazione Presente 1 libro Prof Ing Gaetano La Rosa
Risoluzione (3) Indirizzo Cognome data Nome effettua 1 N lettore richiesta ID richiesta N ID lettore Città presente genere Cod libro 1 Titolo Libro Autore Prof Ing Gaetano La Rosa
Risoluzione (4) Indirizzo Cognome data Nome ID lettore Cod libro richiesta lettore ID richiesta ID lettore Città genere Cod libro Titolo Libro Autore Prof Ing Gaetano La Rosa
Normalizzazione • Nella ideazione di un database relazionale è possibile ipotizzare più schemi equivalenti • E’ necessario individuare quelli più efficienti • Codd bisogna analizzare le concatenazioni e le influenze che esistono fra i dati di uno schema • dipendenza funzionale • normalizzazione Prof Ing Gaetano La Rosa
Dipendenza funzionale • Data una Tabella T(a1,a2…an) e denominati X e Y due sottoinsiemi dei suoi attributi, si dice che X determina funzionalmente Y se non possono esistere due t-uple con valori identici in X e valori diversi in Y, ovvero specificati i valori di X risultano univocamente determinati i valori di Y Prof Ing Gaetano La Rosa
Dipendenza funzionale (2) • Poiché i valori degli attributi della chiave primaria determinano univocamente la t-upla entro la tabella ne consegue che gli attributi non facenti parte della chiave dipendono funzionalmente da essa. Prof Ing Gaetano La Rosa
Dipendenza parziale-completa • Dipendenza parziale: un attributo Y dipende funzionalmente da un insieme di attributi di X e anche da un sottoinsieme di X • Dipendenza completa: un attributo Y dipende funzionalmente da un insieme di attributi di X ma non da un sottoinsieme Prof Ing Gaetano La Rosa
Prima forma normale • Una tabella T(a1,a2…an) è in prima forma normale (1NF) se tutti gli attributi sono semplici • Esempio di relazione non in 1NF: Studente(Matricola, nome, cap, comune, esame) L’attributo esame comprende cod materia, nome materia e voto 5656565, marino pippo, 95045, giarre, S1 Sistemi 24 – S2 Informatica 28 5656645, savia michele, 95100, catania, E2 Economia 27– D1 Diritto 25 5657243, zappalà vera, 95024, acireale, S1 Sistemi 30 – D1 Diritto 22 Prof Ing Gaetano La Rosa
Prima forma normale (2) • Per normalizzare in 1NF occorre: • Sostituire ogni attributo strutturato con tanti attributi semplici • Eliminare gli attributi multipli sostituendo ad ogni t-upla multipla tante righe quanti sono i valori multipli Studente(Matricola, nome, comune, cod_mat, nom_mat, voto) 5656565, marino pippo, 95045,giarre, S1, Sistemi, 24, 5656565, marino pippo, 95045,giarre, S2, Informatica, 28 5656645, savia michele, 95100,catania, E2, Economia, 27 5656645, savia michele, 95100,catania, D1, Diritto, 25 5657243, zappalà vera, 95024,acireale, S1, Sistemi, 30 5657243, zappalà vera, 95024, acireale, D1, Diritto, 22 Prof Ing Gaetano La Rosa
Prima forma normale (3) • La tabella ottenuta presenta diversi problemi: • Ridondanza a causa della ripetizione degli attributi non multipli; • In caso di aggiornamento di un attributo non multiplo occorre intervenire su più righe (esempio modifica comune) • La chiave non permette di identificare univocamente la riga della tabella Prof Ing Gaetano La Rosa
Prima forma normale (4) Studente( Matr, nome, cap, comune) Esame( cod_mat, nom_mat, voto, matr) 5656565, marino pippo, 95045,giarre S1, Sistemi, 24, 5656565 S2, Informatica, 28, 565656 5656645, savia michele, 95100,catania E2, Economia, 27, 5656645 D1, Diritto, 25, 5656645 5657243, zappalà vera, 95024,acireale S1, Sistemi, 30, 5657243 D1, Diritto, 22, 5657243 Nella Tabella Esame figura il campo matr: chiave esterna costituita dalla chiave primaria della tabella studente Prof Ing Gaetano La Rosa
Seconda forma normale • Una tabella T(a1,a2…an) è in seconda forma normale (2NF) se è in 1NF e tutti gli attributi non facenti parte della chiave hanno dipendenza funzionale completa da essa. • Nella tabella Esame( cod_mat, nom_mat, voto, matr) nom_mat dipende solo da cod_mat voto dipende da entrambi tabella non in 2NF Prof Ing Gaetano La Rosa
Seconda forma normale • Per ottenere la 2NF dividiamo la tabella esame in due sottotabelle: Esame( cod_mat, voto, matr) Dati_Esame( cod_mat, nom_mat) • S1, 24, 5656565 • S2, 28, 5656565 • E2, 27, 5656645 • D1, 25, 5656645 • S1, 30, 5657243 • D1, 22, 5657243 • S1, Sistemi • S2, Informatica • E2, Economia • D1, Diritto Prof Ing Gaetano La Rosa
Terza forma normale • Una tabella T(a1,a2…an) è in terza forma normale (3NF) se è in 2NF e tutti gli attributi non facenti parte della chiave dipendono esclusivamente da essa. • Nella tabella Studente( Matr, nome, cap, comune) comune dipende solo da cap tabella non in 3NF Prof Ing Gaetano La Rosa
Terza forma normale (2) • Per ottenere la 3NF dividiamo la tabella studente in due sottotabelle: Studente( matr, nome, cap) città( cap, comune) • 5656565, marino pippo, 95045 • 5656645, savia michele, 95100 • 5657243, zappalà vera, 95024 • 95045,giarre • 95100,catania • 95024,acireale Prof Ing Gaetano La Rosa
Esercizio • Una società di servizi organizzata in agenzie distribuite sul territorio nazionale fornisce manodopera specializzata. • Si desidera realizzare il database delle risorse umane considerando che : • Più agenzie fanno riferimento ad un unico responsabile di area; • Ogni aspirante può presentare richiesta a più agenzie; • Ogni aspirante può presentare richiesta nella stessa agenzia per ruoli diversi; Prof Ing Gaetano La Rosa
Esercizio (2) • I dati di partenza sono organizzati in un’unica tabella così composta: Lavoro(cod_ag, dati_ag, resp_area, dati_resp, asp1, asp2, asp3…aspn) • Dove asp è un campo composto costituito dalle seguenti voci cod, nome, ind, ruolo1, ruolo2, … ruolon) Razionalizzare il DB fino alla 3NF Prof Ing Gaetano La Rosa
Risoluzione • Per 1NF occorre eliminare le ripetizioni • Per far ciò si creano due tabelle: la prima contenente solo i dati semplici, l’altra con i dati composti e la chiave primaria della prima tabella: Agenzia(cod_ag, dati_ag, resp_area, dati_resp) Aspirante(cod_asp,nome, ind, (ruolo1,ruolo2…ruolon), cod_ag) Prof Ing Gaetano La Rosa
Risoluzione (2) • La seconda tabella contiene ancora campi composti pertanto applichiamo nuovamente la scomposizione: Agenzia(cod_ag, dati_ag, resp_area, dati_resp) Aspirante(cod_asp,nome, ind, cod_ag) Mansione(ruolo, cod_asp) Prof Ing Gaetano La Rosa
Risoluzione (3) • Per la 2NF è necessario che tutti gli attributi non facenti parte della chiave abbiano dipendenza funzionale completa da essa. • la tabella Aspirante(cod_asp,nome, ind, cod_ag) viene scomposta in : Aspirante(cod_asp,nome, ind) Risorse_ag(cod_ag,cod_asp) Prof Ing Gaetano La Rosa
Risoluzione (4) • Per la 3NF è necessario eliminare le dipendenze fra i campi non appartenenti alla chiave • la tabella Agenzia(cod_ag, dati_ag, resp_area, dati_resp) viene scomposta in : Agenzia(cod_ag, dati_ag, resp_area) Dirigente(resp_area,dati_resp) Prof Ing Gaetano La Rosa
Risoluzione (5) • Modello complessivo in 3NF Agenzia(cod_ag, dati_ag, resp_area) Dirigente(resp_area,dati_resp) Aspirante(cod_asp,nome, ind) Risorse_ag(cod_ag,cod_asp) Mansione(ruolo, cod_asp) Prof Ing Gaetano La Rosa