1 / 32

Interrogazione di una base di dati relazionale

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

tao
Download Presentation

Interrogazione di una base di dati relazionale

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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)

  5. Proiezione Query: Nomi e codici dei clienti Nome,CodC(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 Comune=‘Roma’(Cliente)

  9. Selezione Query: Dati dei clienti che si chiamano Rossi e risiedono a Roma Comune=‘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 ))

  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 xr2 ) AB

  15. 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 xr2)) 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 dir1

  16. Join naturale Query: Dati dei clienti e dei loro ordini ClienteOrdine

  17. Esempio 1 Query : Nomi dei clienti che hanno ordinato più di 100 pezzi per almeno un articolo  NomeN-pezzi>100Cliente Ordine

  18. Esempio 1 Cliente Ordine

  19. Esempio 1 N-pezzi>100Cliente Ordine

  20. Esempio 1  NomeN-pezzi>100Cliente Ordine

  21. Esempio 2 Nome e Comune dei clienti che hanno ordinato più di 100 pezzi per almeno un articolo con prezzo superiore a 2  Nome,ComuneN-pezzi>100Prezzo>2(Cliente Ordine  Articolo)

  22. Esempio 2 (Cliente Ordine  Articolo

  23. Esempio 2 N-pezzi>100Prezzo>2(Cliente Ordine  Articolo)

  24. Esempio 2  Nome,ComuneN-pezzi>100Prezzo>2(Cliente  Ordine  Articolo)

  25. Esempio 2 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)))

  26. Esempio 2 Nome,Comune ((Cliente N-pezzi>100(Ordine))  Prezzo>2 (CodA,Prezzo(Articolo))) N-pezzi>100(Ordine)

  27. Esempio 2 Nome,Comune ((Cliente N-pezzi>100(Ordine))  Prezzo>2 (CodA,Prezzo(Articolo))) Cliente N-pezzi>100(Ordine)

  28. Esempio 2 Nome,Comune ((Cliente N-pezzi>100(Ordine))  Prezzo>2 (CodA,Prezzo(Articolo))) CodA,Prezzo(Articolo)

  29. Esempio 2 Nome,Comune ((Cliente N-pezzi>100(Ordine))  Prezzo>2 (CodA,Prezzo(Articolo))) Prezzo>2 (CodA,Prezzo(Articolo))

  30. Esempio 2 Nome,Comune ((Cliente N-pezzi>100(Ordine))  Prezzo>2 (CodA,Prezzo(Articolo))) (Cliente N-pezzi>100(Ordine)) Prezzo>2 (CodA,Prezzo(Articolo))

  31. Esempio 2 Nome,Comune ((Cliente N-pezzi>100(Ordine))  Prezzo>2(CodA,Prezzo(Articolo)))

More Related