Sei sulla pagina 1di 29
Corso di Basi di Dati e Laboratorio IL MODELLO RELAZIONALE Prof. Silvana Castano Prof. S.
Corso di Basi di Dati e Laboratorio
IL MODELLO RELAZIONALE
Prof. Silvana Castano
Prof. S. Castano
Basi di Dati e Laboratorio - A.A. 2007-2008
1
Il modello relazionale  

Il modello relazionale

 
Il modello relazionale  

• Proposto da E. F. Codd nel 1970 per favorire l’indipendenza dei dati

 

• Reso disponibile come modello logico in DBMS reali nel 1981

 

• Basato sulla nozione di relazione matematica, intesa come sottoinsieme del prodotto cartesiano fra due o più insiemi di dati, detti domini

• modello relazionale definisce anche un insieme

Il

 

di

vincoli sui dati ed è associato ad un linguaggio

 

per l’interrogazione delle basi di dati relazionali denominato algebra relazionale

 

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

2

 
Il modello relazionale  

Il modello relazionale

 
Il modello relazionale  
 

Relazione come base matematica

 

Tabella come struttura dati semplice, intuitiva e flessibile per la rappresentazione di relazioni

 
 

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

3

 
BD relazionale • Una bd è rappresentata come una collezione di tabelle • Ogni tabella
BD relazionale • Una bd è rappresentata come una collezione di tabelle • Ogni tabella

BD relazionale

BD relazionale • Una bd è rappresentata come una collezione di tabelle • Ogni tabella ha
BD relazionale • Una bd è rappresentata come una collezione di tabelle • Ogni tabella ha

• Una bd è rappresentata come una collezione di tabelle

• Ogni tabella ha un nome unico nella bd

– Una riga di tabella rappresenta una corrispondenza fra valori – Ogni colonna ha associato un nome distinto di attributo A k ; per ogni attributo A k c’e’ un insieme D k di possibili valori detto dominio

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

4

un insieme D k di possibili valori detto dominio Prof. S. Castano Basi di Dati e
BD relazionale  

BD relazionale

 
BD relazionale  
 

• Ogni riga è una ennupla ordinata di valori (d 1 ,d 2 ,…,d n ) con d k appartenente al dominio D k del corrispondente attributo A k

 

• Una tabella contiene un sottoinsieme di tutte le righe possibili, cioè un sottoinsieme del prodotto cartesiano D 1 ×D 2 ×…×D n

 

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

5

 
ESEMPIO 6554 8765 9283 3456 Cognome Nome Rossi Mario Neri Paolo Verdi Luisa Rossi

ESEMPIO

6554

8765

9283

3456

Cognome

Nome

Rossi

Mario

Neri

Paolo

Verdi

Luisa

Rossi

Maria

Studente

Neri Paolo Verdi Luisa Rossi Maria Studente Matricola Data di nascita 05/12/1979 03/11/1976 12/11/1979
Neri Paolo Verdi Luisa Rossi Maria Studente Matricola Data di nascita 05/12/1979 03/11/1976 12/11/1979
Neri Paolo Verdi Luisa Rossi Maria Studente Matricola Data di nascita 05/12/1979 03/11/1976 12/11/1979

Matricola

Data di nascita

05/12/1979

03/11/1976

12/11/1979

01/02/1978

Data di nascita 05/12/1979 03/11/1976 12/11/1979 01/02/1978 Basi di Dati e Laboratorio - A.A. 2007-2008 6
Data di nascita 05/12/1979 03/11/1976 12/11/1979 01/02/1978 Basi di Dati e Laboratorio - A.A. 2007-2008 6

Basi di Dati e Laboratorio - A.A. 2007-2008

6

Prof. S. Castano

