DB - Modello
relazionale dei dati
DB - Modello Relazionale
1
Definizione
Un modello dei dati è un insieme di
meccanismi di astrazione per definire una
base di dati, con associato un insieme
predefinito di operatori e di vincoli di
integrità.
 Questi meccanismi di astrazione
costituiscono l’equivalente delle strutture
dati nella programmazione.

DB - Modello Relazionale
2
Modelli di dati

Alcuni modelli:
 Gerarchico
 Reticolare
 Relazionale



I modelli reticolare e gerarchico rispecchiano (in
qualche modo) l’architettura fisica dei dati
Il relazionale e’ basato solo sul valore dei dati
Recentemente: modello a oggetti
DB - Modello Relazionale
3
Caratteristiche di un buon
modello
Espressività: permette di rappresentare
in modo semplice e naturale i dati e le loro
proprietà.
 Semplicità: basato su un numero minimo
di meccanismi semplici da utilizzare e
capire.
 Realizzabilità: deve essere realizzabile in
modo efficiente su di un calcolatore.

DB - Modello Relazionale
4
Il modello relazionale dei dati





Introdotto da Codd nel 1970
Implementa bene il concetto di indipendenza dei
dati
Oggi e’ di gran lunga il modello dei dati più
diffuso
Implementato nei DBMS commerciali dal 1981
E’ basato sul concetto matematico di
RELAZIONE
DB - Modello Relazionale
5
Relazioni
NOME
Mario Rossi
Maria Bianchi
Givanni Verdi


MATRICOLA
123456
234567
345678
INDIRIZZO
Via Etnea 18
Via Roma 2
Via Catania 3
TELEFONO
777777
888888
999999
Una Relazione n-aria è un sottoinsieme del prodotto
cartesiano D1 X D2 X ... Dn di insiemi di valori di tipo
elementare detti domini.
Ogni elemento < d1, d2, …, dn> si chiama n-upla (o tupla)
DB - Modello Relazionale
6
Schema di relazione

Uno schema di relazione R : {T} e’ una
coppia formata dal nome di una relazione
R e da un tipo relazione T
DB - Modello Relazionale
7
Definizione Tipo Relazione
Interi,Reali,Booleani,Stringhe sono tipi
primitivi;
 se T1, T2, …, Tn sono tipi primitivi e A1, A2,
…, An sono etichette, dette attributi, allora
(A1 :T1 , A2 :T2 , …, An :Tn) e’ un tipo n-upla
di grado n (l’ordine non è significativo).
 se T è un tipo n-upla allora {T} e’ un tipo
relazione (tipo insieme di n-uple)

DB - Modello Relazionale
8
Schemi Relazionali
Uno Schema Relazionale è costituito da
un insieme di schemi di relazione Ri : {Ti},
i=1, 2,…, k e da un insieme di vincoli di
integrità relativi a tali schemi.
 Costituisce l’aspetto intensionale del dato
modello relazionale dei dati.

DB - Modello Relazionale
9
Aspetto estensionale
Una n-upla t=(A1:= v1, A2:= v2,…, An:= vn)
di tipo (A1 :T1 , A2 :T2 , …, An :Tn) è un
insieme di coppie (Ai , vi) con vi di tipo Ti.
 Una Relazione R di tipo {(A1 :T1 , A2 :T2 ,
…, An :Tn)} è un insieme finito di n-uple di
tipo (A1 :T1 , A2 :T2 , …, An :Tn).
 La cardinalita’ di una relazione e’ il numero
di n-uple

DB - Modello Relazionale
10
Esempio di relazione
NOME
Mario Rossi
Maria Bianchi
MATRICOLA
123456
234567
INDIRIZZO
Via Etnea 18
Via Roma 2
TELEFONO
777777
888888
Givanni Verdi
345678
Via Catania 3
999999

