Basi di dati: il modello relazionale Presentazione 10.2 Informatica Generale (Prof. Luca A....

15
Basi di dati: il modello relazionale Presentazione 10.2 Informatica Generale (Prof. Luca A. Ludovico)

Transcript of Basi di dati: il modello relazionale Presentazione 10.2 Informatica Generale (Prof. Luca A....

Page 1: Basi di dati: il modello relazionale Presentazione 10.2 Informatica Generale (Prof. Luca A. Ludovico)

Basi di dati: il modello relazionale

Presentazione 10.2

Informatica Generale (Prof. Luca A. Ludovico)

Page 2: Basi di dati: il modello relazionale Presentazione 10.2 Informatica Generale (Prof. Luca A. Ludovico)

Informatica Generale (Prof. Luca A. Ludovico)Presentazione 10.2

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.

Page 3: Basi di dati: il modello relazionale Presentazione 10.2 Informatica Generale (Prof. Luca A. Ludovico)

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 Entity-Relationship; talvolta tradotto con associazione o correlazione

• Relazione secondo il modello relazionale dei dati: tabella

Informatica Generale (Prof. Luca A. Ludovico)Presentazione 10.2

Page 4: Basi di dati: il modello relazionale Presentazione 10.2 Informatica Generale (Prof. Luca A. Ludovico)

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

Page 5: Basi di dati: il modello relazionale Presentazione 10.2 Informatica Generale (Prof. Luca A. Ludovico)

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

Page 6: Basi di dati: il modello relazionale Presentazione 10.2 Informatica Generale (Prof. Luca A. Ludovico)

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

Page 7: Basi di dati: il modello relazionale Presentazione 10.2 Informatica Generale (Prof. Luca A. Ludovico)

Esempio di relazione matematica

• Partita ⊆ string × string × integer × integer

• 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

Milan Genoa 2 1

Roma Juventus 1 1

Roma Genoa 3 2

Juventus Milan 0 0

Page 8: Basi di dati: il modello relazionale Presentazione 10.2 Informatica Generale (Prof. Luca A. Ludovico)

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.

• 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

Casa Ospite RetiCasa RetiOspite

Milan Genoa 2 1

Roma Juventus 1 1

Roma Genoa 3 2

Juventus Milan 0 0

Page 9: Basi di dati: il modello relazionale Presentazione 10.2 Informatica Generale (Prof. Luca A. Ludovico)

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

Page 10: Basi di dati: il modello relazionale Presentazione 10.2 Informatica Generale (Prof. Luca A. Ludovico)

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

Page 11: Basi di dati: il modello relazionale Presentazione 10.2 Informatica Generale (Prof. Luca A. Ludovico)

Modello basato su valori

Informatica Generale (Prof. Luca A. Ludovico)Presentazione 10.2

Page 12: Basi di dati: il modello relazionale Presentazione 10.2 Informatica Generale (Prof. Luca A. Ludovico)

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

Page 13: Basi di dati: il modello relazionale Presentazione 10.2 Informatica Generale (Prof. Luca A. Ludovico)

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

Page 14: Basi di dati: il modello relazionale Presentazione 10.2 Informatica Generale (Prof. Luca A. Ludovico)

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

Page 15: Basi di dati: il modello relazionale Presentazione 10.2 Informatica Generale (Prof. Luca A. Ludovico)

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