56
Il modello relazionale

Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Embed Size (px)

Citation preview

Page 1: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Il modello relazionale

Page 2: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

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

Page 3: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

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

Page 4: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Insiemi

Insieme: collezione di elementi L’ordine non è importante

Per esempio:{1,5,3} = {1,3,5}

Un insieme non contiene duplicati Per esempio:

{rosso,verde,rosso} è identificato con {rosso, verde}

Page 5: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Insiemi

Esempi:

{z | z è un colore primario} = {rosso, blu, giallo}

{y | y è un numero pari tra 5 e 15} = {6, 8, 10, 12, 14}

Caso speciale: = {}, l’insieme vuoto

Page 6: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Elemento di un’insieme

Per esempio, 1 è un elemento dell’insieme {1,5,3}Per esempio, rosso è un elemento dell’insieme {rosso, verde}

L’elemento z è un elemento di un’insieme A: z in A (oppure zA, z appartiene a A)

Page 7: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Sottoinsieme

A è un sottoinsieme di B se ogni elemento z in A è anche un elemento di B A è un sottoinsieme di B è scritto A B

Per esempio, {1,3} è un sottoinsieme di {1,5,3}Per esempio, {rosso} è un sottoinsieme di {rosso, verde}

Page 8: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Prodotto cartesiano

Prodotto cartesiano di due insiemi A e BAxB = {(z1,z2) | z1A e z2B}

dove (z1,z2) sono coppie ordinate di elementi

Per esempio: A = {1,2,4}, B= {a,b}AxB = {(1,a),(1,b),(2,a),(2,b),(4,a),(4,b)}

Page 9: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Prodotto cartesiano

Prodotto cartesiano di n insiemi D1, D2, …, Dn

D1x…xDn = {(z1,…,zn) | z1D1,…, znDn}

dove (z1,…,zn) sono n-uple ordinate di elementi

Page 10: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Prodotto cartesiano

Per esempio: n=3: D1={0,1}, D2={a,b},

D3={rosso,blu} Che cos’è D1xD2xD3? Cioè, che cos’è

{0,1}x{a,b}x{rosso,blu}?

Page 11: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Prodotto cartesiano

Per esempio: n=3: D1={0,1}, D2={a,b},

D3={rosso,blu} Che cos’è D1xD2xD3? Cioè, che cos’è {0,1}x{a,b}x{rosso,blu}?

{(0,a,rosso), (0,a,blu), (0,b,rosso), (0,b,blu), (1,a,rosso), (1,a,blu), (1,b,rosso), (1,b,blu)}

Page 12: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Unione

Unione di due insiemi A e BAB = {z | zA o zB}

Per esempio: {1,5,3} {4,5,9} = {1,5,4,9,3} {1,5,3} {rosso, verde} =

{1,5,rosso,verde,3}

Page 13: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Intersezione

Intersezione di due insiemi A e BAB = {z | zA e zB}

Per esempio: {1,5,3} {1,3,8} = {1,3} {rosso, blu} {rosso, verde} = {rosso} {1,5,3} {1} = {1} {1,5,3} {1,5,3} = {1,5,3} {rosso, blu} {verde, giallo} =

Page 14: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Differenza insiemistica

Differenza insiemistica tra due insiemi A e B

A-B = {z | zA e non zB}

Per esempio: {1,5,3} – {1,3} = {5} {rosso,blu,giallo} – {blu} =

{rosso,giallo}

Page 15: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Esercitazioni

1. {10,20,30} {5,10,15,20,25,30,35}?

2. {1,2,35} {1,2,30}?

3. {10,20,30} {z | z è tra 1 e 50}?

4. Che cos’è {1,2,3}x{a,b}?

Page 16: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Esercitazioni

5. Che cos’è {0,1}x{a,b}x{rosso,blu}?

6. Che cos’è {0,1} {a,b}?

7. Che cos’è {a,b,c} {a,b}?

8. Che cos’è {a,b,c} {a,b}?

Page 17: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Esercitazioni

9. Che cos’è {1,2,3} {a,b}?

10.Che cos’è {1,2,3} – {3}?

11.Che cos’è {1,2,3} – {1,2,3}?