E’ una relazione di tipo {(Nome : char ,
Matricola : int ,Indirizzo : char , Telefono :int )}
e ciascuna riga è una n-upla della relazione.
DB - Modello Relazionale
11
Esempio di schema relazionale
{
Studenti : { (Nome : char , Matricola : int(6) ,Indirizzo : char ,
Telefono :int(6) ) }
Esami : { (Corso : char , Matricola : int(6) ,Voto: {18,19,…,30} }
Corsi : { (Corso:char, Professore:char) }
}

Che si abbrevia (se non interessa riportare il tipo degli attributi) in:

Studenti( Nome, Matricola, Indirizzo, Telefono);
Esami( Corso, Matricola,Voto);
Corsi( Corso, Professore);
DB - Modello Relazionale
12
Dominio di un attributo

dom(Ai) e’ l’insieme dei possibili valori
dell’attributo Ai

ad esempio nella tabella
Studenti(Corso,Matricola,Voto) ,
dom(Voto) = {18,19,…,30}
DB - Modello Relazionale
13
Vincoli di integrità



I vincoli di integrita’ servono a migliorare la
qualita’ delle informazioni contenute nella base
di dati
Un vincolo e’ un predicato che dev’essere
soddisfatto da ogni n-upla nella base di dati
Un’istanza valida di uno schema di relazione è
una relazione dello schema che soddisfa tutti i
vincoli di integrità.
DB - Modello Relazionale
14
Esempio di vincoli d’integrita’





Il voto dev’essere compreso tra 18 e 30
La lode puo’ apparire solo se voto=30
Ogni studente deve avere un numero di
matricola
Il numero di matricola di uno studente
dev’essere univoco
Esami dati devono fare riferimento solo a corsi
offerti
DB - Modello Relazionale
15
Vincoli d’integrita’

I tre tipi piu’ importanti specificano:
 Quali
attributi non possono assumere il valore
NULL
 Quali attributi sono chiave
 Quali attributi sono chiavi esterne
DB - Modello Relazionale
16
Mancanza di informazione

Il modello relazionale impone una struttura rigida ai dati,
in quanto:




L’informazione viene rappresentata per mezzo di n-uple
Le n-uple hanno uno schema ben definito
Come rappresentare quindi, ad esempio, il fatto che di
uno studente non si conosce il numero di cellulare?
Usanza comune:


Usare valori non utilizzati (es. 0 per eta’ studente)
Problemi:



Possono non esserci valori inutilizzati
Il valore inutilizzato puo’ diventare utile
In alcuni casi bisogna ricordarsi di distinguere i valori reali dei
“riempiposto”, esempio: media dell’eta’ degli studenti (se
rappresentiamo il fatto di non conoscere l’eta’ dello studente con 0)
DB - Modello Relazionale
17
Valori nulli (NULL)




Il modello relazionale include il “NULL value” come tecnica per
modellare la mancanza di informazione
NULL non fa parte del dominio dell’attributo
Quando si da ad un attributo la possibilità di avere valore null, si
ammette che quell’attributo in qualche n-upla può rimanere non
specificato e/o venire assegnato in un secondo momento
Il valore NULL per un certo attributo puo’ indicare:




Il valore non c’e’;
Il valore c’e’ ma non lo si conosce al momento;
Non si sa se il valore c’e’;
I DBMS non modellano il perche’ manca il dato, si limitano a
denotarne la sua mancanza
DB - Modello Relazionale
18
Esempio di valori nulli
NOME
Mario Rossi
Ugo Bianchi
Teo Verdi
MATRICOL
123456
234567
345678
INDIRIZZO
Via Etnea 1
Via Roma 2
Via Enna 3
TELEFONO
222222
NULL
444444
Telefono di Ugo Bianchi
può non esserci, esserci
ma non conosciuto, in
attesa di essere installato
DB - Modello Relazionale
19
Chiavi



Superchiave X di uno schema di relazione è un
insieme di attributi dello schema tale che in ogni
istanza dello schema se due n-uple coincidono
su X allora sono uguali.
Chiave è una superchiave minimale rispetto alla
relazione .
Chiave Primaria è una delle chiavi scelta per un
dato schema.
DB - Modello Relazionale
20
Esempi di chiavi

{Nome,Matricola} è una
superchiave ma non è
una chiave, infatti

{Matricola} è una chiave
e si sceglie anche come
primaria per accedere ai
NOME
vari record

{Indirizzo} non è
superchiave
Mario Rossi
Ugo Bianchi
Teo Verdi
MATRICOLA
123456
234567
345678
DB - Modello Relazionale
INDIRIZZO
Via Etnea 1
Via Roma 2
Via Enna 3
TELEFONO
222222
NULL
444444
21
Chiavi esterne

Un insieme di attributi {A1, A2 , …, An} di
uno schema di relazione R è una chiave
esterna che riferisce una chiave primaria
{B1, B2 , …, Bn} di un altro schema S se in
ogni istanza valida della base di dati, per
ogni n-upla r dell’istanza di R esiste una nupla s (riferita da r) dell’istanza di S tale
che r.Ai = s.Bi...
DB - Modello Relazionale
22
Esempio chiave esterna
Esami


Una chiave esterna associa a
certe n-uple della relazione r
(quelle aventi la stessa chiave
esterna) una ben determinata nupla della relazione s a cui si
riferisce determinata dai valori
della chiave primaria(cioè della
chiave esterna)
Cosi’ {Matricola} per Esami e’
chiave esterna che si riferisce a
Studenti
CORSO
Programmazione
Architetture
Programmazione
Matematica
Discreta
Architettura
MATRICOLA
345678
123456
234567
345678
VOTO
27
30
18
22
345678
30
Studenti
NOME
Mario Rossi
Ugo Bianchi
Teo Verdi
DB - Modello Relazionale
MATRICOL
123456
234567
345678
INDIRIZZO
Via Etnea 1
Via Roma 2
Via Enna 3
TELEFONO
222222
333333
444444
23
Scarica

Modello relazionale dei dati - Dipartimento di Matematica e Informatica