Sei sulla pagina 1di 5

Regole di derivazione dallo schema E/R

allo Schema logico dei dati

Il livello di progettazione concettuale si conclude dopo aver


realizzato lo schema E-R.
A questo punto inizia il livello di progettazione logico, dove verrà
utilizzato il modello matematico relazionale.
Prima di continuare si consiglia di rivedere le definizioni di relazione
e di tabella.

Grazie alle seguenti regole di può ottenere lo schema logico (o


schema delle relazioni) a partire dallo schema E-R:

1. ogni entità dello schema E-R viene trasformata in una relazione


(o tabella);

2. ogni attributo (semplice o composto) di un'entità diventa un


attributo della tabella da essa derivata (eventuali attributi
composti vanno scomposti in attributi atomici o elementari);

3. ogni attributo identificatore di un'entità diventa la "chiave


primaria" della tabella da essa derivata (viene indicata con una
sottolineatura);

4. per ogni associazione binaria di tipo 1:1 è necessario


aggiungere, ad una delle due tabelle, un nuovo campo, detto
"chiave esterna", collegato logicamente alla "chiave primaria"
dell'altra tabella; anche gli eventuali attributi dell’associazione
dovranno essere importati nella medesima tabella.

5. per ogni associazione binaria di tipo 1:N è necessario


aggiungere, alla tabella che partecipa con molteplicità N, un
nuovo attributo, detto "chiave esterna", collegato logicamente
alla "chiave primaria" dell'altra tabella (a molteplicità 1); anche gli
eventuali attributi dell’associazione dovranno essere importati
nella medesima tabella.

6. per ogni associazione binaria N:N tra due entità, è necessario


creare una nuova tabella (solitamente nominata come
l’associazione) costituita dalle “chiavi primarie” delle due entità
collegate; anche gli eventuali attributi dell’associazione dovranno
essere importati nella medesima tabella. La chiave primaria della
nuova tabella dovrà essere scelta tra le seguenti opzioni (in base
al contesto):
a. unione delle due chiavi importate
b. unione delle due chiavi importate e di qualche attributo
dell’associazione
c. inserimento di un campo “contatore”

7. Per le gerarchia di entità è necessario collassare i figli sull’entità


padre, creando quindi un’unica tabella con:
a. tutti gli attributi del padre (compresa la chiave primaria);
b. tutti gli attributi dei figli
c. un campo “Tipo” che servirà per distinguere (seconda
un’apposita codifica) il tipo di “figlio” della gerarchia.

9. L’ attributo multiplo (es. Telefono (n) ) va convertito come se


fosse una associazione N:N tra l’entità di partenza e l’attributo
stesso. In questo caso è sufficiente creare una nuova tabella
contenente la chiave primaria dell’entità ed il nome dell’attributo
(entrambi i campi costituiranno la chiave primaria di questa
nuova tabella).
ES: PERSONA (CF, Cognome, Nome, DataNascita)
TELEFONI (CF, NUM_TELEFONO)

10. Le self-relation vengono trattate come le altre associazioni.


L’unico accorgimento è quello di utilizzare due diversi nomi per la
chiave primaria e quella importata (che a livello formale
corrispondono).
ES.
PERSONA (CF, Cognome, Nome)
AMICO_DI (CF, CF2)

Nella tabella AMICO_DI il campo


CF2 punterà al Codice Fiscale di
ogni amico della persona
identificata da CF.
Esercizio
La nonna vuole creare un database che contenga i suoi libri di
ricette (libro dei primi, dei secondi, dei dolci, dei gelati, ecc)
Ogni ricetta ha un nome, un metodo di preparazione, a quante
persone è riferita;
Per ogni ricetta sono indicati gli ingredienti e la quantità necessaria.
In sintesi potremmo disegnare il seguente schema E/R.

Schema delle relazioni (livello logico)

LIBRO (IDLIBRO, TITOLO)


RICETTA (IDRICETTA, TITOLO, QTA_PERSONE, PREPARAZIONE, IDLIBRO)
INGREDIENTE (IDINGREDIENTE, DESCRIZIONE, UNITA)
COMPOSIZIONE (IDINGREDIENTE, IDRICETTA, QUANTITA)
(notare che le due chiavi esterne formano una chiave primaria composta)
(solitamente le chiavi esterne vengono tratteggiate)
Esempio grafico delle tabelle (relazioni) così identificate

Potrebbero piacerti anche