12.Che cos’è {1,2,3} – {a,b}?

Page 18: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Esercitazioni

13.(2,3) {1,2,3} x {a,b}?

14.(1,b) {1,2,3} x {a,b}?

15.(1,b,blu) {1,2,3} x {a,b} x {rosso,blu}?

16.{(1,b,a), (3,a,a)} {1,2,3} x {a,b} x {a,b}?

Page 19: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Relazioni e tabelle

Domini: per esempio I numeri naturali tra 1 e 50 compresi Le frase che contengono 255

carattere o meno

Page 20: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Relazioni e tabelle

Assumiamo che i DB siano costituiti da relazioni finite su domini eventualmente infinitiFinito 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

Page 21: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

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

Page 22: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Relazioni e tabelle

Relazioni rappresentate graficamente come tabelle

1 a

1 b

4 b

Page 23: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

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)}

Page 24: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Relazione matematica

Relazione matematica sugli insiemi D1,…,Dn (domini della relazione)

= un sottoinsieme di D1x…xDnPer 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)}

Page 25: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Relazioni e tabelle

Relazione {(0,b,blu), (1,a,rosso), (1,b,rosso), (1,b,blu)} rappresentata graficamente come tabella

0 b blu

1 a rosso

1 b rosso

1 b blu

Page 26: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Relazioni e tabelle

Per esempio: risultati partite di calcio

Juventus Lazio 3 2

Lazio Milan 2 0

Juventus Roma 2 1

Roma Milan 1 2

Page 27: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Relazioni e tabelle

Per esempio: risultati partite di calcio

Juventus Lazio 3 2

Lazio Milan 2 0

Juventus Roma 2 1

Roma Milan 1 2

Sequenza di carattere (stringa)

Numero naturale (intero)

Page 28: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Relazioni e tabelle

Per esempio: risultati partite di calcio

Juventus Lazio 3 2

Lazio Milan 2 0

Juventus Roma 2 1

Roma Milan 1 2

Sequenza di carattere (stringa)

Numero naturale (intero)

Questa relazione: un sottoinsieme di Stringa x Stringa x Intero x Intero

Page 29: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Relazioni e tabelle

n-upla di relazione contiene dati tra loro collegati, che verificano la relazionen-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

Page 30: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

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 elementiL’ordine degli elementi non è importanteUn insieme non contiene duplicati

Page 31: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Relazioni con attributi

Ordinamento dei domini di una relazione impone ordinamento posizionale degli elementi di n-upleNella gestione di dati, preferenza per ordinamenti non posizionali … in cui si può far riferimento alle

componenti delle n-uple in modo non ambiguo

Page 32: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Relazioni con attributi

In una relazione, ogni dominio rappresenta un ruolo o attributo Usiamo nome di attributo per identificare le

rispettive componenti delle n-ple In una tabelle: attributo intestazione di

colonne della tabella

Per esempio: SquadraDiCasa, SquadraOspitata, RetiCasa,

RetiOspitata

Page 33: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Relazioni con attributi

SquadraDiCasa

SquadraOspitata

RetiCasa

RetiOspitata

Juventus Lazio 3 2

Lazio Milan 2 0

Juventus Roma 2 1

Roma Milan 1 2

Page 34: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Relazioni con attributiD1 D2 D3 D4

Ordinamento di colonne diventa irrilevante: Non serve più parlare di primo dominio, etc.

SquadraDiCasa

SquadraOspitata

RetiCasa

RetiOspitata

Juventus Lazio 3 2

Lazio Milan 2 0

Juventus Roma 2 1

Roma Milan 1 2

Page 35: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Relazioni con attributiDati insieme di attributi X={A1,…,An} e insieme di domini D={D1,…,Dm} Stabiliamo corrispondenza tra attributi e

domini mediante funzione DOM: X D Cioè, la funzione DOM associa a ciascun

attributo AX un dominio DOM(A) D

X DA3D7

DOM

Page 36: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

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: t[SquadraDiCasa]=Juventus

Relazione (con attributi) su X è insieme di tuple su X

n-uple: elementi individuati per posizioneTuple: elementi individuati per attributo

