bdd_lez4 - Dipartimento di Informatica

Report
Informatica
Introduzione alle basi di dati
Lezione 4
Scienze e tecniche psicologiche dello sviluppo e
dell'educazione, laurea magistrale
Anno accademico: 2005-2006
3 - Il modello relazionale
Il modello relazionale
Modello logico dei dati basato su
concetti relazione e tabella


Relazione: da teoria degli insiemi
Tabella: rappresentazione grafica di una
relazione; un concetto intuitivo
3
Il modello relazionale
Garantisce indipendenza dei dati


Utenti che accedono ai dati e
programmatori che sviluppano applicazioni
fanno riferimento al livello logico dei dati
Cioè, agli utenti e ai programmatori, non
serve sapere come i dati sono memorizzati
fisicamente
4
Relazioni e tabelle
Domini: per esempio


I numeri naturali tra 1 e 50 compresi
Le frase che contengono 255 carattere o
meno
5
Relazioni e tabelle
Assumiamo che i DB siano costituiti da
relazioni finite su domini eventualmente
infiniti
Finito o infinito? Per esempio:



{z|z è un numero naturale} è un insieme infinito
{y|y è un numero naturale tra 1 e 50 compresi} è
un insieme finito
{x|x è una frase che contiene 255 carattere o
meno} è un insieme finito
6
Relazioni e tabelle
In un DB non possono esserci insiemi
infiniti

Sistemi di calcolo gestiscono solo insiemi
finiti
Ma è utile ammettere domini infiniti per
permettere ad ogni istante di assumere
esistenza di un valore non presente nel
DB
7
Relazioni e tabelle
Relazioni rappresentate graficamente
come tabelle
1
a
1
b
4
b
8
Relazione matematica
Relazione matematica su insiemi A e B
(domini della relazione) = sottoinsieme di AxB
Per esempio:
AxB = {(1,a),(1,b),(2,a),(2,b),(4,a),(4,b)}
Una relazione matematica su insieme A e B
potrebbe essere:
R={(1,a),(1,b),(4,b)}
9
Relazione matematica
Relazione matematica sugli insiemi D1,…,Dn
(domini della relazione)
= un sottoinsieme di D1x…xDn
Per esempio: un relazione sugli insiemi {0,1},
{a,b}, {rosso,blu} potrebbe essere
{(0,b,blu), (1,a,rosso), (1,b,rosso), (1,b,blu)}
10
Relazioni e tabelle
Relazione {(0,b,blu), (1,a,rosso), (1,b,rosso),
(1,b,blu)} rappresentata graficamente come
tabella
0
1
1
1
b
a
b
b
blu
rosso
rosso
blu
11
Relazioni e tabelle
Per esempio: risultati partite di calcio
Juventus
Lazio
Juventus
Lazio
Milan
Roma
3
2
2
2
0
1
Roma
Milan
1
2
12
Relazioni e tabelle
Per esempio: risultati partite di calcio
Juventus
Lazio
Juventus
Lazio
Milan
Roma
3
2
2
2
0
1
Roma
Milan
1
2
Sequenza di carattere
(stringa)
Numero naturale (intero)
13
Relazioni e tabelle
Per esempio: risultati partite di calcio
Juventus
Lazio
Juventus
Lazio
Milan
Roma
3
2
2
2
0
1
Roma
Milan
1
2
Sequenza di carattere
(stringa)
Numero naturale (intero)
Questa relazione: un sottoinsieme di
Stringa x Stringa x Intero x Intero
14
Relazioni e tabelle
n-upla di relazione contiene dati tra loro
collegati, che verificano la relazione
n-uple sono ordinate: ordine dei loro elementi
è significativo

Per esempio: (Juventus,Lazio,3,2) significa che il
risultato della partita Juventus-Lazio, giocata in
casa dalla Juventus, è 3 a 2
15
Relazioni e tabelle
Una relazione è un insieme:


