Capitolo 3. Livello logico

Sommario

1. Le relazioni matematiche
2. Regola per entità
3. Regola per attributi
4. Regola per attributi identificatori ed esempi
5. Regola per associazioni uno a molti
6. Regola per associazioni molti a molti
7. Esercizi di comprensione
8. Regola per associazioni uno ad uno
Regola per associazioni non obbligatorie
Regola per associazioni parzialmente obbligatorie
Regola per associazioni obbligatorie
9. Fase di testing
10. Convenzioni
11. Convenzioni improprie in alcuni DBMS

Le relazioni matematiche

In questo capitolo si analizzeranno le più importanti «regole di derivazione». Le «Regole di derivazione» servono per passare dalla fase di progettazione del «livello concettuale» a quella del «livello logico», cioè per trasformare lo schema E-R nello schema delle relazioni. Se non fosse ancora abbastanza chiaro, si consiglia di rivedere il significato dei termini Livelli di astrazione e Associazioni, da non confondere con il termine «Relazioni».

Prima di passare alle vere e proprie regole, dobbiamo precisare quale modello logico verrà adottato tra quello relazionale, reticolare, gerarchico ed orientato ad oggetti; ovviamente, poichè lo scopo di questo corso è quello di affrontare il progetto di database relazionali, sarà adottato il modello logico relazionale. Convinti del fatto che prima sia meglio vedere qualche esempio e poi leggere le definizioni matematiche, tratteremo lo studio teorico del «modello relazionale» nel prossimo capitolo, ma nulla vieta al lettore di studiare i due argomenti nell'ordine che preferisce.

Il modello logico «relazionale» si occupa dello studio delle «Relazioni matematiche». A questo livello di studio dovrebbe essere sufficiente sapere che una «relazione matematica», appartenente al livello logico, può essere rappresentata graficamente, nel livello fisico, come una «tabella».

Avvertimento

Quella appena data non è una definizione di relazione: il concetto di «relazione» e quello di «tabella» sono distinti, come lo sono quelli di livello logico e fisico. Molti libri di testo, purtroppo, non li distinguono.

Con la dovuta cautela, si può, descrivendo come è fatta una tabella, descrive anche come è fatta la corrispondente relazione che l'ha generata. Una tabella è divisa in righe e in colonne: rispettando la terminologia usata negli archivi elettronici, le righe sono chiamate anche «record» e le colonne sono chiamate anche «campi». I record (righe) di una tabella corrispondono agli «elementi della relazione», mentre i campi (colonne) agli «attributi della relazione».

Nota

Non confondere il nuovo termine «attributi di relazione» con quello di Attributi di entità.

Tabella 3.1. Esempio di tabella (vuota e senza nome)

attributo1 attributo2 attributo3 attributo4
... ... ... ...
... ... ... ...

Per rappresentare una relazione sarebbe troppo faticoso disegnare ogni volta un'intera tabella (vuota), per questo si usa spesso la seguente convenzione alternativa o «rappresentazione sintetica»:

Nome_della_relazione (attributo1, attributo2, attributo3, attributo4)

Si faccia attenzione a non fare confusione con i nuovi termini, che possiedono un significato importante e che evidenziano come, passando da un livello di progettazione all'altro, alcuni elementi cambino di ruolo e anche di nome. Per aiutare il lettore viene fornita una tabella riassuntiva che raggruppa i termini per livello di astrazione e indica a quale livello di progettazione ci si riferisca quando se ne usa uno in particolare.

Avvertimento

La tabella va letta esclusivamene seguendo il verso delle colonne, leggendola secondo le righe si possono ottenere informazioni sbagliate.

Tabella 3.2. Elenco dei termini usati nei diversi livelli di astrazione

Livello concettuale Livello logico Livello fisico
entità relazione tabella
attributo identific. chiave primaria campo chiave primaria
attributo (di entità) chiave esterna campo chiave esterna
associazione attributo (di relazione) record
elemento di relazione