Calcolo Relazionale Basi di dati e sistemi informativi 1. Calcolo Relazionale. Angelo Montanari



Documenti analoghi
(anno accademico )

Fondamenti di Teoria delle Basi di Dati

Fa riferimento ad una famiglia di linguaggi dichiarativi, basati sul calcolo dei predicati del primo ordine

Ottimizzazione delle interrogazioni (parte I)

Alcune nozioni di base di Logica Matematica

Il Modello Relazionale

logica dei predicati

Il Modello Relazionale

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

Algebra Relazionale e Calcolo Relazionale. L. Vigliano

I database relazionali sono il tipo di database attualmente piu diffuso. I motivi di questo successo sono fondamentalmente due:

Il Modello Relazionale

Attributi e domini. A per {A}; XY per X Y (pertanto A 1 A 2 A 3 denota

LE FUNZIONI A DUE VARIABILI

Algebra booleana. Si dice enunciato una proposizione che può essere soltanto vera o falsa.

Elementi di Algebra Relazionale

ALGEBRA DELLE PROPOSIZIONI

Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE

Basi di dati. L Algebra Relazionale. K. Donno - L Algebra Relazionale

Introduzione all Algebra Relazionale

Il linguaggio SQL: query innestate

Algebra di Boole ed Elementi di Logica

MODELLO RELAZIONALE. Introduzione

x u v(p(x, fx) q(u, v)), e poi

1. PRIME PROPRIETÀ 2

Basi di Dati e Sistemi Informativi. Algebra Relazionale

APPUNTI DI MATEMATICA ALGEBRA \ INSIEMISTICA \ TEORIA DEGLI INSIEMI (1)

SQL prima parte D O C E N T E P R O F. A L B E R T O B E L U S S I. Anno accademico 2011/12

ALGEBRA RELAZIONALE RIEPILOGO

Vincoli di integrità

Uso delle variabili di alias. SQL slide aggiuntive. Interrogazione 25. Interrogazione 26

risulta (x) = 1 se x < 0.

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

Calcolatori: Algebra Booleana e Reti Logiche

BASE DI DATI: sicurezza. Informatica febbraio ASA

Modello Relazionale dei DBMS - Vincoli Tradizionalmente, esistono quattro modelli logici: Gerarchico Reticolare Relazionale A oggetti XML I modelli

Anno 3. Funzioni: dominio, codominio e campo di esistenza

Corrispondenze e funzioni

Funzioni in C. Violetta Lonati

Lezioni di Matematica 1 - I modulo

Basi di dati 9 febbraio 2010 Compito A

I PROBLEMI ALGEBRICI

4 3 4 = 4 x x x 10 0 aaa

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Operazioni sui database

Ottimizazione vincolata

Progettazione di Basi di Dati

( x) ( x) 0. Equazioni irrazionali

Funzioni. Parte prima. Daniele Serra

Lezione 4. Modello EER

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a

Capitolo 2. Operazione di limite

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

Il modello relazionale

DB - Modello relazionale dei dati. DB - Modello Relazionale 1

Teoria degli insiemi

LE SUCCESSIONI 1. COS E UNA SUCCESSIONE

RETTE, PIANI, SFERE, CIRCONFERENZE

ESERCIZI DI ALGEBRA LINEARE E GEOMETRIA

6.6 Il calcolo relazionale su tuple

Matematica generale CTF

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente

Lezione 10: Il problema del consumatore: Preferenze e scelta ottimale

Parte 6. Applicazioni lineari

Predicati e Quantificatori

Linguaggi del I ordine - semantica. Per dare significato ad una formula del I ordine bisogna specificare

Basi di Dati e Sistemi Informativi. Progettazione logica: Il modello relazionale

Lezione 1. Gli Insiemi. La nozione di insieme viene spesso utilizzata nella vita di tutti i giorni; si parla dell insieme:

1 Insiemi e terminologia

Intorni Fissato un punto sull' asse reale, si definisce intorno del punto, un intervallo aperto contenente e tutto contenuto in

CONCETTO DI LIMITE DI UNA FUNZIONE REALE

Algebra di Boole. Le operazioni, nell algebra booleana sono basate su questi tre operatori: AND ( ), OR ( + ),NOT ( )

10. Insiemi non misurabili secondo Lebesgue.

I.I.S. Primo Levi Badia Polesine A.S

Proof. Dimostrazione per assurdo. Consideriamo l insieme complementare di P nell insieme

Modello Relazionale. Modello Relazionale. Relazioni - Prodotto Cartesiano. Relazione: tre accezioni. Es. Dati gli insiemi

Linguaggi. Claudio Sacerdoti Coen 11/04/ : Semantica della logica del prim ordine. Universitá di Bologna

Algebra e Logica Matematica. Calcolo delle proposizioni Logica del primo ordine

Cardinalità e identificatori. Informatica. Generalizzazioni. Generalizzazioni. Generalizzazioni. Generalizzazioni

NORMALIZZAZIONE DI SCHEMI RELAZIONALI. Prof.ssa Rosalba Giugno

Capitolo 13. Interrogare una base di dati

Le Mappe di Karnaugh.

1 Applicazioni Lineari tra Spazi Vettoriali

Tecnologia di un Database Server (centralizzato) Introduzione generale

MATLAB. Caratteristiche. Dati. Esempio di programma MATLAB. a = [1 2 3; 4 5 6; 7 8 9]; b = [1 2 3] ; c = a*b; c

Algebra e Geometria. Ingegneria Meccanica e dei Materiali Sez (2) Ingegneria dell Automazione Industriale Sez (2)

Funzioni. Funzioni /2

Siamo così arrivati all aritmetica modulare, ma anche a individuare alcuni aspetti di come funziona l aritmetica del calcolatore come vedremo.

Ricorsione in SQL-99. Introduzione. Idea di base

Modulo 2 Data Base 2

Basi di dati. Concetti introduttivi ESEMPIO. INSEGNAMENTI Fisica, Analisi, Aule. Docenti. Entità Relazioni Interrogazioni. Ultima modifica: 26/02/2007

Lezione V. Aula Multimediale - sabato 29/03/2008

Algebra Booleana ed Espressioni Booleane

Il modello relazionale dei dati e stato introdotto da Codd. nel 1970 (E.F. Codd, \A relational model of data for large

SQL - Funzioni di gruppo

f(x) = 1 x. Il dominio di questa funzione è il sottoinsieme proprio di R dato da

Le equazioni. Diapositive riassemblate e rielaborate da prof. Antonio Manca da materiali offerti dalla rete.

Anno 1. Definizione di Logica e operazioni logiche

MATEMATICA DEL DISCRETO elementi di teoria dei grafi. anno acc. 2009/2010

Corso di Informatica

Transcript:

Calcolo Relazionale Basi di dati e sistemi informativi 1 Calcolo Relazionale Angelo Montanari Dipartimento di Matematica e Informatica Università di Udine

Calcolo Relazionale Basi di dati e sistemi informativi 2 Introduzione Calcolo relazionale: famiglia di linguaggi di interrogazione dichiarativi basati sul calcolo dei predicati del primo ordine Prenderemo in considerazione due linguaggi: calcolo relazionale su domini calcolo relazionale su tuple con dichiarazioni di range (base per il linguaggio SQL)

Calcolo Relazionale Basi di dati e sistemi informativi 3 Alcune assunzioni I simboli di predicato corrispondono alle relazioni presenti nella base di dati (più alcuni predicati standard quali uguaglianza e diseguaglianza); non compaiono simboli di funzione (data la struttura piatta delle relazioni imposta dalla Prima Forma Normale, non sono necessari) Nel calcolo relazionale vengono utilizzate prevalentemente formule aperte (formule con variabili libere, il cui valore di verità dipende dai valori assegnati alle variabili libere): il risultato di un interrogazione (formula aperta) è costituito dalle tuple di valori che, sostituiti alle variabili libere, la rendono vera In coerenza con quanto fatto in algebra relazionale (attributi con nome), utilizzeremo una notazione non posizionale

Calcolo Relazionale Basi di dati e sistemi informativi 4 Calcolo relazionale su domini - 1 Le espressioni del calcolo relazionale su domini hanno la forma: {A 1 : x 1,..., A k : x k f} dove A 1,..., A k sono attributi distinti (possono anche non comparire nello schema della base di dati) x 1,..., x k sono variabili (che assumiamo essere distinte, nonostante non sia strettamente necessario) f è una formula costruita a partire da formule atomiche utilizzando (eventualmente) i connettivi Booleani,, e e i quantificatori x e x, con x variabile

Calcolo Relazionale Basi di dati e sistemi informativi 5 Calcolo relazionale su domini - 2 Le formule atomiche possono essere di due tipi: R(A 1 : x 1,..., A h : x h ), dove R(A 1,..., A h ) è uno schema di relazione e x 1,..., x h sono variabili xθy oppure xθc, dove x, y sono variabili, c è una costante e θ è un operatore di confronto (=,,,...) La lista di coppie A 1 : x 1,..., A k : x k è detta lista degli obiettivi. Essa definisce la struttura del risultato costituito dalla relazione su A 1,..., A k che contiene tutte e sole le tuple di valori che, sostituiti a x 1,..., x k, rendono vera la formula f

Calcolo Relazionale Basi di dati e sistemi informativi 6 Calcolo relazionale su domini - 3 Il valore di verità di una formula è definito nel modo seguente (assumiamo per semplicità che tutti gli attributi abbiano lo stesso dominio): una formula atomica R(A 1 : x 1,..., A h : x h ) è vera sui valori di x 1,..., x h che costituiscono una tupla di R una formula atomica xθy vera sui valori di x, y che rendono vera la condizione θ (lo stesso per xθc) il valore di verità di disgiunzioni, congiunzioni e negazioni è definito nel modo usuale una formula della forma xf (rispettivamente xf) è vera se esiste almeno un elemento del dominio che (rispettivamente, ogni elemento del dominio), sostituito ad x, rende vera f

Calcolo Relazionale Basi di dati e sistemi informativi 7 Alcuni esempi - 1 Interrogazione 1. Selezionare le tuple della relazione LAV ORA A contraddistinte da un numero di ore settimanali maggiore di 5. {IMP : i, P ROGET T O : p, ORE SET T IMANA : o LAV ORA A(IMP : i, P ROGET T O : p, ORE SET T IMANA : o) o > 5} Il primo congiunto della formula impone che le tuple di valori assegnati alle variabili (i, p, o) appartengano alla relazione LAV ORA A; il secondo impone che il valore della variabile o sia maggiore di 5.

Calcolo Relazionale Basi di dati e sistemi informativi 8 Alcuni esempi - 2 Interrogazione 2. Selezionare le coppie (impiegato,progetto) tali che l impiegato dedica al progetto un numero di ore settimanali maggiore di 5. {IMP : i, P ROGET T O : p o(lav ORA A(IMP : i, P ROGET T O : p, ORE SET T IMANA : o) o > 5)} o, equivalentemente (la quantificazione esistenziale può essere omessa): {IMP : i, P ROGET T O : p LAV ORA A(IMP : i, P ROGET T O : p, ORE SET T IMANA : o) o > 5}

Calcolo Relazionale Basi di dati e sistemi informativi 9 Alcuni esempi - 3 Interrogazione 3. Selezionare nome e cognome dei manager. {NOME : n, COGNOME : c IMP IEGAT O(NOME : n, INIZIALE : i, COGNOME : c, CF : f,...) DIP ART IMENT O(..., MANAGER : f,...))} Si noti come l operazione di join dell algebra relazionale venga espressa attraverso la congiunzione di formule atomiche, una per ogni relazione coinvolta, e come variabili ripetute si possano usare per esprimere condizioni di uguaglianza.

Calcolo Relazionale Basi di dati e sistemi informativi 10 Alcuni esempi - 4 Interrogazione 4. Selezionare codice fiscale e stipendio dei supervisori degli impiegati che guadagnano più di 40000 euro. {CF : fs, ST IP ENDIO : ss IMP IEGAT O(..., ST IP ENDIO : s, SUP ERV ISORE : fs,...) IMP IEGAT O(..., CF : fs,..., ST IP ENDIO : ss,...) s > 40000} Si noti che se per confrontare tuple diverse di una stessa tabella è sufficiente includere nella formula più condizioni sullo stesso predicato, utilizzando variabili diverse.

Calcolo Relazionale Basi di dati e sistemi informativi 11 Alcuni esempi - 5 Interrogazione 5. Selezionare il codice fiscale degli impiegati che guadagnano più del loro supervisore. {CF : f IMP IEGAT O(..., CF : f,..., ST IP ENDIO : s, SUP ERV ISORE : fs,...) IMP IEGAT O(..., CF : fs,..., ST IP ENDIO : ss,...) s > ss} Si noti come l uso di variabili diverse consenta di confrontare valori dello stesso attributo provenienti da tuple diverse.

Calcolo Relazionale Basi di dati e sistemi informativi 12 Alcuni esempi - 6 Interrogazione 6. Trovare i dipartimenti i cui impiegati guadagnano tutti più di 40000 euro. {DNUMERO : d DIP ART IMENT O(DNUMERO : d,...) ( n( i(... ( st( su(imp IEGAT O(NOME : n, INIZIALE : i,..., ST IP ENDIO : st, SUP ERV ISORE : su, DIP : d) st 40000)))...)))} In alternativa, si può utilizzare la quantificazione universale (consentita nel calcolo relazionale).

Calcolo Relazionale Basi di dati e sistemi informativi 13 Alcuni esempi - 7 Interrogazione 6. (soluzione alternativa) Trovare i dipartimenti i cui impiegati guadagnano tutti più di 40000 euro. {DNUMERO : d DIP ART IMENT O(DNUMERO : d,...) n( i(... ( st( su( IMP IEGAT O(NOME : n, INIZIALE : i,..., ST IP ENDIO : st, SUP ERV ISORE : su, DIP : d) st > 40000)))...))}

Calcolo Relazionale Basi di dati e sistemi informativi 14 Potenza e limiti del calcolo su domini Il calcolo relazionale su domini ammette espressioni prive di significato (dal punto di vista pratico). Ad esempio, l espressione {A 1 : x 1, A 2 : x 2 R(A 1 : x 1 ) x 2 = x 2 } produce quale risultato una relazione su A 1, A 2 costituita da tuple il cui valore su A 1 compare nella relazione R, mentre il valore A 2 è un qualunque valore del dominio. In particolare: se il dominio è infinito, il risultato è infinito se il dominio cambia, cambia il risultato (espressione dipendente dal dominio) Altro esempio ( operatore di complementazione ): {A 1 : x 1 R(A 1 : x 1 )}

Calcolo Relazionale Basi di dati e sistemi informativi 15 Condizione di indipendenza dal dominio Un espressione di un linguaggio di interrogazione si dice indipendente dal dominio se il suo risultato, su ciascuna istanza della base di dati, non varia al variare del dominio rispetto al quale l espressione viene valutata (purché ogni dominio contenga almeno i valori presenti nell istanza e nell espressione). Un linguaggio si dice indipendente dal dominio se tali sono tutte le sue espressioni. E immediato vedere che il calcolo relazionale su domini non è indipendente dal dominio, mentre l algebra relazionale lo è (essa costruisce i risultati a partire dalle relazioni presenti nella base di dati, senza far mai riferimento ai domini degli attributi: i valori che compaiono nei risultati sono tutti presenti nell istanza cui l espressione viene applicata)

Calcolo Relazionale Basi di dati e sistemi informativi 16 Calcolo su domini e algebra relazionale - 1 Definiamo due linguaggi equivalenti se per ogni espressione dell uno esiste un espressione dell altro ad essa equivalente (ossia che produce lo stesso risultato) e viceversa. Se limitiamo la nostra attenzione al sottoinsieme del calcolo su domini costituito dalle sole espressioni indipendenti dal dominio, possiamo provare la seguente equivalenza: per ogni espressione del calcolo relazionale su domini indipendente dal dominio esiste un espressione dell algebra relazionale ad essa equivalente e viceversa In entrambi i versi la dimostrazione è costruttiva e si basa su una induzione sulla struttura dell espressione

Calcolo Relazionale Basi di dati e sistemi informativi 17 Calcolo su domini e algebra relazionale - 2 Elementi fondamentali della corrispondenza tra espressioni dell algebra relazionale e del calcolo su domini: esiste una corrispondenza tra condizioni elementari di selezione e formule atomiche delle forme xθy e xθc, proiezioni e quantificazioni esistenziali, join e congiunzioni, unioni e disgiunzioni, negazioni e differenze insiemistiche. I quantificatori universali possono essere ignorati in quanto possono essere ricondotti a quantificazioni esistenziali. La completezza espressiva dell insieme degli operatori di base dell algebra relazionale segue dalla corrispondenza tra algebra relazionale e calcolo relazionale su domini (ciò che non può essere espresso nell algebra relazionale, ad esempio le chiusure ricorsive, è ciò che non può essere espresso nel calcolo relazionale su domini)

Calcolo Relazionale Basi di dati e sistemi informativi 18 Variabili: singoli vs. tuple di valori Il calcolo relazionale su domini presenta anche lo svantaggio di richiedere numerose variabili, spesso una per ciascun attributo di ciascuna relazione coinvolta (lo stesso con i quantificatori). Dal calcolo relazionale su domini al calcolo relazionale su tuple: le variabili denotano tuple, non singoli valori. Vantaggio: una variabile per ciascuna relazione coinvolta. Occorre, ovviamente, associare una struttura (insieme degli attributi della relazione) a ciascuna variabile che consenta di individuare le singole componenti delle tuple.

Calcolo Relazionale Basi di dati e sistemi informativi 19 Calcolo su tuple con dichiarazioni di range - 1 Le espressioni del calcolo relazionale su tuple con dichiarazioni di range hanno la forma: {T L f} dove T è la lista degli obiettivi, con elementi del tipo Y : x.z (x.z se Y = Z), con x variabile e Y, Z liste di attributi di pari lunghezza; gli attributi in Z devono comparire nello schema di relazione che costituisce il range di x (se in x.z Z contiene tutti gli attributi della relazione, si può scrivere x. ) L è una lista di elementi (detta range list) della forma x(r), con x variabile e R nome di relazione

Calcolo Relazionale Basi di dati e sistemi informativi 20 Calcolo su tuple con dichiarazioni di range - 2 f è una formula costruita a partire da formule atomiche utilizzando (eventualmente) i connettivi Booleani,, and e i quantificatori x(r) e x(r), che associano i range (schemi di relazioni) alle variabili ( x(r)f significa esiste nella relazione R una tupla x che soddisfa la formula f ). Le formule atomiche sono del tipo: x 1.A 1 θx 2.A 2 oppure x.aθc, dove x, y sono variabili (che denotano tuple), x 1.A 1 (rispettivamente x 2.A 2, x.a) denota il valore che x 1 assume sull attributo A 1 (rispettivamente x 2 su A 2, x su A), c è una costante e θ è un operatore di confronto (=,,,...) Si noti che le dichiarazioni di range (nella range list e nelle quantificazioni) specificano l insieme dei valori che possono essere assegnati alle variabili. Non occorrono più condizioni atomiche che vincolano una tupla ad appartenere ad una relazione.

Calcolo Relazionale Basi di dati e sistemi informativi 21 Alcuni esempi - 1 Interrogazione 1. Selezionare le tuple della relazione LAV ORA A contraddistinte da un numero di ore settimanali maggiore di 5. {i. i(lav ORA A) i.ore SET T IMANA > 5} La dichiarazione di range impone che le tuple di valori assegnate alla variabile i appartengano alla relazione LAV ORA A; la condizione i.ore SET T IMANA > 5 impone che il numero di ore settimanali sia maggiore di 5.

Calcolo Relazionale Basi di dati e sistemi informativi 22 Alcuni esempi - 2 Interrogazione 2. Selezionare le coppie (impiegato,progetto) tali che l impiegato dedica al progetto un numero di ore settimanali maggiore di 5. {i.(imp, P ROGET T O) i(lav ORA A) i.ore SET T IMANA > 5} Interrogazione 3. Selezionare nome e cognome dei manager. {i.(nome, COGNOME) i(imp IEGAT O), d(dip ART IMENT O) i.cf = d.manager}

Calcolo Relazionale Basi di dati e sistemi informativi 23 Alcuni esempi - 3 Interrogazione 4. Selezionare codice fiscale e stipendio dei supervisori degli impiegati che guadagnano più di 40000 euro. {CF SUP, ST IP ENDIO SUP : i.(cf, ST IP ENDIO) i(imp IEGAT O), i (IMP IEGAT O) i.sup ERV ISORE = i.cf i.st IP ENDIO > 40000}

Calcolo Relazionale Basi di dati e sistemi informativi 24 Alcuni esempi - 4 Interrogazione 5. Selezionare il codice fiscale degli impiegati che guadagnano più del loro supervisore. {i.cf i(imp IEGAT O), i (IMP IEGAT O) i.sup ERV ISORE = i.cf i.st IP ENDIO > i.st IP ENDIO}

Calcolo Relazionale Basi di dati e sistemi informativi 25 Alcuni esempi - 5 Interrogazione 6. Trovare i dipartimenti i cui impiegati guadagnano tutti più di 40000 euro. {d.dnumero d(dip ART IMENT O) ( i(imp IEGAT O)(i.DIP = d.dnumero i.st IP ENDIO 40000))} In alternativa, si può utilizzare la quantificazione universale (consentita nel calcolo relazionale).

Calcolo Relazionale Basi di dati e sistemi informativi 26 Alcuni esempi - 6 Interrogazione 6. (soluzione alternativa) Trovare i dipartimenti i cui impiegati guadagnano tutti più di 40000 euro. {d.dnumero d(dip ART IMENT O) i(imp IEGAT O)( (i.dip = d.dnumero) i.st IP ENDIO > 40000))}

