Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
Scarica il documento per vederlo tutto.
vuoi
o PayPal
tutte le volte che vuoi
MODELLO ER
Uno schema concettuale ha lo scopo di tradurre il risultato dell’analisi dei requisiti in una descrizione formale
indipendentemente dalla tecnologia usata dal DBMS e viene rappresentato per mezzo del modello Entità
Relazioni (ER), il quale fornisce una descrizione sintetica dei dati.
In seguito, la progettazione logica ha lo scopo di tradurre lo schema concettuale in uno schema logico, il quale
è fortemente dipendente dalla tecnologia utilizzata per gestire i
dati che può essere di tipo relazionale, grafi, documentale, key
value (associativo), …
Si può dunque affermare che il modello ER (concettuale) è
diverso dal modello Relazionale (logico); inoltre, strutture dati
differenti possono essere rappresentate dallo stesso modello ER.
Costrutti principali
Nel modello ER possiamo definire alcuni concetti quali quello di entità, attributi (e le loro cardinalità),
identificatori e relazioni.
Entità
Si definisce con il termine di entità una classe di oggetti che hanno proprietà comuni ed esistenza autonoma
ai fini dell’applicazione di interesse; dunque, ogni entità è un insieme di oggetti, ciascuno dei quali prende il
nome di istanza (detta anche occorrenza), i quali presentano caratteristiche comuni.
Nel modello ER viene rappresentata da un rettangolo.
Attributo
Con il termine attributo si intendono le proprietà elementari di entità o di relazioni che sono di interesse ai
fini dell’applicazione. Un attributo associa a ciascuna istanza di entità o di relazione un valore, il quale
appartiene ad un insieme di valori ammissibili per l’attributo (esempio: all’attributo “cognome” non può
essere associato un valore numerico); questo insieme di valori è detto dominio.
Nel modello ER viene rappresentato con —O.
Cardinalità degli attributi
La cardinalità viene definita con il simbolo (min,max), dove min e max rappresentano rispettivamente il
numero minimo e massimo di valori che l’attributo può assumere per ciascuna istanza di entità.
In base alla sua cardinalità un attributo può essere:
- Scalare (o semplice) —> se assume un solo valore per ogni istanza (esempio: entità “esame” e
attributo “voto”; infatti ad ogni esame è associato un solo voto)
—> cardinalità (1,1)
- Multiplo (o multivalore) —> se ammette più valori per ogni istanza dell’entità (esempio: entità
“persona” e attributo “numeroTelefono”; infatti una persona può avere uno o più numeri di telefono)
—> cardinalità (1:N)
La cardinalità, inoltre, può essere utile per specificare che un attributo è opzionale, ovvero, che potrebbe non
assumere nessun valore [esempio: entità “persona” e attributo “secondoNome”; infatti una persona
potrebbe non avere un secondo nome —> cardinalità (0,1); esempio2: entità “città” e attributo “turisti”;
infatti una città può avere n turisti o non averne affatto —> cardinalità (0,N) ].
Attributi composti
Un attributo viene definito composto se è costituito da un insieme di
attributi correlati, permettendo così di unire gli attributi con delle affinità.
Per poter ridurre la complessità degli schemi del modello ER, però, gli
attributi composti vengono utilizzati raramente, prediligendo quelli
atomici (senza attributi correlati); per questo motivo gli attributi
composti vengono spesso “spezzati” nei loro componenti atomici.
Università Milano-Bicocca Colombo Micol SSE - a.a. 2021/2022
Identificatore
Viene definito con l’espressione di identificatore quell’attributo (o insieme di attributi) il cui valore permette
di identificare ciascuna istanza di entità in maniera univoca. Un esempio pratico può essere quello del numero
di matricola (attributo) di uno studente (istanza di entità).
Questi identificatori prendono il nome di chiavi e si indicano con — .
È importante specificare che nel modello ER non vengono specificate le chiavi esterne (foreign key), in quanto
esse costituiscono il meccanismo con cui i database relazionali implementano il collegamento tra tabelle; non
sono quindi necessarie nella rappresentazione dell’ER, considerando che questo modello indica unicamente
l’esistenza di una relazione (sarà compito di chi effettuerà la progettazione logica decidere come
implementare la relazione).
Relazione
Si definisce relazione, detta anche associazione, il legame logico significativo per l’applicazione di interesse
tra due o più entità.
Nel modello ER viene rappresentata con un rombo.
Cardinalità delle relazioni
La cardinalità delle relazioni viene definita con il simbolo (min,max), dove min e max rappresentano
rispettivamente il numero minimo e massimo di volte in cui una data istanza di entità può partecipare
all’associazione. In parole semplici, quindi, la cardinalità non è altro che la numerosità con cui un’entità
partecipa alla relazione a cui si sta facendo riferimento.
Si hanno 3 casi possibili di cardinalità:
- (…,1) : (…,1) —> 1:1
- (…,1) : (…,N) —> 1:N
- (…,N) : (…,N) —> N:N
Esempio N:N : date le entità studente e corso legate tra loro dalla relazione iscrizione, si avrà:
studente —(1,N)— iscrizione —(1,N)— corso
Questo perché uno studente può iscriversi a n corsi e ad un corso possono essere iscritti n studenti.
Esempio 1:N : date le entità persona e città legate tra loro dalla relazione residenza, si avrà:
persona —(1,1)— residenza —(0,N)— città
Questo perché una persona può e deve avere la residenza in una e una sola città, mentre in una città possono
avere residenza da 0 a N persone.
Relazione con 3 o più entità
Tre o più entità coinvolte in una relazione saranno, ognuna di esse, costituite da una
cardinalità che rappresenterà la numerosità con cui ciascuna di queste entità
partecipa alla relazione con le altre entità. ∞,
Considerando una relazione con k entità, dove k può assumere valori da 1 a per
implementare nel modello logico relazionale la tabella ponte è utile ricorrere ad una
chiave esterna (foreign key) per ognuna delle entità coinvolte, così da avere un ente
comune tra queste (la chiave esterna permette di analizzare il collegamento tra le
entità coinvolte nella relazione).
Auto-relazione
Un’auto-relazione non è altro che una relazione tra un’entità e se stessa.
L’implementazione nel modello logico relazionale di questo tipo di relazione consiste
in una tabella dell’entità, raccogliendo tutte le istanze (nel caso dell’esempio raccoglie
tutte le persone di cui si hanno informazioni), e di una tabella ponte che descrive la
relazione tra l’entità e l’entità stessa (nell’esempio: chi ha come vicino chi).
Università Milano-Bicocca Colombo Micol SSE - a.a. 2021/2022
Generalizzazione
Una generalizzazione è un legame logico tra una entità padre E e alcune entità figlie E , E , …, E , dove la
1 2 n
prima è quindi la generalizzazione delle ultime, le quali sono a loro volta specializzazioni della prima. Le entità
figlie ereditano le proprietà (ovvero gli attributi, gli identificatori e le relazioni) dell’entità padre; per questo
motivo ogni istanza di E è anche un’istanza di E, così come quest’ultima può essere un’istanza di E .
i i
Esempio: applicazione della generalizzazione su un modello ER che presenta unità con attributi in comune
Proprietà delle generalizzazioni
Una generalizzazione può essere:
- Totale —> ogni istanza dell’entità padre deve far parte di una delle entità figlie
- Parziale —> le istanze dell’entità padre possono far parte delle entità figlie
Inoltre può essere anche:
- Esclusiva —> ogni istanza dell’entità padre non può far parte di più di una delle entità figlie
- Sovrapposta (overlapping) —> ogni istanza dell’entità padre può far parte di più entità figlie
In base all’esempio precedente:
o Se i dipendenti sono solo operai e impiegati —> generalizzazione totale
o Se fossero dati 3 vari tipi di dipendenti: operai, impiegati e addetti alle pulizie; questi ultimi sono
istanza solo dell’entità “dipendente” —> generalizzazione parziale
o Se un dipendente è solo un operaio o solo un impiegato —> generalizzazione esclusiva
o Se un dipendente è sia operaio sia impiegato —> generalizzazione overlapping)
⬆, ⇑.
La generalizzazione totale si indica con mentre per le altre tipologie si utilizza
Identificatore esterno ed entità deboli (Weak Entities)
Si definisce identificatore esterno un attributo (parte della chiave primaria) che proviene dall’esterno.
Un’entità debole, detta anche weak entity, invece è un’entità che tra i suoi attributi chiave ha uno o più
identificatori esterni. Più semplicemente, un’entità debole è un’entità che “prende in prestito” un attributo
da un’altra entità, detta entità forte.
Nell’esempio che segue “lavoratore” è un’entità debole e “P.IVA” è un identificatore esterno.
Un identificatore esterno può essere eliminato e sostituito aggiungendo una chiave.
Questa soluzione previene su delle possibili complicazioni che si potrebbero avere con un identificatore
esterno ed un’entità debole. Basandoci sull’esempio, infatti, se si volessero cancellare i dati di una
determinata azienda, sarà necessario cancellare anche i lavoratori che fanno riferimento alla partita iva
dell’azienda che si vuole eliminare. Da quanto affermato si può dedurre dunque che l’esistenza dell’entità
debole dipende dai dati presenti in un’altra entità.
Università Milano-Bicocca Colombo Micol SSE - a.a. 2021/2022
Traduzione dal modello ER al modello (logico) Relazionale
Traduzione relazione N:N
Con relazione N:N si intende che le due entità hanno entrambe una cardinalità 1:N rispetto alla relazione.
Per tradurre questo modello ER si crea una tabella per og