Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica...
-
Upload
eufemia-pasini -
Category
Documents
-
view
216 -
download
2
Transcript of Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica...
![Page 1: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/1.jpg)
Informatica II – Basi di Dati (07/08) – Parte 1
Gianluca TortaDipartimento di Informaticadell’Università di [email protected], 0116706782
![Page 2: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/2.jpg)
3 - Il modello relazionale
![Page 3: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/3.jpg)
3
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 4: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/4.jpg)
4
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 5: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/5.jpg)
5
Prodotto cartesiano
Prodotto cartesiano di due insiemi A e BAxB = {(x1,x2) | x1A e x2B}
dove (x1,x2) 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 6: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/6.jpg)
6
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 7: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/7.jpg)
7
Relazioni e tabelle
Domini: per esempio I numeri naturali tra 1 e 50 compresi Le frase che contengono 255
carattere o meno
![Page 8: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/8.jpg)
8
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 9: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/9.jpg)
9
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 10: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/10.jpg)
10
Relazioni e tabelle
Relazioni rappresentate graficamente come tabelle
1 1
1 B
4 b
![Page 11: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/11.jpg)
11
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 12: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/12.jpg)
12
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 13: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/13.jpg)
13
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 14: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/14.jpg)
14
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 15: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/15.jpg)
15
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 16: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/16.jpg)
16
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 17: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/17.jpg)
17
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 18: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/18.jpg)
18
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 19: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/19.jpg)
19
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 20: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/20.jpg)
20
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 21: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/21.jpg)
21
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 22: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/22.jpg)
22
Relazioni con attributi
SquadraDiCasa
SquadraOspitata
RetiCasa
RetiOspitata
Juventus Lazio 3 2
Lazio Milan 2 0
Juventus Roma 2 1
Roma Milan 1 2
![Page 23: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/23.jpg)
23
Relazioni con attributi
SquadraDiCasa
SquadraOspitata
RetiCasa
RetiOspitata
Juventus Lazio 3 2
Lazio Milan 2 0
Juventus Roma 2 1
Roma Milan 1 2
D1 D2 D3 D4
Ordinamento di colonne diventa irrilevante: Non serve più parlare di primo dominio, etc.
![Page 24: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/24.jpg)
24
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 25: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/25.jpg)
25
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 26: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/26.jpg)
26
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 27: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/27.jpg)
27
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 28: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/28.jpg)
28
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 29: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/29.jpg)
29
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 30: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/30.jpg)
30
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 31: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/31.jpg)
31
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 32: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/32.jpg)
32
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 33: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/33.jpg)
33
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 34: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/34.jpg)
34
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 35: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/35.jpg)
35
Schemi di relazioni e di DB
Istanza di relazione su schema R(X) Insieme r di tuple su X
Istanza di 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 36: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/36.jpg)
36
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 37: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/37.jpg)
37
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 38: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/38.jpg)
38
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 39: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/39.jpg)
39
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 40: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/40.jpg)
40
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 41: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/41.jpg)
41
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 42: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/42.jpg)
42
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 43: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/43.jpg)
43
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 44: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/44.jpg)
44
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 45: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/45.jpg)
45
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
![Page 46: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/46.jpg)
46
Informazione incompleta e valori nulli
Non tutti gli attributi di una relazione devono poter assumere valore nulloIn definizione di relazione, si può specificare quali attributi non devono mai essere nulli nelle tuple
Matricola Cognome Nome DataNascita
276545 Rossi Maria NULL
NULL Neri Anna 23/04/1982
NULL Verdi Fabio 12/02/1982
587614 Rossi Luca 10/10/1981
937653 Bruni Mario 01/12/1981
Studenti
![Page 47: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/47.jpg)
47
Informazione incompleta e valori nulli
Non tutti gli attributi di una relazione devono poter assumere valore nulloIn definizione di relazione, si può specificare quali attributi non devono mai essere nulli nelle tuple
Matricola Cognome Nome DataNascita
276545 Rossi Maria NULL
NULL Neri Anna 23/04/1982
NULL Verdi Fabio 12/02/1982
587614 Rossi Luca 10/10/1981
937653 Bruni Mario 01/12/1981
Studenti
OK
![Page 48: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/48.jpg)
48
Informazione incompleta e valori nulli
Non tutti gli attributi di una relazione devono poter assumere valore nulloIn definizione di relazione, si può specificare quali attributi non devono mai essere nulli nelle tuple
Matricola Cognome Nome DataNascita
276545 Rossi Maria NULL
NULL Neri Anna 23/04/1982
NULL Verdi Fabio 12/02/1982
587614 Rossi Luca 10/10/1981
937653 Bruni Mario 01/12/1981
Studenti
No: matricola usata per correlare relazione
![Page 49: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/49.jpg)
49
Informazione incompleta e valori nulli
No: informazioneinutile
Codice Titolo Docente
01 Analisi Giani
03 Chimica NULL
NULL Chimica Belli
Studente Voto Corso
276545 28 01
NULL 27 NULL
200768 25 01
587614 24 NULL
Esami
Corsi
![Page 50: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/50.jpg)
50
Informazione incompleta e valori nulli
No: informazioneinutile
Codice Titolo Docente
01 Analisi Giani
03 Chimica NULL
NULL Chimica Belli
Studente Voto Corso
276545 28 01
NULL 27 NULL
200768 25 01
587614 24 NULL
Esami
Corsi
![Page 51: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/51.jpg)
51
Informazione incompleta e valori nulli
No: codice usatoPer correlare relazione
Codice Titolo Docente
01 Analisi Giani
03 Chimica NULL
NULL Chimica Belli
Studente Voto Corso
276545 28 01
NULL 27 NULL
200768 25 01
587614 24 NULL
Esami
Corsi
![Page 52: Informatica II – Basi di Dati (07/08) – Parte 1 Gianluca Torta Dipartimento di Informatica dell’Università di Torino torta@di.unito.ittorta@di.unito.it,](https://reader033.fdocument.pub/reader033/viewer/2022052618/5542eb6a497959361e8d69a8/html5/thumbnails/52.jpg)
52
Informazione incompleta e valori nulli
Codice Titolo Docente
01 Analisi Giani
03 Chimica NULL
NULL Chimica Belli
Studente Voto Corso
276545 28 01
NULL 27 NULL
200768 25 01
587614 24 NULL
Esami
Corsi
OK