Page 37: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

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}

Page 38: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

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

Page 39: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Relazioni con attributi: esempio

t1, t2, t3, t4: tuple t1[SquadraDiCasa]=Juventus t1[SquadraOspitata]=Lazio t1[RetiCasa]=3 t1[RetiOspitata]=2

SquadraDiCasa

SquadraOspitata

RetiCasa

RetiOspitata

Juventus Lazio 3 2

Lazio Milan 2 0

Juventus Roma 2 1

Roma Milan 1 2

Page 40: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Relazioni con attributi: esempio

t1, t2, t3, t4: tuple t2[SquadraDiCasa]=Lazio t2[SquadraOspitata]=Milan t2[RetiCasa]=2 t2[RetiOspitata]=0

SquadraDiCasa

SquadraOspitata

RetiCasa

RetiOspitata

Juventus Lazio 3 2

Lazio Milan 2 0

Juventus Roma 2 1

Roma Milan 1 2

Page 41: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Relazioni e Basi di Dati

Un DB è solitamente costituito da più relazioni (tabelle) le cui tuple contengono valori comuni (usati per stabilire corrispondenza tra tuple)Per esempio: tabelle che descrivono studenti, esami e corsi

Matricola Cognome Nome DataNascita

276545 Rossi Maria 25/11/1981

485745 Neri Anna 23/04/1982

200768 Verdi Fabio 12/02/1982

587614 Rossi Luca 10/10/1981

937653 Bruni Mario 01/12/1981

Studenti

Page 42: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Relazioni e Basi di Dati

Codice Titolo Docente

01 Analisi Giani

03 Chimica Melli

04 Chimica Belli

Studente Voto Corso

276545 28 01

485745 27 04

200768 25 01

587614 24 04

Esami

Corsi

Page 43: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Relazioni e Basi di Dati

Sono ammissibile relazione con un solo attributo Per esempio:

Si possono rappresentare informazioni complesse mediante tabelle diverse

Matricola

276545

485745

200768

Lavoratori

Page 44: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Schemi di relazioni e di DB

Schema di relazione: R(X) Costituita da simbolo R (nome della

relazione) e da insieme di nomi di attributi X={A1,…,An}

Per esempio: Esami(Studente,Voto,Corso)

Studente Voto Corso

276545 28 01

485745 27 04

200768 25 01

587614 24 04

Esami

Page 45: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Schemi di relazioni e di DB

Schema di base di dati: R={R1(X1),…,Rn(Xn)} Insiemi di schemi di relazione con nomi

diversi

Per esempio: Università =

{Studenti(Matricola,Cognome,Nome,DataNascita), Esami(Studente,Voto,Corso), Corso(Codice,Titolo,Docente)}

Page 46: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Schemi di relazioni e di DB

Istanza di relazione (o semplicemente relazione) su schema R(X) Insieme r di tuple su X

Istanza di base di dati (o semplicemente base di dati) su schema R={R1(X1),…,Rn(Xn)} Insieme r di relazione r={r1,…,rn} dove

ogni ri è una relazione sullo schema Ri(Xi)

Page 47: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Esempi di relazione

“DA MARIO”

Ricevuta n. 1357

Del 5/2/04

3 coperti 3,00

2 antipasti

6,00

3 primi 12,00

2 bistecche

18,00

Totale 39,00

“DA MARIO”

Ricevuta n. 2334

Del 7/2/04

2 coperti 2,00

1 antipasti

3,00

2 primi 8,00

2 orate 14,00

2 caffè 2,00

Totale 29,00

“DA MARIO”

Ricevuta n. 3002

Del 13/2/04

3 coperti 3,00

2 antipasti

6,00

3 primi 14,00

1 Orate 18,00

1 Caprese 2,00

2 Caffè 2,00

Totale 45,00

Page 48: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Esempi di relazione

Le ricevute hanno una struttura che prevede alcune informazioni fisse Numero, data e totale

… e un numero di righe variabile

Non è possibile rappresentare l’insieme delle ricevute con un’unica relazione Non sarebbe possibile rappresentare le

righe in un numero non predeterminato

Page 49: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Esempi di relazioneNum. Q.tà Descr. Importo

