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; in particolare se è una collezione di formule di Horn senza funzioni si ha il Datalog DB -Algebra Relazionale

3 DB -Algebra Relazionale
ESEMPIO DI QUERY DB -Algebra Relazionale

4 OPERATORI DELL’ALGEBRA
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

5 DB -Algebra Relazionale
Ridenominazione 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

6 ESEMPIO di Ridenominazione
Matricola  Codice Studente(Esami) DB -Algebra Relazionale

7 DB -Algebra Relazionale
Unione e Differenza Siano R ed S relazioni dello stesso tipo allora RS = {t | t R  t  S} R-S = {t | t R  tS} DB -Algebra Relazionale

8 DB -Algebra Relazionale
Esempi S R R-S RS DB -Algebra Relazionale

9 DB -Algebra Relazionale
Proiezione Sia R una relazione e siano A1, A2,…, An alcuni suoi attributi allora:  A1, A2,…, An (R) = {t[A1, A2,…, An ] | tR} DB -Algebra Relazionale

10 DB -Algebra Relazionale
Esempio R Proiezione  A,B (R) DB -Algebra Relazionale

11 Restrizione(Selezione)
Sia R una relazione allora   (R) = {t | t R  (t)} dove  e’ una formula proposizionale costruita a partire dagli atomi AB, dove A e B sono attributi di R o costanti e   {=,<, >}, utilizzando i connettivi proposizionali ,,. DB -Algebra Relazionale

12 DB -Algebra Relazionale
Esempio Selezione  A=X (R) DB -Algebra Relazionale

13 DB -Algebra Relazionale
Prodotto 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

14 DB -Algebra Relazionale
Esempio R S R x S DB -Algebra Relazionale

15 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

16 Divisione(Quoziente)
Divisione: Siano XY gli attributi di R ed Y quelli di S, allora R/S = {w | {w} x S  R}. Per far vedere che / e’ derivato basta osservare che R/S =  X (R) - T dove T =  X (( X (R) x S) - R). DB -Algebra Relazionale

17 DB -Algebra Relazionale
Uso della divisione La divisione serve a rispondere a query del tipo: trova tutte le n-uple di R associate a tutte le n-uple di S. Ad esempio {‘DBI’,’Progr’}=  Corso Corso=‘DBI’  Corso=‘Progr’ (Esami) ( Matricola,Corso Esami)/ {‘DBI’,’Progr’} = matricole di studenti che hanno superato DBI e Progr. DB -Algebra Relazionale

18 DB -Algebra Relazionale
Giunzione(Equijoin) 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 1 Ai = Ak S = {tu | tR, u  S , t.Ai =u.Ak} i=1…. n, k= n+1…. n+m. La giunzione e’ derivata perche’ R 1 Ai = Ak S =  Ai = Ak (R x S) DB -Algebra Relazionale

19 Studenti 1 Codice= MatricolaEsami
NOME CODICE MATRICOLA INDIRIZZO TELEFONO CORSO VOTO Mario Rossi 123456 Via Etnea 1 222222 Architetture 30 Ugo Bianchi 234567 Via Roma 2 333333 Programmazione 18 DB -Algebra Relazionale

20 Giunzione Naturale(Natural join)
Siano 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. R 1 S = {t | t[XY]  R  t[YZ]  S} La giunzione e’ derivata perché Si rinominano gli attributi Y in S come Y’ e si ottiene S’. Si opera la giunzione (equijoin) rispetto ad Y ed Y’. Si proietta rispetto a XYZ R 1 S=  XYZ (R 1 Y=Y’ S’) DB -Algebra Relazionale

21 DB -Algebra Relazionale
Studenti 1 Esami NOME MATRICOLA INDIRIZZO TELEFONO CORSO VOTO Mario Rossi 123456 Via Etnea 1 222222 Architetture 30 Ugo Bianchi 234567 Via Roma 2 333333 Programmazione 18 27 DB -Algebra Relazionale

22 Semi-giunzione(Semi-join)
Siano R con attributi XY ed S con attributi YZ R  S e’ una relazione di attributi XY costituita da tutte le n-uple di R che partecipano a R 1 S. La semi-giunzione e’ derivata perché R  S=  XY (R 1 S) DB -Algebra Relazionale

23 DB -Algebra Relazionale
Studenti  Esami NOME MATRICOLA INDIRIZZO TELEFONO Mario Rossi 123456 Via Etnea 1 222222 Ugo Bianchi 234567 Via Roma 2 333333 DB -Algebra Relazionale

