La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di.

Presentazioni simili


Presentazione sul tema: "Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di."— Transcript della presentazione:

1 Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di linguaggi reali (SQL)  si presta a ottimizzazioni

2 Query languages per Basi di Dati Relazionali  Calcolo Relazionale:  basato sulla logica del 1^ ordine  dichiarativo  usato per definire la sintassi di linguaggi reali (SQL)  si può tradurre in algebra relazionale

3 Algebra Relazionale  Insieme di operatori  Basati su concetti algebrici\insiemistici  Operatori che trasformano (una o più) relazioni in altre relazioni  Manipolano ISTANZE di DB relazionali  Costituiscono un query-language

4 Algebra Relazionale  L’algebra relazionale è un linguaggio PROCEDURALE  Concetto di base: gli operatori su insiemi sono ammissibili sulle relazioni

5  Sono ammissibili su relazioni  Ma solo su relazioni con lo stesso schema!  Operatori dell’algebra relazionale permettono:  di uniformare gli schemi, per poi applicare gli operatori su insiemi  di selezionare sottoparti di tabelle  di mettere in corrispondenza più tabelle Osservazioni Gli operatori insiemistici

6 Ridenominazione  Operatore per cambiare nome agli attributi  R 1 (A 1 A 2 …A k ) R 2 (B 1 B 2 …B k )  B  …Bk  A1…Ak (R 1 ) L’operatore  Ridenominazione trasforma una istanza di R 1 in una istanza di R 2  R 1 ed R 2 devono essere definite  Sugli stessi domini, ordinati nello stesso modo  Con nomi diversi   cambia i nomi   può cambiare anche solo alcuni dei nomi

7 SELEZIONE  Produce un sottoinsieme delle tuple  Che mantengono tutti gli attributi  Sintassi  c (r) = r ’    selezione  c condizione di selezione  La soluzione è una nuova relazione tratta dalla relazione data  contenente tutte e sole le tuple che soddisfano c

8 Condizione di selezione  C formula proposizionale  Definita su attributi X di r  C si costruisce su: (oltre a X)  Operatori di confronto =  > <    Costanti  Operatori logici Λ V ¬  C vale vero/ falso

9 Valori Nulli  In algebra relazionale  media > 25 (Studente)   media ≤ 25 (Studente) = ? Studente  L’uguaglianza vale solo se Studente non contiene tuple con media = null

10 Valori Nulli  Qualunque operatore di confronto restituisce falso se applicato a null null  25? Falso null > 25? Falso  Soluzione:predicati IS NULL IS NOT NULL  media > 25 V media IS NULL (Studente)   media  25 (Studente) = Studente

11 Proiezione  Data R su X  Dato Y  X  Y (r)={ t[Y], t  r}  proiezione Y = attributi da conservare   elimina gli attributi di X - Y   Y (r) contiene tutte le tuple di r? solo se Y è superchiave per r

12 Join Naturale  Definizione: Date R 1 (X 1 ) ed R 2 (X 2 ) r 1 join r 2 = {t su X 1 X 2 :  t 1  r 1, t 2  r 2 tali che t [X 1 ]  r 1 e t[X 2 ]  r 2 } dove X 1 X 2  X 1  X 2  Se X 1  X 2  X 1  X 2    X 1  X 2 = Y allora join naturale combina tuple di r 1 ed r 2 con uguali valori su Y

13 Join Naturale  Ossrvazioni: Se X 1  X 2 =  allora join naturale = prodotto cartesiano  Se X 1  X 2 = X 1  X 2 (ossia X 1 = X 2 ) join naturale = Intersezione fra r 1 ed r 2

14 Join  Operatore binario r 1 Join r 2  Commutativo r 1 join r 2 = r 2 join r 1  Associativo r 1 join (r 2 join r 3 ) = (r 1 join r 2 ) join r 3  Quindi applicabile in sequenza r 1 join r 2 join…join r n join n i=1 r i  Coinvolge nelle query un numero arbitrario di relazioni

15 Join Naturale  Fra r 1 ed r 2 con X 1  X 2 e X 1  X 2 =Y combina r 1 ed r 2 rispetto alle tuple con uguali valori su y  Join vuoto non  coppie t 1  r 1,t 2  r 2 tali che t 1 [y]=t 2 [y]  Join completo  tupla t 1  r 1  t 2  r 2 : t 1 [y] = t 2 [y] e viceversa  Join non completo: tuple dangling escluse dal risultato

16 Join Naturale  Cardinalità del Join: max  r1 ,  r2   r1 join r2  r1  r2   Se Y contiene una chiave per R 2, allora  r 1 join r 2  r 1   Se vincolo di integrità referenziale fra Z  Y e chiave K di R 2,  r 1 join r 2  =  r 1   Join non completo: tuple dangling escluse dal risultato

17 Theta Join  r 1 join F r 2   F (r 1 join r 2 ) nei linguaggi di query reali non è previsto il join naturale, ma è obbligatorio porre una condizione su attributi comuni  r 1 join U r 2 EQUI-JOIN con U  (A 1 = A 1 1 )  (A 2 = A 2 1 )  …  (A n = A n 1 )  Il join naturale è simulato r 1 join r 2  r 1 join A=A’  A’  A (r 2 ) se X 1  X 2 =A

18 Equivalenza di espressioni  Vi sono diversi modi per ottenere lo stesso risultato perché talune espressioni diverse sono equivalenti  Equivalenza relativa allo schema: per ogni istanza r di schema R E 1 (r) = E 2 (r) notazione: E 1  R E 2  Equivalenza assoluta per ogni R, E 1  R E 2 notazione: E 1  E 2

19 Trasformazione di equivalenza  Atomizzazione delle selezioni  F1  F2 (E)   F1 (  F2 (E))se  E  =n  Anziché verificare n volte sia F1 che F2  Verifica n volte F2 ed F1 per  F2 (E)  E   Idempotenza delle proiezione  X (E)  X (  XY (E)) lascia al sistema la possibilità di effettuare le proiezioni in “passate” successive.

20 Trasformazione di equivalenza  Inglobamento della selezione nel join  F (E 1 join c E 2 )  E 1 join F  C E 2  Distributività selezione su unione  F (E 1  E 2 )   F (E 1 )   F (E 2 )  Distributività selezione su differenza  F (E 1 - E 2 )   F (E 1 ) -  F (E 2 )  Proprietà analoghe per proiezioni? si  X (E 1  E 2 )   X (E 1 )   X (E 2 ) no  X (E 1 - E 2 )   X (E 1 ) -  X (E 2 )  Altre proprietà della selezione  F1V F2 (R) =  F1 (R)   F2 (R)  F1V F2 (R) =  F1 (R) join  F2 (R)  F1V  F2 (R) =  F1 (R) -  F2 (R)

21 Equivalenza assoluta  Permette di migliorare l’efficienza delle query  Come: riducendo le dimensioni dei risultati intermedi  Trasformazioni di equivalenza: equivalenza assoluta efficaci in pratica riducono le dimensioni o preparono una riduzione


Scaricare ppt "Query languages per Basi di Dati Relazionali  Algebra Relazionale:  basato sulla teoria degli insiemi  procedurale  usato per l’implementazione di."

Presentazioni simili


Annunci Google