Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo...

68
Relazioni • Relazione: Associazione o legame logico esistente tra due o più entità Socio Campo Prenota

Transcript of Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo...

Page 1: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Relazioni

• Relazione: Associazione o legame logico esistente tra due o più entità

Socio CampoPrenota

Page 2: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Grado di una relazione

• Grado di una relazione: numero di entità partecipanti

Socio CampoPrenota Grado=2

Fornitore ProdottoFornitura

Beneficiario

Grado=3

Page 3: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Relazioni ricorsive

• Una entità può essere in relazione con se stessa. In tal caso si utilizzano esplicitamente nomi di ruolo per chiarire la partecipazione

» L’entità impiegato partecipa alla relazione» sovrintende sia nel ruolo di responsabile che in» quello di subordinato.

Impiegato

sovrintenderesponsabile subordinato

Page 4: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Un esempio di progetto• Vogliamo progettare il modello E-R per un database di una

azienda. • Supponiamo di aver raccolto ed analizzato i requisiti in una fase

precedente. I principali requisiti sono qui elencati:1. L’azienda è organizzata in dipartimenti. Ogni dipartimento ha un

identificativo e un nome univoco; un impiegato gestisce il dipartimento. Il dipartimento può avere più sedi dislocate sul territorio.

2. Un dipartimento gestisce un numero variabile di attività identificabili univocamente; ciascuna attività ha inoltre un nome e si svolge in un unico luogo.

3. Per ciascun impiegato si desidera tenere traccia di varie informazioni anagrafiche. Si desidera tenere traccia dei rapporti gerarchici del personale. Da un punto di vista organizzativo ciascun impiegato è assegnato ad un dip. Può lavorare su vari progetti, non necessariamente gestiti dal suo dipartimento

4. E’ necessario inoltre tenere traccia dei famigliari di ciascun dipendente per motivi fiscali.

Page 5: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Lo schema E-R del database aziendale

Sedi

Impiegato Dipartimento

Progetto

Famigliare

CF

Data_n

Nome

Cognome

Indirizzo

NdipNome_Dip

NprogNome_Prog

Sede

Nome

SovrintendeResp. Subord. Controlla

Lavora_in

Dirige

imparentatoLavora_su

1 N 1

N

NM

1

N

1N

11

Sesso N_data Grado_p

Stip

Data_ini

Ore_lav

età

Page 6: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Vincoli strutturali sulle relazioni

• Le relazioni possono avere vincoli che limitano le combinazioni delle entità partecipanti.

• I vincoli dipendono dal contesto, cioè dalla realtà che la relazione rappresenta.

1. Cardinalità: specifica il numero di istanze di relazione cui le istanze di entità possono partecipare.

2. Partecipazione:specifica se l’esistenza di una istanze di entità dipende dal suo essere in relazione con un’altra istanze di entità.

Page 7: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Cardinalità

Le cardinalità vengono espresse normalmente come 1:1, 1:N, M:N.

• 1:1(uno a uno), alla relazione partecipa una singola istanze di entità per ciascuna delle 2 entità partecipanti

• 1:N(uno a molti), alla relazione possono partecipare, per una singola istanze di entità di una delle entità partecipanti, svariate istanze dell’altra entità.

• M:N(molti a molti), vale anche il viceversa della precedente definizione

E1 E2

E1 E2

E2E1

Page 8: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Cardinalità:

Impiegato Dipartimento

Progetto

Famigliare

CF

Data_n

Nome

Cognome

Indirizzo

NdipNome_Dip

NprogNome_Prog

Sede

Nome

SovrintendeResp. Subord. Controlla

Lavora_in

Dirige

imparentatoLavora_su

1 N 1

N

NM

1

N

1N

11

Sesso N_data Grado_p

Stip

Data_ini

Ore_lav

età

1 impiegato dirige 1 dip.

1 Impiegato Lavora in 1 solo

Dipartimento

In un Dipartimento possono lavorare svariati impiegati

Ad 1 progetto possono lavorare svariati impiegati

