MODELLO ENTITÀ - RELAZIONE ENTITÀ E ATTRIBUTI DOMINI RELAZIONI GENERALIZZAZIONI IDENTIFICATORI ENTITA’ DEBOLI VINCOLI DI CARDINALITA’ MODELLO ENTITA’ - RELAZIONE Caratteristiche Modello ad alto livello di astrazione, per la rappresentazione concettuale dei dati Proposto da P.P. Chen, anni ‘76 Intuitivo, facile da comprendere, molto diffuso ed utilizzato per la progettazione di basi di dati Usato per la progettazione concettuale dei dati, produzione di schemi Entità-Relazione Usato come linguaggio di comunicazione tra il progettista informatico e l’utente del sistema Fornisce una serie di costrutti e vincoli atti a descrivere la realtà di interesse in modo semplice e naturale, con astrazione dalla particolare organizzazione logica e fisica dei dati richiesta dal DBMS MODELLO ENTITA’ - RELAZIONE Costrutti e loro rappresentazione grafica Entità Relazione Attributo Attributo composto Cardinalità relazione Cardinalità attributo (n,m) (n,m) (n,m) Identificatore interno Identificatore esterno ( P,E ) Generalizzazione MODELLO ENTITA’ - RELAZIONE Costrutto Entità Entità come istanza ( Entity ) rappresenta un oggetto della realtà che, ai fini dell’applicazione di interesse, • ha una propria identità : è distinguibile da altri oggetti indipendentemente dai valori dei propri attributi • ha una esistenza fisica, es: PERSONA, AULA oppure • ha una esistenza concettuale, es: ESAME, CORSO Entità come tipo ( Entity Type ) esprime il l’idea astratta dell’oggetto che si vuol rappresentare e che viene descritto dal Nome e dagli Attributi , aspetto intensionale della rappresentazione Entità come classe ( Entity Set ) insieme delle entità, istanze, dello stesso tipo, aspetto estensionale della rappresentazione MODELLO ENTITA’ - RELAZIONE Costrutti Attributo e Dominio Attributi descrivono proprietà elementari di Entità e Relazioni di interesse ai fini dell’applicazione es: Nome, Età, Indirizzo di STUDENTE Domini ogni attributo associa a ciascuna istanza di entità, o di relazione, un valore appartenente ad un insieme predefinito di valori ammissibili, detto dominio dell’attributo es: l’insieme delle stringhe di 15 caratteri per l’attributo Nome dell’entità STUDENTE es: gli interi compresi tra 18 e 65 per l’attributo Età dell’entità STUDENTE La gran parte dei dati memorizzati in una base di dati è costituita dai valori degli attributi delle entità in essa rappresentate MODELLO ENTITA’ - RELAZIONE Tipologia degli Attributi Semplice - Composto Scalare - Multivalore Derivato - Memorizzato Semplice non scomponibile in componenti più elementari Nome, Età di STUDENTE Composto costituito da più componenti ciascuna rappresentabile con un attributo semplice avente un significato proprio ed indipendente Data formata da Giorno, Mese, Anno Indirizzo formato da Numero, Via, Città Multivalore associa ad ogni istanza di una entità un insieme di valori NumTel di PERSONA con più numeri di telefono { tel-casa, tel-ufficio, . . . } Autore di LIBRO con più autori { Elmasri, Navathe } MODELLO ENTITA’ - RELAZIONE Tipologia e Cardinalità degli Attributi Memorizzato attributo i cui valori sono presenti, effettivamente memorizzati, nella base di dati Derivato attributo i cui valori, non presenti nella base di dati, sono calcolati a partire da valori di attributi memorizzati Età derivato da Data-Nascita Numero-Studenti di un CORSO derivato dalla relazione tra STUDENTE e CORSO Cardinalità degli attributi specifica il numero minimo e massimo di valori dell’attributo associati a ciascuna istanza di entità STUDENTE Nome (1,1) Esami (0,23) Patente (0,1) MODELLO ENTITA’ - RELAZIONE Valori Nulli Valore Nullo è un particolare valore polimorfo (appartiene a più Tipi ) che indica assenza di informazione Può significare che all’attributo non è possibile assegnare un valore Cognome da nubile di IMPIEGATO maschio che, per il momento, non si conosce il valore da assegnare all’attributo Matricola di STUDENTE trasferito che non si sa se è possibile o meno applicare un valore : non si sa se il valore esiste o, in caso affermativo, non lo si conosce MODELLO ENTITA’ - RELAZIONE Valori Nulli Il comitato ANSI ha individuato e fissato ben 14 diversi significati di valore NULLO 1. Non Applicabile 2. Applicabile, al momento Ignoto 3. Esistente, ma Riservato 4. Esistente, Non Disponibile . . . . . . . . . . . . . 8. Disponibile, in Aggiornamento 9. Disponibile, di Validità Incerta 10. Disponibile, Non Valido . . . . . . . . . . . . . 14. Derivato da Valori Nulli MODELLO ENTITA’ - RELAZIONE Costrutto Relazione Relazione definisce una corrispondenza tra le istanze di due o più entità rappresenta un legame, significativo per l’applicazione, tra due o più entità modella fatti significativi della realtà che mettono in relazione le istanze di due o più entità STUDENTE ESAME CORSO DOCENTE TIENE CORSO PERSONA RISIEDE CITTA' MODELLO ENTITA’ - RELAZIONE Definizione formale di Relazione Definizione una relazione R è un sottoinsieme del prodotto cartesiano delle entità, insiemi Ei , partecipanti alla relazione: R E1 E 2 ... E n Istanza una istanza della relazione R è una ennupla ordinata di istanze ei appartenenti alle Entità (insiemi) Ei coinvolte nella relazione e1 , ..., e n | e1 E1 e2 E 2 , ..., e n E n Dalla definizione di relazione del modello E-R consegue che una relazione non ammette ennuple ripetute Ad esempio, la relazione ESAME non è in grado di descrivere il fatto che un certo studente ha ripetuto più volte lo stesso esame STUDENTE ESAME CORSO MODELLO ENTITA’ - RELAZIONE Costrutto Relazione STUDENTE SEGUE CORSO Livello intesionale della relazione SEGUE : descrizione del legame logico esistente tra le entità STUDENTE e CORSO ( s1,c1) s1 ( s1,c3) c1 s2 ( s2,c1) c2 s3 ( s3,c2) c3 ( s2,c2) Livello estensionale della relazione SEGUE : insieme delle istanze della relazione: coppie ordinate formate da uno specifico STUDENTE e uno specifico CORSO MODELLO ENTITA’ - RELAZIONE Grado di una Relazione Grado il grado di una relazione è determinato dal numero di entita partecipanti alla relazione STUDIA CITTA' STUDENTE RISIEDE due relazioni binarie tra le entità STUDENTE e CITTA’ STUDENTE ESAME CORSO DOCENTE una relazione ternaria tra STUDENTE, DOCENTE e CORSO MODELLO ENTITA’ - RELAZIONE Relazioni ricorsive Relazione ricorsiva una relazione si dice ricorsiva se sussiste tra una entità e se stessa: se associa coppie di istanze appartenenti alla stessa entità AMICIZIA PERSONA ricorsiva simmetrica PARENTELA Padre PERSONA Figlio ricorsiva asimmetrica in questo caso è necessario indicare il ruolo svolto dall’entità nella relazione MODELLO ENTITA’ - RELAZIONE Identificatore di Entità Identificatore di una entità specifica l’attributo(i) e/o le entità che permettono di identificare in maniera univoca ciascuna singola istanza dell’entità Identificatore interno se è costituito da uno o più attributi della entità stessa; per l’identificazione delle istanze non sono necessari attributi e/o entità esterne DOCENTE Nome Cognome DataNascita Indizzo Nome CITTA' Sindaco NumAbitanti MODELLO ENTITA’ - RELAZIONE Identificatore esterno di Entità Identificatore esterno (entità debole) quando gli attributi di una entità, detta entità debole, non sono sufficienti ad identificare le sue istanze; per l’identificazione delle istanze è necessario ricorrere ad una o più altre entità, dette entità forti Nome Numero ORDINE Data Tot-Importo EDIFICIO PARTE PARTE Nome Articolo DETTAGLIO Via NumCivico Descrizione Quantità AULA NumPosti Attrezzata la relazione tra entità debole ed entità forte e sempre una relazione binaria, con cardinalità (1,1) dal lato dell’entità debole una identificazione esterna può coinvolgere entità a loro volta identificache esternamente, purchè non si formino dei cicli di identificazione MODELLO ENTITA’ - RELAZIONE Esempio di entità debole Una operazione bancaria di versamento/prelievo su/da un conto corrente NON può avere una esistenza autonoma : l’operazione deve essere rifarita al conto corrente su cui veine effettuata Nome CLIENTE Indirizzo Cod-Fiscale (1,N) FIRMA Data (1,N) Numero CONT.COR Saldo (1,N) EFF.SU (1,1) Numero OPERAZ Data Importo MODELLO ENTITA’ - RELAZIONE Vincoli di Cardinalità Cardinalità delle relazioni sono specificati per ogni entità partecipante ad una relazione indicano il numero minimo e massimo di istanze della relazione a cui le istanze delle entità coinvolte possono partecipare modellano particolari situazioni della realtà ( 1, 3 ) DOCENTE ( 1, 2 ) TIENE CORSO dal lato DOCENTE : ogni DOCENTE deve tenere almeno 1 corso , può tener al più 3 corsi dal lato CORSO : ogni CORSO deve essere tenuto da almeno un docente, al più da due docenti Obbligatorietà / Opzionalità cardinalità minima zero significa che la partecipa-zione di una entità alla relazione è opzionale cardinalità minima uno significa che la partecipa-zione di una entità alla relazione è obbligatoria MODELLO ENTITA’ - RELAZIONE Esempio di Cardinalità Corrispondenza uno-a-uno (1 :1) – obbligata ( totale ) dal lato DOCENTE – obbligata ( totale ) dal lato CORSO Situazione ipotizzata: – ogni DOCENTE deve tenere un solo CORSO – ogni CORSO è tenuto da un solo DOCENTE (1,1) DOCENTE (1,1) TIENE CORSO D1 C1 D2 C2 D3 C3 D4 C4 D5 C5 MODELLO ENTITA’ - RELAZIONE Esempio di Cardinalità Corrispondenza uno-a-molti (1:N) – opzionale ( parziale ) dal lato DOCENTE – obbligata ( totale ) dal lato CORSO Situazione ipotizzata: – un DOCENTE può tenere nessuno o più CORSI – un CORSO deve essere tenuto da un solo DOCENTE (0,N) DOCENTE (1,1) TIENE CORSO D1 C1 D2 C2 D3 C3 D4 C4 D5 C5 MODELLO ENTITA’ - RELAZIONE Esempio di Cardinalità Corrispondenza molti-a-uno ( N:1 ) – obbligata ( totale ) dal lato DOCENTE – parziale ( opzionale ) dal lato CORSO Situazione ipotizzata: – ogni DOCENTE deve tenere un solo corso CORSO – un CORSO può essere tenuto da più DOCENTI o da nessun docente ( alcuni corsi non sono attivati ) (1,1) DOCENTE (0,N) TIENE CORSO D1 C1 D2 C2 D3 C3 D4 C4 D5 C5 MODELLO ENTITA’ - RELAZIONE Esempio di Cardinalità Corrispondenza molti-a-molti ( N:M ) – obbigata ( totale ) dal lato DOCENTE – obbligata ( totale ) dal lato CORSO Situazione ipotizzata: – ogni DOCENTE deve tenere almeno un CORSO – ogni CORSO è tenuto da almeno un DOCENTE (1,N) DOCENTE (1,N) TIENE CORSO D1 C1 D2 C2 D3 C3 D4 C4 D5 C5 MODELLO ENTITA’ - RELAZIONE Esempio di Relazione Ternaria Un FORNITORE fornisce : una data PARTE per un dato PRODOTTO in una data Quantità Quantità FORN.RE F.SCE PRODOTTO PARTE F1 F2 1 2 A1 3 A2 P1 4 P2 5 P3 A3 MODELLO ENTITA’ - RELAZIONE Relazioni Ternarie e Binarie Una relazione ternaria non è in generale rappresenta-bile mediante tre distinte relazioni binarie FORN.RE F_ A ARTICOLO F_P PARTE P_ A F1 A1 F2 A2 A3 P1 P2 P3 MODELLO ENTITA’ - RELAZIONE Relazioni Ternarie e Binarie Una relazione ternaria non è in generale rappresentabile mediante tre relazioni binarie I tre fatti ( istanze delle tre relazioni binarie ) : < f1, p1 > (< f1, p1 ,? >) : il FORNITORE f1 fornisce la PARTE p1 per un qualche ARTICOLO < p1, a2 > (< ?, p1, a2>) : un qualche FORNITORE fornisce la PARTE p1 per l’ARTICOLO a2 < f1, a2 > (< f1, ? , a2 >) : il FORNITORE f1 fornisce una qualche PARTE per l’ ARTICOLO a2 non implicano necessariamente il fatto ( istanza della relazione ternaria ) : < f1, p1, a2 > : il FORNITORE f1 fornisce la PARTE p1 per l’ARTICOLO a2 mentre vale l’implicazione inversa le tre distinte relazioni binarie non ci dicono: quale fornitore quale parte ha fornito per un dato articolo la relazione ternaria contiene più informazione delle tre relazioni binarie con cui si pensa poterla rappre-sentare o sostituirla MODELLO ENTITA’ - RELAZIONE Relazioni Ternarie e Binarie D_S DOCENTE D_C_S SEMESTRE D_C CORSO C_S Le tre distinte relazioni binarie non dicono ciò che dice la relazione ternaria: in quale semestre un determinato docente tiene un dato corso MODELLO ENTITA’ - RELAZIONE Relazioni Ternarie e Binarie Come rappresentare una relazione ternaria mediante tre distinte relazioni binarie FORN.RE ARTICOLO Quantità F_ F F_ P_ A A_ F P_ F PARTE la relazione ternaria può essere rappresentata con : una entita debole senza identificatore interno più tre relazioni binarie identificanti una istanza dell’entità debole (rappresentante una istanza della relazione ternaria ) è identificata dalla combinazione delle istanze delle tre entità dominanti MODELLO ENTITA’ - RELAZIONE Generalizzazione Generalizzazione - è un meccanismo di astrazione che consente di specificare una classe ( superclasse ) come generalizzazione di altre classi ( sottoclassi ) considerando le proprità (attributi e relazioni ) che esse hanno in comune PERSONA AVVOCATO INGEGNERE STUDENTE l’insieme delle entità PERSONA è costituito da sottogruppi ( ovvacati, ingegneri, studenti ) : – che sono significativi ai fini dell’applicazione – e che, perciò, debbono essere rappresentati in modo esplicito tra l’entità padre e le entità figlie esiste una relazione del genere tiposottotipo, detta relazione ISA : uno STUDENTE è-una PERSONA Studente ha tutte le caratteristiche di Persona più altre caratteristiche che lo specializzano in quanto studente MODELLO ENTITA’ - RELAZIONE Generalizzazione una istanza di una sottoclasse è anche istanza della superclasse e rappresenta la stessa entità-reale viceversa, non tutte le entità della superclasse sono necessariamente anche istanze di una delle sottoclassi CodFiscale Nome PERSONA CITTA' RISIEDE DOCENTE TECNICO STUDENTE Materia Qualifica NumMat CITTA' ISCRITTO PERSONA e1 e2 e3 e4 e5 e6 e7 DOCENTE TECNICO STUDENTE e1 e2 e3 e5 e6 e4 e7 MODELLO ENTITA’ - RELAZIONE Generalizzazione Ereditarietà una entità che è istanza di una sottoclasse eredita tutte le proprietà ( attributi e relazioni ) della superclasse Motivazione all’uso di gerarchie di generalizzazione nel modellare i dati il motivo principale che rende opportuno e necessario l’uso di superclassi e sottoclassi è che certi attributi sono applicabili ad alcune ma non a tutte le istanze di una entità ( della superclasse ) Vincoli sulle Generalizzazioni le generalizzazioni sono caratterizzate da due tipi di vincoli, tra loro ortogonali : totale - se ogni istanza della superclasse è istanza di almeno una delle sottoclassi, parziale - altrimenti esclusiva - se ogni istanza della superclasse è istanza di al più una sola delle sottoclassi, sovrapposta - altrimenti MODELLO ENTITA’ - RELAZIONE Esempio di Generalizzazione Totale ed Esclusiva PERSONA ( T,E ) UOMO DONNA PERSONA DONNA UOMO MODELLO ENTITA’ - RELAZIONE Esempio di Generalizzazione Parziale e Sovrapposta PERSONA ( P,S ) LAVORATORE SUDENTE PERSONA STUDENTE LAVORATORE MODELLO ENTITA’ - RELAZIONE Esempio di Generalizzazione Parziale ed Esclusiva PERSONA ( P,E ) DOCENTE SUDENTE PERSONA STUDENTE DOCENTE MODELLO ENTITA’ - RELAZIONE Esempio Descrizione del modello E-R con il modello E-R COSTRUTTO Card.Max Card.Min Nome GENERALIZZA ZIONE Nome COSTRUTTO BASE ATTRIBUTO ( 1 ,1 ) (0,N) PADRE APPARTENENZA (0,N) (1,N) (0,N) FIGLIA ( 1 ,1 ) ENTITA’ RELAZIONE (0,N) (1,N) PARTECIPAZIONE Card.Min Card.Max MODELLO ENTITA’ - RELAZIONE Esempio Descrizione del modello E-R con il modello E-R Lettura dello schema : una ENTITA’ può partecipare a zero o a più RELAZIONI e una REALZIONE può coinvolgere una (nel caso di relazione ricorsiva) o più ENTITA’ la partecipazione di una entità ad una relazione ha una CARDINALITA’ minima e massima un ATTRIBUTO ha un nome, una cardinalità minima e massima, ed è associato ad un concetto base una GENERALIZZAZIONE ha una sola entità PADRE e una o più entità FIGLIE una ENTITA può essere PADRE e FIGLIA di diverse generalizzazioni, o anche di nessuna un COSTRUTTO BASE è identificato univocamente dal suo NOME un ATTRIBUTO è identificato dal suo NOME e dal COSTRUTTO BASE a cui è associato nello schema i vincoli di CARDINALITA’ delle relazioni sono stati rappresentati come attributi non tutte le caratteristiche del modello E-R sono state rappresentate nello schema