di nascita 05/12/1979 03/11/1976 12/11/1979 01/02/1978 Basi di Dati e Laboratorio - A.A. 2007-2008 6 Prof.
Relazione matematica • D 1 , D 2 , …, D n (n insiemi di
Relazione matematica
• D 1 , D 2 , …, D n (n insiemi di valori anche non distinti)
• il prodotto cartesiano D 1 ×D 2 ×…×D n , è l’insieme di tutte le
n-uple ordinate (d 1 , d 2 , …, dn) tali che d 1 ∈D 1 , d 2 ∈ D 2 , …,
d n ∈ D n .
• Una relazione matematica su D 1 , D 2 , …, D n è un
sottoinsieme del prodotto cartesiano D 1 ×D 2 ×…×D n .
• D 1 , D 2 , …, D n sono i domini della relazione. Una
relazione su n domini ha grado n .
• Il numero di n-uple è la cardinalità della relazione. Nelle
applicazioni reali, la cardinalità è sempre finita
Prof. S. Castano
Basi di Dati e Laboratorio - A.A. 2007-2008
7
ESEMPIO
D
1 ={a,b}
D
2 ={x,y,z}
prodotto cartesiano
D 1 × D 2
a
x
a
y
a
z
b
x
b
y
b
z
una relazione
r ⊆ D 1 × D 2
a
x
a
z
b
y
b
z
Prof. S. Castano
Basi di Dati e Laboratorio - A.A. 2007-2008
8
RELAZIONE CON ATTRIBUTI  

RELAZIONE CON ATTRIBUTI

 
RELAZIONE CON ATTRIBUTI  

Si associa ad ogni occorrenza di dominio nella relazione un nome detto attributo che descrive il ruolo del dominio nella relazione

 

Una ennupla 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 ennupla t sull'attributo A

   

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

9

 
Rappresentazione tabellare  

Rappresentazione tabellare

 
Rappresentazione tabellare  
 

• I valori di ciascuna colonna sono fra loro omogenei: i valori di un attributo appartengono allo stesso dominio

 
 

– Si noti che se non si definisse un nome univoco per ogni dominio della relazione occorrerebbe fare riferimento all’ordine dei domini per interpretare correttamente i dati. Grazie all’introduzione degli attributi invece tale ordine è irrilevante

 

• Le righe sono diverse fra loro: una relazione non contiene mai ennuple identiche (orientamento ai valori)

 

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

10

 
Rappresentazione tabellare  

Rappresentazione tabellare

 
Rappresentazione tabellare  

• L‘ordinamento delle colonne è irrilevante poiché esse sono sempre identificate per nome e non per posizione

 

• L‘ordinamento delle righe è irrilevante poiché sono identificate per contenuto e non per posizione

 
 

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

11

 
Orientamento ai valori • I riferimenti fra dati in relazioni diverse (associazioni) sono rappresentati per
Orientamento ai valori • I riferimenti fra dati in relazioni diverse (associazioni) sono rappresentati per

Orientamento ai valori

Orientamento ai valori • I riferimenti fra dati in relazioni diverse (associazioni) sono rappresentati per mezzo

• I riferimenti fra dati in relazioni diverse (associazioni) sono rappresentati per mezzo di valori dei domini che compaiono nelle ennuple

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

12

di valori dei domini che compaiono nelle ennuple Prof. S. Castano Basi di Dati e Laboratorio
Esempio Studente Matricola Cognome Nome Data di Nascita 6554 Rossi Mario 05/12/1978 8765 Neri Paolo
Esempio
Studente
Matricola
Cognome
Nome
Data di Nascita
6554
Rossi
Mario
05/12/1978
8765
Neri
Paolo
03/11/1976
9283
Verdi
Luisa
12/11/1979
3456
Rossi
Maria
01/12/1978
Esame
Corso
Studente
Voto
Corso
ID
Titolo
Docente
6554
26
01
01
Analisi
Neri
9283
28
01
02
Chimica
Bruni
3456
30
04
04
Chimica
Verdi
3456
24
02
Prof. S. Castano
Basi di Dati e Laboratorio - A.A. 2007-2008
13
Esempio Studente Matricola Cognome Nome Data di Nascita Rossi 6554 Mario 05/12/1978 8765 Neri Paolo
Esempio
Studente
Matricola
Cognome
Nome
Data di Nascita
Rossi
6554
Mario
05/12/1978
8765
Neri
Paolo
03/11/1976
Verdi
9283
Luisa
12/11/1979
Rossi
3456
Maria
01/12/1978
Esame
Corso
Studente
Voto
Corso
ID
Titolo
Docente
6554
26
01
Analisi
01
Neri
9283
28
01
Chimica
02
Bruni
3456
30
04
Chimica
04
Verdi
3456
24
02
Prof. S. Castano
Basi di Dati e Laboratorio - A.A. 2007-2008
14
Definizioni - Livello intensionale  

Definizioni - Livello intensionale

 
Definizioni - Livello intensionale  

Schema di relazione R(A 1 ,

,

A n )

 

– un nome di relazione R e un insieme di attributi

 

A

1 ,

,

A

n

Schema di base di dati

 
 

R = {R 1 (X 1 ),

,

R n (X n )}

 

– insieme di schemi di relazione

 
 

Prof. S. Castano

 

Basi di Dati e Laboratorio - A.A. 2007-2008

 

15

 
Esempio Studente Matricola Cognome Nome Data di Nascita 6554 Rossi Mario 05/12/1978 8765 Neri Paolo
Esempio
Studente
Matricola
Cognome
Nome
Data di Nascita
6554
Rossi
Mario
05/12/1978
8765
Neri
Paolo
03/11/1976
9283
Verdi
Luisa
12/11/1979
3456
Rossi
Maria
01/12/1978
Esame
Corso
Studente
Voto
Corso
ID
Titolo
Docente
6554
26
01
01
Analisi
Neri
9283
28
01
02
Chimica
Bruni
3456
30
04
04
Chimica
Verdi
3456
24
02
Prof. S. Castano
Basi di Dati e Laboratorio - A.A. 2007-2008
16
Definizioni - Livello estensionale  

Definizioni - Livello estensionale

 
Definizioni - Livello estensionale  

• (Istanza di) relazione su uno schema R(X):

 
 

– insieme r di ennuple su X

 

• (Istanza di) base di dati su uno schema

 
 

R= {R 1 (X 1 ),

,

R n (X n )}:

 

– insieme di relazioni r = {r 1 , relazione su R i )

,

r n } (con

r i

 

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

 

17

 
Esempio Studente Matricola Cognome Nome Data di Nascita 6554 Rossi Mario 05/12/1978 8765 Neri Paolo
Esempio
Studente
Matricola
Cognome
Nome
Data di Nascita
6554
Rossi
Mario
05/12/1978
8765
Neri
Paolo
03/11/1976
9283
Verdi
Luisa
12/11/1979
3456
Rossi
Maria
01/12/1978
Esame
Corso
Studente
Voto
Corso
ID
Titolo
Docente
6554
26
01
01
Analisi
Neri
9283
28
01
02
Chimica
Bruni
3456
30
04
04
Chimica
Verdi
3456
24
02
Prof. S. Castano
Basi di Dati e Laboratorio - A.A. 2007-2008
18
Relazioni su un solo attributo Studente Matricola Cognome Nome Data di Nascita 6554 Rossi Mario
Relazioni su un solo attributo
Studente
Matricola
Cognome
Nome
Data di Nascita
6554
Rossi
Mario
05/12/1978
8765
Neri
Paolo
03/11/1976
9283
Verdi
Luisa
12/11/1979
3456
Rossi
Maria
01/12/1978
Studente
Matricola
Lavoratore
6554
3456
Prof. S. Castano
Basi di Dati e Laboratorio - A.A. 2007-2008
19
Corso di Basi di Dati e Laboratorio Informazione incompleta Prof. S. Castano Basi di Dati
Corso di Basi di Dati e Laboratorio
Informazione incompleta
Prof. S. Castano
Basi di Dati e Laboratorio - A.A. 2007-2008
20
INFORMAZIONE INCOMPLETA  

INFORMAZIONE INCOMPLETA

 
INFORMAZIONE INCOMPLETA  
 

• Una relazione rappresenta la conoscenza acquisita su una certa realtà applicativa di interesse

 

• E‘ possibile che non tutti gli aspetti della realtà applicativa da rappresentare nella base di dati siano noti

 

• Il modello relazionale impone ai dati una struttura rigida:

 
 

– le informazioni sono rappresentate per mezzo di ennuple, con formati predefiniti

 
 

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

21

 
VALORI NULLI • E‘ ragionevole ammettere che una relazione contenga valori al momento non specificati
VALORI NULLI • E‘ ragionevole ammettere che una relazione contenga valori al momento non specificati

VALORI NULLI

VALORI NULLI • E‘ ragionevole ammettere che una relazione contenga valori al momento non specificati Prof.

• E‘ ragionevole ammettere che una relazione contenga valori al momento non specificati

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

22

relazione contenga valori al momento non specificati Prof. S. Castano Basi di Dati e Laboratorio -
Soluzioni

Soluzioni

Soluzioni
 

Utilizzare valori ordinari del dominio "non utilizzati" (0, stringa nulla, 99, etc)? No!

 
 

– Possono non esistere valori non utilizzati

 

– I valori non utilizzati possono diventare significativi

– I programmi dovrebbero tenerne conto

 

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

23

 
Valore NULL

Valore NULL

Valore NULL
 

• Valore nullo - NULL: denota l’assenza di un valore del dominio

 

Non è un valore del dominio; i domini di definizione delle relazioni vengono estesi

   

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

24

 
Tipi di valore nullo  

Tipi di valore nullo

 
Tipi di valore nullo  
 

• (almeno) tre casi differenti

 
 

– valore sconosciuto

– valore inesistente

– valore senza informazione

 

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

25

 
ESEMPIO Matricola telefono 6554 02 2556789 8765 NULL 9283 NULL » I Basi di Dati
ESEMPIO Matricola telefono 6554 02 2556789 8765 NULL 9283 NULL » I Basi di Dati
ESEMPIO Matricola telefono 6554 02 2556789 8765 NULL 9283 NULL » I Basi di Dati

ESEMPIO

Matricola

telefono

6554

02 2556789

8765

NULL

9283

NULL

» I

Basi di Dati e Laboratorio - A.A. 2007-2008

26

Prof. S. Castano

02 2556789 8765 NULL 9283 NULL » I Basi di Dati e Laboratorio - A.A. 2007-2008
02 2556789 8765 NULL 9283 NULL » I Basi di Dati e Laboratorio - A.A. 2007-2008
02 2556789 8765 NULL 9283 NULL » I Basi di Dati e Laboratorio - A.A. 2007-2008
02 2556789 8765 NULL 9283 NULL » I Basi di Dati e Laboratorio - A.A. 2007-2008
Valori nulli

Valori nulli

Valori nulli
 

• Sistemi di basi di dati relazionali: gestione semplice dei valori nulli (sempre caso assenza di informazione)

 

• E’ necessario controllare la presenza di valori nulli nelle relazioni, solo alcune configurazioni devono essere ammesse (numero eccessivo di valori nulli dubbi sulla significatività e sull’identità delle tuple nella relazione)

 

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

27

 
Corso di Basi di Dati e Laboratorio Vincoli di integrità Prof. S. Castano Basi di
Corso di Basi di Dati e Laboratorio
Vincoli di integrità
Prof. S. Castano
Basi di Dati e Laboratorio - A.A. 2007-2008
28
ESEMPIO Esame Studente Voto Lode Corso 276545 32 32   01 276545 30 e lode
ESEMPIO Esame Studente Voto Lode Corso 276545 32 32   01 276545 30 e lode
ESEMPIO Esame Studente Voto Lode Corso 276545 32 32   01 276545 30 e lode

ESEMPIO

Esame

Studente

Voto

Lode

Corso

276545

32

32

 

01

276545

30

e lode

02

787643

27

27

e lode

e lode

03

739430

739430

24

04

Studente

Matricola

Cognome

Nome

276545

Rossi

Mario

787643

787643

Neri

Piero

787643

787643

Bianchi

Luca

Basi di Dati e Laboratorio - A.A. 2007-2008

29

Prof. S. Castano

Neri Piero 787643 787643 Bianchi Luca Basi di Dati e Laboratorio - A.A. 2007-2008 29 Prof.
Neri Piero 787643 787643 Bianchi Luca Basi di Dati e Laboratorio - A.A. 2007-2008 29 Prof.
Neri Piero 787643 787643 Bianchi Luca Basi di Dati e Laboratorio - A.A. 2007-2008 29 Prof.
Neri Piero 787643 787643 Bianchi Luca Basi di Dati e Laboratorio - A.A. 2007-2008 29 Prof.
Il problema • Esistono istanze di basi di dati che, pur sintatticamente corrette, non rappresentano
Il problema • Esistono istanze di basi di dati che, pur sintatticamente corrette, non rappresentano

Il problema

Il problema • Esistono istanze di basi di dati che, pur sintatticamente corrette, non rappresentano informazioni
Il problema • Esistono istanze di basi di dati che, pur sintatticamente corrette, non rappresentano informazioni

• Esistono istanze di basi di dati che, pur sintatticamente corrette, non rappresentano informazioni possibili per l’applicazione di interesse

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

30

possibili per l’applicazione di interesse Prof. S. Castano Basi di Dati e Laboratorio - A.A. 2007-2008
Vincolo di integrità • Proprietà che deve essere soddisfatta dalle istanze che rappresentano informazioni corrette
Vincolo di integrità
Proprietà che deve essere soddisfatta
dalle istanze che rappresentano
informazioni corrette per l’applicazione
Prof. S. Castano
Basi di Dati e Laboratorio - A.A. 2007-2008
31
Definizione di vincolo
• Un vincolo è una funzione booleana (un
predicato)
• associa ad ogni istanza il valore vero o
falso
Prof. S. Castano
Basi di Dati e Laboratorio - A.A. 2007-2008
32
Tipi di vincoli • vincoli intrarelazionali – vincoli su valori (o di dominio ) –
Tipi di vincoli • vincoli intrarelazionali – vincoli su valori (o di dominio ) –

Tipi di vincoli

Tipi di vincoli • vincoli intrarelazionali – vincoli su valori (o di dominio ) – vincoli
Tipi di vincoli • vincoli intrarelazionali – vincoli su valori (o di dominio ) – vincoli

• vincoli intrarelazionali

– vincoli su valori (o di dominio) – vincoli di ennupla

• vincoli interrelazionali

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

33

– vincoli di ennupla • vincoli interrelazionali Prof. S. Castano Basi di Dati e Laboratorio -
Esempio Esame Studente Voto Lode Corso 276545 32 32   01 276545 30 e lode
Esempio Esame Studente Voto Lode Corso 276545 32 32   01 276545 30 e lode
Esempio Esame Studente Voto Lode Corso 276545 32 32   01 276545 30 e lode

Esempio

Esame

Studente

Voto

Lode

Corso

276545

32

32

 

01

276545

30

e lode

02

787643

27

27

e lode

e lode

03

739430

739430

24

04

Studente

Matricola

Cognome

Nome

276545

Rossi

Mario

787643

787643

Neri

Piero

787643

787643

Bianchi

Luca

Basi di Dati e Laboratorio - A.A. 2007-2008

34

Prof. S. Castano

Neri Piero 787643 787643 Bianchi Luca Basi di Dati e Laboratorio - A.A. 2007-2008 34 Prof.
Neri Piero 787643 787643 Bianchi Luca Basi di Dati e Laboratorio - A.A. 2007-2008 34 Prof.
Neri Piero 787643 787643 Bianchi Luca Basi di Dati e Laboratorio - A.A. 2007-2008 34 Prof.
Neri Piero 787643 787643 Bianchi Luca Basi di Dati e Laboratorio - A.A. 2007-2008 34 Prof.
Vincoli di ennupla • Esprimono condizioni sui valori di ciascuna ennupla, indipendentemente dalle altre ennuple
Vincoli di ennupla • Esprimono condizioni sui valori di ciascuna ennupla, indipendentemente dalle altre ennuple

Vincoli di ennupla

Vincoli di ennupla • Esprimono condizioni sui valori di ciascuna ennupla, indipendentemente dalle altre ennuple Prof.
Vincoli di ennupla • Esprimono condizioni sui valori di ciascuna ennupla, indipendentemente dalle altre ennuple Prof.

• Esprimono condizioni sui valori di ciascuna ennupla, indipendentemente dalle altre ennuple

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

35

ennupla, indipendentemente dalle altre ennuple Prof. S. Castano Basi di Dati e Laboratorio - A.A. 2007-2008
Vincoli di dominio • Vincoli di ennupla che coinvolgono un solo attributo Prof. S. Castano
Vincoli di dominio • Vincoli di ennupla che coinvolgono un solo attributo Prof. S. Castano

Vincoli di dominio

Vincoli di dominio • Vincoli di ennupla che coinvolgono un solo attributo Prof. S. Castano Basi
Vincoli di dominio • Vincoli di ennupla che coinvolgono un solo attributo Prof. S. Castano Basi

• Vincoli di ennupla che coinvolgono un solo attributo

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

36

Vincoli di ennupla che coinvolgono un solo attributo Prof. S. Castano Basi di Dati e Laboratorio
Vincoli di ennupla • Una possibile sintassi: – espressione booleana (con AND, OR e NOT)
Vincoli di ennupla • Una possibile sintassi: – espressione booleana (con AND, OR e NOT)

Vincoli di ennupla

Vincoli di ennupla • Una possibile sintassi: – espressione booleana (con AND, OR e NOT) di

• Una possibile sintassi:

– espressione booleana (con AND, OR e NOT) di atomi che confrontano valori di attributo o espressioni aritmetiche su di essi

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

37

di attributo o espressioni aritmetiche su di essi Prof. S. Castano Basi di Dati e Laboratorio
Esempio Esame Studente Voto Lode Corso 276545 32 32   01 276545 30 e lode
Esempio Esame Studente Voto Lode Corso 276545 32 32   01 276545 30 e lode
Esempio Esame Studente Voto Lode Corso 276545 32 32   01 276545 30 e lode

Esempio

Esame

Studente

Voto

Lode

Corso

276545

32

32

 

01

276545

30

e lode

02

787643

27 27 e lode e lode
27
27
e lode
e lode

03

739430

24

04

• (Voto 18) AND (Voto 30)

24 04 • (Voto ≥ 18) AND (Voto ≤ 30) • (Voto = 30) OR NOT
24 04 • (Voto ≥ 18) AND (Voto ≤ 30) • (Voto = 30) OR NOT
24 04 • (Voto ≥ 18) AND (Voto ≤ 30) • (Voto = 30) OR NOT

• (Voto = 30) OR NOT (Lode = "e lode")

Basi di Dati e Laboratorio - A.A. 2007-2008

38

Prof. S. Castano

30) • (Voto = 30) OR NOT (Lode = "e lode") Basi di Dati e Laboratorio
Corso di Basi di Dati e Laboratorio Vincoli di chiave Prof. S. Castano Basi di
Corso di Basi di Dati e Laboratorio
Vincoli di chiave
Prof. S. Castano
Basi di Dati e Laboratorio - A.A. 2007-2008
39
• Insieme di attributi che identificano univocamente le ennuple di una relazione Prof. S. Castano
• Insieme di attributi che identificano univocamente le ennuple di una relazione Prof. S. Castano

