Capitolo 2. Livello concettuale

Sommario

1. Livelli di astrazione
2. Entità
3. Associazioni
Classificazione per molteplicità
Rappresentazione
Classificazione per opzionalità e rappresentazione
4. Regole di lettura
5. Associazioni unarie o ricorsive
6. Attributi
Attributi di entità
Attributi di associazioni
Attributi composti
Attributo identificatore
Attributo identificatore composto
7. Altre regole ed esempi

Livelli di astrazione

Quando si deve affrontare un problema complesso come quello del progetto di un database è conveniente scomporre il procedimento in 3 fasi, ovvero affrontare il problema in 3 livelli di astrazione, dal più astratto al più concreto.

Livello concettuale

di solito il problema della realizzazione di un database viene sottoposto da parte di un cliente, il quale cerca di descrivere a parole i suoi bisogni (il progettista procede come in un'intervista); bisogna tenere conto che il problema può essere descritto in forma vaga, o su un argomento su cui non si è compententi. Per questo motivo la prima analisi consiste nella ricerca, all'interno della descrizione del problema, dei termini piu' significativi, con gli eventuali sinonimi, che indicano quali sono i contenuti del database che si vuole costruire. È utile scrivere questi termini e spiegare il loro significato, come in una specie di vocabolario. Al termine di questa fase viene prodotto uno schema chiamato Schema E-R che rappresenta in forma grafica i collegamenti tra gli oggetti astratti individuati. Alla base dello Schema E-R c'è un modello teorico basato su Entità (Entity), Associazioni (Relationship) e Attributi, che vedremo più avanti.

Livello logico

In questa fase si parte dallo schema E-R ottenuto nel livello precedente, per ottenere un altro schema, detto anche schema logico. Questo schema spiega concretamente come realizzare il vero e proprio database cioè gli archivi e i collegamenti tra gli archivi. A seconda di come si preferisca realizzare questi collegamenti, si può adottare un modello a scelta tra i seguenti: modello relazionale, modello gerarchico, modello reticolare e modello ad oggetti. Si vedrannno più avanti questi modelli, in particolare il modello logico relazionale e come esso realizza i collegamenti tra gli archivi.

Livello fisico

In questa fase il problema è individuare la forma migliore in cui salvare i dati che costituiscono gli archivi. Per fare ciò è necessario rispondere a domande come: dove verranno salvati i dati? Che struttura avranno i dati nei file? Che file system si utilizzerà? Quest'ultima fase di solito è influenzata dal DBMS sul quale è caduta la scelta, e dal file system usato, e non sarà trattata.

Esempio 2.1. Gli alunni e le classi

Un semplice esempio spesso può risultare più chiaro di tante complicate parole.

Testo del problema

Si vuole realizzare il progetto di un database per un'istituto di scuola superiore che vuole immagazzinare nel computer i dati relativi ai propri alunni e alle classi a cui appartengono (anno, sezione e indirizzo).

Soluzione del problema

  1. Livello concettuale
    1. Vocabolario dei termini

      Prima di tutto si crea un vocabolario dei termini significativi : il lettore è fortemente invitato a provare a leggere il testo, a sottolineare i termini che ritiene più significativi e a darne una brevissima descrizione:

      istituto

      la scuola che commissiona il progetto: poichè non si devono registrare informazioni sulla scuola, questo termine è irrilevante per il progetto; non è una categoria;

      alunno

      categoria che descrive tutti gli individui che sono iscritti a tale istituto, si può ipotizzare che possieda una matricola, oltre al nome e al cognome;

      classe

      categoria che descrive gruppi di alunni omogenei, ogni classe è individuata da un numero, una lettera e un indirizzo di studio. Esiste un particolare legame con la precedente categoria: un alunno può appartenere ad una sola classe.

    2. Schema E-R

      In questo livello sono state individuate due categorie di argomenti e che saranno chiamate entità; siccome nello schema E-R ogni entità è rappresentata da un rettangolo, qui ci saranno due rettangoli, chiamati: classe e alunno .

      Nota

      Nel livello concettuale i nomi delle categorie individuate sono preferibilmente al singolare.

      All'interno del testo è sott'inteso che le due categorie sono legate dal fatto che ogni alunno può appartenere ad una sola classe; il progettista deve rappresentare esplicitamente anche questo legame aggiungendo un'associazione che chiameremo appartenenza e che rappresenteremo con un rombo. Bisogna essere molto precisi e spiegare in che modo l'alunno è legato alla classe e viceversa. Per farlo è utile scrivere delle frasi, chiamate regole di lettura per ogni associazione e quindi anche per appartenenza , e cioè:

      • ogni alunno deve appartenere ad una sola (1) classe

      • ad ogni classe devono appartenere più (N) alunni

      Si tratta di un'associazione 1:N.

      Figura 2.1. Lo schema E-R de Gli alunni e le classi

      Lo schema E-R de

      I cerchi vuoti e pieni sono gli attributi, che verranno spiegati più avanti.

  2. Livello logico

    A questo livello di studio non possiamo ancora affrontare la discussione del livello logico.