LE BASI DI DATI - Istituto Paritario Michelangelo

LE BASI DI DATI
Seconda parte – La progettazione di database
Relazionali
LIVELLI DI ASTRAZIONE
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.
2
I 3 LIVELLI DI ASTRAZIONE:
Livello
concettuale
Livello logico
Livello fisico
3
LIVELLO CONCETTUALE – ANALISI DEI REQUISITI
La raccolta e l’analisi dei requisiti è la fase che
precede la progettazione concettuale.
I requisiti possono essere acquisiti attraverso le
seguenti fonti:
utenti (interviste, documentazione apposita)
documentazione esistente
modulistica
LIVELLO CONCETTUALE – ANALISI DEI REQUISITI
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 è competenti.
5
LA FAVOLA DEI CIECHI E L’ELEFANTE
6
LA FAVOLA DEI CIECHI E L’ELEFANTE
Sebbene tutti avessero parzialmente ragione,
ognuno di essi aveva colto solo un aspetto della
realtà e quindi erano tutti in torto.
Morale : La realtà è spesso più complessa di quella
che ognuno di noi, in base alla propria limitata
esperienza, si è rappresentata nella sua mente.
7
LIVELLO CONCETTUALE – ANALISI DEL PROBLEMA
Per queste considerazioni, la prima analisi consiste
nella ricerca, all'interno della descrizione del
problema, dei termini più 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.
8
LIVELLO CONCETTUALE – PROGETTAZIONE
CONCETTUALE
Al termine della fase di analisi e raccolta dei requisiti, si
passa alla progettazione concettuale.
Lo scopo della progettazione concettuale è quello di
rappresentare le specifiche informali in termini di una
descrizione formale e completa.
Il prodotto di questa fase si chiama “schema
concettuale” e fa riferimento ad un modello concettuale
di dati.
9
LIVELLO CONCETTUALE – PROGETTAZIONE
CONCETTUALE
I modelli concettuali ci consentono di descrivere
l’organizzazione dei dati ad un alto livello di astrazione.
Esistono diversi modelli concettuali, quelli che
attualmente sono maggiormente utilizzati sono :
1.
2.
Modello E-R (Entity-Relation)
Modello dei dati con linguaggio grafico UML
(diagramma delle classi)
10
LIVELLO CONCETTUALE – PROGETTAZIONE
CONCETTUALE
Il modello E-R è stato considerato per lungo tempo, il
modello più adatto per la rappresentazione grafica di un
progetto concettuale.
Principali costrutti:
Costrutti
Rappresentazione grafica
Entità
Associazione
Attributi
Entità con attributi
11
LIVELLO CONCETTUALE – PROGETTAZIONE
CONCETTUALE
L’UML (Unified Modeling Language) è un linguaggio
grafico per la modellazione di applicazioni software
basate sulla programmazione ad oggetti che, negli
ultimi anni, si è rapidamente affermato nell’ambito
dell’ingegneria software.
Si tratta di un formalismo molto ricco che consente di
rappresentare attraverso una serie di diagrammi, tutti
gli aspetti di un’applicazione software: dati, operazioni,
processi e architetture
12
LIVELLO CONCETTUALE – PROGETTAZIONE
CONCETTUALE
A causa del suo successo, UML è utilizzato in
alternativa al modello E-R, per la rappresentazione
concettuale di una base di dati. (In particolare, a tale
scopo viene utilizzato il diagramma delle classi)
Principali costrutti:
Costrutti
Rappresentazione grafica
Entità (o classe)
Associazione
Entità con attributi
13
LIVELLO CONCETTUALE – PROGETTAZIONE
CONCETTUALE
Un semplice esempio:
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).
14
LIVELLO CONCETTUALE – PROGETTAZIONE
CONCETTUALE
Soluzione del problema
(per ora vediamo solo il 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:
15
LIVELLO CONCETTUALE – PROGETTAZIONE
CONCETTUALE
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;
16
LIVELLO CONCETTUALE – PROGETTAZIONE
CONCETTUALE
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 concettuale
In questo livello sono state individuate due categorie di
argomenti e che saranno chiamate entità; ogni entità, a
seconda del modello scelto, è rappresentata da un preciso
simbolo (vedi costrutti delle pagine precedenti), qui ci
saranno due rettangoli, chiamati: classe e alunno
17
LIVELLO CONCETTUALE – PROGETTAZIONE
CONCETTUALE
N.B. : Nel livello concettuale i nomi delle categorie individuate
devono essere espresse al singolare.
All'interno del testo è sottinteso 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
18
LIVELLO CONCETTUALE – PROGETTAZIONE
CONCETTUALE
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 appartiene ad una sola (1) classe
ad ogni classe appartengono più (N) alunni
19
LIVELLO CONCETTUALE – PROGETTAZIONE
CONCETTUALE
Schema concettuale secondo il modello E-R:
Ad una classe appartengono 1 o n alunni, un alunno
appartiene ad una sola classe
20
LIVELLO CONCETTUALE – PROGETTAZIONE
CONCETTUALE
Schema concettuale secondo il modello di dati con UML:
Un alunno appartiene ad una sola classe, ad una classe
appartengono 1 o n alunni.
21
LIVELLO LOGICO
In questa fase si parte dallo schema concettuale 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.
22
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.
23