La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

ALGEBRA E CALCOLO RELAZIONALE OPERATORI DELL’ALGEBRA RELAZIONALE UNIONE, INTERSEZIONE, DIFFERENZA RIDENOMINAZIONE LOGICA PROPOSIZIONALE SELEZIONEPROIEZIONE.

Presentazioni simili


Presentazione sul tema: "ALGEBRA E CALCOLO RELAZIONALE OPERATORI DELL’ALGEBRA RELAZIONALE UNIONE, INTERSEZIONE, DIFFERENZA RIDENOMINAZIONE LOGICA PROPOSIZIONALE SELEZIONEPROIEZIONE."— Transcript della presentazione:

1 ALGEBRA E CALCOLO RELAZIONALE OPERATORI DELL’ALGEBRA RELAZIONALE UNIONE, INTERSEZIONE, DIFFERENZA RIDENOMINAZIONE LOGICA PROPOSIZIONALE SELEZIONEPROIEZIONE INTRODUZIONEINTRODUZIONE I I

2 ESERCIZIESERCIZI DIVISIONEDIVISIONE JOINJOIN ALGEBRA E CALCOLO RELAZIONALEINDICE INTERROGAZIONI IN ALGEBRA RELAZIONALE EQUIVALENZA DI ESPRESSIONI ALGEBRICHE CALCOLO RELAZIONALE SUI DOMINI PREGI E DIFETTI DEL CALCOLO SU DOMINI CALCOLO SU TUPLE CON DICHIARAZIONI DI RANGE ALGEBRA E CALCOLO CON VALORI NULLI ALGEBRA E CALCOLO CON VALORI NULLI VISTEVISTE

3 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. ALGEBRA E CALCOLO RELAZIONALE

4 I linguaggi di query sono classificati in due classi: (procedurali): ad esempio l’algebra relazionale;linguaggi algebrici (procedurali): ad esempio l’algebra relazionale; (non procedurali).: linguaggi di questa seconda classe possono esistere in due versioni, versione a e versione alinguaggi 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. ALGEBRA E CALCOLO RELAZIONALEINTRODUZIONE

5 Questa proprietà detta di 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”. 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). ALGEBRA E CALCOLO RELAZIONALEINTRODUZIONE

6 OPERATORI DELL’ALGEBRA RELAZIONALE L’algebra relazionale propone 6 operatori di base e 3 derivati. Operatori (di base): Operatori fondamentali (di base): operatori unari di,,.operatori unari di Selezione, Proiezione, Ridenominazione. operatori binari di, e.operatori binari di Prodotto Cartesiano, Unione e Differenza. Operatori (da quelli di base): Operatori derivati (da quelli di base): operatore insiemistico binario di.operatore insiemistico binario di Intersezione. operatore di, in varie forme,,.operatore di join, in varie forme, theta-join, natural-join. operatore dioperatore di divisione (  ) Indichiamo con r (R), la relazione r definita sullo schema R.Indichiamo con r (R), la relazione r definita sullo schema R. R è un insieme di attributi. ALGEBRA E CALCOLO RELAZIONALE

7 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 A 1... A k  R ed B 1...B h  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(A i )=Dom(B j ) per 1  i, j  k. 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;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; 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;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; 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.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. ALGEBRA E CALCOLO RELAZIONALE

8 Laureati MatricolaCognomeEtà 7274Rossi Neri Verdi38 Esempio: operazioni di unione, intersezione e differenza Laureati  Dirigenti Laureati  Dirigenti Laureati - Dirigenti ALGEBRA E CALCOLO RELAZIONALEUNIONE, DIFFERENZA, INTERSEZIONE

9 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). ALGEBRA E CALCOLO RELAZIONALEUNIONE, DIFFERENZA, INTERSEZIONE

10 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 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. 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. ALGEBRA E CALCOLO RELAZIONALE

11 Definizione: Sia r una relazione definita sull’insieme di attributi X e sia Y un (altro) insieme di attributi con la stessa cardinalità. Inoltre, siano A 1 A 2 … A k e B 1 … B k 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’[B i ] = t[A i ], 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 A 1 A 2 … A k e B 1 … B k indicheremo solo gli attributi che vengono ridenominati (cioè quelli per cui A i  B i ). ALGEBRA E CALCOLO RELAZIONALERIDENOMINAZIONE

