Interrogazione di una base di dati relazionale Algebra relazionale.

32
Interrogazione di una base di dati relazionale Algebra relazionale

Transcript of Interrogazione di una base di dati relazionale Algebra relazionale.

Page 1: Interrogazione di una base di dati relazionale Algebra relazionale.

Interrogazione di una base di dati relazionale

Algebra relazionale

Page 2: Interrogazione di una base di dati relazionale Algebra relazionale.

Algebra relazionale

Linguaggio formale per interrogare una base di dati relazionale: consiste di un insieme di operatori che possono essere applicati a una (operatori unari) o due (operatori binari) istanze di relazione e forniscono un’istanza di relazione

Linguaggio procedurale: l’interrogazione consiste in un’espressione in cui compaiono operatori dell’algebra e istanze di relazioni della base di dati

Page 3: Interrogazione di una base di dati relazionale Algebra relazionale.

Proiezione

• Consente di effettuare un “taglio verticale” su una relazione, cioè di selezionare solo alcune colonne (attributi)

• Si denota con il simbolo :

A1,A2,…,Ak(r) seleziona le colonne di r che corrispondono agli attributi A1,A2,…,Ak

Page 4: Interrogazione di una base di dati relazionale Algebra relazionale.

ProiezioneCliente Nome CodC Comune

Rossi C1 Roma

Rossi C2 Milano

Bianchi C3 Roma

Verdi C4 Roma

Rossi

Bianchi

Verdi

Query: Nomi dei clienti

Nome(Cliente)

Page 5: Interrogazione di una base di dati relazionale Algebra relazionale.

ProiezioneCliente Nome CodC Comune

Rossi C1 Roma

Rossi C2 Milano

Bianchi C3 Roma

Verdi C4 Roma

Query: Nomi e codici dei clienti

Nome,CodC(Cliente)

Rossi C1

Rossi C2

Bianchi C3

Verdi C4

Page 6: Interrogazione di una base di dati relazionale Algebra relazionale.

Selezione

• Consente di effettuare un “taglio orizzontale” su una relazione, cioè di selezionare solo le righe (tuple) che soddisfano una data condizione

• Si denota con il simbolo :

C(r) seleziona le tuple di r che soddisfano la condizione C

Page 7: Interrogazione di una base di dati relazionale Algebra relazionale.

Selezione

La condizione di selezione è un’espressione booleana (operatori , e ) in cui i termini semplici sono del Tipo:

AB oppure A’a’

dove: è un operatore di confronto (,,,,)• A e B sono due attributi con lo stesso dominio

(dom(A)=dom(B))• a è un elemento di dom(A) (adom(A))

Page 8: Interrogazione di una base di dati relazionale Algebra relazionale.

SelezioneCliente Nome CodC Comune

Rossi C1 Roma

Rossi C2 Milano

Bianchi C3 Roma

Verdi C4 Roma

Query: Dati dei clientiche risiedono a Roma

Comune=‘Roma’(Cliente)

Rossi C1 Roma

Bianchi C3 Roma

Verdi C4 Roma

Page 9: Interrogazione di una base di dati relazionale Algebra relazionale.

SelezioneCliente Nome CodC Comune

Rossi C1 Roma

Rossi C2 Milano

Bianchi C3 Roma

Verdi C4 Roma

Query: Dati dei clientiche si chiamano Rossie risiedono a Roma

Comune=‘Roma’Nome=‘Rossi’(Cliente)Rossi C1 Roma

Page 10: Interrogazione di una base di dati relazionale Algebra relazionale.

Prodotto cartesiano

• Consente di costruire una relazione contenente tutte le tuple che si ottengono concatenando una tupla del primo operando con una tupla del secondo operando

• Si denota con il simbolo x

r1xr2

Page 11: Interrogazione di una base di dati relazionale Algebra relazionale.

Unione

• Consente di costruire una relazione contenente tutte le tuple che appartengono ad almeno uno dei due operandi

• Si denota con il simbolo r1 r2

r1 r2

Page 12: Interrogazione di una base di dati relazionale Algebra relazionale.

Differenza

• Consente di costruire una relazione contenente tutte le tuple che appartengono al primo operando e non appartengono al secondo operando

• Si denota con il simbolo r1 r2

r1 r2