n-uple della relazione devono essere distinte (no
righe ripetute in tabella)
n-uple non sono tra loro ordinate (tabelle con
stesse righe ordinate in modo diverso
rappresentano la stessa relazione)
Insieme: collezione di elementi
L’ordine degli elementi non è importante
Un insieme non contiene duplicati
16
Relazioni con attributi
Ordinamento dei domini di una relazione
impone ordinamento posizionale degli
elementi di n-uple
Nella gestione di dati, preferenza per
ordinamenti non posizionali

… in cui si può far riferimento alle componenti
delle n-uple in modo non ambiguo
17
Relazioni con attributi
In una relazione, ogni dominio rappresenta
un ruolo o attributo


Usiamo nome di attributo per identificare le
rispettive componenti delle n-uple
In una tabelle: attributo  intestazione di colonne
della tabella
Per esempio:

SquadraDiCasa, SquadraOspitata, RetiCasa,
RetiOspitata
18
Relazioni con attributi
SquadraDiCasa SquadraOspitata RetiCasa
RetiOspitata
Juventus
Lazio
3
2
Lazio
Milan
2
0
Juventus
Roma
2
1
Roma
Milan
1
2
19
Relazioni con attributi
D1
D2
D3
D4
SquadraDiCasa SquadraOspitata RetiCasa
RetiOspitata
Juventus
Lazio
3
2
Lazio
Milan
2
0
Juventus
Roma
2
1
Roma
Milan
1
2
Ordinamento di colonne diventa irrilevante:
Non serve più parlare di primo dominio, etc.
20
Relazioni con attributi
Dati insieme di attributi X={A1,…,An} e
insieme di domini D={D1,…,Dm}


X
Stabiliamo corrispondenza tra attributi e domini
mediante funzione DOM: X  D
Cioè, la funzione DOM associa a ciascun attributo
AX un dominio DOM(A)  D
D7
A3
DOM
D
21
Relazioni con attributi
Tupla su insieme di attributi X è una funzione
t che associa a ciascun attributo AX un
valore del dominio DOM(A)

Per esempio, tupla t, valore per l’attributo
SquadraDiCasa:
t[SquadraDiCasa]=Juventus
Relazione (con attributi) su X è insieme di
tuple su X
n-uple: elementi individuati per posizione
Tuple: elementi individuati per attributo
22
Relazioni con attributi:
esempio
DOM:{SquadraDiCasa, SquadraOspitata, Reti
Casa, RetiOspitata}  {Stringa, Intero}
Cioè:


Insieme di attributi X = {SquadraDiCasa,
SquadraOspitata, Reti Casa, RetiOspitata}
Insieme di attributi D = {Stringa, Intero}
23
Relazioni con attributi:
esempio
DOM:{SquadraDiCasa, SquadraOspitata, Reti
Casa, RetiOspitata}  {Stringa, Intero}




DOM(SquadraDiCasa) = Stringa
DOM(SquadraOspitata) = Stringa
DOM(Reti Casa) = Intero
DOM(RetiOspitata) = Intero
24
Relazioni con attributi:
esempio
SquadraDiCasa SquadraOspitata RetiCasa RetiOspitata
Juventus
Lazio
3
2
Lazio
Milan
2
0
Juventus
Roma
2
1
Roma
Milan
1
2
t1, t2, t3, t4: tuple




t1[SquadraDiCasa]=Juventus
t1[SquadraOspitata]=Lazio
t1[RetiCasa]=3
t1[RetiOspitata]=2
25
Relazioni con attributi:
esempio
SquadraDiCasa SquadraOspitata RetiCasa RetiOspitata
Juventus
Lazio
3
2
Lazio
Milan
2
0
Juventus
Roma
2
1
Roma
Milan
1
2
t1, t2, t3, t4: tuple




t2[SquadraDiCasa]=Lazio
t2[SquadraOspitata]=Milan
t2[RetiCasa]=2
t2[RetiOspitata]=0
26

similar documents