24 DB -Algebra Relazionale
Giunzione Esterna La giunzione esterna è la giunzione naturale estesa con tutte le n-uple che non appartengono alla giunzione naturale, completate con valori null per gli attributi mancanti. Siano R[XY],S[YZ] R S = (R 1 S)  ((R-  XY (R 1 S)){Z=null}  {X=null}  ((S-  YZ (R 1 S))) DB -Algebra Relazionale

25 DB -Algebra Relazionale
Ordini 1/ Agenti ORDINE CLIENTE ARTICOLO AGENTE ZONA 1 123456 A1 222222 PISA 2 234567 A2 333333 CATANIA 3 345678 A3 444444 NULL 555555 ROMA DB -Algebra Relazionale

26 Altre Giunzioni Esterne
Nelle giunzioni esterne sinistre e destre si aggiungono solo le parti sinistre e destre. Siano R[XY],S[YZ] (giunzione esterna sinistra) R 1  S = (R 1 S)  ((R-  XY (R 1 S){Z=null} (giunzione esterna destra) R 1  S = (R 1 S)  {X=null}  ((S-  YZ (R 1 S))) DB -Algebra Relazionale

27 DB -Algebra Relazionale
Ordini 1  Agenti ORDINE CLIENTE ARTICOLO AGENTE ZONA 1 123456 A1 222222 PISA 2 234567 A2 333333 CATANIA 3 345678 A3 444444 NULL DB -Algebra Relazionale

28 DB -Algebra Relazionale
Ordini 1  Agenti ORDINE CLIENTE ARTICOLO AGENTE ZONA 1 123456 A1 222222 PISA 2 234567 A2 333333 CATANIA NULL 555555 ROMA DB -Algebra Relazionale

29 DB -Algebra Relazionale
Unione Esterna Siano R[XY], S[YZ] due relazioni allora L’unione esterna R [  S si ottiene estendendo le due tabelle con le colonne dell’altro con valori nulli e si fa l’unione. DB -Algebra Relazionale

30 Esempio di Unione Esterna
R U  S DB -Algebra Relazionale

31 Algoritmo di Query Optimization
DB -Algebra Relazionale

32 Espressione Algebrica di Query
L’Algebra Relazionale può essere utilizzata come linguaggio per interrogare una base di dati. Infatti consideriamo l’esempio del database degli studenti costituito dalle tre tabelle Studenti, Esami, Corsi. DB -Algebra Relazionale

33 DB -Algebra Relazionale
Esempio di Query Supponiamo che vogliamo trovare tutti i professori che hanno dato a Mario Rossi piu’ di 27. (1 e’ natural join) ProfessoreNome=‘Mario Rossi’& Voto>27 (Studenti 1 Esami 1 Corsi) DB -Algebra Relazionale

34 DB -Algebra Relazionale
Query Optimization La stessa query PNome=‘Mario Rossi’& Voto>27 (Studenti 1 Esami 1 Corsi) può essere espressa come P (Nome=‘Mario Rossi’Studenti 1 ( Voto>27 Esami 1 Corsi)) Che risulta essere molto più efficiente! DB -Algebra Relazionale

35 Regole per la query optimization
Anticipare l’applicazione delle proiezioni e delle restrizioni rispetto al prodotto (e quindi alle giunzioni), in modo da ridurre la dimensione delle tabelle a cui applicare il prodotto (e le giunzioni). Le seguenti regole possono essere utilmente utilizzate per l’ottimizzazione di espressioni: DB -Algebra Relazionale

36 Regole sulla restrizione
Raggruppamento di restrizioni C(X) (C(Y)(E))=C(X)&C(Y)(E) Commutativita’ di  e  C(X)(Y(E))=Y(C(X)(E)) ,se XY; Y(C(X)(XY(E)))=Y(C(X)(E))se X  Y. DB -Algebra Relazionale

37 Restrizione e Prodotto
Anticipazione di  rispetto a . C(X)(E  F)= C(X)(E)  F, se X attr(E). C(X)&C(Y)(E  F)= C(X)(E)  C(Y)(F), se X attr(E), Y attr(F). C(X)&C(Y)&C(Z)(E  F)= C(Z)( C(X)(E)  C(Y)(F)), se X attr(E), Y attr(F), Z attr(E) , Z attr(F) DB -Algebra Relazionale

38 Regole per la proiezione
Raggruppamento di proiezioni. X(Y(E))= X(E) , se XY. Eliminazione di proiezioni superflue. X(E)=E , se X = attr.(E). Anticipazione della  rispetto a . XY(E  F)= X(E)  Y(F) , se Xattr(E), Yattr.(F). DB -Algebra Relazionale

39 DB -Algebra Relazionale
L’ALGORITMO Si applicano le seguenti tre regole (per anticipare la selezione) finché è possibile Si anticipa  rispetto a  usando la 2.a. Si raggruppano le restrizioni usando la 1. Si anticipa l’esecuzione di  su  usando la 3. DB -Algebra Relazionale

40 Anticipazione delle proiezioni
Si eliminano le proiezioni superflue usando la 5. Si raggruppano le proiezioni mediante la regola 4. Si anticipa l’esecuzione delle proiezioni rispetto al prodotto usando ripetutamente la 2 (quando E è un prodotto, da destra verso sinistra) e la 6. DB -Algebra Relazionale

41 DB -Algebra Relazionale
Esercitazioni? DB -Algebra Relazionale


Scaricare ppt "DB -Algebra Relazionale"

Presentazioni simili


Annunci Google