• Insieme di attributi che identificano univocamente le ennuple di una relazione

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

40

Chiave

Chiave

Chiave
Chiavi: definizioni • Un insieme K di attributi è superchiave per una relazione r se
Chiavi: definizioni
• Un insieme K di attributi è superchiave
per una relazione r se r non contiene
due ennuple distinte t 1 e t 2 con t 1 [K] =
t
2 [K]
(identificazione univoca)
• K è chiave per r se è una superchiave
minimale per r
(cioè non contiene un’altra superchiave)
(minimalità)
Prof. S. Castano
Basi di Dati e Laboratorio - A.A. 2007-2008
41
Chiavi
• Una relazione non può contenere ennuple
distinte ma uguali
• Ogni relazione ha come superchiave
l’insieme degli attributi su cui è definita
• e quindi ha (almeno) una chiave
Prof. S. Castano
Basi di Dati e Laboratorio - A.A. 2007-2008
42
Esempio  

Esempio

 
Esempio  
 

Matricola

Cognome

Nome

Corso

Nascita

 

27655

Rossi

Mario

Ing Inf

5/12/78

78763

Rossi

Mario

Ing Inf

3/11/76

65432

Neri

Piero

Ing Mecc

10/7/79

87654

Neri

Mario

Ing Inf

3/11/76