1 impiegato può lavorare su vari

progetti

Page 9: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Partecipazione

• Si considerano due tipi di partecipazione: totale e parziale.

– Partecipazione totale -> dipendenza esistenziale. Ogni occorrenza di entità partecipa alla relazione

Es.: I requisiti dichiarano che un progetto (una occorrenza della entità Progetto) deve essere gestito da un dipartimento, altrimenti non ha senso che esista.

– Partecipazione parziale -> Una occorrenza di entità può partecipare alla relazione.

Es.: Un impiegato può essere direttore di un dipartimento, ma non necessariamente.

Dipartimento

Progetto

Controlla1

N

Linea spessa: partecipazione

totale

Page 10: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Osservazioni sulla notazione

• Esistono notazioni alternative per la rappresentazione dei vincoli.

• Si possono rappresentare per ogni entità il numero minimo e massimo di entità partecipanti.

N.b. (min=0 partecipazione parziale, min >0

partecipazione totale).Dipartimento

Progetto

Controlla(0,N)

(1,1)

Page 11: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Relazioni con grado > 2

• Possono esistere relazioni ternarie (>3 molto improbabili).

• Molti sistemi reali non consentono di “mappare” relazioni con grado > 2. E’ pertanto necessario rappresentare la relazione ternaria utilizzando relazioni binarie.

• Questa operazione però può causare perdita di informazione se non condotta con attenzione.

Page 12: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Relazioni con grado > 2

FornituraFornitore Prodotto

Beneficiario

F_nome Quantità Id_prod

B_nome Fornitore Prodotto

Beneficiario

F_nomeId_prod

B_nome

FornituraFF SP

FB

1 N N 1

N

1

Quantità

Page 13: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Gerarchie ISA

• Rappresentano legami logici tra una entità E (padre) e una o più entità E1, E2, ..,EN (figli). Il padre è più generale dei figli che sono considerabili specializzazioni.

ISA : IS-A -> “è un” Es.: Un liceale è uno studente; un universitario è uno studente.

Impiegato

ISA

DipendenteContrattista

Stip_annuoCosto_orario

Page 14: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Gerarchie ISA • Generalizzazione totale ogni occorrenza della classe

padre è una occorrenza di almeno una delle figlie• Generalizzazione esclusiva ogni occorrenza della classe

padre è al più una sola occorrenza di una classe figlia

Persona

ISA

DonnaUomo

Persona

ISA

LavoratoreStudente

Totale ed esclusiva

Parziale e sovrapposta

Studente lavoratore

Page 15: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Considerazioni sul modello E-R

• Va costruito dopo una adeguata attività di raccolta di requisiti.

• Consente una descrizione ad alto livello dei dati.• Aiuta a chiarire ulteriormente i requisiti• Consente di esplicitare numerosi vincoli• E’ soggettivo: numerose scelte sono possibili e vanno

adeguatamente ponderate.• Se costruito in modo adeguato consente la mappatura

immediata nel modello logico relazionale. N.b. E’ comunque necessario procedere a raffinamenti e verifiche (normalizzazione).

Page 16: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Progettazione concettuale

• Riorganizzare tutti gli elementi per definire un modello astratto della base di dati.

• Il modello è un documento ufficiale– di riferimento per i committenti– di comunicazione verso i progettisti della fase

successiva di progettazione logica.

Page 17: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Astrazione

• Procedimento mentale che permette di – evidenziare alcune proprietà (significative)– escluderne altre (non rilevanti)

• Astrazione per– classificazione– aggregazione– generalizzazione

Page 18: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Astrazione per classificazione

• Vengono individuate proprietà comuni in un insieme di oggetti, esistenti nella realtà.

• Il risultato è una classe di oggetti; ciascun oggetto è detto istanza o esemplare.

Page 19: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Astrazione per aggregazione

• A partire da una o più classi si genera una nuova classe.

• Le classi di partenza diventano componenti o proprietà della nuova classe.

