Corso di Informatica
(Basi di Dati)
Lezione 4 (9 gennaio 2009)
Modello Relazionale: concetto di relazione,
schema e istanza
Da:
Atzeni, Ceri, Paraboschi, Torlone - Basi di Dati
Lucidi del Corso di Basi di Dati 1, Prof. Carlo Batini, Laurea in Informatica,
AA 2007-2008
1
Un modello logico dei
dati...
… è un insieme di strutture
utilizzabili per descrivere un
insieme di dati che a loro volta
descrivono una realtà di interesse.
Il modello logico attualmente più
diffuso per i DBMS è il Modello
Relazionale proposto nel 1970 da E.
F. Codd.
2
Un modello logico dei
dati...
… A questo punto si vedrà come i
dati relativi ad una realtà di
interesse, che è stata descritta
concettualmente tramite il modello
E-R, possano essere organizzati
secondo il modello (logico)
relazionale.
3
Relazione e tabella
Il modello relazionale si basa sui due
concetti fondamentali di:
 relazione, inteso come concetto
proveniente dalla teoria degli insiemi
 tabella, concetto semplice e
intuitivo
che sono però facilmente riconducibili
l’uno all’altro in quanto una relazione è
rappresentabile in forma tabellare.
4
Una precisazione
Il termine relazione viene usato in
questo corso secondo tre accezioni
differenti:
 relazione intesa come legame logico
tra entità (modello E-R)
 relazione matematica (teoria degli
insiemi)
 relazione nel modello relazionale
(proveniente dalla teoria degli insiemi)
5
Relazione matematica
Iniziamo con la definizione di
prodotto cartesiano di due insiemi
D1 e D2:
dati due insiemi D1 e D2, il prodotto
cartesiano D1xD2 è l’insieme di tutte le
coppie (v1,v2) tali che v1 è un elemento di
D1 e v2 è un elemento di D2.
6
Relazione matematica
Ad esempio se D1={1,2,4} e D2={a,b},
il prodotto cartesiano D1xD2 è
l’insieme delle 3x2=6 coppie:
{(1,a), (1,b), (2,a), (2,b), (4,a), (4,b)}
7
Relazione matematica
Una relazione matematica su due
insiemi D1 e D2 (chiamati domini
della relazione) è un sottoinsieme r
del prodotto cartesiano D1xD2.
Ad esempio dati i due insiemi D1={1,2,4} e
D2={a,b}, una possibile relazione
matematica sui domini D1 e D2 è r={(1,a),
(1,b), (4,b)}, in cui si specifica il legame
tra 1 e a, tra 1 e b, tra 4 e b.
8
Relazione matematica
Il prodotto cartesiano e la relazione
matematica degli esempi precedenti
possono anche essere rappresentati in
forma tabellare:
D1xD2
1
1
2
2
a
b
a
b
4
4
a
b
r
1
1
4
a
b
b
9
Relazione matematica
In generale, dati n insiemi D1, D2, …, Dn (anche
non distinti) il prodotto cartesiano
D1xD2x…xDn è l’insieme di tutte le n-ple (o
ennuple) (v1,v2,…,vn) tali che vi è un elemento di
Di per ogni i da 1 a n.
Una relazione matematica sui domini D1, D2, …,
Dn è un sottoinsieme r del prodotto cartesiano
D1xD2x…xDn. Il numero n è chiamato grado
della relazione (e del prodotto cartesiano), il
numero di n-ple che compongono la relazione r
è chiamato cardinalità della relazione.
10
Relazione matematica
Quindi:
 una relazione matematica è un insieme
di n-ple al loro interno ordinate (v1
appartiene a D1, v2 appartiene a D2, …, vn
appartiene a Dn)
 una relazione matematica è un insieme
e pertanto:
 non esiste ordinamento tra le
diverse n-ple
 le n-ple sono tutte distinte
