960 likes | 1.21k Views
impiegato. datore. lavoro. Ente. persona. Il modello Entity-Relationship. Modello Entity-Relationship (Entità-Relazione). Proposto da Peter S. Chen nel 1976, rappresenta uno “ standard de facto ” per la progettazione concettuale di una base dati Ha una rappresentazione grafica
E N D
impiegato datore lavoro Ente persona Il modello Entity-Relationship Il modello Entity-Relationship
Modello Entity-Relationship (Entità-Relazione) • Proposto da Peter S. Chen nel 1976, rappresenta uno “standard de facto” per la progettazione concettuale di una base dati • Ha una rappresentazione grafica • Esistono molti dialetti E/R, che spesso si differenziano solo per la notazione grafica adottata (es. modello EER = enhanced E/R) Il modello Entity-Relationship
I costrutti del modello E-R • Entità • Relationship (relazione, o associazione) • Attributo • Identificatore • Generalizzazione • …. Il modello Entity-Relationship
Entità • Classe di oggetti (fatti, persone, cose) dell’applicazione di interesse con proprietà comuni e con esistenza “autonoma” ai fini dell’applicazione • Ha una esistenza indipendente dalle proprietà ad essa associate • Esempi: • impiegato, città, conto corrente, ordine, fattura • Ogni entità ha un nome che la identifica univocamente nello schema: • nomi espressivi • opportune convenzioni (es. singolare) Il modello Entity-Relationship
Es. La classe dei computer Il modello Entity-Relationship
Entità: schema e istanza • Una occorrenza (o istanza) di entità è un elemento della classe (l'oggetto stesso, la persona stessa, …, non un valore che questo può assumere) • nello schema concettuale rappresentiamo le entità, non le singole istanze Il modello Entity-Relationship
Rappresentazione grafica di entità Impiegato Dipartimento Città Vendita Il modello Entity-Relationship
Relationship (Associazione) • Legame logico fra due o più entità, rilevante nell’applicazione di interesse • Esempi: • Residenza(fra le entità Persona e Città) • Esame (fra Studente e Corso) • In inglese relationship, viene tradotto con associazione o relazione (da non confondere con la relazione, da relation, nel modello relazionale) Il modello Entity-Relationship
impiegato datore lavora in Ente persona Il modello Entity-Relationship
Esame Residenza Rappresentazione grafica di relationship Studente Corso Impiegato Città Il modello Entity-Relationship
Relationship, commenti • Ogni relationship ha un nome che la identifica univocamente nello schema: • nomi espressivi • opportune convenzioni • singolare • sostantivi invece che verbi (se possibile) Il modello Entity-Relationship
Relationship, occorrenze • Una occorrenzadi una relationship binaria è una coppia di occorrenze di entità, una per ciascuna entità coinvolta • Una occorrenza di una relationship n-aria è una n-upla di occorrenze di entità, una per ciascuna entità coinvolta • Nell'ambito di una relationship non ci possono essere occorrenze (coppie, ennuple) ripetute Il modello Entity-Relationship
istanza di E1 entità E1 entità E2 associazione A tra E1 ed E2 occorrenza di A Il modello Entity-Relationship
Esame Visita Relationship corrette Studente Corso Paziente Medico Il modello Entity-Relationship
E1 E2 Rossi E3 Algebra Verdi Bianchi Fisica E4 Analisi Pepi Corso Studente Esempi di occorrenze Il modello Entity-Relationship
Per definizione l’insieme delle istanze di un'associazione è un sottoinsieme del prodotto Cartesiano degli insiemi delle istanze di entità che partecipano all’associazione • Ne segue che non possono esservi istanze ripetute nell’associazione • Se s è uno Studente e c un Corso, la coppia (s,c) può comparire un’unica volta nell'insieme delle istanze di Esame Studente Corso Esame Il modello Entity-Relationship
Grado di una relazione • È il numero di istanze di entità che sono coinvolte in un’istanza dell’associazione • associazione binaria: grado = 2 • associazione ternaria: grado = 3 Persona Città Lavoro Impiegato Assegnazione Progetto Sede Il modello Entity-Relationship
Sede di lavoro Residenza Impiegato Città Due relationship sulle stesse entità Il modello Entity-Relationship
Conoscenza Persona Relationship ricorsiva: coinvolge “due volte” la stessa entità Il modello Entity-Relationship
Successione Sovrano Relationship ricorsiva con “ruoli” Successore Predecessore Il modello Entity-Relationship
Relationship ternaria ricorsiva • È possibile avere anelli anche in relazioni n-arie generiche (n > 2) • Il significato di una occorrenza (d1,d2,p) è: il dipendente d1dirige il dipendente d2 all’interno del progetto p dirige Progetto Dipendente Direzione diretto Il modello Entity-Relationship
base propedeutico esame avanz Corso Studente docente commissione frequenza offerta Professore CorsodiLaurea iscrizione Un database sul sistema universitario
Attributo • Proprietà elementare di un’entità o di una associazione, di interesse ai fini dell’applicazione • Associa ad ogni occorrenza di entità o relationship un valore appartenente a un insieme detto dominio dell’attributo (contiene i valori ammissibili per l’attributo) Il modello Entity-Relationship
Cognome Nome Titolo Esame Studente Corso Matricola Codice Attributi, rappresentazione grafica Data Voto data e voto non sono proprietà né di uno Studente né di un Corso, ma del legame Studente-Corso che si crea in occasione di un esame
Attributi composti • Raggruppano attributi di una medesima entità o relationship che presentano affinità nel loro significato o uso • Esempio: • Via, Numero civico e CAP formano un Indirizzo Il modello Entity-Relationship
Cognome Età Via Indirizzo Numero CAP Rappresentazione grafica Impiegato Il modello Entity-Relationship
Cognome Telefono Direzione Impiegato Dipartimento Afferenza Nome Codice Composizione Partecipazione Data Sede Progetto Via Indirizzo Città Budget Nome CAP
Corso Studente ciclo nome telefono nome data voto base matricola esame propedeutico avanz indirizzo commissione segue docente città via nome Professore cognome offre data_nascita cod_id nome CorsodiLaurea iscritto
In ogni schema E/R sono presenti dei vincoli • Alcuni sono impliciti, in quanto dipendono dalla semantica stessa dei costrutti del modello: • ogni occorrenza di associazione deve riferirsi a istanze di entità • occorrenze diverse della stessa associazione devono riferirsi a differenti combinazioni di occorrenze delle entità partecipanti all'associazione • Altri vincoli sono espliciti, e vengono definiti da chi progetta lo schema E/Rsulla base della conoscenza della realtà che si sta modellando • vincoli di cardinalità (per associazioni e attributi) • vincoli di identificazione
Altri costrutti del modello E-R • Cardinalità • di relationship • di attributo • Identificatore • interno • esterno • Generalizzazione Il modello Entity-Relationship
Cardinalità di relationship • Coppia di valori (x,y) associati a ogni entità che partecipa a una relationship • Per ogni entità Eche partecipa a una relazione Ri numeri (x,y)specificano il numero minimo e massimo di occorrenze di R cui ciascuna occorrenza di Epuò partecipare Il modello Entity-Relationship
Assegnamento Impiegato Incarico Esempio di cardinalità (1,5) (0,50) Il modello Entity-Relationship
per semplicità usiamo solo tre simboli: • 0 e 1 per la cardinalità minima: • 0 = “partecipazione opzionale” • 1 = “partecipazione obbligatoria” • 1 e “N” per la cardinalità massima: • “N” non pone alcun limite Il modello Entity-Relationship
(1,1) (0,N) Residenza Studente Città Cardinalità di Residenza Il modello Entity-Relationship
R1 R2 R3 R4 Occorrenze di Residenza S1 C1 S2 C2 S3 S4 C3 C4 Città Studente Il modello Entity-Relationship
Tipi di relationship • Le relationship si distinguono con riferimento alle cardinalità massime; abbiamo relationship: • uno a uno(x,1) — (x,1); • uno a molti(x,1) — (x,N); • molti a molti(x,N) — (x,N), dove x può valere 0 oppure 1 Il modello Entity-Relationship
(0,N) (0,N) Esame Studente Corso (0,N) (1,N) Scalata Montagna Alpinista m n (1,N) (1,N) Abilitazione Macchinista Locomotore Relationship “molti a molti”
(0,1) (0,N) Impiego Persona Azienda (1,1) (0,N) Ubicazione Cinema Località (1,1) (1,N) Ubicazione Comune Provincia C1 C2 Relationship “uno a molti”
(1,1) C1 C2 (0,1) Titolarità Professore di ruolo Corso (1,1) (1,1) Titolarità Professore di ruolo Cattedra Relationship “uno a uno”
Persona (1,n) Città (1,1) Risiede Studente (0,n) Città (1,1) Risiede Persona (0,n) Città (0,n) Lavora Studente (0,n) Corso (0,n) Esame Persone (1,n) Telefono (0,n) Ha Cardinalità: altri esempi
Cardinalità di attributi • E’ possibile associare delle cardinalità anche agli attributi, con due scopi: • indicare opzionalità ("informazione incompleta") • indicare attributi multivalore Il modello Entity-Relationship
Telefono Impiegato Nome Numero patente Rappresentazione grafica (0,N) (0,1) Il modello Entity-Relationship
via (1,n) n.civico (1,n) Persona città (1,n) CAP (1,n) Attributi ripetuti e composti • Nel caso di presenza di più attributi multivalore, la creazione di un attributo composto può rendersi necessaria per evitare ambiguità • Ad esempio, se una persona ha più indirizzi… …non si può rappresentarlo così! via (1,n) n.civico Persona indirizzo città CAP
Identificatore di una entità • “strumento” per l’identificazione univoca delle occorrenze di un’entità • “minimale”: nessun sottoinsieme proprio dell’identificatore deve a sua volta essere identificatore • costituito da: • attributi dell’entità: identificatore interno • (attributi dell’entità +) entità esterne attraverso relationship: identificatore esterno Il modello Entity-Relationship
Targa Automobile Modello Data Nascita Persona Cognome Proprietario Nome Indirizzo Identificatori interni: si usano uno o più attributi dell’entità
Cognome Matricola Nome (1,1) (0,N) Iscrizione Studente Università Anno di corso Indirizzo Identificatore esterno: l’entità è identificata da una o più entità collegate a essa da associazioni, più eventuali attributi dell’entutà stessa Il modello Entity-Relationship