Page 13: Interrogazione di una base di dati relazionale Algebra relazionale.

Intersezione

• Consente di costruire una relazione contenente tutte le tuple che appartengono ad entrambi gli operandi

• Si denota con il simbolo r1 r2= (r1 (r1 r2 ))

Page 14: Interrogazione di una base di dati relazionale Algebra relazionale.

-join

• Consente di selezionare le tuple del prodotto cartesiano dei due operandi che soddisfano una condizione del Tipo

AB dove

è un operatore di confronto (,,,,), A è un attributo dello schema del primo operando, B è un attributo dello schema del secondo operando e dom(A)=dom(B)

• r1 r2 = AB (r1 x r2 )AB

Page 15: Interrogazione di una base di dati relazionale Algebra relazionale.

Join naturale

• Consente di selezionare le tuple del prodotto cartesiano dei due operandi che soddisfano la condizione:

R1.A1= R2.A1 R1.A2= R2.A2 … R1.Ak= R2.Ak

(dove R1 ed R2 sono i nomi delle relazioni operando e A1,,A2,…, Ak sono gli attributi comuni delle relazioni operando) eliminando le ripetizioni degli attributi

• r1 r2 = XY(C (r1 x r2 )) dove:C: R1.A1= R2.A1 … R1.Ak= R2.Ak

X è l’insieme di attributi di r1

Y è l’insieme di attributi di r2 che non sono attributi di r1

Page 16: Interrogazione di una base di dati relazionale Algebra relazionale.

Join naturaleCliente Nome CodC Comune

Rossi C1 Roma

Rossi C2 Milano

Bianchi C3 Roma

Verdi C4 Roma

Ordine CodC CodA N-pezzi

C1 A1 100

C2 A2 200

C3 A2 150

C4 A3 200

C1 A2 200

C1 A3 100

Query: Dati dei clienti e dei loro ordini

Cliente Ordine

Page 17: Interrogazione di una base di dati relazionale Algebra relazionale.

Nome CodC Comune CodA N-pezzi

Rossi C1 Roma A1 100

Rossi C1 Roma A2 200

Rossi C1 Roma A3 100

Rossi C2 Milano A2 200

Bianchi C3 Roma A2 150

Verdi C4 Roma A3 200

Page 18: Interrogazione di una base di dati relazionale Algebra relazionale.

Esempio 1

Cliente Nome CodC Comune

Rossi C1 Roma

Rossi C2 Milano

Bianchi C3 Roma

Verdi C4 Roma

Ordine CodC CodA N-pezzi

C1 A1 100

C2 A2 200

C3 A2 150

C4 A3 200

C1 A2 200

C1 A3 100

Query : Nomi dei clienti che hanno ordinato più di 100 pezzi per almeno un articolo

NomeN-pezzi>100Cliente Ordine

Page 19: Interrogazione di una base di dati relazionale Algebra relazionale.

Esempio 1Cliente Ordine

Nome CodC Comune CodA N-pezzi

Rossi C1 Roma A1 100

Rossi C1 Roma A2 200

Rossi C1 Roma A3 100

Rossi C2 Milano A2 200

Bianchi C3 Roma A2 150

Verdi C4 Roma A3 200

Page 20: Interrogazione di una base di dati relazionale Algebra relazionale.

Esempio 1

N-pezzi>100Cliente Ordine

Nome CodC Comune CodA N-pezzi

Rossi C1 Roma A2 200

Rossi C2 Milano A2 200

Bianchi C3 Roma A2 150

Verdi C4 Roma A3 200

Page 21: Interrogazione di una base di dati relazionale Algebra relazionale.

Esempio 1 NomeN-pezzi>100Cliente Ordine

Nome

Rossi

Bianchi

Verdi

Page 22: Interrogazione di una base di dati relazionale Algebra relazionale.

Esempio 2Cliente Nome CodC Comune

Rossi C1 Roma

Rossi C2 Milano

Bianchi C3 Roma

Verdi C4 Roma

Ordine CodC CodA N-pezzi

C1 A1 100

C2 A2 200

C3 A2 150

C4 A3 200

C1 A2 200

C1 A3 100

Articolo CodA Tipo Prezzo

A1 Piatto 3

A2 Bicchiere 2

A3 Tazza 4

Nome e Comune dei clienti che hanno ordinato più di 100 pezzi per almeno un

