domanda

domanda

di Carlo Batini -
Numero di risposte: 0

ricevo

Buonasera prof. Batini.

Le scrivo per chiederle un chiarimento in merito alla traduzione degli identificatori esterni nel modello logico relazionale. Il mio dubbio è il seguente: si supponga di avere 3 entità, ad esempio CITTA', LOCALE e BUTTAFUORI, dove CITTA' è in relazione 1 a molti con LOCALE, che a sua volta è in relazione 1 a molti con BUTTAFUORI. Inoltre, CITTA' ha un suo id univoco, LOCALE ha un codice che è unico per città, mentre BUTTAFUORI ha un codice univoco per locale. Nel diagramma ER quindi sia LOCALE che BUTTAFUORI dovrebbero avere un identificatore esterno, che verrebbe tradotto come nel modello logico? La mia soluzione sarebbe:

città(ID, ...)
locale(ID, città, ...)
buttafuori(ID, locale, città, ...)

Mi sa dire se è corretta? 
Inoltre, se si modificassero i requisiti supponendo che un buttafuori possa lavorare in più locali all'interno della stessa città, modificando quindi la relazione da 1-molti a molti-molti, avrebbe ancora senso considerare un identificatore esterno in buttafuori? In caso negativo, sarebbe essenziale ora per un buttafuori avere un codice univoco che non dipenda più da nessun'altra entità, o si potrebbe aggirare il problema in qualche modo?

Grazie per l'attenzione, cordiali saluti

rispondo

anzitutto complimento per l'esempio molto originale, a me non sarebbe mai venuto in mente un esempio con buttafuori, non la sto assolutamente criticando, anzi, ci vedo una qualche ironia o estemporaneità

detto questo passiamo alle sue domande

1. Mi sa dire se è corretta?

certo che è corretta, ed è un ottimo esempio in cui la metodologia per passi che ho definito nella prima dellepresentazioni su progettazione logica viene applicata "in cascata" alle relaizoni che rappresentano città, locale e buttafuori, per cui la chiave di locale va arricchita con la chiave di città e la chiave di buttafuori va arricchita con la chiave di locale.  una sola notazione tra l'estetico e il pignolo: i tre id delle tre relaizoni hanno significati diversi, d'accordo? per cui si potrebbe dargli nomi un pò ridondati ma diversi, tipo idcittà, ecc.


2. Inoltre, se si modificassero i requisiti supponendo che un buttafuori possa lavorare in più locali all'interno della stessa città, modificando quindi la relazione da 1-molti a molti-molti, avrebbe ancora senso considerare un identificatore esterno in buttafuori?

assolutamente no, proprio perchè ora id-locale aggiunto a id-buttafuori non lo identifica più in virtù della molti a molti.

3. In caso negativo, sarebbe essenziale ora per un buttafuori avere un codice univoco che non dipenda più da nessun'altra entità, o si potrebbe aggirare il problema in qualche modo?

questa domanda è la più anomala tra le tre, anche per come viene espressa. la progettaizone concettuale e la logica non sonofartte per aggirare problemi, (so bene che non era sua intenzione aggiugnere una connotazione "furbesca") ma pre rappresentare la realtà nel modo più fedele possibile, compatibilmente con
a. i requisiti
b. la ricchezza espressiva  del modello di rappresentazione
c. chi paga il progetto (può sembrarle strano, ma veda più avanti)

no, non è essenziale, lei può definire un codice univoco per tutti i buttafuori della città, caso 1, oppure un codice univoco per tutti i buttafuori d'italia, caso b. nel primo caso, lei può identificare univocamente i buttrafuori nell'ambito della città, con un codice progressivo nell'ambito della città, il buttafuori 12 di milano.
oppure può definire un codice univco in italia, utilizzando un identificastore che esiste da prima che lei è nato, il codice fiscale. oppure se esiste un ordine nazionale dei buttafuori, una matricola nazionale associata ai buttafuori, oppure se esistono ordini di buttafuori regione, una matricola nell'ambito della regione.

dipende al solito dai requisiti, e dal committente, cioè da chi paga il progetto. lei può sottoporre tutte queste alternative e poi lui decide.

nella realtà le cose non sono così semplici, perchè la scelta degl iidentificatori, anche se nel modello ER che viene usato solo nella progettaizone concettuale, può tenere conto con che cosa ci si fa con la base di dati. se per esempio paga l'ordine dei buttafuori, allora viene naturale consigliare loro di istituire una anagrafe nazionale dei buttafuori (vedi di nuovo il ragionamento sopra), se pagano i comuni, insomma le città dove i buttafuori operano, e che vogliono tenere il fenomeno sotto controllo, allora conviene un identificatore tipo codice fiscale senza tanti problemi di status. . insomma la natura delle relationship influenza la scelta degli identificatori di entità, ma non solo quella.

carlo batini