1 / 44

Algebra relazionale (II)

Algebra relazionale (II). Join Naturale. Numero attributi di r1  r2  somma numeri attributi di r1 e r2 Spesso join fatto su chiave di relazione Per esempio: Infrazioni( Codice ,Data,Agent,Art, Prov , Numero ) Auto( Prov , Numero ,Proprietario,Indirizzo)

maleah
Télécharger la présentation

Algebra relazionale (II)

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. Algebra relazionale (II)

  2. Join Naturale • Numero attributi di r1r2  somma numeri attributi di r1 e r2 • Spesso join fatto su chiave di relazione • Per esempio: Infrazioni(Codice,Data,Agent,Art,Prov,Numero) Auto(Prov,Numero,Proprietario,Indirizzo) • Spesso imposto vincolo di integrità referenziale tra attributi di join (per evitare che r1 faccia riferimento a valori inesistenti in r2)

  3. Join Naturale Infrazioni Auto

  4. Join Naturale Infrazioni Auto

  5. Join Naturale Infrazioni  Auto • Tra Infrazioni e Auto esiste vincolo integrità referenziale • {Prov,Numero} è chiave di Auto • Quindi, ogni tupla di Infrazioni è combinata esattamente con • una tupla di Auto

  6. Join completi • Date r1(X) e r2(Y), r1r2 è completo se e solo se, per ogni tupla t1 di r1 esiste tupla t in r1r2 tale che t[X]=t1 e analogamente per r2

  7. Join completi • Cardinalità di un insieme: il numero di elementi che appartengono al insieme • Cardinalità di A: scritto |A| • Per esempio: |{a,b,d}|=3, ||=0

  8. Join completi • Cardinalità di join: • Se r1r2 è completo: max(|r1|,|r2|)  |r1r2|  |r1|x|r2|

  9. Join completi Rel1 Rel2 Rel1  Rel2 Un esempio di join con |r1|x|r2| tuple

  10. Join incompleti • Join incompleti hanno tuple senza corrispondenza, dette dangling tuples Rel1 Rel2 Rel1  Rel2

  11. Join incompleti • Caso limite: se non ci sono tuple combinabili, risultato del join è relazione vuota (senza tuple) Rel1 Rel2 Rel1  Rel2

  12. Cardinalità di join • Date r1(X) e r2(Y): 0  |r1r2|  |r1|x|r2| • Se r1 r2 completo: |r1r2|  max(|r1|,|r2|) Ogni tuple di r1 combinata con almeno 1 tupla di r2 e viceversa

  13. Cardinalità di join • Se XY contiene chiave per r2 |r1r2|  |r1| Ogni tuple di r1 combinata con al più 1 tupla di r2

  14. Cardinalità di join • Se XY contiene chiave per r2 e c’è vincolo di integrità referenziale fra XY in r1 e la chiave di r2 |r1r2| = |r1| Ogni tuple di r1 combinata esattamente con 1 tupla di r2

  15. Join esterni • Per combinare sempre le tuple di due relazioni, anche quando non ci sono corrispondenze tra i valori degli attributi comuni, inserendo valori NULL in assenza di controparti • Non tralasciano tuple di operandi nel risultato

  16. Join esterni • Join esterno sinistro: estende solo le tuple del primo operando • Aggiunge tuple di r1 senza corrispettivo in r2 • Join esterno destro:estende solo le tuple del secondo operando • Aggiunge tuple di r2 senza corrispettivo in r1 • Join esterno completo: estende tuple di entrambi gli operandi • Bilaterale

  17. Join esterni Rel1 Rel2 Rel1 LEFT Rel2

  18. Join esterni Rel1 Rel2 Rel1 RIGHT Rel2

  19. Join esterni Rel1 Rel2 Rel1 FULL Rel2

  20. Theta-Join • Serve per fare Join su relazioni senza attributi omonimi • Operatore derivato: si ottiene come prodotto cartesiano seguito da selezione di tuple che verificano condizione di uguaglianza tra valori di attributi r1 F r2 = F(r1  r2)

  21. Theta-Join Rel1 Rel2 Reparto=Divisione(Rel1  Rel2)

  22. Theta-Join ed Equi-Join • Theta-Join: r1 F r2 = F(r1  r2) • Condizione di selezione F è formula proposizionale come descritto per operatore di selezione • Se F è congiunzione di uguaglianze tra attributi di r1 e attributi di r2: theta-join detto equi-join

  23. Theta-Join ed Equi-Join • Per esempio: • Rel1(Impiegato,Reparto), Rel2(Divisione,Capo) Reparto=Divisione(Rel1  Rel2) • Infrazioni(Codice,Data,Ag,Art,Prov,Num), Auto(Provincia,Targa,Prop,Indirizzo) Prov=Provincia  Num=Targa(Infrazioni Auto)

  24. Theta-Join ed Equi-Join • Theta-join e equi-join più utili di join naturale • Permettono di operare su relazioni senza attributi in comune • Join naturale simulabile mediante ridenominazione, equi-join e proiezione

  25. Theta-Join ed Equi-Join • Per esempio: R1(A,B,C), R2(B,C,D) R1R2 = A,B,C,D(R1B=B’C=C’(B’,C’B,C(R2)))

  26. Theta-Join ed Equi-Join • Per esempio: R1(A,B,C), R2(B,C,D) R1R2 = A,B,C,D(R1B=B’C=C’(B’,C’B,C(R2))) Equi-join Join naturale

  27. Theta-Join ed Equi-Join • Per esempio: R1(A,B,C), R2(B,C,D) R1R2 = A,B,C,D(R1B=B’C=C’(B’,C’B,C(R2))) • Si ridenomina R2 affinchè abbia attributi diversi da quelli di R1 • Equi-join tra R1 e R2 per selezionare tuple in corrispondenza • Proiezione del risultato per eliminare attributi ridondanti

  28. Esercitazione • Che cos’è StudentiLavoratori? Studenti Lavoratori

  29. Esercitazione • Che cos’è StudentiLavoratori? Studenti Lavoratori

  30. Esercitazione • Che cos’è Studenti - Lavoratori? Studenti Lavoratori

  31. Esercitazione • Che cos’è NumeroMatricola(Studenti)? Studenti

  32. Esercitazione • Che cos’è Voto>25(Studenti)? Studenti

  33. Esercitazione • Che cos’è Voto>25  Eta<23(Studenti)? Studenti

  34. Esercitazione • Che cos’è Voto>25  Eta<23(Studenti)? Studenti

  35. Esercitazione • Che cos’è Cognome,Nome(Studenti)? Studenti

  36. Esercitazione • Che cos’è Nome,Voto(Studenti)? Studenti

  37. Esercitazione • Che cos’è Cognome,Nome,Età,Voto(Studenti)? Studenti

  38. Esercitazione • Che cos’è Studenti  Esami (join naturale)? Studenti Esami

  39. Esercitazione • Che cos’è Studenti  Esami (join naturale)? Studenti Esami

  40. Esercitazione • Che cos’è Studenti  Esami (join naturale)? Studenti Esami

  41. Esercitazione • Che cos’è Studenti  Lavoratori (join naturale)? Studenti Lavoratori

  42. Esercitazione • Studenti  Esami è un join completo? Studenti Esami

  43. Esercitazione • Che cos’è Studenti LEFT Esami? Studenti Esami

  44. Esercitazione • Che cos’è Studenti FULL Esami? Studenti Esami

More Related