La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

DB -Algebra Relazionale

Presentazioni simili


Presentazione sul tema: "DB -Algebra Relazionale"— Transcript della presentazione:

1 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 DB -Algebra Relazionale
ESEMPIO DI QUERY DB -Algebra Relazionale

4 DB -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 DB -Algebra Relazionale
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 DB -Algebra Relazionale
Esempio Unione DB -Algebra Relazionale

10 DB -Algebra Relazionale
Esempio Intersezione DB -Algebra Relazionale

11 DB -Algebra Relazionale
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 DB -Algebra Relazionale
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,…, An alcuni 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 DB -Algebra Relazionale
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 DB -Algebra Relazionale
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 DB -Algebra Relazionale
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 DB -Algebra Relazionale
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 DB -Algebra Relazionale
Natural JOIN DB -Algebra Relazionale

25 Definizione del Natural JOIN
Sia R con attributi XY ed S con attributi YZ R 1 S e’ una relazione di attributi XYZ costituita da tutte le n-uple t tali che: t[XY]  R , t[YZ]  S. Quindi: R 1 S = {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 DB -Algebra Relazionale
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 DB -Algebra Relazionale
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 1 F S =  F (R x S) Se F e’ una congiunzione di uguaglianze si parla di equi-JOIN DB -Algebra Relazionale

38 DB -Algebra Relazionale
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 DB -Algebra Relazionale
Esercizio 1 Trovare numero, nome ed eta’ di tutti gli impiegati che guadagnano piu’ di 40 mila euro DB -Algebra Relazionale

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

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

44 DB -Algebra Relazionale
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 DB -Algebra Relazionale
Esercizio 5 Trovare numero e nome dei responsabili i cui impiegati guadagnano TUTTI piu’ di 40 mila euro DB -Algebra Relazionale


Scaricare ppt "DB -Algebra Relazionale"

Presentazioni simili


Annunci Google