Basi di dati
Modello relazionale
Il modello relazionale organizza i dati ed è basato sul concetto di relazione. E’
semplice, usa concetti intuitivi e ha indipendenza tra livello fisico e logico.
Si fonda sul concetto di relazione, che rappresenta un sottoinsieme del prodotto
cartesiano tra due domini . La definizione può essere espansa a un numero
×
D D
1 2
infinito di domini anche non distinti.
Il prodotto cartesiano è l’insieme delle n-uple (v1, v2, …,
× × × ... ×
D D D D
1 2 3 n
vn) con v appartenente a .
D
i i
Una relazione su un dominio è un sottoinsieme del prodotto cartesiano del totale dei
domini.
Relazioni e notazione posizionale
Le relazioni sono rappresentate come tabelle; vengono usate per rappresentare i dati
di interesse nelle applicazioni. Le relazioni sono insiemi e quindi l’ordine delle n-uple
non è definito, però le n-uple sono ordinate al loro interno dato che l’i-esimo valore
proviene dall’i-esimo dominio. Cambiare l’ordine dei valori modifica il significato della
n-upla.
Attributi e tuple
Basi di dati 1
Ad ogni dominio della relazione si associa un nome simbolico detto attributo che ne
descrive il ruolo all’interno della relazione.
Una tupla è una funzione che associa a ciascun attributo un valore nel dominio.
Una relazione è un insieme di tuple su attributi.
Si ha una notazione non posizionale per quanto riguarda attributi e tuple.
Vantaggi
rappresenta solo ciò che è rilevante per l’applicazione.
non fa riferimento all’organizzazione fisica.
semplifica la portabilità.
Schemi e istanze
Uno schema di relazione R(X) è costituito da:
R = nome della relazione.
X = attributi
Un’istanza di relazione su uno schema R(X) è un insieme di tuple su X.
Valori nulli
Per rappresentare i valori nulli si ha la possibilità di avere il valore NULL, utilizzato in
tre contesti:
valore sconosciuto
valore inesistente
assenza di informazione
Vincoli di integrità
proprietà che le istanze di una base di dati devono rispettare per essere corrette per
l’applicazione.
Vincolo di dominio : fa riferimento a un singolo attributo (Voto < 30).
Vincolo di tupla : fa riferimento a una tupla in modo indipendente (Voto = 30 lode)
→
Vincolo intrarelazionale : coinvolge tuple della stessa relazione (univocità delle
matricole)
Basi di dati 2
Vincolo interelazionale : coinvolge tuple di relazioni diverse (numeri di matricola =
studenti).
Vincolo di integrità referenziale : un attributo di una relazione compare come chiave
primaria in un’altra.
Chiavi
Una superchiave è un insieme di attributi su cui i valori non si ripetono.
Una chiave è superchiave minimale se non contiene un sottoinsieme proprio che è
superchiave.
Vincolo di chiave : vincolo intrarelazionale che richiede che un certo insieme di
attributi sia una superchiave, cioè che non contenga ripetizioni. Il vincolo deve
essere espresso sullo schema della relazione e deve essere soddisfatto per tutte le
tuple.
L’insieme di tutti gli attributi è sempre una superchiave.
Una chiave primaria è una chiave per cui non sono ammessi valori nulli.
Algebra relazionale
OPERATORI INSIEMISTICI FUNZIONE
Unione: combina due
relazioni mantenendo gli
∪ attributi in comune
condensando i duplicati
Intersezione: combina gli
attributi in comune tra le
∩ relazioni
Sottrae gli attributi
− Esempio
Basi di dati 3
Il modello relazionale assume che le tuple di una relazione siano omogenee. Sono
quindi ammissibili solo le operazioni su relazioni definite sugli stessi attributi.
NOME OPERAZIONE FUNZIONE RISULTATO NOTE
Ridenominazione: Relazione
cambia il nome definita su un l’ordine degli
degli attributi insieme di attributi nelle
RIDENOMINAZIONE (r)
ρ B1,B2←A1,A2 lasciando attributi diverso due liste è
inalterati i valori da quello rilevante
delle tuple. dell’argomento.
Selezione: filtra
le tuple di una Relazione sugli
relazione stessi attributi
SELEZIONE mantenendo solo di r contenente
(
σ r)
F quelle che le tuple per cui
rispettano un vale F.
criterio F.
Basi di dati 4
il numero di
tuple si riduce
quando la
proiezione
ed è una rende identiche
Proiezione: filtra relazione tuple che erano
gli attributi di una definita su Y distinte
PROIEZIONE relazione contenente
(
π r)
Y mantenendo gli tutte le tuple di Il numero di
attributi in Y. r, ristrette agli tuple rimane lo
attributi in Y. stesso se e
solo se Y è una
superchiave
per r
Join
Correla dati di relazioni diverse sulla base dei valori. Si hanno due varianti:
join naturale
theta join
Se non c’è nessuna corrispondenza il risultato sarà la relazione vuota.
Join naturale
combina le tuple di due relazioni diverse sulla base di valori uguali per attributi con
nome uguale. Se ciascuna tupla di ciascun operando contribuisce al risultato si parla
di join completo. Il join esterno rimedia includendo nel risultato le tuple senza
corrispondenze (join sinistro, destro e completo).
Theta join
join condizionato da una condizione F. Un theta join in cui F è un’uguaglianza si dice
equi join.
Divisione
inverso del prodotto cartesiano.
Esempio
Basi di dati 5
Progettazione
Il ciclo di vita di un sistema informativo comprende lo studio di fattibilità, raccolta e
analisi dei requisiti, progettazione, implementazione, validazione e collaudo e
funzionamento.
Le basi di dati sono parte di un sistema informativo, spesso il ruolo centrale della
base di dati ne giustifica un processo di sviluppo autonomo; in questo caso
l’approccio si basa sui dati e la base di dati viene progettata ancora prima delle
applicazioni che la usano.
La progettazione si basa su tre fasi:
progettazione concettuale
progettazione logica