67653

Rossi

Piero

Ing Mecc

5/12/78

 

• non ci sono due ennuple con lo stesso valore sull’attributo Matricola

 

• non ci sono due ennuple uguali su tutti e tre gli attributi Cognome, Nome e Data di Nascita

 
 

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

43

 
Esempio  

Esempio

 
Esempio  
 

Matricola

Cognome

Nome

Corso

Nascita

 

27655

Rossi

Mario

Ing Inf

5/12/78

78763

Rossi

Mario

Ing Inf

3/11/76

65432

Neri

Piero

Ing Mecc

10/7/79

87654

Neri

Mario

Ing Inf

3/11/76

67653

Rossi

Piero

Ing Mecc

5/12/78

 

• Matricola è una chiave:

 
 

– è superchiave – contiene un solo attributo e quindi è minimale

 
 

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

44

 
Esempio Matricola Cognome Nome Corso Nascita 27655 Rossi Rossi Rossi Mario Mario Ing Inf 5/12/78
Esempio
Matricola
Cognome
Nome
Corso
Nascita
27655
Rossi
Rossi
Rossi
Mario Mario
Ing Inf
5/12/78 5/12/78
78763
Rossi Rossi
Mario
Mario
Mario
Ing Inf
3/11/76 3/11/76
65432
Neri
Piero
Ing Mecc
10/7/79
87654
Neri
Mario Mario
Ing Inf
3/11/76 3/11/76
67653
Rossi Rossi
Piero
Ing Mecc
5/12/78 5/12/78
• Cognome, Nome, Nascita è un’altra
chiave:
– è superchiave
– minimale
Prof. S. Castano
Basi di Dati e Laboratorio - A.A. 2007-2008
45
Chiavi
• L’esistenza delle chiavi garantisce
l’accessibilità a ciascun dato della base di
dati
• Le chiavi permettono di correlare i dati in
relazioni diverse:
– il modello relazionale è basato su valori
Prof. S. Castano
Basi di Dati e Laboratorio - A.A. 2007-2008
46
Chiavi e valori nulli  