• Differenze:– Classificazione: si parte da un elenco di oggetti – Aggregazione: si parte da un elenco di classi– In entrambi i casi si arriva a produrre una nuova

classe.

Page 20: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Aggregazione debole/stretta

• Debole: gli elementi costitutivi e l’entità principale hanno vita propria ed esistono individualmente. Esempio: gli elementi di un computer come il processore, la memoria e il disco fisso possono esistere indipendentemente dalla loro presenza all’interno di un computer. In questo caso la relazione tra questi elementi è lasca.

• Stretta: gli oggetti costitutivi non hanno vita propria, ma solo come elementi dell’entità contenitore. Esempio: l’entità Persona e l’entità CartaDiIdentità. Una carta di identità svincolata da una persona fisica non ha senso, quindi l’aggregazione tra questi due elementi è di tipo stretto.

Page 21: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Aggregazione per generalizzazione

• Una classe è definita come unione di un insieme di classi.

• Le generalizzazioni possono essere di due tipi:– Totale/Parziale. Quando ogni occorrenza

dell’entità padre è un’occorrenza di almeno una delle entità figlie, la generalizzazione è considerata totale, altrimenti è parziale.

– Esclusiva/Sovrapposta. Quando ogni occorrenza dell’entità padre è al massimo un’occorrenza di una delle entità figlie, altrimenti è sovrapposta.

Page 22: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

22

Generalizzazioni• Per esempio: l’entità Persona è una

generalizzazione delle entità Uomo e Donna

• Per esempio: Professionista è una generalizzazione delle entità Ingegnere, Medico e Avvocato

• Vice versa: Uomo e Donna sono specializzazioni dell’entità Persone, …

Page 23: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Generalizzazione: un esempio

uomini donne

Persone

generalizzazione

Page 24: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

24

Generalizzazioni• Generalizzazioni: rappresentano legami logici

tra una entità E e una o più entità E1,…,En– E: padre– E1,…,En: figli– E è più generale rispetto a E1,…,En, nel senso che le

comprende come caso particolare– E è generalizzazione di E1,…,En– E1,…,En sono specializzazioni dell’entità E

Page 25: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

25

Generalizzazioni

• Ogni istanza di una entità figlia è anche un’ istanza dell’entità padre– Per esempio: un’ istanza dell’entità Avvocato

è anche un’ istanza dell’entità Professionista

Page 26: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

26

Generalizzazioni• Ogni proprietà dell’entità padre (attributi,

identificatori, relazioni e altre generalizzazioni) è anche una proprietà delle entità figlie– Per esempio: se l’entità Persona ha attributi Cognome

ed Età, anche le entità Uomo e Donna possiedono questi attributi

– Per esempio: l’identificatore di Persona è un identificatore valido anche per le entità Uomo e Donna (ereditarietà)

Page 27: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

27

Generalizzazioni• Per entità figlie, le proprietà ereditate non

vanno rappresentate esplicitamente

Persona

Uomo Donna

Codice fiscale

Cognome

Età

Situazionemilitare

Page 28: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

28

Generalizzazioni• classificazioni per le generalizzazioni:

– Una generalizzazione è totale se ogni occorrenza della classe padre è una occorrenza di almeno una delle entità figlie, altrimenti è parziale

– La generalizzazione tra Persona e le entità Uomo e Donna è totale

– La generalizzazione tra Veicolo e le entità Automobile e Bicicletta e parziale

Veicolo

Automobile Bicicletta

Page 29: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

29

Generalizzazioni• classificazioni per le generalizzazioni:

– Una generalizzazione è esclusiva se ogni occorrenza della classe padre è al più una occorrenza di una delle entità figlie, altrimenti è sovrapposta

– La generalizzazione tra Veicolo e le entità Automobile e Bicicletta è esclusiva

– La generalizzazione tra persona e le entità Studente e Lavoratore è sovrapposta

Page 30: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

30

Generalizzazioni• Le generalizzazioni sovrapposte possono