Calcolo Relazionale Basi di dati e sistemi informativi 27 Limiti del calcolo Il calcolo relazionale su tuple con dichiarazioni di range non permette di esprimere tutte le interrogazioni esprimibili in algebra relazionale (e nel calcolo relazionale su domini). Non possono essere espresse interrogazioni i cui risultati possono provenire indifferentemente da due e più relazioni (interrogazioni che in algebra relazionale utilizzano l operatore di unione): i risultati sono costruiti a partire dalle variabili libere e ogni variabile ha come range una sola relazione. Soluzione (adottata anche in SQL): introdurre un costrutto esplicito di unione.

Calcolo Relazionale Basi di dati e sistemi informativi 28 Problemi con l unione Se consentissimo di associare ad una variabile un range costituito da più relazioni, risolveremmo il problema per la semplice unione di due o più relazioni. Ad esempio, date due relazioni aventi lo stesso schema R 1 (A, B), R 2 (A, B), l interrogazione (formulata in algebra relazionale come) R 1 (A, B) R 2 (A, B) si potrebbe esprimere come: {i. i(r 1, R 2 ) true} Non riusciremmo, comunque, a formulare unioni complesse i cui operandi siano sottoespressioni che non corrispondono direttamente ad alcuno schema di relazione. E questo il caso, ad esempio, dell interrogazione (espressa in algebra relazionale) Π BC (R 1 ) Π BC (R 2 ), che coinvolge le relazioni R 1 (A, B, C), R 2 (B, C, D)

Calcolo Relazionale Basi di dati e sistemi informativi 29 Nessun problema con intersezione e differenza A differenza dell operatore di unione, gli operatori di intersezione e differenza insiemistica possono essere agevolmente espressi nel calcolo relazionale delle tuple con dichiarazioni di range. Date le relazioni R 1 (A, B, C), R 2 (B, C, D), l interrogazione Π BC (R 1 ) Π BC (R 2 ) si può esprimere come {i.(b, C) i(r 1 ) j(r 2 )(i.b = j.b i.c = j.c)} mentre l interrogazione Π BC (R 1 )\ Π BC (R 2 ) si può esprimere come {i.(b, C) i(r 1 ) j(r 2 )(i.b = j.b i.c = j.c)}