Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoGastone Arena Modificato 9 anni fa
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.