Livello concettuale |
Livelli di astrazione |
Quando si deve affrontare un problema complesso come quello del progetto di un database è utile scomporre il procedimento in 3 fasi, ovvero affrontare il problema in 3 livelli di astrazione, dal più astratto aù concreto.
- Livello concettuale:
- di solito il problema viene sottoposto da parte di un cliente, il quale cerca di descrivere a parole i suoi bisogni (come in un'intervista); bisogna tenere conto che il problema può essere descritto in forma vaga, o su un argomento su cui non siamo 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. E` 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 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, cioe' 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. Studieremo piu' 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 è realizzata dal DBMS, e dipende, oltre che dal DBMS che è stato scelto , anche dal file system usato, quindi non riguarda il programmatore.
|
Esempio |
Si vedrà ora un esempio poichè un semplice esempio 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
Livello Concettuale
Per iniziare il progetto, si inizia a fare un'analisi a livello concettuale. Prima di tutto si crea un vocabolario dei termini: siete fortemente invitati a provare da soli a leggere il testo, a sottolineare i termini che ritenete più significativi e a darne una brevissima descrizione:
Vocabolario (dei termini significativi):
istituto: la scuola che commissiona il progetto; poichè NON si devono registrare informazioni sulla scuola, questo termine è irrilevante; 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. NOTA: un alunno può appartenere ad una sola classe.
Schema E-R
Sono state individuate due categorie di argomenti che saranno oggetto del database (chiamate entità); siccome nello schema E-R ogni entità è rappresentata da un rettangolo, qui ci saranno due rettangoli, chiamati: classe e alunno. NOTA i nomi 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 e si deve rappresentare 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è:
- ad ogni classe devono appartenere più (N) alunni.
- ogni alunno deve appartenere ad una sola (1) classe
Si tratta di un'associazione 1:N.
I cerchi vuoti e pieni sono gli attributi, che verranno spiegati più avanti.
Livello Logico
A questo livello di studio non possiamo ancora affrontare la discussione del livello logico. |
Definizioni |
- Entità:
- (in inglese Entity) rappresenta una categoria di elementi; per esempio, gli elementi che appartengono ad un entità alunno, sono tutti gli alunni, ma in questo livello di studio non ci interessa individuare i singoli elementi, ma solo la loro categoria. Nel database tutti gli elementi appartenenti a quell'entità hanno delle caratteristiche in comune. Le caratteristiche in comune vengono chiamate attributi.
- Attributi:
- sono caratteristiche che descrivono gli elementi di un'entità; per esempio: ogni alunno avrà un nome e un cognome. Gli attributi assumono valori diversi su ogni elemento che fa parte di quella entità, mentre il nome degli attributi è lo stesso per tutti gli elementi dell'entità. Per esempio: ogni alunno avrà sempre un nome e un cognome, ma avranno valori sono diversi da quelli degli altri alunni. Ci sono diversi tipi di attributi che verranno analizzati più avanti.
- Associazione:
- (in inglese Relationship) descrive eventuali legami concettuali tra una, due o più entità. Per esempio esiste un legame tra la classe e l'alunno, come l'appartenenza. Le associazioni possono essere classificate in base a quanti elementi di un'entità sono coinvolti nel legame stabilito, ma tali aspetti verranno approfonditi più avanti.
- Schema E-R:
- Abbreviazione di Entity-Relationship , cioè entità-associazione. In questo schema viene riassunto tutto il lavoro fatto nella fase di progettazione a livello concettuale: le entità sono rappresentate come rettangoli, gli attributi come cerchi, le associazioni come rombi. esempio di Schema E-R

|
|