Chiavi e valori nulli

 
Chiavi e valori nulli  
 

• In presenza di valori nulli, i valori della chiave non permettono

 
 

– di identificare le ennuple – di realizzare facilmente i riferimenti da altre relazioni

 
 

• La presenza di valori nulli nelle chiavi deve essere limitata

 
 

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

47

 
CHIAVE PRIMARIA  

CHIAVE PRIMARIA

 
CHIAVE PRIMARIA  

• Una relazione può avere più chiavi candidate (ne ha almeno una)

 

• E’ opportuno che almeno una chiave consenta di identificare univocamente OGNI ennupla della relazione e quindi non ammetta valori nulli (vincolo di entity integrity)

Chiave primaria: chiave su cui non sono ammessi valori nulli

 

• Notazione: sottolineatura

 

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

48

 
Esempio Matricola Cognome Nome Corso Nascita 27655 Rossi Mario Ing Inf 5/12/78 78763
Esempio Matricola Cognome Nome Corso Nascita 27655 Rossi Mario Ing Inf 5/12/78 78763
Esempio Matricola Cognome Nome Corso Nascita 27655 Rossi Mario Ing Inf 5/12/78 78763

Esempio

Matricola Cognome Nome Corso Nascita 27655 Rossi Mario Ing Inf 5/12/78 78763 Rossi
Matricola Cognome Nome Corso Nascita 27655 Rossi Mario Ing Inf 5/12/78 78763 Rossi
Matricola Cognome Nome Corso Nascita 27655 Rossi Mario Ing Inf 5/12/78 78763 Rossi

