Presentazione 10.2
Basi di dati: il modello relazionale
Informatica Generale (Prof. Luca A. Ludovico)
Introduzione
• Proposto da E. F. Codd nel 1970 per favorire
l’indipendenza dei dati.
• Disponibile come modello logico in DBMS reali nel
1981.
• Si basa sul concetto matematico di relazione (con una
variante).
• Le relazioni hanno una rappresentazione naturale per
mezzo di tabelle.
• Modello “basato su valori”: anche i riferimenti fra dati
in strutture (relazioni) diverse sono rappresentati per
mezzo dei valori stessi.
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 10.2
Tre accezioni di “relazione”
• Relazione matematica: come nella teoria degli
insiemi
• Relazione (dall’inglese relationship) che
rappresenta una classe di fatti — una relazione
matematica fra due entità, nel modello EntityRelationship; talvolta tradotto con
associazione o correlazione
• Relazione secondo il modello relazionale dei
dati: tabella
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 10.2
Relazione matematica
• Siano dati D1, D2, … , Dn (n insiemi anche non distinti)
• Il prodotto cartesiano D1×D2×…×Dn, è l’insieme di
tutte le n-uple ordinate (d1, d2, … , dn)
tali che d1 ∈ D1, d2 ∈ D2, … , dn ∈ Dn
• Una relazione matematica su D1, D2, … , Dn è un
sottoinsieme del prodotto cartesiano D1×D2×…×Dn
• D1, D2, … , Dn sono i domini della relazione.
• Una relazione su n domini ha grado (o arietà) n.
• Il numero di n-uple è la cardinalità della relazione.
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 10.2
Esempio di relazione matematica
• Siano D1={a,b} e D2={x,y,z}
• Prodotto cartesiano D1 × D2
• Un esempio di relazione
r ⊆ D1 × D2
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 10.2
a
x
a
y
a
z
b
x
b
y
b
z
a
x
a
z
b
y
b
z
Proprietà di una relazione matematica
• Una relazione matematica è un insieme di n-uple
ordinate:
(d1, d2, … , dn) tali che d1 ∈ D1, d2 ∈ D2, … , dn ∈ Dn
• La relazione è un insieme; quindi:
– non c'è ordinamento fra le n-uple
– le n-uple sono distinte
• Ciascuna n-upla è ordinata; quindi l’ i-esimo valore
proviene dall’ i-esimo dominio
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 10.2
Esempio di relazione matematica
• Partita ⊆ string × string × integer × integer
Milan
Genoa
2
1
Roma
Juventus
1
1
Roma
Genoa
3
2
Juventus
Milan
0
0
• Ciascuno dei domini ha due ruoli distinti, distinguibili attraverso la
posizione: il primo e il terzo dominio si riferiscono a nome e reti della
squadra ospitante; il secondo e il quarto a nome e reti della squadra
ospitata
• La struttura (ordine colonne) è posizionale, la valorizzazione (ordine
n-uple) no
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 10.2
Relazioni nel modello relazionale
• Ogni relazione è sostanzialmente una tabella.
• A ciascun dominio associamo un nome (attributo), unico nella relazione,
che “descrive” il ruolo del dominio.
Casa
Ospite
RetiCasa
RetiOspite
Milan
Genoa
2
1
Roma
Juventus
1
1
Roma
Genoa
3
2
Juventus
Milan
0
0
• Nella rappresentazione tabellare, gli attributi sono usati come
intestazioni delle colonne.
• L’ordinamento fra gli attributi è irrilevante: la struttura è non
posizionale.
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 10.2
Notazioni
• Se t è una n-upla su un insieme di attributi X e a ∈ X,
allora t[a] (oppure t.a) indica il valore di t su a.
• Nell’esempio, se t è la prima n-upla della tabella
t[Ospite] = “Genoa”.
• La stessa notazione può essere estesa anche ad
insiemi di attributi.
• Nell’esempio, se t è la prima n-upla della tabella
t[Casa,RetiCasa] = <“Milan”, 2>
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 10.2
Tabelle e relazioni
• Una tabella rappresenta una relazione se
– i valori di ciascuna colonna sono fra loro omogenei (appartengono
allo stesso dominio)
– le righe sono diverse fra loro
– le intestazioni delle colonne (attributi) sono diverse tra loro
• Inoltre, in una tabella che rappresenta una relazione
– l’ordinamento tra le righe è irrilevante
– l’ordinamento tra le colonne è irrilevante
• Il modello relazionale è basato su valori: i riferimenti fra dati in
relazioni diverse sono rappresentati per mezzo di valori dei
domini che compaiono nelle n-uple
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 10.2
Modello basato su valori
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 10.2
Vantaggi del modello basato su valori
• Indipendenza dalle strutture fisiche, che possono
cambiare anche dinamicamente.
• Si rappresenta solo ciò che è rilevante dal punto di
vista dell’applicazione (dell’utente).
• I dati sono portabili più facilmente da un sistema ad
un altro.
• I valori consentono bi-direzionalità, mentre i puntatori
(frecce) sono direzionali.
– Nota: i puntatori possono essere usati a livello fisico.
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 10.2
Alcune definizioni
• Schema di relazione: un nome di relazione R con un
insieme di attributi a1,..., an
R(a1, ... ,an)
• Schema di base di dati: insieme di schemi di relazione
con nomi diversi:
R = {R1(X1), ... ,Rn(Xn)}
• (Istanza di) relazione su uno schema R(X): insieme r di
n-uple su X
• (Istanza di) base di dati su uno schema
R = {R1(X1), ... ,Rn(Xn)}: insieme di relazioni
r = {r1,..., rn} (ri è una relazione su Ri, per ogni i =
1,…,n)
Informatica Generale (Prof. Luca A. Ludovico)
Presentazione 10.2
Esercizi
• Scrivere il prodotto cartesiano D1 x D2 ove
D1 sono i semi delle carte e D2 sono i
valori di verità.
• D1 = {cuori, quadri, fiori, picche}
– Cardinalità dell’insieme: 4
• D2 = {0, 1}
– Cardinalità dell’insieme: 2
cuori
0
cuori
1
quadri
0
quadri
1
fiori
0
fiori
1
picche
0
picche
1
Esercizio: trova l’errore
722567
Rossi
Gianna
713122
Verdi
Marco
761356
Bruni
Lorenzo
790890
Neri
Anna
739279
Bianchi
Giacomo
787990
Rossi
Carlo
790890
Neri
Anna
790890
Rossi
Carlo
Scarica

relazione