11
Relazione matematica
Esempio di relazione matematica
rappresentata in forma tabellare:
Juve
Lazio
Lazio
Milan
3
0
1
2
Juve
Roma
Roma
Milan
0
0
2
1
I domini sono 4 (grado della relazione):
D1: insieme di tutte le stringhe (lo chiamiamo STRING)
D2: insieme di tutte le stringhe (lo chiamiamo STRING)
D3: insieme degli interi >= 0 (lo chiamiamo INT)
D4: insieme degli interi >= 0 (lo chiamiamo INT)
12
Relazione matematica
… Nell’esempio precedente si ha una
relazione matematica con 4 n-ple (cardinalità
della relazione). Si noti però che ciascuno
dei due domini STRING ha un ruolo diverso
che dipende dalla sua posizione nella
relazione. Il primo fa riferimento alla
squadra che gioca in casa e il secondo fa
riferimento alla squadra che gioca fuori
casa. Allo stesso modo per i due domini INT.
Il primo è il punteggio realizzato dalla
13
squadra che gioca in casa, mentre il…
Relazione matematica
… secondo è il punteggio realizzato dalla
squadra che gioca fuori casa. La struttura di
una relazione matematica è dunque
posizionale. Nelle Basi di Dati relazionali si
vogliono organizzare i dati in relazioni che
però non abbiano una struttura posizionale.
Cosa si può fare?
Si può associare a ciascun dominio della
relazione matematica un attributo (un nome)
che specifica il ruolo che il dominio ricopre.
14
Relazione matematica
… Ad esempio nella relazione matematica
dell’esempio sulle squadre si può associare:
 SquadraCasa al primo dominio STRING
 SquadraOspite al secondo dominio
STRING
 RetiCasa al primo dominio INT
 RetiOspite al secondo dominio INT
e nella rappresentazione tabellare si
aggiungono gli attributi come intestazione
delle colonne.
15
Relazione matematica
Esempio di relazione matematica
rappresentata in forma tabellare con
attributi dei domini:
SquadraCasa
SquadraOspite
Juve
Lazio
Juve
Lazio
Milan
Roma
3
0
0
1
2
2
Roma
Milan
0
1
RetiCasa RetiOspite
16
Relazione matematica
Si ottiene dunque una struttura
relazionale non posizionale. Modificando
quindi l’ordine delle colonne il significato
dell’informazione contenuta non cambia
SquadraOspite
SquadraCasa
Lazio
Milan
Juve
Lazio
1
2
3
0
Roma
Milan
Juve
Roma
2
1
0
0
RetiOspite RetiCasa
17
Relazione del modello
relazionale
Una relazione (o tabella) nel modello
relazionale è una relazione matematica in
cui:
 i valori di ogni colonna (corrispondente
a un attributo) sono fra loro omogenei
(appartengono allo stesso dominio)
 le righe (n-ple o tuple) sono diverse tra
loro
 le intestazioni delle colonne (attributi)
sono diverse tra loro
18
Relazione del modello
relazionale
...
 l’ordinamento tra le righe è irrilevante
 l’ordinamento tra le colonne è
irrilevante
Una Base di Dati relazionale è costituita
da più relazioni (tabelle) le cui tuple (n-ple
o righe) contengono valori comuni al fine di
stabilire corrispondenze.
19
Esempio di Base di Dati
relazionale
Si consideri ad esempio una Base di Dati che
organizza i dati relativi ad un’università
descritta dal seguente semplice modello E-R:
Matricola
Cognome
Studente
Nome
(0,N)
Data di nascita
Voto
Esame
Codice
(0,N)
Titolo
Corso
Docente
20
Esempio di Base di Dati
relazionale
…Essa prevede:
 una relazione (o tabella) che organizza i
dati relativi all’entità Studente avente
attributi Matricola, Cognome, Nome,
DataNascita
 una relazione (o tabella) che organizza
i dati relativi all’entità Corso avente
attributi Codice, Titolo, Docente
 una relazione (o tabella) che organizza i
