15 . Il modello relazionale Vers . 6.2 – Gennaio 2023
Esempio : Supponiamo che un certo Dottore può compilare nessuna o più ricette e che viceversa una ricetta può essere compilata da nessuno o un solo Dottore ( essendo possibile che la segretaria le compili per lui )
Utilizzando il diagramma ER la situazione è la seguente
Cognome Nome
CodDott
Dottore
Compila 1 N
Compila E ’ Compilata
CodRic
Ricetta
Descrizione
Operando il mapping come visto si ha :
Dottore ( CodDott , Cognome , Nome )
Ricetta ( CodRic , Descrizione , CodDott )
Chiave primaria
Chiave primaria
Chiave esterna su relazione Dottore
R01 Ves D01 R02 Radiografia D02 R03 Sangue D03 R04 Urina NULL R05 Tiroide D02
Per mantenere la correlazione tra Dottore e Ricetta secondo il mapping dobbiamo aggiungere alla relazione Ricetta – quella lato N - la chiave esterna della relazione Dottore . La parzialità dell ’ associazione diretta “ Compila ” si esplica nel fatto che vi è il Dottore con CodDott = " D04 " che non ha compilato alcuna ricetta ( quindi non partecipa alla relazione ). La parzialità dell ’ associazione inversa “ E ’ Compilata ” si esplica nel fatto che vi è la Ricetta con CodRic = " R04 " che non è stata compilata da alcun dottore ( valore NULL della chiave esterna ) ( quindi non partecipa alla relazione ).
Per convenzione nella nuova relazione per gli attributi chiavi esterne è meglio utilizzare lo stesso nome ( eventualmente con l ' aggiunta di un progressivo numerico ) dell ’ attributo relativo alla chiave primaria .
N . B . NON DEVONO ESSERE IMPOSTI VINCOLI DI INTEGRITA ’ REFERENZIALI
In questo esempio si ha una inconsistenza dei dati se dalla relazione Dottore si cancella l ’ istanza relativa al dottore con codice " D01 ". Infatti in tal caso nella relazione Ricetta avremo ben tre ricette che farebbero riferimento ad un ’ istanza non più esistente all ’ interno del database .
Per assicurare l ’ integrità referenziale prima di cancellare una qualsiasi ennupla , occorre verificare che non vi siano ennuple in altre relazioni che facciano riferimento alla ennupla da cancellare .
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it ) Pag . 9