Matricola

Cognome

Nome

Corso

Nascita

27655

Rossi

Mario

Ing Inf

5/12/78

78763

Rossi

Mario

Ing Inf

3/11/76

65432

Neri

Piero

Ing Mecc

10/7/79

87654

Neri

Mario

Ing Inf

3/11/76

67653

Rossi

Piero

Ing Mecc

5/12/78

Basi di Dati e Laboratorio - A.A. 2007-2008

49

Prof. S. Castano

67653 Rossi Piero Ing Mecc 5/12/78 Basi di Dati e Laboratorio - A.A. 2007-2008 49 Prof.
67653 Rossi Piero Ing Mecc 5/12/78 Basi di Dati e Laboratorio - A.A. 2007-2008 49 Prof.
67653 Rossi Piero Ing Mecc 5/12/78 Basi di Dati e Laboratorio - A.A. 2007-2008 49 Prof.
67653 Rossi Piero Ing Mecc 5/12/78 Basi di Dati e Laboratorio - A.A. 2007-2008 49 Prof.
Corso di Basi di Dati e Laboratorio Vincoli interrelazionali: integrità referenziale Prof. S. Castano Basi
Corso di Basi di Dati e Laboratorio
Vincoli interrelazionali:
integrità referenziale
Prof. S. Castano
Basi di Dati e Laboratorio - A.A. 2007-2008
50
Esempio Matricola Cognome Nome Data di Nascita Studente 6554 Rossi Mario 05/12/1978 8765 Neri Paolo
Esempio
Matricola
Cognome
Nome
Data di Nascita
Studente
6554
Rossi
Mario
05/12/1978
8765
Neri
Paolo
03/11/1976
9283
Verdi
Luisa
12/11/1979
3456
Rossi
Maria
01/12/1978
Studente
Voto
Corso
Esame
6554
26
01
9283
28
01
3456
30
04
3456
24
02
Prof. S. Castano
Basi di Dati e Laboratorio - A.A. 2007-2008
51
Vincoli di integrità referenziale  