essere trasformate in generalizzazioni esclusive– Aggiungere una o più entità figlie, per

rappresentare i concetti che costituiscono le “intersezioni” delle entità che si sovrappongono

– Per esempio: aggiungere l’entità StudenteLavoratore

Page 31: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

31

Generalizzazioni• Una stessa entità può essere coinvolta in

più generalizzazione diverse

• Posso esserci generalizzazioni su più livelli (una gerarchia)

Page 32: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Gerarchie ISA

• Astrazioni per generalizzazione• Gerarchie ISA (is a) (è un)

Page 33: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Un esempio

Page 34: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

34

Modello Entità-Relazione

Attributo

Entità Relazione

Costrutto

Generalizzazione Costruttobase

(1,N)

Cardinalitàminima

Attributocomposto

Composizione

Partecipazione

Padre

Figlia

Appartenenza

Numero

Nome

Cardinalitàminima

Cardinalitàmassima

Cardinalitàmassima

Nome

(0,N)

(1,1)

(0,N)

(0,N)

(0,N) (2,N)

(1,N)

(0,1)

(1,1)

Page 35: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Lo schema E-R del database aziendale

Sedi

Impiegato Dipartimento

Progetto

Famigliare

CF

Data_n

Nome

Cognome

Indirizzo

NdipNome_Dip

NprogNome_Prog

Sede

Nome

SovrintendeResp. Subord. Controlla

Lavora_in

Dirige

imparentatoLavora_su

1 N 1

N

NM

1

N

1N

11

Sesso N_data Grado_p

Stip

Data_ini

Ore_lav

età

Page 36: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

36

Cardinalità e identificatoriDirezione

Partecipazione

Afferenza

Composizione

Impiegato

Progetto

Dipartimento

Sede

Indirizzo Via

CAP

Numerocivico

Città

Telefono

NomeDataafferenza

Codice

Cognome

Stipendio

Età

Data inizioNome

Budget

Data consegna

(0,1) (1,1)

(0,1) (1,N)

(1,N)

(1,1)(0,N)

(1,N) (1,N)

(0,1)

Page 37: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Fine

Page 38: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Informatica

Introduzione alle basi di dati

Page 39: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

39

Modello Entità-Relazione• Attributi:

– Descrivono le proprietà elementari di entità o relazioni che sono di interesse ai fini dell’applicazione

– Per esempio:• Cognome, Stipendio e Età sono possibili attributi

dell’entità Impiegato• Data e Voto sono possibili attributi della relazione

Esame tra Studente e Corso

Page 40: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

40

Modello Entità-Relazione• Attributi:

– Un attributo associa a ciascuna occorrenza di entità o di relazione un valore appartenente a il dominio del attributo

• Dominio: i valori ammissibili per l’attributo

Page 41: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

41

Modello Entità-Relazione• Attributi:

Studente CorsoEsame

Anno diiscrizione

MatricolaVoto Data esame

Anno di corso

Nome

Page 42: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

42

Modello Entità-Relazione• Attributi composti:

– Può risulta comodo raggruppare attributi che presentano affinità nel loro significato e uso

– L’insieme di attributi che si ottiene in questa maniera viene detto attributo composto

Page 43: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

43

Modello Entità-Relazione• Attributi composti:

– Per esempio: raggruppare Via, Numero civico e CAP per formare l’attributo composto Indirizzo

PersonaVia

EtàNome

Sesso

Indirizzo

CAP

Numero civico

Page 44: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

44

Modello Entità-RelazioneDirezione

Partecipazione

Afferenza

Composizione

Impiegato

Progetto

Dipartimento

Sede

Indirizzo Via

CAP

Numerocivico

Città

Telefono

NomeDataafferenza

Codice

Cognome

Stipendio

Età

Data inizioNome

Budget

Data consegna

Page 45: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

45

Altri costrutti: cardinalità• Cardinalità:

– Vengono specificate per ciascuna partecipazione di entità a una relazione

– Descrivono il numero minimo e massimo di occorrenze di relazione cui una occorrenza dell’entità può partecipare

