Post on 01-May-2015
transcript
Operazioni Relazionali
Operazioni relazionaliLe 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.
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
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
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
Clienti
IDCliente Nome Cognome Provincia PIva
1 Mario Bianchi Mi 04357839912
4 Anna Verdi Mi 05567389432
6 Maria Rossi Mi 01528120155
Selezione: esempio 1
Selezione: esercizio
• Data la seguente relazione:
Eseguire le seguenti interrogazioni:1. Quali sono gli impiegati che guadagnano più di 50 euro2. Quali sono gli impiegati che guadagnano più di 50 euro e lavorano a Milano
Impiegati che guadagnano più di 50 e abitano a Milano
Impiegati che guadagnano più di 50
Selezione: soluzione 1Selezione: soluzione 1
Proiezione
La relazione risultante ha grado minore o uguale al grado della relazione di partenza; la cardinalità è minore o uguale a quella di partenza.
La proiezione genera una nuova relazione estraendo dalla relazione iniziale solo alcune colonne corrispondenti agli attributi prefissati.
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
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
ClientiProiezione: esempio
Proiezione: esempio
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
A B
a1 b1
a2 b2
a3 b3
a4 b3
B C
b1 c1
b2 c2
b3 c3
b4 c4
A B C
a1 b1 c1
a2 b2 c2
a3 b3 c3
a4 b3 c3
Giunzione(Join)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.
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(join): esempio