Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
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 AB(R) è con attributi (X-{A}){B} AB(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 RS = {t | t R t S} R-S = {t | t R tS} DB -Algebra Relazionale
8
DB -Algebra Relazionale
Esempi S R R-S RS 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 ] | tR} 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 AB, 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 | tR 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 RS = {t | tR 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 | tR, 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) ProfessoreNome=‘Mario Rossi’& Voto>27 (Studenti 1 Esami 1 Corsi) DB -Algebra Relazionale
34
DB -Algebra Relazionale
Query Optimization La stessa query PNome=‘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 XY; 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 XY. Eliminazione di proiezioni superflue. X(E)=E , se X = attr.(E). Anticipazione della rispetto a . XY(E F)= X(E) Y(F) , se Xattr(E), Yattr.(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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.