9. Schema logico e schema fisico - Istituto Paritario Michelangelo

LE BASI DI DATI
Seconda parte – La progettazione di database
Relazionali
SCHEMA LOGICO e SCHEMA FISICO
Costruzione delle tabelle
LA PROGETTAZIONE LOGICA
Lo scopo della fase di progettazione logica è quello di
produrre uno schema logico applicando le regole e i concetti del
modello concettuale che si è adottato.
(si utilizzano le regole di derivazione studiate nelle lezioni
precedenti).
Esempio di costruzione di un database
Si vuole creare un database bibliografico.
L’esigenza è quella di salvare le informazioni
sui libri. Un libro è scritto da uno o più autori
ed è pubblicato da una casa editrice.
2
SCHEMA CONCETTUALE (1° FASE)
Dall’analisi del problema si è ricavato il seguente schema
concettuale :
Si sono individuate le entità, le associazioni e gli attributi (i nomi
sono al singolare! )
3
SCHEMA LOGICO (2° FASE)
Dallo schema concettuale precedente, si è ottenuto il seguente schema
logico :
Autori(codice, Cognome, Nome, Indirizzo, Città, Cap)
CaseEditrici(codice, Nome, Città)
Libri(codice, titolo, tipo, prezzo, codiceCasaEditrice)
con ‘codiceCasaEditrice’ chiave esterna sul campo ‘codice’ della tabella ‘CaseEditrici’
AutoriLibri(codiceAutore, codiceLibro)
con ‘codiceAutore’ chiave esterna sul campo ‘codice’ della tabella ‘Autori’
con ‘codiceLibro’ chiave esterna sul campo ‘codice’ della tabella ‘Libri’
4
SCHEMA LOGICO (2° FASE)
Lo schema Logico dei dati definisce la struttura logica dei dati,
cioè il modo in cui le informazioni contenute negli archivi
vengono aggregate, indipendentemente dagli archivi fisici in cui
esse sono contenute.
Nel modello relazionale, un database è una collezione di
tabelle. Ogni tabella è definita come una relazione (fra i campi
che la costituiscono e che corrispondono alle colonne della
tabella).
Lo schema logico ottenuto al punto precedente è
costituito da un insieme di relazioni ognuna delle quali
corrisponde ad una tabella (dal punto di vista del DBMS )
5
SCHEMA LOGICO (2° FASE)
Quindi scrivere
Autori(codice, Cognome, Nome, Indirizzo, Città, Cap) (forma
testuale)
oppure creare la seguente tabella Autori
Codice(pk)
Cognome
Nome
Indirizzo
Città
Cap
6
sono due modi analoghi per rappresentare la stessa
relazione.
PROPRIETÀ DELLE TABELLE RELAZIONALI
Le tabelle relazionali hanno sei proprietà :
1.
2.
3.
4.
5.
6.
I valori sono atomici
I valori di una colonna appartengono al medesimo dominio
Ogni riga è univoca
La sequenza delle colonne non è significativa
La sequenza delle righe non è significativa
Ogni colonna deve avere un nome univoco
Vediamole brevemente….
7
PROPRIETÀ DELLE TABELLE RELAZIONALI
I valori sono atomici
Significa che le colonne non sono ulteriormente scomponibili.
Esempio : Il nome e il cognome di un autore nella tabella Autori non
possono essere raggruppati in un’unica colonna
Fanno
eccezione i
campi
‘Indirizzo’ e
‘Telefono’
Sbagliato!
Corretto
8
PROPRIETÀ DELLE TABELLE RELAZIONALI
I valori di una colonna appartengono al medesimo dominio
Questo significa che i valori di una colonna devono essere di uno stesso
tipo .
Ad esempio nella colonna ‘nome’ della tabella ‘Autori’ ci saranno solo
valori di tipo alfanumerici e non numerici o altri dati.
Ogni riga è univoca
Non possono esistere due righe identiche.
La sequenza delle colonne/righe non è significativa
L’ordine delle colonne o delle righe non è rilevante
Ogni colonna deve avere un nome univoco
All’interno di una tabella il nome di una colonna deve essere unico.
9
CHIAVE PRIMARIA E CHIAVE ESTERNA
Definizione – chiave primaria
Una chiave primaria è una colonna(1), o un insieme di
colonne(1) , che identificano univocamente una
riga nella tabella.
Definizione – chiave esterna
Una chiave esterna è una colonna(1), o un insieme di
colonne(1) , i cui valori sono gli stessi della chiave
primaria di un’altra tabella.
10
(1) O in modo equivalente un campo o un attributo
CHIAVE PRIMARIA E CHIAVE ESTERNA
La chiave esterna serve ad effettuare
l’associazione (o la relazione in termini non
matematici) fra due tabelle.
La relazione avviene tra due tabelle relazionali
confrontando i valori della chiave esterna di una
tabella con i corrispondenti valori della chiave
primaria dell’altra.
11
SCHEMA FISICO (3° FASE)
Popolare le tabelle
Una volta definite le tabelle è utile inserire dei dati di prova per
verificare se il progetto corrisponde alle specifiche richieste.
Esempio – Database bibliografico
Se si riprende l’esempio visto in precedenza, che riguarda
l’archiviazione dei dati relativi ai libri, agli autori e alle case
editrici e se si popolano le tabelle con alcuni dati di prova, si vede
come le chiavi delle tabelle relazionali vengano usate per
“navigare” dalla tabella Autori a Titoli, a CaseEditrici
12
13
VERIFICA DELLE REGOLE DI INTEGRITÀ E
NORMALIZZAZIONE (4° FASE)
Questo argomento sarà trattato nelle prossime lezioni…
14