La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Interrogazione di una base di dati relazionale

Presentazioni simili


Presentazione sul tema: "Interrogazione di una base di dati relazionale"— Transcript della presentazione:

1 Interrogazione di una base di dati relazionale
Algebra relazionale

2 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

3 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

4 Proiezione Query: Nomi dei clienti Nome(Cliente) Cliente Nome C#
Città Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Query: Nomi dei clienti Rossi Bianchi Verdi Nome(Cliente)

5 Proiezione Query: Nomi e codici dei clienti Nome,C#(Cliente) Cliente
Città Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Query: Nomi e codici dei clienti Rossi C1 C2 Bianchi C3 Verdi C4 Nome,C#(Cliente)

6 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

7 Selezione La condizione di selezione è un’espressione booleana (operatori , e ) in cui i termini semplici sono del tipo: AB 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) (adom(A))

8 Selezione Query: Dati dei clienti che risiedono a Roma
Cliente Nome C# Città Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Query: Dati dei clienti che risiedono a Roma Rossi C1 Roma Bianchi C3 Verdi C4 Città=‘Roma’(Cliente)

9 Selezione Query: Dati dei clienti che si chiamano Rossi
Cliente Nome C# Città Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Query: Dati dei clienti che si chiamano Rossi e risiedono a Roma Rossi C1 Roma Città=‘Roma’Nome=‘Rossi’(Cliente)

10 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

11 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

12 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

13 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 )) r1 r2

14 -join Consente di selezionare le tuple del prodotto cartesiano dei due operandi che soddisfano una condizione del tipo AB 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 = AB (r1 x r2 )

15 R1.A1= R2.A1  R1.A2= R2.A2 …  R1.Ak= R2.Ak
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

16 Query: Dati dei clienti e dei loro ordini
Join naturale Ordine C# A# N-pezzi C1 A1 100 C2 A2 200 C3 150 C4 A3 Cliente Nome C# Città Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Query: Dati dei clienti e dei loro ordini Cliente  Ordine

17 Nome C# Città A# N-pezzi Rossi C1 Roma A1 100 A2 200 A3 C2 Milano Bianchi C3 150 Verdi C4

18 Esempio 1 Query : Nomi dei clienti che hanno ordinato
più di 100 pezzi per almeno un articolo Ordine C# A# N-pezzi C1 A1 100 C2 A2 200 C3 150 C4 A3 Cliente Nome C# Città Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4  NomeN-pezzi>100Cliente Ordine

19 Esempio 1 Cliente Ordine Nome C# Città A# N-pezzi Rossi C1 Roma A1
100 A2 200 A3 C2 Milano Bianchi C3 150 Verdi C4

20 N-pezzi>100Cliente Ordine
Esempio 1 N-pezzi>100Cliente Ordine Nome C# Città A# N-pezzi Rossi C1 Roma A2 200 C2 Milano Bianchi C3 150 Verdi C4 A3

21  NomeN-pezzi>100Cliente Ordine
Esempio 1  NomeN-pezzi>100Cliente Ordine Nome Rossi Bianchi Verdi

22 Esempio 2 Query : Nomi e città dei clienti che hanno ordinato più di 100 pezzi per almeno un articolo con prezzo superiore a 2 Cliente Nome C# Città Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Ordine C# A# N-pezzi C1 A1 100 C2 A2 200 C3 150 C4 A3 Articolo A# Denom. Prezzo A1 Piatto 3 A2 Bicchiere 2 A3 Tazza 4  Nome,CittàN-pezzi>100Prezzo>2(Cliente Ordine  Articolo)

23 (Cliente Ordine  Articolo
Esempio 2 (Cliente Ordine  Articolo Nome C# Città A# N-pezzi Denom. Prezzo Rossi C1 Roma A1 100 Piatto 3 A2 200 Bicchiere 2 A3 Tazza 4 C2 Milano Bianchi C3 150 Verdi C4

24 N-pezzi>100Prezzo>2(Cliente Ordine  Articolo)
Esempio 2 N-pezzi>100Prezzo>2(Cliente Ordine  Articolo) Nome C# Città A# N-pezzi Denom. Prezzo Verdi C4 Roma A3 200 Tazza 4

25 Esempio 2  Nome,CittàN-pezzi>100Prezzo>2(Cliente  Ordine  Articolo) Nome Città Verdi Roma

26 Esempio 2 Query : Nomi e città dei clienti che hanno ordinato più di 100 pezzi per almeno un articolo con prezzo superiore a 2 Cliente Nome C# Città Rossi C1 Roma C2 Milano Bianchi C3 Verdi C4 Ordine C# A# N-pezzi C1 A1 100 C2 A2 200 C3 150 C4 A3 Articolo A# Denom. Prezzo A1 Piatto 3 A2 Bicchiere 2 A3 Tazza 4 Nome,Città ((Cliente  N-pezzi>100(Ordine))  Prezzo>2 (A#,Prezzo(Articolo)))

27 N-pezzi>100(Ordine)
Esempio 2 Nome,Città ((Cliente  N-pezzi>100(Ordine))  Prezzo>2 (A#,Prezzo(Articolo))) C# A# N-pezzi C2 A2 200 C3 150 C4 A3 C1 N-pezzi>100(Ordine)

28 Cliente  N-pezzi>100(Ordine)
Esempio 2 Nome,Città ((Cliente  N-pezzi>100(Ordine))  Prezzo>2 (A#,Prezzo(Articolo))) Nome C# Città A# N-pezzi Rossi C1 Roma A2 200 C2 Milano Bianchi C3 150 Verdi C4 A3 Cliente  N-pezzi>100(Ordine)

29 Esempio 2 A#,Prezzo(Articolo)
Nome,Città ((Cliente  N-pezzi>100(Ordine))  Prezzo>2 (A#,Prezzo(Articolo))) A# Prezzo A1 3 A2 2 A3 4 A#,Prezzo(Articolo)

30 Prezzo>2 (A#,Prezzo(Articolo))
Esempio 2 Nome,Città ((Cliente  N-pezzi>100(Ordine))  Prezzo>2 (A#,Prezzo(Articolo))) A# Prezzo A1 3 A3 4 Prezzo>2 (A#,Prezzo(Articolo))

31 Esempio 2 Nome,Città ((Cliente  N-pezzi>100(Ordine))  Prezzo>2 (A#,Prezzo(Articolo))) Nome C# Città A# N-pezzi Prezzo Verdi C4 Roma A3 200 4 (Cliente  N-pezzi>100(Ordine))  Prezzo>2 (A#,Prezzo(Articolo))

32 Esempio 2 Nome,Città ((Cliente  N-pezzi>100(Ordine))  Prezzo>2 (A#,Prezzo(Articolo))) Nome Città Verdi Roma


Scaricare ppt "Interrogazione di una base di dati relazionale"

Presentazioni simili


Annunci Google