15 . Il modello relazionale Vers . 6.2 – Gennaio 2023
Esempio : Supponiamo che un certo fornitore possa fornire uno o più articoli ( in date e quantità differenti ) e che viceversa un certo articolo possa essere fornito da uno o più fornitori ( in date e quantità differenti )
La situazione descritta può essere schematizzata utilizzando il seguente diagramma ER :
Indirizzo PartitaIVA |
CodForn
Fornitore
|
N
Fornisce
|
Fornisce |
N
E ’ Fornito
|
CodArt
Articolo
|
Descrizione Prezzo |
DataForn
Qta
N . B . Operando il mapping SENZA GESTIONE DELLO STORICO come visto finora si avrebbe la situazione già illustrata in precedenza :
Fornitore ( CodForn , Indirizzo , PartitaIVA )
Chiave primaria
F03 Via Po , 5 001234 F07 Via Bari , 5 001345 F16 Via Loi , 1 001333
Articolo ( CodArt , Descrizione , Prezzo )
Fornisce ( CodForn1 , CodArt1 , DataForn , Qta )
Chiave primaria
|
|
Prezzo |
A01 |
Batteria |
100,00 |
A04 |
Antenna |
75,00 |
A12 |
Radiatore |
56,00 |
|
|
|
|
|
|
F03 |
A01 |
01-01-2019 |
10 |
|
F03 |
A04 |
11-02-2019 |
25 |
Chiavi esterne |
F16 F03 |
A04 A01 |
13-02-2019 14-04-2019 |
20 30 |
!!!! ERRORE !!!
Il mapping relazionale applicato in precedenza ( ossia SENZA GESTIONE DELLO STORICO ) renderebbe impossibile l ’ evento ( richiesto dal diagramma ER ) che un fornitore ( chiave F03 ) fornisca uno stesso prodotto ( chiave A01 ) in una data differente ed in quantità differenti dalle consegne già effettuate senza incorrere in una violazione del vincolo di chiave primaria ( chiave primaria duplicata )
Quindi per mantenere la correlazione tra Fornitore ed Articolo gestendo lo “ storico ” delle consegne effettuate , la nuova relazione non potrà usare le chiavi esterne alle due relazioni Fornitore ed Articolo per costruire la propria chiave primaria .
Queste ultime ovviamente devono comunque obbligatoriamente essere presenti nella nuova relazione da creare svolgendo il proprio ruolo ( ossia avere i propri valori presenti in ciascuna delle due relazioni di partenza ) ma occorrerà inserire in essa una chiave primaria “ indipendente ” da esse per distinguere le ennuple .
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it ) Pag . 15