Vincoli di integrità referenziale

 
Vincoli di integrità referenziale  
 

• informazioni in relazioni diverse sono correlate attraverso valori comuni

 

• in particolare, valori delle chiavi (primarie)

 
 

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

52

 
Integrità referenziale • Un vincolo di integrità referenziale (“ foreign key ”) fra gli attributi
Integrità referenziale • Un vincolo di integrità referenziale (“ foreign key ”) fra gli attributi

Integrità referenziale

Integrità referenziale • Un vincolo di integrità referenziale (“ foreign key ”) fra gli attributi X
Integrità referenziale • Un vincolo di integrità referenziale (“ foreign key ”) fra gli attributi X

• Un vincolo di integrità referenziale (“foreign key”) fra gli attributi X di una relazione R 1 e un’altra relazione R 2 impone ai valori su X in R 1 di comparire come valori della chiave primaria di R 2

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

53

comparire come valori della chiave primaria di R 2 Prof. S. Castano Basi di Dati e
ESEMPIO

ESEMPIO

ESEMPIO
 

vincoli di integrità referenziale fra:

 
 

– l’attributo Studente della relazione ESAME e la relazione STUDENTE

 
 

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

54

 
Esempio di violazione del vincolo di integrità referenziale Matricola Cognome Nome Data di Nascita Studente
Esempio di violazione del vincolo di integrità
referenziale
Matricola
Cognome
Nome
Data di Nascita
Studente
6554
Rossi
Mario
05/12/1978
8765
Neri
Paolo
03/11/1976
?
9283
Verdi
Luisa
12/11/1979
3456
Rossi
Maria
01/12/1978
Studente
Voto
Corso
Esame
6554
26
01
9283
28
01
3456
30
04
3456
24
02
6622
18
01
Prof. S. Castano
Basi di Dati e Laboratorio - A.A. 2007-2008
55
Forme di relazioni • Negli esempi visti il valore di ogni attributo in ogni ennupla
Forme di relazioni • Negli esempi visti il valore di ogni attributo in ogni ennupla

