BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo...
Transcript of BASI DATI: modello relazionale - sira.diei.unipg.it Corso di Laurea... · Dallo schema E/R allo...
BASI DATI: modello relazionale
INFORMATICA
Lezione III - Informatica 1 15/04/2013
Il modello relazionale
Il modello relazionale fu introdotto da Codd
(1970) e si basa su una semplice ed uniforme
struttura dati chiamata relazione, ed ha una
solida base teorica
La relazione del modello relazionale NON è la
relazione degli schemi E/R
Si introduce tale modello in quanto la maggior
parte dei DBMS sono relazionali (e.g. Oracle,
Access, MySQL)
15/04/2013 Lezione III - Informatica 2
Concetti fondamentali
15/04/2013 Lezione III - Informatica 3
Il modello relazionale rappresenta una base di dati come un insieme di
relazioni
Informalmente,
una relazione è (praticamente) una tabella
ciascuna riga della relazione è detta tupla
l’intestazione di una colonna della tabella è chiamata attributo
il tipo di dato che mi specifica ciò che può apparire in ciascuna colonna è detto
dominio
Per semplicità (e per non fare confusione) useremo il termine (improprio)
tabella al posto del termine (corretto) relazione
Algoritmo di conversione E/R in
relazionale
15/04/2013 Lezione III - Informatica 5
Algoritmo per realizzare lo schema relazionale a partire dallo
schema E/R:
1. Per ogni entità E dello schema E/R, crea una
relazione R che include tutti gli attributi di E
Algoritmo di conversione E/R in
relazionale
15/04/2013 Lezione III - Informatica 6
2. Per ogni relazione 1:1 dello schema E/R esistente
fra le due entità E1 ed E2, trasforma le due
relazioni R1 e R2 (di E1 ed E2) in una unica
relazione R12 unendone tutti gli attributi
preferendo una chiave primaria sull’altra
Algoritmo di conversione E/R in
relazionale
15/04/2013 Lezione III - Informatica 7
3. Per ogni relazione 1:n dello schema E/R esistente fra le
due entità E1 ed E2, aggiungi la chiave primaria della
relazione E2 come attributo nella relazione E1 (chiave
esterna)
Algoritmo di conversione E/R in
relazionale
15/04/2013 Lezione III - Informatica 8
4. Per ogni relazione n:m dello schema E/R, crea
una relazione R i cui attributi sono le chiavi
primarie dell’entità in relazione (chiavi
esterne)
Lo schema relazionale del questionario
Sulla base del passo (1) del precedente algoritmo, ottengo le due relazioni
(notate l’uso del plurale)
1. studenti(matricola, sesso, eta)
2. questionari (r1, r2, r3, r4, r5, r6, r7, r8, r9)
Il passo (2) ci impone – siccome le due entità sono in relazione 1:1 – di
unirle in una unica relazione
1. questionari_studenti(matricola, sesso, eta, r1, r2, r3, r4, r5, r6, r7, r8, r9)
15/04/2013 Lezione III - Informatica 9
Lo schema relazionale dello studio
ambientale
Passo (1)
1. patologie(codice,DRG, diagnosi principale)
2. pazienti(numero, eta, sesso)
3. sedi_elettorali (numero, distanza, votanti)
15/04/2013 Lezione III - Informatica 10
Lo schema relazionale dello studio
ambientale
Passo (2) : Non c’è nessuna relazione di tipo 1:1
15/04/2013 Lezione III - Informatica 11
Lo schema relazionale dello studio
ambientale
Passo (3) : C’è una unica relazione di tipo 1:n (e.g. risiede)
1. pazienti(numero, eta, sesso, numero_sede_elettorale)
15/04/2013 Lezione III - Informatica 12
Lo schema relazionale dello studio
ambientale
Passo (4) : C’è una unica relazione di tipo n:m (e.g. soffre)
1. soffre(codice patologia, numero_paziente)
15/04/2013 Lezione III - Informatica 13
Lo schema relazionale dello studio
ambientale
Si ottiene quindi
1. patologie(codice,DRG, diagnosi principale)
2. sedi_elettorali (numero, distanza, votanti)
3. pazienti(numero, età, sesso, numero_sede_elettorale)
4. soffre(codice patologia, numero paziente)
15/04/2013 Lezione III - Informatica 14
Dallo schema E/R allo schema
relazionale
15/04/2013 Lezione III - Informatica 15
A partire dallo schema E/R, è possibile costruire la base di dati sotto forma di tabelle, utilizzando un algoritmo «grafico»
Dallo schema E/R, si creano gruppi di entità e/o relazioni come segue:
A partire da una entità o relazione dello schema E/R, si aggregano nel gruppo tutte le relazioni/entità legate con cardinalità unaria massima
Ogni entità o relazione non aggregata deve diventare un nuovo gruppo
I gruppi individuati corrispondono alle tabelle da creare
Gli attributi di ciascuna tabella variano a seconda del «contenuto» del gruppo
Algoritmo «grafico» (1)
Partiamo da una qualunque entità e incorporiamo le
relazioni/entità quando la cardinalità è di tipo (1,1)
15/04/2013 Lezione III - Informatica 16
Algoritmo «grafico» (2)
Anche l’altra entità e la relazione stessa è stata
“inglobata” ottenendo un’unica relazione
1. questionari_studenti(matricola, sesso, eta, r1, r2, r3, r4,
r5, r6, r7, r8, r9)
15/04/2013 Lezione III - Informatica 17
Algoritmo «grafico» (3)
15/04/2013 Lezione III - Informatica 18
Per completare questo passo, è inoltre
importante specificare il tipo di dato che verrà
usato per memorizzare le istanze dei vari
attributi
questionari_studenti(matricola; sesso; eta; r1;
r2; r3; r4; r5; r6; r7; r8; r9)
matricola: int
sesso: char(1)
eta: int
r1 ... r9: int
Algoritmo «grafico»: analisi geografica
Partiamo dall’entità «paziente» e procediamo con le
relazioni...
15/04/2013 Lezione III - Informatica 19
Algoritmo «grafico» analisi geografica
La relazione «risiede» è stata aggregata all’entità
«paziente» in un gruppo 15/04/2013 Lezione III - Informatica 20
Primo blocco
Entità patologia
Relazione patologie(codice, drg, diagnosi_principale)
15/04/2013 Lezione III - Informatica 21
Secondo blocco
Entità sede_elettorale
Relazione: sedi_elettorali (numero, distanza, votanti)
15/04/2013 Lezione III - Informatica 22
Quarto blocco
Relazione soffre
soffre(numero_paziente,codice_patologia)
15/04/2013 Lezione III - Informatica 23
Conversioni delle entità singole
Per le entità singole patologia e sede elettorale, si creano due relazioni
1. patologie(codice, drg, diagnosi principale)
2. sedi_elettorali (numero, distanza, votanti)
15/04/2013 Lezione III - Informatica 24
Conversioni dei gruppi
Per l’entità paziente e la relazione risiede, si crea una
relazione
1. pazienti(numero, sesso, eta, numero_sede_elettorale)
dove numero_sede_elettorale è una chiave esterna 15/04/2013 Lezione III - Informatica 25
Conversioni delle relazioni singole
Per la relazione singola soffre, si crea una relazione
1. soffre(codice patologia, numero paziente) dove la coppia_codice
patologia e numero_paziente è la chiave primaria
15/04/2013 Lezione III - Informatica 26
Lo schema relazionale
15/04/2013 Lezione III - Informatica 27
Abbiamo identificato quindi quattro tabelle:
1. patologie(codice; drg; diagnosi principale) codice: int
drg: char(3)
diagnosi_principale: char(50)
2. sedi_elettorali (numero; distanza; votanti) numero: int
distanza: float
votanti: int
3. pazienti(numero; sesso; eta; numero_sede_elettorale) numero: int
sesso: char(1)
eta: int
numero_sede_elettorale: int (stesso tipo di sedi_elettorali.numero)
4. soffre(codice patologia; numero paziente) codice patologia: int (stesso tipo di patologie.codice)
numero paziente: int (stesso tipo di pazienti.numero)
Lo schema relazionale
Abbiamo identificato quindi quattro relazioni:
1. patologie(codice, drg, diagnosi principale)
2. sedi_elettorali (numero, distanza, votanti)
3. soffre(codice patologia, numero paziente)
4. pazienti(numero, sesso, eta, numero sede elettorale)
Sono ovviamente le stesse che abbiamo trovato
utilizzando l’algoritmo non grafico.
15/04/2013 Lezione III - Informatica 28
Esercizio
15/04/2013 Lezione III - Informatica 29
Si progetti lo schema Entità-Relazione e lo schema relazionale di una base di dati in cui si vogliono memorizzare le seguenti informazioni relative ad un archivio di informazioni su campionati:
un insieme di squadre, ove per ciascun anno siano individuati i giocatori in organico e l'allenatore;
un insieme di partite, con la data, l'arbitro, le squadra ospitante e quella ospitata.
le partite in cui hanno giocato i singoli giocatori, i goal realizzati, le ammonizioni e le espulsioni accumulate, le giornate di squalifica
dei giocatori si vogliono registrare gli infortuni subiti durante le partite, il tipo di infortunio e il tempo di fermo a seguito dell’infortunio stesso