Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
1
ALGEBRA E CALCOLO RELAZIONALE
INTRODUZIONE 1 OPERATORI DELL’ALGEBRA RELAZIONALE UNIONE, INTERSEZIONE, DIFFERENZA RIDENOMINAZIONE LOGICA PROPOSIZIONALE SELEZIONE PROIEZIONE 2 3 4 5 6
2
INTERROGAZIONI IN ALGEBRA RELAZIONALE
ALGEBRA E CALCOLO RELAZIONALE INDICE 7 JOIN 8 DIVISIONE INTERROGAZIONI IN ALGEBRA RELAZIONALE 9 EQUIVALENZA DI ESPRESSIONI ALGEBRICHE 10 CALCOLO RELAZIONALE SUI DOMINI 11 PREGI E DIFETTI DEL CALCOLO SU DOMINI 12 CALCOLO SU TUPLE CON DICHIARAZIONI DI RANGE 13 ALGEBRA E CALCOLO CON VALORI NULLI 14 15 VISTE ESERCIZI 16
3
ALGEBRA E CALCOLO RELAZIONALE
INTRODUZIONE linguaggio di interrogazione o Query Language: linguaggio tramite il quale un utente richiede delle informazioni da una base dati (bd); sono una componente essenziale delle bd. È importante studiare i fondamenti dei linguaggi di interrogazione, per vedere come i concetti sono realizzati in pratica nei sistemi relazionali. I linguaggi di query procedurali oppure non procedurali: procedurale quando è necessario specificare la sequenza di operazioni (complesse), sul db, per ottenere il risultato desiderato; l’utente deve specificare la procedura per ottenere il risultato non procedurale l’utente descrive l’informazione desiderata senza specificare la procedura per ottenere il risultato, descrive solo le proprietà del risultato.
4
I linguaggi di query sono classificati in due classi:
ALGEBRA E CALCOLO RELAZIONALE INTRODUZIONE I linguaggi di query sono classificati in due classi: linguaggi algebrici (procedurali): ad esempio l’algebra relazionale; linguaggi basati su calcolo dei predicati (non procedurali).: linguaggi di questa seconda classe possono esistere in due versioni, versione a calcolo relazionale sulle tuple e versione a calcolo relazionale sui domini. L’algebra relazionale è un linguaggio di interrogazione procedurale basato su concetti di tipo algebrico, ed è costituito da un insieme di operatori; l’applicazione di ognuno di questi operatori algebrici alle relazioni produce sempre come risultato una relazione.
5
ALGEBRA E CALCOLO RELAZIONALE
INTRODUZIONE Questa proprietà detta di chiusura significa che le operazioni almeno in linea di principio possono essere annidate “cioè il risultato di una certa operazione dell’algebra, essendo una relazione può essere a sua volta fornito come input alla stessa operazione”. Nella definizione dell’algebra relazionale il nome degli attributi e l’ordinamento delle tuple non è rilevante, inoltre si assume che tutte le relazioni in gioco siano insiemi finiti, per cui per esempio non è consentita l’operazione algebrica di complemento dato che -R può denotare un insieme infinito (cioè l’insieme delle tuple che non sono in R). La proprietà di chiusura non è posseduta dagli altri due modelli classici (cioè gerarchico e reticolare).
6
OPERATORI DELL’ALGEBRA RELAZIONALE
ALGEBRA E CALCOLO RELAZIONALE OPERATORI DELL’ALGEBRA RELAZIONALE L’algebra relazionale propone 6 operatori di base e 3 derivati. Operatori fondamentali (di base): operatori unari di Selezione, Proiezione, Ridenominazione. operatori binari di Prodotto Cartesiano, Unione e Differenza. Operatori derivati (da quelli di base): operatore insiemistico binario di Intersezione. operatore di join, in varie forme, theta-join, natural-join. operatore di divisione ( ) Indichiamo con r (R), la relazione r definita sullo schema R. R è un insieme di attributi.
7
Unione, Differenza, Intersezione
ALGEBRA E CALCOLO RELAZIONALE Unione, Differenza, Intersezione Le operazioni binarie di unione, differenza ed intersezione sulle relazioni di un data base richiedono che le loro relazioni-operando siano compatibili nei loro schemi. Due relazioni r (R) ed s (S) sono compatibili nei loro schemi se gli attributi di R coincidono con gli attributi di S: Def: se A1... Ak R ed B1...Bh S, allora r(R) ed s(S) sono due relazioni compatibili se anche i due schemi R ed S lo sono, cioè deve esistere una funzione uno-uno fra R ed S tale che si abbia Dom(Ai)=Dom(Bj) per 1 i, j k . l’unione di due relazioni r ed s definite sullo stesso insieme di attributi X è indicata con r s ed è una relazione ancora su X contenente le tuple che appartengono ad r oppure ad s, oppure ad entrambi; la differenza di r (X) ed s (X) è indicata con r-s ed è una relazione su X contenente le tuple che appartengono ad r e non ad s; l’intersezione di r(X) ed s(X) è indicata con r s ed è una relazione su X contenente le tuple che appartengono sia ad r sia ad s.
8
UNIONE, DIFFERENZA, INTERSEZIONE
ALGEBRA E CALCOLO RELAZIONALE UNIONE, DIFFERENZA, INTERSEZIONE Esempio: operazioni di unione, intersezione e differenza Laureati Matricola Cognome Età 7274 Rossi 37 7432 Neri 39 9824 Verdi 38 Laureati Dirigenti Laureati Dirigenti Laureati - Dirigenti
9
Riguardo la definizione di compatibilità.
ALGEBRA E CALCOLO RELAZIONALE UNIONE, DIFFERENZA, INTERSEZIONE Riguardo la definizione di compatibilità. Supponiamo di avere una porzione di data base per grandi magazzini: Vendite (reparto, articolo) Fornitura (articolo, fornitore) Tipo ( articolo, colore, dimensione) Dipendenti (nome, funzione, reparto, salario) Le relazioni Vendite e Tipo sono evidentemente non compatibili per unione. Le tuple sono disomogenee, mentre le tuple devono essere omogenee cioè definite sugli stessi attributi. Le relazioni Vendite e Fornitura, possono essere considerate compatibili per unione se reparto e fornitore sono entrambe definite nello stesso dominio (ossia se i loro valori appartengono allo stesso tipo-dati; ad esempio sono entrambe stringhe di caratteri di uguale lunghezza massima).
10
RIDENOMINAZIONE Consideriamo le due relazioni in figura:
ALGEBRA E CALCOLO RELAZIONALE RIDENOMINAZIONE Consideriamo le due relazioni in figura: Sarebbe sensato eseguire su di esse una sorta di unione, al fine di ottenere tutte le coppie “genitore-figlio” note alla base di dati, ma ciò non è possibile, perché l’attributo che intuitivamente abbiamo indicato con Genitore, si chiama in effetti Padre in una relazione e Madre nell’altra. Per risolvere il problema si introduce un operatore di ridenominazione il quale ha il compito di adeguare i nomi degli attributi, a seconda delle necessità, al fine di facilitare le operazioni insiemistiche. L’operatore è detto di ridenominazione, perché cambia il nome degli attributi lasciando inalterato il contenuto delle relazioni.
11
ALGEBRA E CALCOLO RELAZIONALE
RIDENOMINAZIONE Sia r una relazione definita sull’insieme di attributi X e sia Y un (altro) insieme di attributi con la stessa cardinalità. Inoltre, siano A1A2 … Ak e B1 … Bk rispettivamente un ordinamento per gli attributi in X e un ordinamento per quelli in Y. Allora la ridenominazione contiene una tupla t’ per ciascuna tupla t in r, definita come segue: t’ è una tupla su Y e t’[Bi] = t[Ai], per i = 1,…, n. La definizione conferma che ciò che cambia sono i nomi degli attributi, mentre i valori rimangono inalterati e vengono associati ai nuovi attributi. In pratica, nelle due liste A1A2 … Ak e B1 … Bk indicheremo solo gli attributi che vengono ridenominati (cioè quelli per cui Ai Bi ). Definizione:
12
Esempio (genitori-figli):
ALGEBRA E CALCOLO RELAZIONALE RIDENOMINAZIONE Esempio (genitori-figli): Unione sensata ma scorretta PATERNITA’ MATERNITA’ ??? Ridenominiamo le relazioni: r ( PATERNITA ' ) Genitore Padre PATERNITA' Genitore Figlio Adamo Caino Abele Abramo Isacco Ismaele
13
r ( MATERNITA ' ) r ( PATERNITA ) ' È r ( MATERNITA’)
ALGEBRA E CALCOLO RELAZIONALE RIDENOMINAZIONE r ( MATERNITA ' ) Genitore Madre MATERNITA' Genitore Figlio Eva Caino Eva Set Sara Isacco Agar Ismaele Unione preceduta da due ridenominazioni: r ( PATERNITA ) ' È r ( MATERNITA’) Genitore Padre Genitore Madre
14
Altro esempio di unione preceduta da ridenominazione.
ALGEBRA E CALCOLO RELAZIONALE RIDENOMINAZIONE Altro esempio di unione preceduta da ridenominazione. In questo caso, in ciascuna relazione sono due gli attributi che vengono ridenominati e quindi l’ordinamento delle coppie (Sede, Retribuzione e così via) è significativo. Cognome Agenzia Stipendio Rossi Roma 45 Neri Milano 53 Un’altra unione preceduta da ridenominazione r ( IMPIEGATI ) È r ( OPERAI ) Sede , Re tribuzione Agenzia , Stipendio Sede , Re tribuzione Fabbrica , Salario
15
Premesse: (selezione, proiezione)
ALGEBRA E CALCOLO RELAZIONALE Premesse: (selezione, proiezione) Torna a proiezione Torna a selezione Prima di entrare nel dettaglio degli operatori di Selezione, Proiezione e Join, facciamo alcune considerazioni sui primi due operatori: selezioni e proiezione svolgono funzioni complementari ( o ortogonali ). Entrambi sono operatori unari e producono come risultato una porzione della relazione-operando. Denotiamo con r (X) una relazione definita sullo schema X di attributi. La selezione produce un sottoinsieme delle tuple, mantenendo inalterato lo schema su cui è definita le relazione. Le tuple selezionate sono quelle che soddisfano una certa condizione di selezione chiamato “predicato di selezione”. La proiezione dà come risultato tutte le tuple ma su un sottoinsieme degli attributi di X, cioè le tuple sono definite su un sottoinsieme (X’X) degli attributi che compongono lo schema della relazione di partenza. Possiamo dire che la selezione produce “decomposizioni orizzontali”, mentre la proiezione produce “decomposizioni verticali”, vedi figura.
16
PREMESSE ( SELEZIONE E PROIEZIONE )
ALGEBRA E CALCOLO RELAZIONALE PREMESSE ( SELEZIONE E PROIEZIONE ) r (A,B,C) r (A,B,C) A B C A B C s ( r ) Pr edicato - di - selezione Selezione: decomposizione orizzontale r (A,B,C ) r’(A,B) A B C A B Proiezione: decomposizione verticale
17
PREMESSE ( SELEZIONE E PROIEZIONE )
ALGEBRA E CALCOLO RELAZIONALE PREMESSE ( SELEZIONE E PROIEZIONE ) L’operatore di selezione è denotato dal simbolo a pedice del quale si esprime il predicato di selezione P opportuno. Il risultato è una istanza diversa di relazione che contiene le tuple che soddisfano il predicato di selezione P = predicato di selezione , r = relazione L’operatore di proiezione è denotato dal simbolo a pedice del quale si specificano gli attributi che si vogliono proiettare. Il risultato è una relazione con uno schema diverso. Le figure precedenti mostrano le caratteristiche fondamentali dei due operatori.
18
LOGICA PROPOSIZIONALE
ALGEBRA E CALCOLO RELAZIONALE LOGICA PROPOSIZIONALE Torna a sintassi e semantica Atomi e formule La logica proposizionale fa uso di 5 operatori logici o connettivi: (not logico o negazione), (and logico o congiunzione), (or logico o disgiunzione), (equivalenza o “se o solo se”), (implicazione o “se allora”). Una frase dichiarativa che è o vera o falsa (e non può essere simultaneamente vera e falsa) viene detta proposizione. I simboli impiegati per denotare le proposizioni vengono informalmente denominati formule atomiche o, più brevemente atomi. In termini informali, un’espressione che rappresenta una proposizione o una proposizione composta viene detta formula. Le formule vengono definite ricorsivamente nel modo seguente: un atomo è una formula se F è una formula, allora F è una formula se F e G sono formule, allora (F G), (F G), (F G) ed (F G) sono formule nessun altro ente è una formula
19
LOGICA PROPOSIZIONALE
ALGEBRA E CALCOLO RELAZIONALE LOGICA PROPOSIZIONALE Precedenza operatori Agli operatori logici si assegna il seguente ordine di precedenza decrescente: oppure ¯ , oppure , oppure +, , . Naturalmente la parentizzazione ha la precedenza più alta. La tavola di verità degli operatori è la seguente:
20
Interpretazione delle formule
ALGEBRA E CALCOLO RELAZIONALE LOGICA PROPOSIZIONALE Interpretazione delle formule Data una formula F, siano A1, … , An-1, An gli atomi presenti in F. Una interpretazione di F è un’attribuzione di valori di verità ad A1, … , An-1, An, in cui ciascun Aj, per 1 j n, è vero o falso. Dal momento che vi sono 2n modi possibili di attribuire valori di verità ad n atomi, esistono 2n interpretazioni di F. Una formula F si dice vera sotto una interpretazione se F viene valutata vera in quell’interpretazione, e si dice falsa in caso contrario. Si dice che una formula è valida, o che è una tautologia, se è vera sotto tutte le sue interpretazioni, e che è non valida in caso contrario. Si dice che una formula è incoerente o che è una contraddizione se è falsa sotto tutte le sue interpretazioni e viene detta coerente in caso contrario. Se una formula è valida, allora essa è coerente, ma non è vero l’inverso. Analogamente, se una formula è incoerente allora essa è non valida, ma non è vero l’inverso. Ad esempio, la formula F F è non valida dal momento che non è una tautologia, eppure è coerente dal momento che non è una contraddizione. Se una formula F è vera sotto un’interpretazione M, diciamo allora che M soddisfa F, o che F è soddisfatta da M. d’altro canto, se una formula F è falsa sotto un’interpretazione M, allora diciamo che M falsifica F o che F è falsificata da M.
21
Equivalenza tra formule
ALGEBRA E CALCOLO RELAZIONALE LOGICA PROPOSIZIONALE Equivalenza tra formule Le equivalenze sono molto utili nel semplificare le formule F G F G (F G) (FG) (FG) (F G) F G (legge di De Morgan) (F G) F G (legge di De Morgan) G G F equivale a una “contraddizione”, formula sempre falsa per qualsiasi valore di verità di F e G. G G T equivale ad una “tautologia”, formula sempre vera per qualsiasi valore di verità di G. G (G H) (G G) GH F GH GH G (G H) (G G) (G H) T G H G H (F G) (F H) F (GH) Quando due formule sono equivalenti, la formula più complessa può essere sostituita dalla sua controparte equivalente per ottenere una semplificazione o anche una minimizzazione.
22
Logica del primo ordine
ALGEBRA E CALCOLO RELAZIONALE LOGICA PROPOSIZIONALE Logica del primo ordine Predicati la logica del primo ordine comprende tre ulteriori nozioni logiche: termini, predicati e quantificatori. I termini vengono definiti ricorsivamente nel modo seguente: Una costante, come ad esempio una costante numerica o un simbolo non numerico (ad esempio una stringa di caratteri) è un termine. Una variabile è un termine. Se f è un simbolo di funzione ennupla, e t1, … , tn sono termini, allora f (t1,…,tn ) è un termine. Nessun altro ente è un termine. Un predicato ennuplo p è una funzione ennupla da (D1*D2* … *Dn ) in { vero o falso }, dove “vero” e “falso” sono valori di verità. P : D1*D2* … * Dn {Vero, Falso} Formalmente, un atomo in logica di primo ordine viene definito nel modo seguente: se p è un simbolo di un predicato n-plo e t1,…,tn sono termini, allora p(t1,…tn) è un atomo. Vi sono quattro tipi di simboli che possono essere usati per costruire un atomo: le costanti, le variabili, i simboli di funzione ed i simboli di predicato.
23
LOGICA PROPOSIZIONALE
ALGEBRA E CALCOLO RELAZIONALE LOGICA PROPOSIZIONALE Quantificazione In un linguaggio di programmazione, quando una procedura P contiene una procedura Q ed esiste un identificatore x presente in Q, x è una variabile locale in Q se x è dichiarato in Q, ed è una variabile globale in caso contrario. Se una variabile x presente in una formula F è libera o limitata in F allora essa è rispettivamente analoga ad una variabile globale o locale in un linguaggio di programmazione. La variabile quantificata universalmente è (x), che si legge “per tutti gli x”, “per ciascun x”, o “per ogni x”. La variabile quantificata esistenzialmente è (x), che si legge “esiste un x”, “per un certo x”, o “per almeno un x”. I simboli ed vengono detti rispettivamente quantificatore universale e quantificatore esistenziale. Sia G(x) una formula in cui x è una variabile libera (ossia x non è quantificata in G). L’ambiente (scope) di Q (dove Q coincide con o ) in una formula F: F:= Qx (G(x)) è la sottoformula G(x) a cui Q viene applicato. Nella F, la prima occorrenza di x situata a destra di Q è limitata in F, ed ogni altra occorrenza di x situata nell’ambito G(x) è libera in G, dal momento che x non è quantificata in G ma diventa limitata in F.
24
LOGICA PROPOSIZIONALE
ALGEBRA E CALCOLO RELAZIONALE LOGICA PROPOSIZIONALE Analogamente, se y per yx è anch’essa una variabile libera in G, allora y è libera sia in G(x,y) che in F(y), dove F(y):=Qx (G(x,y)). Una variabile può essere allo stesso tempo libera o limitata in una formula; ad esempio, la variabile y nella formula x(G(x,y))y (H(y)) è libera in x(G(x,y)) ma è limitata in y (H(y)). F:= x(G(x,y)) y (H(y)), il simbolo := significa “è definito come”. Esempio Le variabili libere sono quelle non quantificate: F(k):= x(G(x,y,k)) y (H(y,k)), k è una variabile libera.
25
LOGICA PROPOSIZIONALE
ALGEBRA E CALCOLO RELAZIONALE LOGICA PROPOSIZIONALE Formule Nella logica del primo ordine, le formule vengono definite ricorsivamente nel modo seguente: Un atomo è una formula. Se F e G sono formule, allora F, (F G), (F G), (F G), (F G) sono formule. Se F è una formula ed x è una variabile libera in F, allora x(F(x)) ed x(F(x)) sono formule. Nessun altro ente è una formula. In una formula, le parentesi possono essere omesse seguendo lo stesso ordine di precedenza adottato per la logica proposizionale. Inoltre entrambi i quantificatori hanno lo stesso ordine di precedenza, che è superiore a quello dell’operatore logico di negazione. Una formula si dice chiusa se tutte le sue variabili sono quantificate e viene detta aperta in caso contrario. Una formula chiusa è facilmente interpretabile, mentre una formula aperta è difficilmente interpretabile.
26
Interpretazioni di formule
ALGEBRA E CALCOLO RELAZIONALE LOGICA PROPOSIZIONALE Interpretazioni di formule Una interpretazione di una formula F nella logica del primo ordine è costituita da un dominio non vuoto D di valori e da una attribuzione di valori a ciascuna costante, simbolo di funzione e simbolo di predicato presenti in F nel modo seguente. (1) Per ciascuna costante, la costante stessa è un elemento in D. (2) A ciascun simbolo di funzione n-pla attribuiamo un valore in D applicato da Dn f : Dn D (3) A ciascun simbolo di predicato n-plo attribuiamo un valore di verità (vero o falso) applicato da Dn p : Dn {vero, falso} Per ciascuna interpretazione di una formula su di un dato dominio D, la formula viene valutata vera o falsa secondo le seguenti regole.
27
LOGICA PROPOSIZIONALE
ALGEBRA E CALCOLO RELAZIONALE LOGICA PROPOSIZIONALE (1) Ciascuna delle formule F, (F G), (F G), (F G) e (F G) viene valutata vera o falsa come descritto nella tavola di verità. (2) x(F(x)) viene valutata vera se F è vera per tutti gli elementi nel dominio sottostante, e viene valutata falsa in caso contrario. (3) x(F(x)) viene valutata vera se F è vera per un certo elemento del dominio sottostante, e viene valutata falsa in caso contrario. Una formula chiusa è facilmente interpretabile, mentre una formula aperta non può essere interpretata se tutte le variabili libere presenti nella formula non vengono rappresentate da valori nel dominio sottostante. Equivalenze: (x(F(x)) x(F(x) ) (x(F(x)) x(F(x))
28
SELEZIONE (vedi premessa)
ALGEBRA E CALCOLO RELAZIONALE SELEZIONE (vedi premessa) Premessa Per selezionare delle tuple specifiche da una relazione dobbiamo specificare una certa condizione come criterio di selezione detto “predicato di selezione”. Denotiamo il predicato di selezione con una formula F che viene definita ricorsivamente nel modo seguente: A B, A c e c A sono formule, dove A e B sono attributi compatibili, c è una costante in DOM(A), e è un operatore di confronto aritmetico in , , , , , . Queste formule sono tutte atomiche. Se G e H sono formule, allora la congiunzione G · H, la disgiunzione G+H e le negazioni G ed H sono formule. Nessun altro ente è una formula.
29
A B è vera su t se e solo se t[A] è in relazione con t[B]
ALGEBRA E CALCOLO RELAZIONALE SELEZIONE Date una formula F e una tupla t, è definito un valore di verità per F su t: A B è vera su t se e solo se t[A] è in relazione con t[B] esempio: A=B, è vera se t[A] = t[B]; A c è vera su t se e solo se t[A] è in relazione con c; F1 F2 , F1 F2 , F1 hanno l’usuale significato. Possiamo completare la definizione: la selezione produce una relazione sugli stessi attributi di r che contiene le tuple t di r su cui F è vera.
30
s ( IMPIEGATI ) Età < 30 Ú Stipendio > 4000000
ALGEBRA E CALCOLO RELAZIONALE SELEZIONE s ( IMPIEGATI ) Età < 30 Ú Stipendio >
31
s ( CITTADINI ) CittàDiNas cita = Re sidenza
ALGEBRA E CALCOLO RELAZIONALE SELEZIONE s ( CITTADINI ) CittàDiNas cita = Re sidenza
32
PROIEZIONE (Vedi premessa)
ALGEBRA E CALCOLO RELAZIONALE Premessa PROIEZIONE (Vedi premessa) Dati una relazione r(X) e un sottoinsieme Y di X, la proiezione di r su Y (indicata con ) è l’insieme di tuple su Y ottenute dalle tuple di r considerando solo i valori su Y: la proiezione decompone verticalmente le relazioni: il risultato della proiezione contiene in questo caso tante tuple quante l’operando, definite però solo su parte degli attributi (vedi esempio 1) il risultato della proiezione può contenere un numero di tuple inferiore rispetto a quelle dell’operando, perché più tuple, avendo uguali valori su tutti gli attributi della proiezione, danno lo stesso contributo alla proiezione stessa (vedi esempio 2) Essendo le relazioni definite come insiemi, non possono in esse comparire più tuple uguali fra loro: i contributi uguali “collassano” in una sola tupla.
33
ALGEBRA E CALCOLO RELAZIONALE
PROIEZIONE Se Y è superchiave allora contiene lo stesso numero di tuple di r se e solo se Y è superchiave per r. Infatti se Y è superchiave, allora r non contiene tuple uguali su Y, e quindi ogni tupla dà un contributo diverso alla proiezione; se la proiezione ha tante tuple quante l’operando, allora ciascuna tupla di r contribuisce alla proiezione con valori diversi, e quindi r non contiene coppie di tuple uguali su Y: questa è proprio la definizione di superchiave. Per la relazione Impiegati, gli attributi Cognome e Nome formano una chiave ( e quindi una superchiave ), mentre Reparto e capo non formano una superchiave: questo giustifica il comportamento riguardo al numero delle tuple.
34
p ( IMPIEGATI ) Esempio 1 Cognome ,Nome ALGEBRA E CALCOLO RELAZIONALE
PROIEZIONE Esempio 1 p ( IMPIEGATI ) Cognome ,Nome
35
p ( IMPIEGATI ) Esempio 2 Reparto , Capo ALGEBRA E CALCOLO RELAZIONALE
PROIEZIONE Esempio 2 p ( IMPIEGATI ) Reparto , Capo
36
ALGEBRA E CALCOLO RELAZIONALE
JOIN L’operatore di join è il più caratteristico dell’algebra relazionale, in quanto permette di correlare dati contenuti in relazioni diverse, confrontando i valori contenuti in esse e quindi utilizzando la caratteristica fondamentale del modello, quella di essere basato su valori. Esistono due versioni dell’operatore il join naturale ( ) e il theta join (). Il join naturale (r r2 ) di r1(X1) e r2(X2) è una relazione definita su X1X2 (cioè sull’unione degli insiemi X1 e X2), come segue: r r2= t su X1X2 | esistono t1 r1 e t2 r2 con t[X1] = t1 e t[X2]= t2 Più sinteticamente: r r2= t su X1X2 | t[X1] r1 e t[X2] r2
37
Esempi alla pagina successiva.
ALGEBRA E CALCOLO RELAZIONALE JOIN Possiamo esprimere l’operatore di in termini di proiezione e selezione: r r2= Il join-naturale è la selezione con un predicato particolare, che è del tipo: (il predicato dell’operatore di selezione applicato al prodotto cartesiano di r1 e r2) il predicato è un and dei predicati di uguaglianza tra gli attributi comuni Ai presi in r1 e in r2, {A1 … A2}=X1 X2 . Il risultato della selezione viene proiettato su X1 X2. Esempi alla pagina successiva.
38
ALGEBRA E CALCOLO RELAZIONALE
JOIN Esempio 1 r1 r2 = r1 r2 r1 r2
39
( s ( r ´ r )) r >< r = p (...) ( r . Reparto = r . Reparto ) 1
ALGEBRA E CALCOLO RELAZIONALE JOIN ( s ( r r )) ( r . Reparto = r . Reparto ) 1 2 1 2 r >< r = p (...) 1 2 (Impiegato , Reparto ) È (Reparto , Capo ) Tabella finale
40
ALGEBRA E CALCOLO RELAZIONALE
JOIN Nell’esempio 1, abbiamo visto che ciascuna tupla di ciascuno degli operandi contribuisce ad almeno una tupla del risultato (il join si dice completo): per ogni tupla t1 di r1, esiste una tupla t in (r r2) tale che t[X1]=t1 (analogamente per r2). Questa proprietà non è sempre verificata, perché richiede una corrispondenza fra le tuple delle due relazioni. Possiamo avere esempi di join in cui alcune tuple degli operandi non contribuiscono al risultato, perché l’altra relazione non contiene tuple con gli stessi valori sull’attributo comune. Tali tuple vengono chiamate “dangling” (dondolanti), (vedi esempio 1) Come caso limite, possiamo avere join vuoti, è possibile che nessuna delle tuple degli operandi sia combinabile, e allora il risultato del join è la relazione vuota (vedi esempio 2, di join vuoto) All’estremo opposto, è possibile che ciascuna delle tuple di ciascuno degli operandi sia combinabile con tutte le tuple dell’altro (esempio 3).
41
Esempio di join con tuple “dangling”
ALGEBRA E CALCOLO RELAZIONALE JOIN Esempio di join con tuple “dangling” r1 r2 r1 join-naturale r2
42
ALGEBRA E CALCOLO RELAZIONALE
JOIN Esempio di join vuoto: r1 r2 r1 r2
43
Esempio di join con |r1|×|r2| tuple:
ALGEBRA E CALCOLO RELAZIONALE JOIN Esempio di join con |r1|×|r2| tuple: r1 r2 r1 r2
44
INFRAZIONI JOIN-NATURALE AUTO
ALGEBRA E CALCOLO RELAZIONALE JOIN Esempio di join sulla base di valori della chiave di una delle relazioni coinvolte. In questo caso è definito, fra gli attributi coinvolti, un vincolo di riferimento. INFRAZIONI AUTO INFRAZIONI JOIN-NATURALE AUTO
45
ALGEBRA E CALCOLO RELAZIONALE
JOIN Ricapitolando possiamo dire anche sulla base degli esempi che il join di r1 e r2 contiene un numero di tuple compreso fra 0 e |r1|×|r2| . Inoltre: se il join di r1 e r2 è completo, allora contiene almeno un numero di tuple pari al massimo fra |r1| e |r2|; se X1X2 contiene una chiave per r2, allora il join di r1(X1) e r2(X2) contiene al più |r1| tuple; se X1X2 contiene una chiave per r2 sussiste il vincolo di riferimento fra X1X2 (o un suo sottoinsieme) in r1 e la chiave di r2, allora il join di r1(X1) e r2(X2) contiene esattamente |r1| tuple.
46
Osservazioni sul join naturale
ALGEBRA E CALCOLO RELAZIONALE JOIN Osservazioni sul join naturale Consideriamo i casi estremi:quello in cui i due schemi coincidono e quello in cui sono disgiunti. X1=X2 , il join coincide con l’intersezione: r r2= r1(X1) r2(X2) la definizione di join naturale richiede che il risultato sia definito sull’unione dei due insiemi di attributi, e che contenga le tuple t tali che t[X1]r1 e t[X2] r2; poiché l’unione di X1 e X2 è ancora pari a X1 e quindi t è definita su X1: la definizione richiede quindi che t r1 e t r2 e coincide quindi con la definizione di intersezione. X1X2=, i due insiemi sono disgiunti. Il risultato è sempre definito sull’unione X1X2, e ciascuna tupla deriva sempre da due tuple, una per ciascuno degli operandi, poiché tali tuple non hanno attributi in comune, non viene richiesta ad esse nessuna condizione per partecipare insieme al join:la condizione informale, cioè che le due tuple debbono avere gli stessi
47
ALGEBRA E CALCOLO RELAZIONALE
JOIN valori sugli attributi comuni, degenera in una condizione sempre verificata. Il risultato del join contiene le tuple ottenute combinando, in tutti i modi possibili, le tuple degli operandi. In questo caso particolare il join diventa un prodotto cartesiano. Potremmo dire che il prodotto cartesiano è un operatore definito (con la stessa definizione data per il join naturale) su relazioni che non hanno attributi in comune. Un prodotto cartesiano ha di solito ben poco utilità, in quanto concatena tuple non necessariamente correlate dal punto di vista semantico. L’esempio successivo mostra un prodotto cartesiano, il cui risultato contiene un numero di tuple pari al prodotto delle cardinalità degli operandi.
48
tuple correlate secondo le esigenze.
ALGEBRA E CALCOLO RELAZIONALE JOIN Impiegati Progetti Il prodotto cartesiano viene spesso seguito da una selezione, che centra l’attenzione su tuple correlate secondo le esigenze. Per questa ragione viene spesso definito un operatore derivato, il theta-join, come prodotto cartesiano seguito da una selezione.
49
>< THETA JOIN ( ) Impiegati Progetti
ALGEBRA E CALCOLO RELAZIONALE JOIN THETA JOIN ( ) L’operatore di theta-join è definito come segue: dove F è una formula proposizionale utilizzabile in una selezione e le relazioni r1 e r2 non hanno attributi in comune. Nell’esempio precedente si può esprimere la seguente interrogazione: >< Impiegati Progetti Progetto = Codice
50
>< Impiegati Progetti = s (Impiegati >< Progetti )
ALGEBRA E CALCOLO RELAZIONALE JOIN Impiegati Progetti >< Impiegati Progetti = s (Impiegati >< Progetti ) Progetto = Codice Progetto = Codice
51
ALGEBRA E CALCOLO RELAZIONALE
JOIN Un theta join in cui la condizione di selezione F sia una congiunzione di atomi di uguaglianza, con un attributo della prima relazione e uno della seconda, viene chiamato equi-join. La figura precedente è ottenuta per mezzo di un equi join. Dal punto di vista pratico il theta-join e ancor più l’equi-join hanno una grande importanza, in quanto la maggior parte dei sistemi di basi di dati effettivamente esistenti non utilizzano i nomi di attributo per correlare le relazioni, e quindi non utilizzano il natural-join ma l’equi-join e il theta-join. Notiamo che il natural join può essere simulato per mezzo della ridenominazione, dell’equi-join e della proiezione. Esempio date due relazioni r1(ABC) e r2(BCD), il join naturale di r1 ed r2 può essere espresso per mezzo degli altri operatori, in tre passi:
52
ALGEBRA E CALCOLO RELAZIONALE
JOIN Ridenominando gli attributi in modo da ottenere relazioni su schemi disgiunti: effettuando l’equi-join, con condizioni di uguaglianza sugli attributi corrispondenti: concludendo con una proiezione che elimina gli attributi “doppioni”, che presentano valori identici a quelli di altri attributi:
53
ALGEBRA E CALCOLO RELAZIONALE
DIVISIONE ( ) L’operatore di divisione lo si può applicare sulle relazioni s ed r se e solo se lo schema di relazione su cui è definito s è contenuto nello schema di relazione su cui è definito r. Siano r ed s due relazioni definite su S ed R, e sia SR, allora avremo che:
54
ALGEBRA E CALCOLO RELAZIONALE
DIVISIONE Esempio: vogliamo tutti gli impiegati che partecipano ai progetti A, B e C Impiegati Progetti Impiegati Progetti Verificare tramite la definizione.
55
p (Impiegati ) p (Impiegati ) p (Impiegato ) p (Impiegati ) - p [( p
ALGEBRA E CALCOLO RELAZIONALE DIVISIONE p (Impiegati ) - p [( p (Impiegati ) Progetti ) - Impiegati ] Impiegati Impiegati Impiegati p × Progetti (Impiegati ) p (Impiegati ) Impiegato Impiegato p (Impiegato ) × Progetti -Impiegati Impiegato
56
Impiegati ¸ Progetti p [( p (Impiegati ) ´ Progetti ) - Impiegati ] p
ALGEBRA E CALCOLO RELAZIONALE DIVISIONE p [( p (Impiegati ) Progetti ) - Impiegati ] Impiegato Impiegato p (Impiegati ) - p [( p (Impiegati ) Progetti ) - Impiegati ] Impiegato Impiegato Impiegato __ Impiegati Progetti
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.