dati relativi alla relationship Esame...
21
Esempio di Base di Dati
relazionale
…avente attributi CodiceCorso, Voto,
MatricolaStudente
Si noti che nella relazione (o tabella) che
si riferisce alla relationship Esame, gli
attributi CodiceCorso e
MatricolaStudente permettono di
tradurre il legame logico esistente tra le
due entità Studente e Corso.
22
Esempio di Base di Dati
relazionale
Esempio di tabella relativa all’entità
Studente.
Studenti
Matricola
Cognome
Nome
DataNascita
276545
485745
200768
Rossi
Neri
Verdi
Maria
Anna
Fabio
25/11/1971
23/04/1972
587614
Rossi
Luca
10/10/1971
12/02/1972
23
Esempio di Base di Dati
relazionale
Esempio di tabella relativa all’entità Corso
Corsi
Codice
Titolo
Docente
01
03
04
Analisi
Chimica
Chimica
Giani
Melli
Belli
24
Esempio di Base di Dati
relazionale
Esempio di tabella relativa alla relationship
Esame
Esami
MatricolaStudente
Voto
CodiceCorso
276545
276545
200768
28
27
24
01
04
04
25
Esempio di Base di Dati
relazionale
Studenti
Matricola
Cognome
Nome
DataNascita
276545
Rossi
Maria
25/11/1971
485745
Neri
Anna
23/04/1972
200768
Verdi
Fabio
12/02/1972
587614
Rossi
Luca
10/10/1971
Esami
MatricolaStudente
276545
276545
200768
Corsi
Codice
01
03
04
Voto
28
27
24
Titolo
Analisi
Chimica
Chimica
CodiceCorso
01
04
04
Docente
Giani
Melli
Belli
26
Definizioni relative al
modello relazionale
Uno schema di relazione è un nome R con un
insieme di attributi X={A1,A2, …,An}:
R(X)=R(A1,A2,…,An)
Ad esempio lo schema della relazione (o
tabella) che organizza i dati degli studenti
nell’esempio precedente è:
Studenti(Matricola,Cognome,Nome,DataNascita)
se si decide di nominare tale tabella
Studenti. A ciascun attributo Ai è associato
27
un dominio.
Definizioni relative al
modello relazionale
Lo schema della tabella Studenti è
evidenziato in rosso
Studenti
Matricola
Cognome
Nome
DataNascita
276545
485745
200768
Rossi
Neri
Verdi
Maria
Anna
Fabio
25/11/1971
23/04/1972
587614
Rossi
Luca
10/10/1971
12/02/1972
28
Definizioni relative al
modello relazionale
Uno schema di base di dati è un insieme di
schemi di relazione:
{R(X1),R(X2),…,R(Xm)}
Ad esempio lo schema della base di dati
nell’esempio precedente è:
{Studenti(Matricola,Cognome,Nome,DataNascita
),Corsi(Codice,Titolo,Docente),Esami(MatricolaS
tudente,Voto,CodiceCorso)}
se si decide di nominare le tabelle con i nomi
Studenti, Corsi ed Esami.
29
Definizioni relative al
modello relazionale
Lo schema della Base di Dati precedente è
evidenziato in rosso
Matricola
Cognome
Nome
DataNascita
276545
Rossi
Maria
25/11/1971
485745
Neri
Anna
23/04/1972
200768
Verdi
Fabio
12/02/1972
587614
Rossi
Luca
10/10/1971
MatricolaStudente
276545
276545
200768
Codice
01
03
04
Voto
28
27
24
Titolo
Analisi
Chimica
Chimica
CodiceCorso
01
04
04
Docente
Giani
Melli
Belli
30
Definizioni relative al
modello relazionale
Una ennupla (o n-pla, o tupla) su un insieme X
di n attributi è una funzione t che associa a
ciascun attributo A in X un valore
appartenente al dominio di A.
Data una ennupla t sull’insieme X di attributi
e un attributo A di X, si indichi con t[A] il
valore che l’attributo A assume in t.
Data una ennupla t sull’insieme X di attributi
e un sottoinsieme Y di X, si indichi con t[Y]
l’insieme che gli attributi di Y assumono in t.
31
Definizioni relative al
modello relazionale
Ad esempio se X={Codice,Titolo,Docente} è
l’insieme degli attributi della tabella Corsi,
indicando con t la ennupla (01,Analisi,Giani)
su X, si ha t[Codice] è 01 e
t[Codice,Docente] è (01, Giani).
32
Definizioni relative al
modello relazionale
Esempio di ennupla per la tabella Corsi
Corsi
Codice
Titolo
Docente
01
03
04
Analisi
Chimica
Chimica
Giani
Melli
Belli
ennupla
33
Definizioni relative al
modello relazionale
Un’istanza di relazione su di uno schema
R(X) è un insieme di ennuple su X
Ad esempio un’istanza della relazione Studenti che
organizza i dati degli studenti nell’esempio
precedente è evidenziata in rosso
Studenti
Matricola
Cognome
Nome
DataNascita
276545
Rossi
Maria
25/11/1971
485745
200768
587614
Neri
Verdi
Rossi
Anna
Fabio
Luca
23/04/1972
12/02/1972
10/10/1971
34
Definizioni relative al
modello relazionale
Un’istanza di Base di Dati su di uno schema
{R(X1),R(X2),…,R(Xm)} è un insieme di istanze
di relazione r1, r2, …, rm, dove ri (per i da 1 a
m) è un’istanza di relazione sullo schema
R(Xi)
35
Definizioni relative al
modello relazionale
L’istanza della Base di Dati precedente è
evidenziato in rosso
Matricola
Cognome
Nome
DataNascita
276545
Rossi
Maria
25/11/1971
485745
Neri
Anna
23/04/1972
200768
Verdi
Fabio
12/02/1972
587614
Rossi
Luca
10/10/1971
MatricolaStudente
276545
276545
200768
Codice
01
03
04
Voto
28
27
24
Titolo
Analisi
Chimica
Chimica
CodiceCorso
01
04
04
Docente
Giani
Melli
Belli
36
Definizioni relative al
modello relazionale
In sintesi:
 lo schema (di una relazione o di una Base di
Dati) è la parte che non varia nel tempo (a
meno che lo schema stesso non venga
ridefinito…)
 l’istanza (di una relazione o di una Base di
Dati) è la parte che varia nel tempo in
quanto le Basi di Dati vengono aggiornate
costantemente
37
Nota Bene!
La stessa realtà può essere rappresentata
mediante schemi relazionali differenti. Ad
esempio i dati relativi all’entità Studente e
alla relationship Esame dell’esempio
precedente possono essere organizzati in
un’unica tabella Studenti2 avente schema:
Studenti2(Matricola,Cognome,Nome,DataNa
scita,CodiceCorso,Voto)
eliminando quindi la tabella Esami dello
schema precedente
38
Nota Bene!
La nuova Base di Dati diventa quindi:
Studenti2
Matricola
Cognome
Nome
276545
276545
Rossi
Rossi
Maria
Maria
25/11/1971
25/11/1971
485745
Neri
Anna
23/04/1972
200768
Verdi
Fabio
12/02/1972
587614
Rossi
Luca
10/10/1971
Corsi
Codice
01
03
04
DataNascita CodiceCorso
Titolo
Analisi
Chimica
Chimica
Voto
01
04
28
27
04
24
Docente
Giani
Melli
Belli
39
Nota Bene!
Quali sono però gli svantaggi di questo
secondo schema?
 ci possono essere dati ripetuti (si vedano
le ennuple riguardanti la studentessa Maria
Rossi che ha sostenuto due esami)
 ci possono essere ennuple in cui i valori
per alcuni attributi sono nulli (si vedano le
ennuple relative a studenti che non hanno
sostenuto esami)
40
Scarica

DatabaseLEZ4