Operazioni Relazionali
Operazioni relazionali
Le operazioni relazionali consentono di interrogare una
basi di dati relazionale, per ottenere le informazioni
desiderate, estraendo da una tabella una sottotabella o
combinando tra loro due o più tabelle (Agiscono su una
relazione per ottenere una nuova relazione).
Nel tempo sono stati proposti diversi linguaggi per
l’interrogazione delle basi di dati relazionali, la maggior
parte di essi utilizza un approccio basato sull’algebra
relazionale.
In questo approccio il risultato di un’interrogazione (o
query) è una relazione. Per ottenere tale relazione si
formula un’interrogazione, utilizzando alcuni operatori di
algebra relazionale. Tali operatori vengono composti tra
loro e applicati alle relazioni della base di dati.
Selezione
La selezione genera una nuova relazione costituita solo
dalle n-uple della relazione di partenza che soddisfano
una determinata condizione; vengono cioè selezionate le
righe con i valori degli attributi corrispondenti alla
condizione prefissata.
La relazione ottenuta possiede tutte le colonne della
relazione di partenza e quindi ha lo stesso grado; la
cardinalità della nuova relazione può essere minore o
uguale alla tabella di partenza (solitamente è minore).
Selezione: esempio 1
Clienti
IDCliente Nome
Cognome
Provincia PIva
1
Mario
Bianchi
Mi
04357839912
2
Carlo
Rossi
Ba
04687990657
3
Paolo
Neri
Ca
06443652006
4
Anna
Verdi
Mi
05567389432
5
Mario
Verdi
Ca
03568168943
6
Maria
Rossi
Mi
01528120155
7
Carlo
Bianchi
Pa
01572800164
Se si vuole l'elenco dei clienti della provincia di Milano, si
effettua sulla relazione Clienti una selezione per
Provincia =“MI” estraendo dalla tabella tutte le righe che
hanno quel valore per l'attributo provincia, ottenendo
così una nuova tabella.
Selezione: esempio 1
Clienti
IDCliente Nome
Cognome
Provincia
PIva
1
Mario
Bianchi
Mi
04357839912
2
Carlo
Rossi
Ba
04687990657
3
Palo
Neri
Ca
06443652006
4
Anna
Verdi
Mi
05567389432
5
Mario
Verdi
Ca
03568168943
6
Maria
Rossi
Mi
01528120155
7
Carlo
Bianchi
Pa
01572800164
Selezione: esempio 1

Utilizzando un linguaggio di
pseudocodifica, l’operazione di selezione
viene indicata nel seguente modo:
σ Provincia = “Mi” Clienti
IDCliente Nome
Cognome
Provincia
PIva
1
Mario
Bianchi
Mi
04357839912
4
Anna
Verdi
Mi
05567389432
6
Maria
Rossi
Mi
01528120155
Selezione: esercizio

Data la seguente relazione:
Eseguire le seguenti interrogazioni:
1. Quali sono gli impiegati che guadagnano più di 50 euro
2. Quali sono gli impiegati che guadagnano più di 50 euro
e lavorano a Milano
Selezione: soluzione 1
Selezione: soluzione 2
Proiezione
La proiezione genera una nuova
relazione estraendo dalla relazione
iniziale
solo
alcune
colonne
corrispondenti
agli
attributi
prefissati.
La relazione risultante ha grado
minore o uguale al grado della
relazione
di
partenza;
la
cardinalità è minore o uguale a
quella di partenza.
Proiezione: esempio
Clienti
IDCliente Nome
Cognome
Provincia PIva
1
Mario
Bianchi
Mi
04357839912
2
Carlo
Rossi
Ba
04687990657
3
Paolo
Neri
Ca
06443652006
4
Anna
Verdi
Mi
05567389432
5
Mario
Verdi
Ca
03568168943
6
Maria
Rossi
Mi
01528120155
7
Carlo
Bianchi
Pa
01572800164
Se si vuole l'elenco dei nomi e cognomi dei clienti,
occorre applicare alla relazione Clienti
l’operazione di proiezione secondo gli attributi
Nome e Cognome
Proiezione: esempio
Π
Nome, Cognome Clienti
Nome
Cognome
Mario
Bianchi
Carlo
Rossi
Paolo
Neri
Anna
Verdi
Mario
Verdi
Maria
Rossi
Carlo
Bianchi
Proiezione: esercizio
Eseguire le seguenti interrogazioni:
1. Matricola e Cognome di tutti gli impiegati;
2. Cognome e Filiale di tutti gli impiegati.
Proiezione:soluzione 1
Proiezione:soluzione 2
Combinazioni


Combinando selezioni e proiezioni possiamo
estrarre interessanti informazioni dalle
relazioni.
Esempio:
Giunzione
La congiunzione (join) serve a combinare due relazioni aventi uno o
più attributi in comune, generando una nuova relazione contenente le
righe della prima e della seconda tabella, che possono essere
combinate secondo i valori uguali dell’attributo comune.
A
B
B
C
A
B
C
a1
b1
b1
c1
a1
b1
c1
a2
b2
b2
c2
a2
b2
c2
a3
b3
b3
c3
a3
b3
c3
a4
b3
b4
c4
a4
b3
c3
Il grado della relazione generata è uguale a N1+N2–1, dove N1 e N2
sono i gradi delle relazioni di partenza; la cardinalità non è
prevedibile a priori.
Giunzione: esempio
∆
∆
Impiegati.Reparto
Reparti.Codice
Combinazioni di operazioni
Gli operatori possono essere applicati alle tabelle anche in
successione, combinandoli tra loro in vario modo.
Vengono così effettuate interrogazioni sulle relazioni ottenute
come risultato di un’interrogazione precedente.
Esempio:
Impiegato
(
Capo = “Bruni”
( Impiegati.Reparto
Reparti.Codice )
)
Scarica

Operazioni relazionali File