Il modello ER mette a disposizione dei costrutti logici con cui rappresentare una realtà d'interesse. Per procedere alla descrizione del modello ER è necessario innanzitutto determinare quali sono questi costrutti: essi saranno poi rappresentati nel nostro schema come delle entità.
Lo studio del modello ER ci porta a concludere che i costrutti impiegati sono:
entità, relazioni,
attributi e generalizzazioni.
Procedendo con l'analisi, bisogna stabilire quali sono gli attributi che caratterizzano tali costrutti e quali sono le relazioni (anche dette associazioni) che legano fra loro i costrutti appena definiti.
Può esserci d'aiuto stilare un breve elenco (una descrizione esaustiva coprirebbe un capitolo di un libro), concentrandoci solo su gli aspetti fondamentali dei costrutti:
- Entità: un'entità ha un nome che la identifica, può
possedere attributi, può essere semplice o debole, può partecipare
in alcune relazioni.
- Relazione: una relazione ha un nome che la identifica,
può avere degli attributi, le entità partecipano ad una relazione,
può essere parziale o totale.
- Attributo: un attributo ha un nome, ma questo non lo
identifica univocamente, potendo esistere attributi con lo stesso
nome su entità differenti. Un attributo appartiene ad un'entità o
ad una relazione. Può essere composto da altri attributi. Può
essere normale o multivalore.
- Generalizzazione: una generalizzazione lega due o più
entità che partecipano ad una relazione di tipo padre/figlio
(“classe / classe derivata” diremmo nella terminologia ad
oggetti). Non ha un nome identificativo, ma è identificata dalle
entità che vi partecipano. Può essere totale o parziale, disgiunta
o sovrapposta.
Dall'analisi appena fatta, nel nostro schema del modello ER (ed approfondendo un po' l'analisi) ci accorgiamo che il nostro schema dovrà rappresentare le seguenti relazioni:
- Proprietà: è la relazione che lega un entità
“attributo” ad un'entità “entità” o “relazione”.
- Partecipazione: è la relazione che lega un'entità
“entità” ad un'entità “relazione”. Ha un attributo
cardinalità esprimibile come una coppia di numeri interi (min,max).
- Composizione: è la relazione per cui un “attributo”
può essere formato da altri “attributi”.
“Entità” e “Relazione”
Possiamo notare che le entità “entità” e “relazione”, hanno alcune caratteristiche in comune: entrambe sono identificate dall'attributo “nome” ed entrambe partecipano alla relazione “proprietà” con l'entità “attributo”. Questo suggerisce l'idea che “entità” e “relazione” siano concetti più dettagliati di un concetto più generale che raccoglie le caratteristiche in comune e che potremmo definire “costrutto semplice”.Quindi “costrutto semplice” è identificato dal suo nome e partecipa alla relazione “proprietà” insieme ad “attributo”. Le entità “entità” e “relazione” costituiscono una specializzazione totale e disgiunta di “costrutto semplice” e ne ereditano le caratteristiche.
Le entità “entità” e “relazione” si specializzano poiché partecipano alla relazione “partecipazione” con ruoli differenti. Un' “entità” può partecipare un numero arbitrario di volte in “partecipazione”. Stesso vale per “relazione”, con la differenza che ogni istanza di “relazione” collega almeno 2 “entità” (una relazione è al meno binaria).
Possiamo considerare che in una relazione, la cardinalità non è una proprietà che appartiene alle entità che vi partecipano, ma è una caratteristica della relazione. Quindi la relazione “partecipazione” avrà un attributo “cardinalità” il cui valore potrà essere derivato dalla partecipazione delle entità nella relazione.
“Attributo”
Come visto nella descrizione, “attributo” non ha attributi chiave, ma può essere identificato da un attributo parziale “nome” e dalla relazione “proprietà” che lo lega alla sua entità proprietaria “costrutto semplice”.Quindi “attributo” è un entità debole e “proprietà” è la sua relazione identificante.
Un “attributo” può specializzarsi nelle entità “attributo scalare” ed “attributo multivalore” la differenza tra queste due specializzazioni sta nel fatto che uno “scalare” è associato ad uno ed un solo dato, mentre uno “multivalore” può avere nessuno o più dati.
Salta fuori da questa osservazione una nuova entità del modello ER, sfuggita in prima analisi, che è il “dato”. Il “dato” non è un costrutto, cioè non è un concetto che viene disegnato negli schemi ER, ma è il concetto fondamentale su cui si costruiscono le basi di dati.
Per mancanza di fantasia, ho denotato le associazioni tra “dato” e “scalare” e tra “dato” e “multivalore” rispettivamente “a” e “b”.
“Attributo composto”: un'entità definita ricorsivamente
Un'entità “attributo” può essere composta da altre entità “attributo”. Ciò è rappresentabile tramite una relazione ricorsiva, “composizione”, dell'entità “attributo” su se stessa.Dato che non tutte le occorrenze di “attributo” sono del tipo “attributo composto” (ma ogni occorrenza di “attributo composto” è anche un occorrenza di “attributo”), è corretto rappresentare “attributo composto” come una specializzazione di “attributo”, dotata della proprietà aggiuntiva di partecipare nella relazione “composizione” con un ruolo specifico: essere composto da altri attributi.
“Generalizzazione”
Una generalizzazione, dato che collega due entità tramite una relazione padre/figlio, potrebbe sembrare un caso particolare (una specializzazione) di “relazione”.Ma non è così. Una generalizzazione non può ereditare un nome, ma è identificata dalle entità che ne sono collegate.
Ne consegue logicamente una rappresentazione dell'entità “generalizzazione” come un entità debole legata a due relazioni identificanti “padre” e “figlio”.
Nessun commento:
Posta un commento