12 Esempio (genitori-figli): Unione sensata ma scorretta PATERNITA’  MATERNITA’ ??? Ridenominiamo le relazioni: PATERNITA' Genitore Figlio AdamoCaino AdamoAbele AbramoIsacco AbramoIsmaele )'(PATERNITA PadreGenitore   ALGEBRA E CALCOLO RELAZIONALERIDENOMINAZIONE

13 Unione preceduta da due ridenominazioni: ()' ( MATERNITA’) PATERNITA MadreGenitorePadreGenitore    MATERNITA'Figlio EvaCaino EvaSet SaraIsacco AgarIsmaele Genitore )' ( MATERNITA MadreGenitore   ALGEBRA E CALCOLO RELAZIONALERIDENOMINAZIONE

14 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. CognomeAgenziaStipendio RossiRoma45 NeriMilano53 )()(,Re,,, OPERAIIMPIEGATI SalarioFabbricatribuzioneSedeStipendioAgenziatribuzioneSede   Un’altra unione preceduta da ridenominazione ALGEBRA E CALCOLO RELAZIONALERIDENOMINAZIONE

15 Premesse: (selezione, proiezione) 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 operatorie producono come risultato una porzione della relazione-operando.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 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. 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 “”, mentre la proiezione produce “”, vedi figura. Possiamo dire che la selezione produce “decomposizioni orizzontali”, mentre la proiezione produce “decomposizioni verticali”, vedi figura. ALGEBRA E CALCOLO RELAZIONALE Torna a selezione Torna a proiezione

16 A B C Selezione: decomposizione orizzontale A B C Proiezione: decomposizione verticale A B )( Pr r selezionedi edicato   r (A,B,C) r’(A,B) ALGEBRA E CALCOLO RELAZIONALEPREMESSE ( SELEZIONE E PROIEZIONE )

17 Le figure precedenti mostrano le caratteristiche fondamentali dei due operatori. 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 selezioneL’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 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.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. ALGEBRA E CALCOLO RELAZIONALEPREMESSE ( SELEZIONE E PROIEZIONE )

18 LOGICA PROPOSIZIONALE LOGICA PROPOSIZIONALE 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 dettaI simboli impiegati per denotare le proposizioni vengono informalmente denominati formule atomiche o, più brevementeIn termini informali, un’espressione che rappresenta una proposizione o una proposizione composta viene detta 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 formulaun atomo è una formula se F è una formula, allora  F è una formulase F è una formula, allora  F è una formula se F e G sono formule, allora (F  G), (F  G), (F  G) ed (F  G) sono formulese F e G sono formule, allora (F  G), (F  G), (F  G) ed (F  G) sono formule nessun altro ente è una formulanessun altro ente è una formula ALGEBRA E CALCOLO RELAZIONALE Torna a sintassi e semantica Torna a sintassi e semantica

19 Precedenza operatori Agli operatori logici si assegna il seguente ordine di precedenza decrescente:  oppure ¯,  oppure ,  oppure +, , .  oppure ¯,  oppure ,  oppure +, , . Naturalmente la parentizzazione ha la precedenza più alta. La degli operatori è la seguente: La tavola di verità degli operatori è la seguente: ALGEBRA E CALCOLO RELAZIONALELOGICA PROPOSIZIONALE

20 Interpretazione delle formule Data una formula F, siano A 1, …, A n-1, A n gli atomi presenti in F. Una di F è un’attribuzione di valori di verità ad A 1, …, A n-1, A n, in cui ciascun A j, per 1  j  n, è vero o falso. Dal momento che vi sono 2 n modi possibili di attribuire valori di verità ad n atomi, esistono 2 n interpretazioni di F. Data una formula F, siano A 1, …, A n-1, A n gli atomi presenti in F. Una interpretazione di F è un’attribuzione di valori di verità ad A 1, …, A n-1, A n, in cui ciascun A j, per 1  j  n, è vero o falso. Dal momento che vi sono 2 n modi possibili di attribuire valori di verità ad n atomi, esistono 2 n 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 èo che è unase è vera sotto tutte le sue interpretazioni, e che è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 èo che è unase è falsa sotto tutte le sue interpretazioni e viene dettain 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 F, o che F da M. d’altro canto, se una formula F è falsa sotto un’interpretazione M, allora diciamo che M F o che F è da M 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. ALGEBRA E CALCOLO RELAZIONALELOGICA PROPOSIZIONALE

21 Equivalenza tra formule Le equivalenze sono molto utili nel semplificare le formule F  G   F  G (F  G)  (  F  G)  (F  G)  (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)  G  H  F  G  H  G  H G  (  G  H)  (G  G)  (G  H)  T  G  H  G  H (F  G)  (F  H)  F  (G  H) Quando due formule sono equivalenti, la formula più complessa può essere sostituita dalla sua controparte equivalente per ottenere una semplificazione o anche una minimizzazione. ALGEBRA E CALCOLO RELAZIONALELOGICA PROPOSIZIONALE

22 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 costante, come ad esempio una costante numerica o un simbolo non numerico (ad esempio una stringa di caratteri) è un termine. Una variabile è un termine.Una variabile è un termine. Se f è un simbolo di funzione ennupla, e t 1, …, t n sono termini, allora f (t 1,…,t n ) è un termine.Se f è un simbolo di funzione ennupla, e t 1, …, t n sono termini, allora f (t 1,…,t n ) è un termine. Nessun altro ente è un termine.Nessun altro ente è un termine. Un predicato ennuplo p è una funzione ennupla da (D 1 *D 2 * … *D n ) in { vero o falso }, dove “vero” e “falso” sono valori di verità. P : D 1 *D 2 * … * D n  {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 t 1,…,t n sono termini, allora p(t 1,…t n ) è 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. Formalmente, un atomo in logica di primo ordine viene definito nel modo seguente: se p è un simbolo di un predicato n-plo e t 1,…,t n sono termini, allora p(t 1,…t n ) è 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. ALGEBRA E CALCOLO RELAZIONALELOGICA PROPOSIZIONALE

23 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 rispettivamentee 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. 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. ALGEBRA E CALCOLO RELAZIONALELOGICA PROPOSIZIONALE

24 Analogamente, se y per y  x è 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. ALGEBRA E CALCOLO RELAZIONALELOGICA PROPOSIZIONALE

25 Formule Nella logica del primo ordine, le formule vengono definite ricorsivamente nel modo seguente: Un atomo è una formula.Un atomo è una formula. Se F e G sono formule, allora  F, (F  G), (F  G), (F  G), (F  G) sono formule.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.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.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 se tutte le sue variabili sono quantificate e viene detta aperta in caso contrario. 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. ALGEBRA E CALCOLO RELAZIONALELOGICA PROPOSIZIONALE

26 Interpretazioni di formule Una 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. 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 D n f : D n  D D n f : D n  D (3) A ciascun simbolo di predicato n-plo attribuiamo un valore di verità (vero o falso) applicato da D n p : D n  {vero, falso} falso) applicato da D n p : D n  {vero, falso} Per ciascuna interpretazione di una formula su di un dato dominio D, la formula viene vera o falsa secondo le seguenti regole. Per ciascuna interpretazione di una formula su di un dato dominio D, la formula viene valutata vera o falsa secondo le seguenti regole. ALGEBRA E CALCOLO RELAZIONALELOGICA PROPOSIZIONALE

27 (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à. 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. 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))  (  x(F(x))   x(  F(x)) ALGEBRA E CALCOLO RELAZIONALELOGICA PROPOSIZIONALE

28 SELEZIONE (vedi premessa) Per selezionare delle tuple specifiche da una relazione dobbiamo specificare una certa condizione come criterio di selezione detto “”. Denotiamo il predicato di selezione con una F che viene definita ricorsivamente nel modo seguente: 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 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 compatibili, c è una costante in DOM(A), e  è un operatore di confronto aritmetico in , , , , ,  . Queste formule sono tutte confronto aritmetico in , , , , ,  . Queste formule sono tutte atomiche. atomiche. Se G e H sono formule, allora la congiunzione G · H, la disgiunzione Se G e H sono formule, allora la congiunzione G · H, la disgiunzione G+H e le negazioni  G ed  H sono formule. G+H e le negazioni  G ed  H sono formule. Nessun altro ente è una formula. Nessun altro ente è una formula. ALGEBRA E CALCOLO RELAZIONALE Premessa

29 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]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;A  c è vera su t se e solo se t[A] è in relazione  con c; F 1  F 2, F 1  F 2,  F 1 hanno l’usuale significato.F 1  F 2, F 1  F 2,  F 1 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.la selezione produce una relazione sugli stessi attributi di r che contiene le tuple t di r su cui F è vera. ALGEBRA E CALCOLO RELAZIONALESELEZIONE