Forme di relazioni

Forme di relazioni • Negli esempi visti il valore di ogni attributo in ogni ennupla era

• Negli esempi visti il valore di ogni attributo in ogni ennupla era atomico (unico e indivisibile nella bd)

– Attributo semplice: a valori atomici

– Attributo multivalore: in cui un possibile valore è un insieme di valori Esame---> {Sistemi, Analisi, Fisica}

– Attributo strutturato: in cui un possibile valore è una ennupla di valori DatiEsame ---> <Sistemi, Rossi, 25>

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

56

DatiEsame ---> <Sistemi, Rossi, 25> Prof. S. Castano Basi di Dati e Laboratorio - A.A. 2007-2008
Prima forma normale  

Prima forma normale

 
Prima forma normale  

• Uno schema di relazione R(X) è detto in prima forma normale (1NF o “flat”) se ogni attributo appartenente a X è un attributo semplice.

 

• Altrimenti lo schema è in forma strutturata o “nested”.

 

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

57

 
Prima forma normale  

Prima forma normale

 
Prima forma normale  
 

• Nel modello relazionale la 1NF deve essere garantita per ogni relazione che risulta così semplice da interpretare e da gestire

 

• (nella rappresentazione tabellare: se i valori sono atomici è facile realizzare le operazioni di manipolazione ed è facile interpretare le ennuple risultato)

 
 

Prof. S. Castano

Basi di Dati e Laboratorio - A.A. 2007-2008

58