1357 3 Coperti 3,00

1357 2 Antipasti 6,00

1357 3 Primi 12,00

1357 2 Bistecche

18,00

2334 2 Coperti 2,00

2334 1 Antipasti 3,00

2334 2 Primi 8,00

2334 2 Orate 14,00

2334 2 Caffè 2,00

3002 3 Coperti 3,00

3002 2 Antipasti 6,00

3002 3 Primi 14,00

3002 1 Orate 18,00

3002 1 Caprese 2,00

3002 2 Caffè 2,00

Num. Data Totale

1357 5/2/04 39,00

2334 7/2/04 29,00

3002 13/2/04

45,00

Ricevute

Dettaglio

Page 50: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Esempi di relazione

La base di dati nella slide precedente rappresenta correttamente le ricevute solo a due condizioni: Non interessa mantenere traccia dell’ordine

con cui le righe compaiono in ciascuna ricevuta

In un ricevuta non compaiono due righe uguali

In entrambi i casi, si può risolvere il problema aggiungendo un attributo, che indica la posizione della riga sulla ricevuta

Page 51: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Esempi di relazioneNum. Riga Q.tà Descr. Importo

1357 1 3 Coperti 3,00

1357 2 2 Antipasti 6,00

1357 3 3 Primi 12,00

1357 4 2 Bistecche

18,00

2334 1 2 Coperti 2,00

2334 2 1 Antipasti 3,00

2334 3 2 Primi 8,00

2334 4 2 Orate 14,00

2334 5 2 Caffè 2,00

3002 1 3 Coperti 3,00

3002 2 2 Antipasti 6,00

3002 3 3 Primi 14,00

3002 4 1 Orate 18,00

3002 5 1 Caprese 2,00

3002 6 2 Caffè 2,00

Num. Data Totale

1357 5/2/04 39,00

2334 7/2/04 29,00

3002 13/2/04

45,00

Ricevute

Dettaglio

Page 52: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Esempi di relazioneNum. Riga Q.tà Descr. Importo

1357 1 3 Coperti 3,00

1357 2 2 Antipasti 6,00

1357 3 3 Primi 12,00

1357 4 2 Bistecche

18,00

2334 1 2 Coperti 2,00

2334 2 1 Antipasti 3,00

2334 3 2 Primi 8,00

2334 4 2 Orate 14,00

2334 5 2 Caffè 2,00

3002 1 3 Coperti 3,00

3002 2 2 Antipasti 6,00

3002 3 3 Primi 14,00

3002 4 1 Orate 18,00

3002 5 1 Caprese 2,00

3002 6 2 Caffè 2,00

Num. Data Totale

1357 5/2/04 39,00

2334 7/2/04 29,00

3002 13/2/04

45,00

Ricevute

Dettaglio

Page 53: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Informazione incompleta e valori nulli

In una tupla di una relazione un attributo può non avere valore Per esempio: Mario Rossi non ha telefono in

Persone(Cognome,Nome,Indirizzo,Telefono)

Oppure il valore di un attributo potrebbe esistere ma essere sconosciuto a chi inserisce i dati nel DB Per esempio: Mario Rossi ha telefono, ma

non ne conosciamo il numero

Page 54: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Informazione incompleta e valori nulli

NULL: valore nullo Assegnato agli elementi di tuple inesistenti

o sconosciuti NULL è valore aggiuntivo rispetto al dominio

di un attributo

Page 55: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Informazione incompleta e valori nulli

In basi di dati, i due casi sopra trattati come assenza di informazioneIn assenza di informazione su un attributo bisogna usare NULL perché non si confonde con altri valori del dominio dell’attributo

Page 56: Il modello relazionale. Modello logico dei dati basato su concetti relazione e tabella Relazione: da teoria degli insiemi Tabella: rappresentazione grafica

Informazione incompleta e valori nulli

Per esempio: Numero di telefono sconosciuto potrebbe

essere rappresentato con 0 (numero che nessun telefono può avere). Però questa convenzione non è generale

Inoltre, per altri attributi, potrebbe non esistere valore di dominio che non si può assegnare mai: usare NULL