articolo con prezzo superiore a 2

Nome,ComuneN-pezzi>100Prezzo>2(Cliente Ordine Articolo)

Page 23: Interrogazione di una base di dati relazionale Algebra relazionale.

Esempio 2(Cliente Ordine Articolo

Nome CodC Comune CodA N-pezzi Tipo Prezzo

Rossi C1 Roma A1 100 Piatto 3

Rossi C1 Roma A2 200 Bicchiere 2

Rossi C1 Roma A3 100 Tazza 4

Rossi C2 Milano A2 200 Bicchiere 2

Bianchi C3 Roma A2 150 Bicchiere 2

Verdi C4 Roma A3 200 Tazza 4

Page 24: Interrogazione di una base di dati relazionale Algebra relazionale.

Esempio 2

Nome CodC Comune CodA N-pezzi Tipo Prezzo

Verdi C4 Roma A3 200 Tazza 4

N-pezzi>100Prezzo>2(Cliente Ordine Articolo)

Page 25: Interrogazione di una base di dati relazionale Algebra relazionale.

Esempio 2

Nome Comune

Verdi Roma

Nome,ComuneN-pezzi>100Prezzo>2(Cliente Ordine Articolo)

Page 26: Interrogazione di una base di dati relazionale Algebra relazionale.

Esempio 2Cliente Nome CodC Comune

Rossi C1 Roma

Rossi C2 Milano

Bianchi C3 Roma

Verdi C4 Roma

Ordine CodC CodA N-pezzi

C1 A1 100

C2 A2 200

C3 A2 150

C4 A3 200

C1 A2 200

C1 A3 100

Articolo CodA Tipo Prezzo

A1 Piatto 3

A2 Bicchiere 2

A3 Tazza 4

Nome e Comune dei clienti che hanno ordinato più di 100 pezzi per almeno un

articolo con prezzo superiore a 2

Nome,Comune ((Cliente N-pezzi>100(Ordine))

Prezzo>2 (CodA,Prezzo(Articolo)))

Page 27: Interrogazione di una base di dati relazionale Algebra relazionale.

Esempio 2

CodC CodA N-pezzi

C2 A2 200

C3 A2 150

C4 A3 200

C1 A2 200

N-pezzi>100(Ordine)

Nome,Comune ((Cliente N-pezzi>100(Ordine))

Prezzo>2 (CodA,Prezzo(Articolo)))

Page 28: Interrogazione di una base di dati relazionale Algebra relazionale.

Esempio 2

Cliente N-pezzi>100(Ordine)

Nome CodC Comune CodA N-pezzi

Rossi C1 Roma A2 200

Rossi C2 Milano A2 200

Bianchi C3 Roma A2 150

Verdi C4 Roma A3 200

Nome,Comune ((Cliente N-pezzi>100(Ordine))

Prezzo>2 (CodA,Prezzo(Articolo)))

Page 29: Interrogazione di una base di dati relazionale Algebra relazionale.

Esempio 2

CodA Prezzo

A1 3

A2 2

A3 4

CodA,Prezzo(Articolo)

Nome,Comune ((Cliente N-pezzi>100(Ordine))

Prezzo>2 (CodA,Prezzo(Articolo)))

Page 30: Interrogazione di una base di dati relazionale Algebra relazionale.

Esempio 2

CodA Prezzo

A1 3

A3 4

Prezzo>2 (CodA,Prezzo(Articolo))

Nome,Comune ((Cliente N-pezzi>100(Ordine))

Prezzo>2 (CodA,Prezzo(Articolo)))

Page 31: Interrogazione di una base di dati relazionale Algebra relazionale.

Esempio 2

Nome CodC Comune CodA N-pezzi Prezzo

Verdi C4 Roma A3 200 4

Nome,Comune ((Cliente N-pezzi>100(Ordine))

Prezzo>2 (CodA,Prezzo(Articolo)))

(Cliente N-pezzi>100(Ordine)) Prezzo>2 (CodA,Prezzo(Articolo))

Page 32: Interrogazione di una base di dati relazionale Algebra relazionale.

Esempio 2

Nome Comune

Verdi Roma

Nome,Comune ((Cliente N-pezzi>100(Ordine))

Prezzo>2(CodA,Prezzo(Articolo)))