• Cioè: quante volte, in una relazione tra entità, un’occorrenza di una di queste entità può essere legata a occorrenze delle altre entità coinvolte

Page 46: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

46

Altri costrutti: cardinalità

• Cardinalità:– Per esempio: relazione Assegnamento tra le entità

Impiegato e Incarico– Impiegato (nel contesto della relazione

Assegnamento): cardinalità minima=1, massima=5• Un impiegato può partecipare a un minimo di una occorrenza

e a un massimo di cinque occorrenze della relazione Assegnamento

Impiegato IncaricoAssegnamento(1,5) (0,50)

Page 47: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

47

Altri costrutti: cardinalità

• Cardinalità:– Incarico (nel contesto della relazione

Assegnamento): cardinalità minima=0, massima=50• Un certo incarico può partecipare o a nessuna occorrenza

oppure a 50 occorrenza al massimo della relazione Assegnamento

• Cioè: un certo incarico può non essere assegnato a nessun impiegato oppure può essere assegnato a un numero di impiegati <=50

Impiegato IncaricoAssegnamento(1,5) (0,50)

Page 48: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

48

Altri costrutti: cardinalità• Nella maggiore parte dei casi, è sufficiente

utilizzare solo tre valore:– Zero– Uno– Il simbolo N: indica genericamente un intero

maggiore di uno

Page 49: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

49

Altri costrutti: cardinalità• Cardinalità massima - esempio 3:

– Cardinalità massima pari a N per entrambe le entità coinvolte

– Relazione molti a molti

Turista ViaggioPrenotazione(1,N) (0,N)

Page 50: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

50

Altri costrutti: cardinalità• Cardinalità minima:

– Zero: la partecipazione dell’entità relativa è opzionale

– Uno: la partecipazione dell’entità relativa è obbligatoria

Page 51: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

51

Altri costrutti: cardinalità• Cardinalità massima:

– Uno: la partecipazione dell’entità relativa associa a una occorrenza dell’entità una sola occorrenza (o nessuna) dell’altra entità che partecipa alla relazione

– Molti: c’è una associazione con un numero arbitrario di occorrenze dell’altra entità

Page 52: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

52

Altri costrutti: cardinalità• Cardinalità massima - esempio 1:

– Ogni persona può essere residente in una e una sola città

– Ogni città può non avere residente oppure ha molti residenti

– Relazione uno a molti

Persona CittàResidenza(1,1) (0,N)

Page 53: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

53

Altri costrutti: cardinalità• Cardinalità massima - esempio 2:

– Cardinalità massima pari a uno per entrambe le entità coinvolte: definisce una corrispondenza uno a uno tra le occorrenze di tali entità

– Relazione uno a uno

Ordine FatturaVendita(0,1) (1,1)

Page 54: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

54

Altri costrutti: cardinalità• Cardinalità minime: partecipazione

obbligatoria per tutte le entità coinvolte è raro– Perché quando si aggiunge una nuova

occorrenza di entità, spesso non sono note (o non esistono) le corrispondenti occorrenze delle entità a essa collegate

Page 55: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

55

Altri costrutti: cardinalità• Cardinalità degli attributi:

– Possono essere specificate per gli attributi di entità o relazioni

– Descrivono il numero minimo e massimo di valori dell’attributo associati a ogni occorrenza di entità o relazione

– Nella maggior parte dei casi, la cardinalità di un attributo è (1,1) (e viene omessa)

Page 56: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

56

Altri costrutti: cardinalità• Cardinalità degli attributi:

– Il valore per un certo attributo può essere nullo: minimo della cardinalità=0

– Possono esistere diversi valori di un certo attributo per una occorrenza: massimo della cardinalità=N

Persona

Targa automobile

Numero patente

Cognome

(0,N)

(0,1)

Page 57: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

57

Altri costrutti: cardinalità• Cardinalità degli attributi:

– Cardinalità minima=0: l’attributo è opzionale (l’informazione potrebbe essere non disponibile)

