Informatica Generale (AA 07/08)
Corso di laurea in “Scienze della Comunicazione”
Facoltà di Lettere e Filosofia
Università degli Studi di Salerno
UD 2.2b:Modello Relazionale (2)-Relazioni e DB, valori nulli
Prof. Alberto Postiglione
Dipartimento di Scienze della Comunicazione
Università degli Studi di Salerno
RELAZIONI E BASI DI DATI
Atzeni, cap. 2.1.4
1
Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli)
Ultima modifica:
20/11/2007
„
„
„
Il modello è basato su valori
e
ne
Una Base di Dati è generalmente costituita da più di una
zio
a
nic
Tabella
mu
om
aC
l
l
e
ed
z
n
Le corrispondenze fra dati presenti incietabelle
diverse
S
i
sono rappresentate per mezzo di tvalori
comuni che
od
n
e
compaiono in tuple appartenenti
a tali tabelle.
im
rt
pa
i
D
In altri modelli (Gerarchico e Reticolare) le
corrispondenze tra i dati presenti in strutture diverse è
fatta tramite riferimenti espliciti (i puntatori)
UD 2.2b
# 3
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli)
Ultima modifica:
20/11/2007
Esempio
STUDENTI
e
i on
z
Data di Nascita
ica
Codice Titolo unDocente
m
25/11/1971
o
01
Analisi
Giani
aC
l
l
e
23/04/1972
d
03 ze Chimica Melli
12/02/1972
ien Chimica Belli
c04
S
10/10/1971
di
to
n
01/12/1971ime
rt
pa
i
D
CORSI
Matricola Cognome Nome
276545
Rossi
Maria
485745
Neri
Anna
200768
Verdi
Fabio
587614
Rossi
Luca
937653
Bruni
Mario
ESAMI
Studente Voto Corso
UD 2.2b
# 4
276545
28
01
276545
27
04
937653
25
01
200768
24
04
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
2
Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli)
Ultima modifica:
20/11/2007
Esempio
STUDENTI
ne
zio
a
nic
Data di Nascita
Codice Titolo uDocente
m
o
C
25/11/1971
01
Analisi
Giani
lla
e
23/04/1972
03 e dChimica
Melli
z
n
e
i
12/02/1972
Chimica
Belli
c04
iS
d
10/10/1971
o
nt
01/12/1971ime
rt
pa
Di
CORSI
Matricola Cognome
Nome
276545
Rossi
Maria
485745
Neri
Anna
200768
Verdi
Fabio
587614
Rossi
Luca
937653
Bruni
Mario
ESAMI
Studente Voto Corso
28
27
25
24
UD 2.2b
# 5
Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli)
Ultima modifica:
20/11/2007
„
„
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Vantaggi della struttura basata su valori
Si rappresenta solo ciò che è rilevante dal punto di zione
ica
vista dell’applicazione
un
m
Co
¾ i puntatori sono “aggiuntivi“ rispetto ai dati veri e propri
a
l
el
ed
z
n
cie
S
La rappresentazione logica dei dati non
fa riferimento a
di
to
quella fisica, che può cambiare nelentempo,
permettendo
im
t
r
quindi di ottenere l‘indipendenza
fisica dei dati
pa
Di
¾ E‘l‘assenza di puntatori che permette al modello relazionale il
raggiungimento dell‘indipendenza fisica
„
I dati sono portabili facilmente da un sistema ad un altro
¾ i puntatori (che, alla fine, non sono che indirizzi di memoria) sono
spesso legati al singolo computer
UD 2.2b
# 6
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
3
Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli)
Ultima modifica:
20/11/2007
„
„
„
Schema di Relazione e di Database
ne
zio
a
¾ un nome R con un insieme di (nomi di) attributi A1,A2,...,A
nic n
mu
o
C
R(A1,A2,...,An)
lla
e
d
¾ A ciascun attributo è associato un dominio
ze
n
e
ci
SCHEMA DI DATABASE (RELAZIONALE)
iS
d
o
¾ insieme di tutti gli schemi di relazione:
nt
e
im
R = {R1(A1,A2,...,An), R2(B1,B2a,...,B
rt
m), ..., Rk(K1,K2,...,Kr)}
p
i
D
SCHEMA DI RELAZIONE
Lo Schema della Base di Dati dell’esempio precedente è la
seguente:
R={STUDENTI(Matricola, Cognome, Nome, Data di Nascita),
ESAMI(Studente, Voto, Corso),
CORSI (Codice, Titolo, Docente)}
UD 2.2b
# 7
Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli)
Ultima modifica:
20/11/2007
„
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Istanza di Relazione e di Database
e
ne
ISTANZA DI RELAZIONE su uno schema R(A1,A2,...,A
zion)
ica
un
m
o
aC
l
l
de
ze
n
ISTANZA DI BASE DI DATI su uno schema
ie
Sc
i
R = {R1(A1,A2,...,An), R2(B1,B2,...,Bm),to...,d Rk(K1,K2,...,Kr)}
en
¾ insieme di tutte le tuple presentirnelle
tim Relazioni all’interno del
pa
Database
Di
¾ insieme r di tuple su A1,A2,...,An
„
„
„
Una tupla su un insieme di attributi X è una funzione
che associa a ciascun attributo A in X un valore del
dominio di A
t[A] denota il valore della tupla t sull'attributo A
UD 2.2b
# 8
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
4
Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli)
Ultima modifica:
20/11/2007
„
Tabelle con un solo attributo
e
Presente in DB con più tabelle, in cui la tabella con unzion e
ica
solo attributo contiene valori che appaiono comemvalore
un
o
aC
di attributo di un’altra tabella
l
l
e
e
ed
z
n
studenti
cie
S
i
Matricola Cognome Nome dData di nascita
o
nt
6554
Rossi
Mario
05/12/1978
e
im
t
r
8765
Neri
Paolo
03/11/1976
pa
Di
9283
3456
Verdi
Rossi
Luisa
Maria
12/11/1979
01/02/1978
studenti lavoratori Matricola
6554
3456
UD 2.2b
# 9
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli)
Ultima modifica:
20/11/2007
Tabelle con struttura nidificata
Da Filippo
Via Roma 2, Roma
Ricevuta Fiscale
1235 del 18/11/2002
3
2
3
2
Coperti
Antipasti
Primi
Bistecche
3,00
6,20
12,00
18,00
Totale 39,20
UD 2.2b
# 10
e
i on
z
a
Da Filippo unic
m
Co
Via Roma 2,laRoma
l
de
Ricevuta
ze Fiscale
n
cie 19/11/2002
1240i Sdel
d
2 ento Coperti
2,00
im
t
r
Antipasti
7,00
pa 2
Di
2
2
2
Primi
Orate
Caffè
8,00
20,00
2,00
Totale 39,00
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
5
Ultima modifica:
20/11/2007
Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli)
Tabelle con struttura nidificata
„
Frasi Prestampate
„
Informazioni Fisse
„
ne
zio
a
Da Filippo nic
u
Via Roma 2,CRoma
om
a
ll
Ricevuta
de Fiscale
e
z
en 18/11/2002
1235cidel
iS
3 to d Coperti
3,00
n
e
im
Antipasti
6,20
rt 2
pa
i
D
3
Primi
12,00
Informazioni variabili
(ognuna relativa a un insieme
di portate omogenee)
2
Bistecche
18,00
Totale 39,20
UD 2.2b
# 11
Ultima modifica:
20/11/2007
„
„
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli)
Tabelle con struttura nidificata
e
Poiché le Tabelle hanno un numero fisso di attributi zion e
ca
ic
¾ non è possibile rappresentare l’informazione contenuta nelle
un
m
o
ricevute utilizzando una sola tabella …
aC
l
l
de
¾ … a meno di non sprecare una quantità enorme di
ze“spazio” creando
n
ie
un numero di colonne pari al numero massimo
Sc di portate
i
od
nt
e
tim
ar
E’ possibile rappresentare leipinformazioni
per mezzo di
D
due tabelle, la prima contenente i dati fissi e la
seconda quelli variabili (un record per ogni elemento)
UD 2.2b
# 12
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
6
Ultima modifica:
20/11/2007
Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli)
Tabelle con struttura nidificata
Ricevute
Dettaglio
Numero
1235
1240
Numero
1235
1235
1235
1235
1240
…
UD 2.2b
# 13
Ultima modifica:
20/11/2007
„
„
„
ne
zio
a
nic
Data
Totale omu
C
lla
12/10/2000
39,20
e
d
ze
n
e
13/10/2000 ci 39,00
iS
od
t
en
Qtà
3,00
im Coperti
t
r
a
3 Di p
Coperti
3,00
2
3
2
Antipasti
Primi
Bistecche
6,20
12,00
18,00
2
…
Coperti
…
2,00
…
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli)
Tabelle con struttura nidificata
e
e
Abbiamo rappresentato veramente tutti gli aspetti delle
i on
z
a
nic
ricevute?
mu
om
aC
l
l
de
ze
n
¾ l'ordine delle righe è rilevante?
ie
Sc
i
¾ possono esistere linee ripetute in una ricevuta?
od
nt
e
im
rt
a
p
Basta aggiungere un ulteriore
Di attributo che indica la
Dipende da che cosa ci interessa!
posizione della riga sulla ricevuta
„
I DATI DA RAPPRESENTARE NELLA BASE DI DATI
POSSONO ESSERE DIVERSI A SECONDA DEGLI
OBIETTIVI CHE CI SI PREFIGGE DI RAGGIUNGERE
UD 2.2b
# 14
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
7
Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli)
Ultima modifica:
20/11/2007
Rappresentazione alternativa di strutture
ne
zio
a
nic
Ricevute
Numero
Data
Totale omu
C
lla
1235
12/10/2000
39,20
e
d
ze
n
e
1240
13/10/2000 ci 39,00
iS
od
t
Dettaglio Numero Riga Qtàmen Descrizione Importo
ti
ar
p
i
1235
1 D 3
Coperti
3,00
UD 2.2b
# 15
1235
1235
1235
2
3
4
2
3
2
Antipasti
Primi
Bistecche
6,20
12,00
18,00
1240
…
1
…
2
…
Coperti
…
2,00
…
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
INFORMAZIONE INCOMPLETA E VALORI
NULLI
Atzeni, cap. 2.1.5
8
Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli)
Ultima modifica:
20/11/2007
„
„
Informazione incompleta
e
ne
ll modello relazionale impone ai dati una struttura rigida:
zio
a
nic
¾ le informazioni sono rappresentate per mezzo di tuple
u
om
a C di
¾ sono ammesse solo le tuple che corrispondono agli schemi
l
l
e
ed
relazione
z
ien
Sc
i
d
to
I dati effettivamente disponibilienpossono
non
im
t
corrispondere esattamente ipalar formato previsto
D
Ad esempio, in una relazione sullo schema
PERSONE (Cognome, Nome, Indirizzo, Telefono)
il valore di Telefono potrebbe non essere disponbile per
tutte le tuple.
UD 2.2b
# 17
Ultima modifica:
20/11/2007
„
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli)
Informazione incompleta: soluzioni?
e
e
non è opportuno usare valori del dominio (0, stringa vuota,
i on
z
a
nic
“99”, ...) perchè si potrebbe generare confusione. Infatti:
mu
om
aC
¾ potrebbero non esistere valori del dominio “non utilizzati”
l
l
de
(come nel caso delle date)
ze
n
cie
¾ i programmi che accedono alla Base di Datii Sdevono
poter
d
o
distinguere i valori effettivi da quelli
t fittizi, e questo implica
en
im
una complicazione degli stessi software.
t
r
pa
Di
¾ valori “non utilizzati” potrebbero,
con il tempo, diventare
significativi
UD 2.2b
# 18
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
9
Ultima modifica:
20/11/2007
„
Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli)
Informazione incompleta nel relazionale
ne
zio
a
ic
¾ valore nullo: denota l’assenza di un valore del dominio un
m
o
C
¾ Non è un valore del dominio, ma è un valore aggiuntivo
lla rispetto a
e
d
quelli del dominio
ze
n
e
ci
iS
d
o
nt
e
im
rt
pa
i
D
Si adotta una tecnica semplice ma efficace:
UD 2.2b
# 19
Ultima modifica:
20/11/2007
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli)
Tipi di valore nullo
e
i on
z
ica
un
Roma
Via Quattro Novembre
m
o
aC
Firenze NULL
l
l
de
Tivoli
NULL
ze
n
ie
Prato
NULL
Sc
i
d
to
n
e
(almeno) tre casi differenti
im
rt
a
p
¾ valore sconosciuto (Firenze certamente
ha una Prefettura. Se non
Di
compare nella Relazione significa che al momento non ci è nota)
Città
„
Indirizzo Prefettura
¾ valore inesistente (Tivoli non è capoluogo di provincia e quindi non
ha Prefettura. In questo caso il valore è inesistente)
¾ valore senza informazione (Prato è stata da poco istituita come
Provincia per cui non si sa se già esiste una Prefettura. Siamo in
uno dei due casi precedenti, ma non sappiamo quale)
UD 2.2b
# 20
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
10
Ultima modifica:
20/11/2007
„
„
Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli)
Valori Nulli
e
I DBMS non distinguono i tipi di valore nullo, in praticazion e
ica
per un DBMS il valore nullo è sempre del terzo mtipo
un
o
aC
(assenza di informazione, cioè non si sa se è inesistente
o
l
l
de
e
z
sconosciuto)
en
ci e
iS
d
o
nt
e
ATTENZIONE
im
rt
pa
i
¾ Non sempre è possibile inserire
D un valore nullo in una relazione.
¾ Bisogna controllare attentamente la presenza di valori nulli in una
relazione
¾ I Vincoli di Integrità ci vengono in aiuto.
UD 2.2b
# 21
Ultima modifica:
20/11/2007
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
Sistemi per la Gestione di Basi di Dati (DBMS) - Modello Relazionale 2 (Relazioni e Basi di Dati – valori nulli)
Troppi valori nulli (errore nelle tuple)
studenti Matricola Cognome
AMMISSIBILE
276545
Rossi
NULL
Neri
NULL
Verdi
esami
Rende INUTILIZZABILE la
tupla (che non fornisce alcuna
informazione utile)
PROBLEMATICA (l’attributo
stabilisce una correlazione tra
tuple direlazioni diverse)
corsi
Le due tuple potrebbero essere
addirittura identiche
UD 2.2b
# 22
ne
zio
Nome Data di nascita
ica
n
u
Maria
NULL
om
C
Anna
lla
e23/04/1972
d
Fabio nze 12/02/1972
cie
S
Studente
Voto
di
o
276545 ment 28
i
rt
NULL
27
pa
i
D
200768
24
Codice
01
03
NULL
Corso
01
NULL
NULL
Titolo Docente
Analisi
Gianni
Chimica NULL
Chimica
Belli
Prof Alberto Postiglione – Dipartimento di Scienze della Comunicazione – Università Salerno
11