algebra relazionale ii n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Algebra relazionale (II) PowerPoint Presentation
Download Presentation
Algebra relazionale (II)

Loading in 2 Seconds...

play fullscreen
1 / 44

Algebra relazionale (II) - PowerPoint PPT Presentation


  • 104 Views
  • Uploaded on

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)

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Algebra relazionale (II)' - maleah


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
join naturale
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)
join naturale1
Join Naturale

Infrazioni

Auto

join naturale2
Join Naturale

Infrazioni

Auto

join naturale3
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
join completi
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
join completi1
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
join completi2
Join completi
  • Cardinalità di join:
    • Se r1r2 è completo:

max(|r1|,|r2|)  |r1r2|  |r1|x|r2|

join completi3
Join completi

Rel1

Rel2

Rel1  Rel2

Un esempio di join

con |r1|x|r2| tuple

join incompleti
Join incompleti
  • Join incompleti hanno tuple senza corrispondenza, dette dangling tuples

Rel1

Rel2

Rel1  Rel2

join incompleti1
Join incompleti
  • Caso limite: se non ci sono tuple combinabili, risultato del join è relazione vuota (senza tuple)

Rel1

Rel2

Rel1  Rel2

cardinalit di join
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

cardinalit di join1
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

cardinalit di join2
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

join esterni
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
join esterni1
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
join esterni2
Join esterni

Rel1

Rel2

Rel1 LEFT Rel2

join esterni3
Join esterni

Rel1

Rel2

Rel1 RIGHT Rel2

join esterni4
Join esterni

Rel1

Rel2

Rel1 FULL Rel2

theta join
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)

theta join1
Theta-Join

Rel1

Rel2

Reparto=Divisione(Rel1  Rel2)

theta join ed equi join
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
theta join ed equi join1
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)

theta join ed equi join2
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
theta join ed equi join3
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)))

theta join ed equi join4
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

theta join ed equi join5
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
esercitazione
Esercitazione
  • Che cos’è StudentiLavoratori?

Studenti

Lavoratori

esercitazione1
Esercitazione
  • Che cos’è StudentiLavoratori?

Studenti

Lavoratori

esercitazione2
Esercitazione
  • Che cos’è Studenti - Lavoratori?

Studenti

Lavoratori

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

Studenti

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

Studenti

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

Studenti

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

Studenti

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

Studenti

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

Studenti

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

Studenti

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

Studenti

Esami

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

Studenti

Esami

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

Studenti

Esami

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

Studenti

Lavoratori

esercitazione14
Esercitazione
  • Studenti  Esami è un join completo?

Studenti

Esami

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

Studenti

Esami

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

Studenti

Esami