Attributi

Attributi di entità

Gli attributi sono le caratteristiche di un oggetto dello schema E-R (per es. di un'entità) che hanno rilevanza per il database; per esempio, per un alunno sono attibuti il suo nome e il suo cognome; gli attributi sono rappresentati nello schema E-R con dei cerchi vuoti all'interno:

Figura 2.9. Gli attributi di un'entità

Gli attributi di un'entità

Attributi di associazioni

Può capitare che un attributo sia una caratteristica legata contemporaneamente a più entità; in questo caso l'attributo non può essere assegnato ad una singola entità, ma nemmeno ad entrambe contemporaneamente. La soluzione corretta è di assegnare l'attributo all'associazione che collega le due entità.

Esempio 2.4. Un nuovo anno scolastico

Riprendendo l'esempio nella sua ultima versione C'è una classe vuota, se si desidera che sia possibile registare nel database, oltre alle classi di quest'anno, anche quelle degli anni scolastici futuri, si deve poter registrare anche l'anno scolastico di appartenenza della classe da parte di ogni alunno. L'anno scolastico quindi è un attributo relativo ad entrambe le entità, ovvero, specifica il periodo temporale di validità dell'associazione appartenenza.

Figura 2.10. Gli attributi di un'associazione

Gli attributi di un'associazione


Attributi composti

Continuando a fare riferimento allo stesso esempio C'è una classe vuota, sarebbe sbagliato usare il termine indirizzo per indicare dove risiede l'alunno. Questo non può essere considerato un attributo semplice perchè può essere scomposto nei seguenti elementi: via, numero, città e provincia. Per questo motivo nello schema E-R devono essere assolutamente evitati gli attributi composti.

Attributo identificatore

Hanno il ruolo di identificare univocamente ogni elemento che appartiene all'entità; per esempio, per identificare univocamente ogni alunno può essere usato un numero unico stabilito dalla segreteria al momento dell'iscrizione, che di solito si chiama matricola. È importante sottolineare che il valore assegnato all'attributo identificatore deve essere diverso per ogni elemento dell'entità (cioè non devono esistere due alunni con la stessa matricola). Gli atributi identificatori sono rappresentati da un cerchio pieno. Gli attributi identificatori sono molto importanti, ed esiste la seguente regola: ogni entità deve possedere un attributo identificatore. In altre parole, non si deve mai usare un'entità senza attributo identificatore in uno schema E-R. Un altro frequente e grossolano errore è quello di considerare tale attributo, l'identificatore della categoria, invece che degli elementi che la compongono. Per le associazioni la regola è diversa: le associazioni rifiutano l'attributo identificatore in quanto esse non rappresentano una categoria di elementi (come l'entità).

Figura 2.11. L'attributo identificatore di alunno

L'attributo identificatore di alunno

Attributo identificatore composto

Il divieto di uso degli attributi composti, si riferisce solo agli attributi semplici, non quelli identificatori. Quando nella realtà non si riesce a trovare un attributo che soddisfi i requisiti di unicità necessari per l'identificazione degli elementi di una categoria, si può usare un gruppo di attributi per realizzare un unico attributo identificatore composto. Per esempio, se non esistesse la matricola dell'alunno, potremmo usare, per identificare un alunno, il suo nome insieme al suo cognome, nell'ipotesi semplificativa che non esistano mai due alunni omonimi in tale istituto.

Figura 2.12. L'attributo identificatore composto di alunno

L'attributo identificatore composto di alunno

Un altro esempio di attributo identificatore composto può essere osservato nell'entità classe, in cui, l'identificazione può essere fatta considerando l'insieme degli attributi costituiti da anno, sezione e indirizzo; come conseguenza non ci potranno essere due classi dello stesso anno, sezione e indirizzo. Un'altra ottima soluzione sarebbe stata quella di aggiungere un attributo identificatore ideato dal progettista e chiamato codice-classe.

Figura 2.13. L'attributo identificatore composto di classe

L'attributo identificatore composto di classe