– Cardinalità minima=1: l’attributo è obbligatorio – Cardinalità massima=N: l’attributo è

multivalore

Page 58: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

58

Altri costrutti: identificatori delle entità

• Identificatori delle entità:– Descrivono i concetti (attributi e/o entità) che

permettono di identificare univocamente le occorrenza delle entità

– In molti casi, uno o più attributi di una entità sono sufficienti a individuare un identificatore

• Un identificatore interno (o chiave)

Page 59: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

59

Altri costrutti: identificatori delle entità

• Identificatori delle entità:– Per esempio: non possono esistere due

automobili con la stessa targa– Targa può essere un identificatore interno per

l’entità Automobile

Automobile

Targa

Colore

Modello

Page 60: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

60

Altri costrutti: identificatori delle entità

• Identificatori delle entità:– L’entità Persona con gli attributi Nome,

Cognome, Indirizzo e Data di nascita– Un identificatore interno per Persona può

essere Nome, Cognome e Data di nascita

Persona

Data di nascita

Nome

Cognome

Indirizzo

Page 61: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

61

Altri costrutti: identificatori delle entità

• Identificatori delle entità:– Alcune volte gli attributi di una entità non sono

sufficienti a identificare univocamente le sue occorrenze

Studente UniversitàIscrizione

(1,1) (1,N)

Nome

Indirizzo

Città

Matricola

Cognome

Annoiscrizione

Page 62: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

62

Altri costrutti: identificatori delle entità

• Identificatori delle entità:– Due studenti iscritti a università diverse possono

avere lo stesso numero di matricola– Per identificare univocamente uno studente serve,

oltre al numero di matricola, anche la relativa università

Studente UniversitàIscrizione

(1,1) (1,N)

Nome

Indirizzo

Città

Matricola

Cognome

Annoiscrizione

Page 63: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

63

Altri costrutti: identificatori delle entità

• Identificatori delle entità:– Un identificatore corretto per l’entità studente è

costituito dall’attributo Matricola e dall’entità Università

– Questa identificazione è resa possibile dalla relazione Iscrizione tra Studente e Università

Studente UniversitàIscrizione

(1,1) (1,N)

Nome

Indirizzo

Città

Matricola

Cognome

Annoiscrizione

Page 64: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

64

Altri costrutti: identificatori delle entità

• Identificatori delle entità:– Una entità E può essere identificata da altre

entità solo se tali entità sono coinvolte in una relazione cui E partecipa con cardinalità (1,1)

– Identificatore esterno: quando l’identificazione di una entità è ottenuta utlizzando altre entità

Page 65: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

65

Altri costrutti: identificatori delle entità

• Identificatori delle entità: considerazione generali– Un identificatore può coinvolgere uno o più attributi,

ognuno dei quali deve avere cardinalità (1,1)– Una identificazione esterna può coinvolgere una o più

entita, ognuna delle quali deve essere membro di una relazione alla quale l’entità da identificare partecipa con cardinalità (1,1)

Page 66: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

66

Altri costrutti: identificatori delle entità

• Identificatori delle entità: considerazione generali– Una identificazione esterna può coinvolgere

una entità che è a sua volta identificata esternamente, purché non vengano generati cicli di identificazione esterne

– Ogni entità deve avere almeno un identificatore, ma ne avere in generale più di uno

Page 67: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

67

Cardinalità e identificatoriDirezione

Partecipazione

Afferenza

Composizione

Impiegato

Progetto

Dipartimento

Sede

Indirizzo Via

CAP

Numerocivico

Città

Telefono

NomeDataafferenza

Codice

Cognome

Stipendio

Età

Data inizioNome

Budget

Data consegna

(0,1) (1,1)

(0,1) (1,N)

(1,N)

(1,1)(0,N)

(1,N) (1,N)

(0,1)

Page 68: Relazioni Relazione: Associazione o legame logico esistente tra due o più entità SocioCampo Prenota.

Fine