30 )( IMPIEGATI StipendioEtà   ALGEBRA E CALCOLO RELAZIONALESELEZIONE

31 )( Re CITTADINI sidenza citaCittàDiNas   ALGEBRA E CALCOLO RELAZIONALESELEZIONE

32 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)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.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. ALGEBRA E CALCOLO RELAZIONALE Premessa

33 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 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.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. ALGEBRA E CALCOLO RELAZIONALEPROIEZIONE

34 )(,Nome IMPIEGATI Cognome  Esempio 1 ALGEBRA E CALCOLO RELAZIONALEPROIEZIONE

35 Esempio 2 )(, Reparto IMPIEGATI Capo  ALGEBRA E CALCOLO RELAZIONALEPROIEZIONE

36 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 ( ) e il theta join (  ). Esistono due versioni dell’operatore il join naturale ( ) e il theta join (  ). Il (r 1 r 2 ) di r 1 (X 1 ) e r 2 (X 2 ) è una relazione definita su X 1 X 2 (cioè sull’unione degli insiemi X 1 e X 2 ), come segue:Il join naturale (r 1 r 2 ) di r 1 (X 1 ) e r 2 (X 2 ) è una relazione definita su X 1 X 2 (cioè sull’unione degli insiemi X 1 e X 2 ), come segue: r 1 r 2 =  t su X 1 X 2 | esistono t 1  r 1 e t 2  r 2 con t[X 1 ] = t 1 e t[X 2 ]= t 2  Più sinteticamente: r 1 r 2 =  t su X 1 X 2 | t[X 1 ]  r 1 e t[X 2 ]  r 2  ALGEBRA E CALCOLO RELAZIONALE

37 Possiamo esprimere l’operatore di in termini di proiezione e selezione: r 1 r 2 = Il join-naturale è la selezione con un predicato particolare, che è del tipo Il join-naturale è la selezione con un predicato particolare, che è del tipo: (il predicato dell’operatore di selezione applicato al prodotto cartesiano di r 1 e r 2 ) il predicato è undei predicati di uguaglianza tra gli attributi comuni A i presi in r 1 e in r 2, {A 1 … A 2 }=X 1  X 2. Il risultato della selezione viene proiettato su X 1  X 2. (il predicato dell’operatore di selezione applicato al prodotto cartesiano di r 1 e r 2 ) il predicato è un and dei predicati di uguaglianza tra gli attributi comuni A i presi in r 1 e in r 2, {A 1 … A 2 }=X 1  X 2. Il risultato della selezione viene proiettato su X 1  X 2. Esempi alla pagina successiva. ALGEBRA E CALCOLO RELAZIONALEJOIN

38 r1r1 r2r2 r1r1 r2r2 = r 1  r 2 Esempio 1 ALGEBRA E CALCOLO RELAZIONALEJOIN

39 ))(( 21)Reparto..( 21 rr rr    (...) ),(Reparto)Reparto,(Impiegato21 Capo rr    Tabella finale ALGEBRA E CALCOLO RELAZIONALEJOIN

40 Nell’esempio 1, abbiamo visto che ciascuna tupla di ciascuno degli operandi contribuisce ad almeno una tupla del risultato (il join si dice ): 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 t 1 di r 1, esiste una tupla t in (r 1 r 2 ) tale che t[X 1 ]=t 1 (analogamente per r 2 ). 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 “” (dondolanti), (vedi esempio 1) 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). ALGEBRA E CALCOLO RELAZIONALEJOIN

41 Esempio di join con tuple “dangling” r1r1 r2r2 r 1 join-naturale r 2 ALGEBRA E CALCOLO RELAZIONALEJOIN

42 Esempio di join vuoto: r1r1 r2r2 r1r1 r2r2 ALGEBRA E CALCOLO RELAZIONALEJOIN

43 Esempio di join con |r 1 |×|r 2 | tuple: r1r1 r2r2 r1r1 r2r2 ALGEBRA E CALCOLO RELAZIONALEJOIN

44 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 ALGEBRA E CALCOLO RELAZIONALEJOIN

45 Ricapitolando possiamo dire anche sulla base degli esempi che il join di r 1 e r 2 contiene un numero di tuple compreso fra 0 e |r 1 |×|r 2 |. Inoltre: se il join di r 1 e r 2 è completo, allora contiene almeno un numero di tuple pari al massimo fra |r 1 | e |r 2 |;se il join di r 1 e r 2 è completo, allora contiene almeno un numero di tuple pari al massimo fra |r 1 | e |r 2 |; se X 1  X 2 contiene una chiave per r 2, allora il join di r 1 (X 1 ) e r 2 (X 2 ) contiene al più |r 1 | tuple;se X 1  X 2 contiene una chiave per r 2, allora il join di r 1 (X 1 ) e r 2 (X 2 ) contiene al più |r 1 | tuple; se X 1  X 2 contiene una chiave per r 2 sussiste il vincolo di riferimento fra X 1  X 2 (o un suo sottoinsieme) in r 1 e la chiave di r 2, allora il join di r 1 (X 1 ) e r 2 (X 2 ) contiene esattamente |r 1 | tuple.se X 1  X 2 contiene una chiave per r 2 sussiste il vincolo di riferimento fra X 1  X 2 (o un suo sottoinsieme) in r 1 e la chiave di r 2, allora il join di r 1 (X 1 ) e r 2 (X 2 ) contiene esattamente |r 1 | tuple. ALGEBRA E CALCOLO RELAZIONALEJOIN

46 Osservazioni sul join naturale Consideriamo i casi estremi:quello in cui i due schemi coincidono e quello in cui sono disgiunti. X 1 =X 2, il join coincide con l’intersezione:X 1 =X 2, il join coincide con l’intersezione: r 1 r 2 = r 1 (X 1 )  r 2 (X 2 ) r 1 r 2 = r 1 (X 1 )  r 2 (X 2 ) 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[X 1 ]  r 1 e t[X 2 ]  r 2 ; poiché l’unione di X 1 e X 2 è ancora pari a X 1 e quindi t è definita su X 1 : la definizione richiede quindi che t  r 1 e t  r 2 e coincide quindi con la definizione di intersezione. X 1  X 2 = , i due insiemi sono disgiunti.X 1  X 2 = , i due insiemi sono disgiunti. Il risultato è sempre definito sull’unione X 1 X 2, 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 ALGEBRA E CALCOLO RELAZIONALEJOIN

47 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. 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. ALGEBRA E CALCOLO RELAZIONALEJOIN

48 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. ALGEBRA E CALCOLO RELAZIONALEJOIN

49 THETA JOIN THETA JOIN ( ) L’operatore di theta-join è definito come segue:L’operatore di theta-join è definito come segue: dove F è una formula proposizionale utilizzabile in una selezione e le relazioni r 1 e r 2 non hanno attributi in comune. Nell’esempio precedente si può esprimere la seguente interrogazione: ALGEBRA E CALCOLO RELAZIONALEJOIN ProgettiImpiegati ProgettoCodice  

50 ImpiegatiProgetti ) (ImpiegatiProgettiImpiegati Progetto Codice     ALGEBRA E CALCOLO RELAZIONALEJOIN

51 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 r 1 (ABC) e r 2 (BCD), il join naturale di r 1 ed r 2 può essere espresso per mezzo degli altri operatori, in tre passi: ALGEBRA E CALCOLO RELAZIONALEJOIN

52 Ridenominando gli attributi in modo da ottenere relazioni su schemi disgiunti:Ridenominando gli attributi in modo da ottenere relazioni su schemi disgiunti: effettuando l’equi-join, con condizioni di uguaglianza sugli attributi corrispondenti: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:concludendo con una proiezione che elimina gli attributi “doppioni”, che presentano valori identici a quelli di altri attributi: ALGEBRA E CALCOLO RELAZIONALEJOIN

53 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 S  R, allora avremo che: ALGEBRA E CALCOLO RELAZIONALE

54 ImpiegatiProgetti Impiegati  Verificare tramite la definizione. Esempio: vogliamo tutti gli impiegati che partecipano ai progetti A, B e C ALGEBRA E CALCOLO RELAZIONALEDIVISIONE

55 ] Impiegati )Progetti)(Impiegati[()(Impiegati Impiegati  )(Impiegati Impiegato  )(Impiegato Impiegato  × Progetti-Impiegati )(Impiegati Impiegato  × Progetti ALGEBRA E CALCOLO RELAZIONALEDIVISIONE

56 ]Impiegati)Progetti)(Impiegati[( Impiegato  ]Impiegati)Progetti)(Impiegati[()(Impiegati Impiegato    __ ProgettiImpiegati  ALGEBRA E CALCOLO RELAZIONALEDIVISIONE


Scaricare ppt "ALGEBRA E CALCOLO RELAZIONALE OPERATORI DELL’ALGEBRA RELAZIONALE UNIONE, INTERSEZIONE, DIFFERENZA RIDENOMINAZIONE LOGICA PROPOSIZIONALE SELEZIONEPROIEZIONE."

Presentazioni simili


Annunci Google