1 / 45

ALGEBRA RELAZIONALE

ALGEBRA RELAZIONALE. LINGUAGGI PER MODELLI RELAZIONALI . Algebrici: una query è definita da un’espressione algebrica sulle relazioni dello schema Logici: una query è definita da una formula della logica del primo ordine. ESEMPIO DI QUERY. Algebra relazionale. Un set di operatori che

quanda
Télécharger la présentation

ALGEBRA 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. ALGEBRA RELAZIONALE DB -Algebra Relazionale

  2. LINGUAGGI PER MODELLI RELAZIONALI • Algebrici: una query è definita da un’espressione algebrica sulle relazioni dello schema • Logici: una query è definita da una formula della logica del primo ordine DB -Algebra Relazionale

  3. ESEMPIO DI QUERY DB -Algebra Relazionale

  4. Algebra relazionale • Un set di operatori che • Sono definiti sulle relazioni • Producono come risultato una relazione • Gli operatori possono essere combinati per formare espressioni complesse • Esecuzione procedurale DB -Algebra Relazionale

  5. Operatori dell’algebra relazionale • Gli operatori primitivi dell’Algebra Relazionale sono: • Ridenominazione; • Unione; • Differenza; • Proiezione; • Restrizione (o Selezione); • Prodotto. • I simboli R,S,... denotano relazioni, A, B,…attributi e X,Y,…insiemi di attributi DB -Algebra Relazionale

  6. Ridenominazione • Operatore unario • Modifica il nome di un attributo senza cambiarne il valore • Definizione: • Siano X gli attributi di R, A in X, B not in X . • Allora AB(R) è con attributi (X-{A}){B} •  AB(R)={t | u R t[B] = u[A]  t[C]=u[C] se C e’ diverso da B}. DB -Algebra Relazionale

  7. Esempio Ridenominazione • Matricola Codice Studente(Esami) DB -Algebra Relazionale

  8. Unione, Differenza e Intersezione • Le relazioni sono degli insiemi, quindi possiamo applicare gli operatori sugli insiemi • Il risultato dev’essere un set omogeneo di n-uple • Quindi, applichiamo gli operatori sui set solo fra relazioni con gli stessi attributi • Siano R ed S relazioni dello stesso tipo allora • RS = {t | t R  t  S} • R-S = {t | t R  tS} • RS = {t | t R  t  S} DB -Algebra Relazionale

  9. Esempio Unione DB -Algebra Relazionale

  10. Esempio Intersezione DB -Algebra Relazionale

  11. Esempio Differenza DB -Algebra Relazionale

  12. Un esempio utile ma non fattibile • “Father” e “Mother” sono attributi con nomi diversi ma entrambi sono “Genitori” • Soluzione: ridenominare gli attributi DB -Algebra Relazionale

  13. Ridenominazione e Unione FatherParent(Paternity)  MotherParent(Maternity) DB -Algebra Relazionale

  14. Proiezione • Produce risultati: • Su un sottoinsieme degli attributi dell’operando • Con valori da tutte le n-uple della relazione • Definizione • Sia R una relazione e siano A1, A2,…, Analcuni suoi attributi allora: •  A1, A2,…, An(R) = {t[A1, A2,…, An ] | tR} • La cardinalita’ di  A1, A2,…, An(R) puo’ essere minore di R nel caso di duplicati DB -Algebra Relazionale

  15. Esempio Proiezione Proiezione DB -Algebra Relazionale

  16. Un’altro esempio di proiezione • Si riduce la cardinalita’ del risultato rispetto all’operando DB -Algebra Relazionale

  17. Selezione (Restrizione) • Produce risultati: • Con lo stesso schema dell’operando • Con un sottoinsieme delle n-uple dell’operando • Quelle che soddisfano la condizione • Definizione • Sia R una relazione allora •   (R) = {t | t R (t)} • dove  e’ una formula proposizionale costruita a partire dagli atomi A  B e utilizzando i connettivi proposizionali ,, • A e B sono attributi di R o costanti •   {=,<, >, ≠, ≤, ≥} DB -Algebra Relazionale

  18. Esempio Selezione Selezione DB -Algebra Relazionale

  19. Un altro esempio di Selezione DB -Algebra Relazionale

  20. Prodotto (Cartesiano) • Siano R(A1: T1,…, An: Tn) ed S (An+1: Tn+1,…, An+m: Tn+m) con {A1,…, An} {An+1,…, An+m}= . Allora si pone • R x S = {tu | tR  u  S} DB -Algebra Relazionale

  21. Esempio prodotto cartesiano DB -Algebra Relazionale

  22. Operatori Derivati • Sono operatori utili che si possono esprimere in funzioni di quelli primitivi. • Intersezione: Siano R ed S dello stesso tipo • RS = {t | tR  t  S}. • Essa si può esprimere in funzione degli operatori primitivi: • R  S = R-(R-S) DB -Algebra Relazionale

  23. JOIN (Giunzione) • L’operatore piu’ importante dell’algebra relazionale • Permette di combinare tuple da relazioni diverse basandosi sui valori degli attributi • Fondamentalmente due tipi (piu’ qualche variante): • Natural JOIN • Theta JOIN DB -Algebra Relazionale

  24. Natural JOIN DB -Algebra Relazionale

  25. Definizione del Natural JOIN • Sia R con attributi XY ed S con attributi YZ • R 1S e’ una relazione di attributi XYZ costituita da tutte le n-uple t tali che: t[XY]  R , t[YZ]  S. • Quindi: R 1S = {t | t[XY]  R  t[YZ]  S} • Cioe’: le n-uple del risultato sono ottenute combinando le n-uple di R e S che hanno gli stessi valori negli attributi con lo stesso nome DB -Algebra Relazionale

  26. Un altro esempio di Natural JOIN DB -Algebra Relazionale

  27. Ancora un altro esempio di Natural Join DB -Algebra Relazionale

  28. JOIN incompleti • Nel caso in cui alcuni valori tra gli attributi comuni non coincidono • Quindi, alcune n-uple non partecipano al JOIN (dangling n-uple) DB -Algebra Relazionale

  29. JOIN vuoti, un caso estremo • Potrebbe anche succedere che nessuna n-upla trovi il corrispettivo DB -Algebra Relazionale

  30. L’altro caso estremo del JOIN • Ogni n-upla di R1 si combina con ogni n-upla di R2 • Cardinalita’ del risultato e’ il prodotto delle cardinalita’ DB -Algebra Relazionale

  31. OUTER JOIN (Giunzione esterna) • Una variante del JOIN per mantenere nel risultato le n-uple che non partecipano al JOIN • Gli attributi delle dangling n-uple vengono riempiti con NULL • Tre varianti: • Left: solo dangling n-uple del primo operando • Right: solo dangling n-uple del secondo operando • Full: n-uple da entrambi gli operandi DB -Algebra Relazionale

  32. Esempio di NATURAL OUTER JOIN DB -Algebra Relazionale

  33. Proprieta’ del JOIN • Il JOIN e’ • Commutativo: R 1 S = S 1 R • Associativo: (R 1 S) 1 T = R 1 (S 1 T) • Quindi possiamo avere sequenze di JOIN senza rischio di ambiguita’: • R 1 S 1 T … DB -Algebra Relazionale

  34. Esempio di JOIN multipli DB -Algebra Relazionale

  35. Prodotto cartesiano a partire dal JOIN • Il JOIN e’ definito anche se non ci sono attributi comuni fra le relazioni • In questo caso, non essendoci vincoli sulle tuple da selezionare, vengono selezionate tutte le tuple dalle relazioni del JOIN •  Prodotto cartesiano DB -Algebra Relazionale

  36. Esempio di prodotto cartesiano generato dal JOIN DB -Algebra Relazionale

  37. Theta-JOIN e Equi-JOIN • Estensione del NATURAL JOIN • Viene specificato un predicato per la selezione delle n-uple • E’ un operatore derivato: • R 1FS = F(R x S) • Se F e’ una congiunzione di uguaglianze si parla di equi-JOIN DB -Algebra Relazionale

  38. Esempio di equi-JOIN DB -Algebra Relazionale

  39. Query (interrogazioni) • L’algebra relazionale puo’ quindi essere usata per interrogare una base di dati • Una query e’ una funzione da una istanza di un database (insieme di relazioni) ad una relazione DB -Algebra Relazionale

  40. Database di esercitazione DB -Algebra Relazionale

  41. Esercizio 1 • Trovare numero, nome ed eta’ di tutti gli impiegati che guadagnano piu’ di 40 mila euro DB -Algebra Relazionale

  42. Esercizio 2 • Trovare il numero dei responsabili degli impiegati che guadagnano piu’ di 40 mila euro DB -Algebra Relazionale

  43. Esercizio 3 • Trovare nome e salario dei responsabili degli impiegati che guadagnano piu’ di 40 mila euro. DB -Algebra Relazionale

  44. Esercizio 4 • Trovare gli impiegati che guadagnano piu’ dei loro responsabili e visualizzare numero, nome e salario sia dell’impiegato che del responsabile DB -Algebra Relazionale

  45. Esercizio 5 • Trovare numero e nome dei responsabili i cui impiegati guadagnano TUTTI piu’ di 40 mila euro DB -Algebra Relazionale

More Related