(anno accademico 2008-09)



Похожие документы
Calcolo Relazionale Basi di dati e sistemi informativi 1. Calcolo Relazionale. Angelo Montanari

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

logica dei predicati

SQL seconda 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 2012/13

Fondamenti di Teoria delle Basi di Dati

Alcune nozioni di base di Logica Matematica

Il linguaggio SQL: query innestate

Vincoli di integrità

Algebra Relazionale e Calcolo Relazionale. L. Vigliano

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

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

MODELLO RELAZIONALE. Introduzione

ALGEBRA DELLE PROPOSIZIONI

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

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

Ricorsione in SQL-99. Introduzione. Idea di base

ALGEBRA RELAZIONALE RIEPILOGO

Il Modello Relazionale

Calcolatori: Algebra Booleana e Reti Logiche

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

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

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

Il Modello Relazionale

Basi di dati 9 febbraio 2010 Compito A

Organizzazione degli archivi

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

Algebra di Boole ed Elementi di Logica

2 Argomenti introduttivi e generali

Logica del primo ordine

(Esercizi Tratti da Temi d esame degli ordinamenti precedenti)

LOGICA DEI PREDICATI. Introduzione. Predicati e termini individuali. Termini individuali semplici e composti

Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE

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

Teoria degli insiemi

6.6 Il calcolo relazionale su tuple

f: AxB f(x)=y, f={<x,y> per ogni x in A esiste unica y in B f(x)=y} f={<1,2>, <2,3>, <3,3>} : {1,2,3} {1,2,3} f(1)=2, f(2)=3, f(3)=3

Lezione 8. La macchina universale

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

LINGUAGGI DI PROGRAMMAZIONE

Fondamenti di Teoria delle Basi di Dati

Appunti di Logica Matematica

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

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

Applicazioni lineari

Elementi di Algebra Relazionale

Semantica Assiomatica

COS È UN LINGUAGGIO? LINGUAGGI DI ALTO LIVELLO LA NOZIONE DI LINGUAGGIO LINGUAGGIO & PROGRAMMA

CONCETTO DI ANNIDAMENTO

Sommario. Definizione di informatica. Definizione di un calcolatore come esecutore. Gli algoritmi.

Informatica (Basi di Dati)

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

risulta (x) = 1 se x < 0.

BASE DI DATI: sicurezza. Informatica febbraio ASA

Operatori logici e porte logiche

FORME NORMALI E DIPENDENZE

4 3 4 = 4 x x x 10 0 aaa

LE FUNZIONI A DUE VARIABILI

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione

SQL/OLAP. Estensioni OLAP in SQL

Il Modello Relazionale

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

2. Leggi finanziarie di capitalizzazione

Introduzione alla teoria dei database relazionali. Come progettare un database

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

Siti web centrati sui dati Architettura MVC-2: i JavaBeans

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

Predicati e Quantificatori

INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI INTRODUZIONE AGLI ALGORITMI

Corrispondenze e funzioni

EQUAZIONI DIFFERENZIALI. 1. Trovare tutte le soluzioni delle equazioni differenziali: (a) x = x 2 log t (d) x = e t x log x (e) y = y2 5y+6

Rappresentazione della conoscenza. Lezione 11. Rappresentazione della Conoscenza Daniele Nardi, 2008Lezione 11 0

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

Derivate Limiti e funzioni continue

Archivi e Basi di Dati

Funzioni. Parte prima. Daniele Serra

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

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

Architettura MVC-2: i JavaBeans

ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 2

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

Interrogazioni nidificate, commenti

Dimensione di uno Spazio vettoriale

I sistemi di numerazione

Anno 3. Classificazione delle funzioni

Linguaggi per basi di dati

Funzioni in C. Violetta Lonati

Nozione di algoritmo. Gabriella Trucco

Capitolo 13. Interrogare una base di dati

Corso di LOGICA II: indagini semantiche su modalità e quantificazione. Uno studio di logica della necessità e della possibilità

Basi di dati. Concetti Introduttivi ESEMPIO. Fisica, Analisi, Informatica. Entità Relazioni Interrogazioni. Database 2

Operazioni sui database

Soluzione di equazioni quadratiche

Protocollo di tracciamento e valutazione degli studenti dei corsi di italiano ICoNLingua A.A

I Problemi e la loro Soluzione. Il Concetto Intuitivo di Calcolatore. Risoluzione di un Problema. Esempio

31/10/2012. Lo studio delle funzioni permette di interpretare la variazione di due grandezze, l una rispetto l altra, quando

LOGICA PER LA PROGRAMMAZIONE. Franco Turini

CONCETTO DI LIMITE DI UNA FUNZIONE REALE

Транскрипт:

Calcolo relazionale Prof Alberto Belussi Prof. Alberto Belussi (anno accademico 2008-09)

Calcolo relazionale E un linguaggio di interrogazione o e dichiarativo: at specifica le proprietà del risultato dell interrogazione interrogazione. Esistono due versioni del calcolo relazionale: Il calcolo relazionale sui domini Il calcolo relazionale sulle tuple

E la versione più vicina al calcolo dei predicati del primo ordine. Differenze rispetto al calcolo dei predicati: I simboli di predicato corrispondono alle relazioni della base di dati I simboli di funzione non ci sono Interessano solo le formule aperte che rappresentano le interrogazioni: il risultato è costituito dalle tuple di valori che, sostituite alle variabili libere rendono vera la formula stessa.

Approccio intuitivo Le espressioni del calcolo relazionale sui domini hanno la seguente forma: e = { A 1 : x 1,, A k : x k f } dove: A 1 1,, A k sono gli attributi del risultato x 1,, x k sono variabili f è una formula

La relazione risultato si ottiene applicando l espressione e ad una istanza della base di dati e ha le seguenti caratteristiche: g schema: { A 1,, A k }, contenuto: insieme delle tuple t sullo schema contenuto: insieme delle tuple t sullo schema {A 1,, A k } che rendono vera la formula f.

TRENO(Numero, Categoria, Partenza, Arrivo, Destinazione) FERMATA(Treno, Stazione, Orario)

Esempio Trovare l orario di partenza di tutti i treni con destinazione Venezia, riportando il numero del treno, la categoria e l orario di partenza { Num: n, Cat: c, Part: p TRENO(Num: n Cat: c Part: p Arr: a Dest: d) TRENO(Num: n, Cat: c, Part: p, Arr: a, Dest: d) d = Venezia }

Esempio Trovare i treni che partono dopo le 12:00 e fermano a Bologna, riportando il numero del treno, la destinazione e l orario di partenza {N Num: n, Dest: d, Part: p TRENO(Num: n, Cat: c, Part: p, Arr: a, Dest: d) p > 12:00 FERMATA(Treno: n, Staz: s, Orario: o) s = Bologna }

SINTASSI Simboli: costanti: c D (dominio unico) variabili: x i V (insieme i numerabile disgiunto i dal dominio D) nomi di relazioni e attributi (dallo schema della base di dati) operatori di confronto: {, =,,, >, <} connettivi logici: {,, } quantificatori: {, }

SINTASSI Formule: ATOMICHE: R(A 1 :x 1,, A p :x) p dove R(A 1,, A p ) è lo schema di una relazione e x 1,, x p sono variabili. x 1 θ x 2 o x 1 θ c dove x 1, x 2 sono variabili, c è una costante e θ è un operatore di confronto. NON ATOMICHE: se f 1 e f 2 sono formule, allora anche f 1 f 2, f 1 f 2, f 1 e f 2 lo sono. se f è una formula, allora anche x(f) e x(f) lo sono.

SINTASSI Espressioni i {A 1 : x 1,, A k: x k f } Target List Formula

SINTASSI Variabili libere o legate nelle formule nelle formule atomiche tutte le variabili sono LIBERE. nelle formule x(f) e x(f), x è una variabile LEGATA, mentre tutte le altre variabili sono LIBERE o LEGATE se LIBERE o LEGATE in f. le congiunzioni, disgiunzioni e la negazione non cambiano l insieme linsieme delle variabili LIBERE o LEGATE.

SEMANTICA Rispetto allo schema R = {R 1 (X 1 ),, R n (X n )} e da una istanza r = {r 1,, r n } 1. R j (A 1 : x 1,, A p : x p ) è vera sui valori (a 1,, a p ), se la relazione r j in r contiene una tupla (a 1,, a p ). 2. x 1 θ x 2 è vera sui valori (a 1, a 2 ), se il confronto a 1 θ a 2 è soddisfatto.

SEMANTICA 3. x 1 θ c è vera sul valore a 1, se il confronto a 1 θ c è soddisfatto. 4. f 1 f 2 con variabili libere (x 1,, x q ) è vera sui valori (a 1,, a q ), se almeno una delle due formule f 1, f 2 è vera quando si sostituiscono i i valori (a 1,, a q ) alle variabili (x 1,, x q ). 5. f 1 f 2 e f 1 ( f 2 ) sono vere secondo le usuali definizioni dei connettivi logici (tabelle di verità).

SEMANTICA 6. x(f) con variabili libere (x 1,, x q ) è vera sui valori (a 1,, a q ), se esiste almeno un valore a D tale che f è vera quando si sostituiscono i valori (a, a 1,, a q ) alle variabili (x, x 1,, x q ). 7. x(f) con variabili libere (x 1,, x q ) è vera sui valori (a 1,, a q ), se per ogni valore a D, f è vera quando si sostituiscono i i valori (a, a 1,, a q ) alle variabili (x, x 1,, x q ).

SEMANTICA Interpretazione di una espressione del calcolo come interrogazione e={a e = 1 :x 1,, A k :x k f(x 1,, x k, x k+1,, x k+n ) } con n 0, k 1 La valutazione dell espressione e produce una relazione risultato di schema (A 1,, A k )eche contiene tutte le tuple (x 1,, x k ) tali che esiste una sostituzione i (x 1,, x k, x k+1,, x k+n ) che rende vera f.

INDIPENDENZA DAL DOMINIO Si consideri la seguente espressione del calcolo relazionale sui domini: {A 1 : x 1, A 2 : x 2 R(A 1 : x 1 ) x 3 (x 2 = x 3 ) } Tale espressione, applicata alla base di dati contenente l istanza r di R, produce come risultato una relazione sugli attributi (A 1, A 2 ) contenente le tuple (a 1, a 2 ) con a 1 r e a 2 qualsiasi, vale a dire con a 2 D Il risultato di tale espressione quindi DIPENDE da D.

INDIPENDENZA DAL DOMINIO Ciò vale anche per espressioni del tipo: {A 1 : x 1 R(A 1 : x 1 )}

INDIPENDENZA DAL DOMINIO Def.: Un espressione di un linguaggio di interrogazione i è indipendente d dal dominio i se il suo risultato su ciascuna istanza della base di dati non cambia al variare del dominio. i Un linguaggio di interrogazione è indipendente dal dominio se lo sono tutte le sue espressioni.

INDIPENDENZA DAL DOMINIO Osservazioni Il calcolo relazionale sui domini non è indipendente dal dominio L algebra relazionale è indipendente dal dominio. Dalle prime due osservazioni deriva che l algebra relazionale non è equivalente al calcolo relazionale sui domini Si può dimostrare che l algebra relazionale è equivalente al calcolo relazionale sui domini RISTRETTO alle espressioni indipendenti dal dominio (espressioni SAFE).

INDIPENDENZA DAL DOMINIO Regole sintattiche per scrivere espressioni SAFE nel calcolo relazionale sui domini Una formula f del calcolo l relazionale l sui domini i è SAFE, vale a dire è indipendente dal dominio, se valgono le seguenti condizioni: i i 1. in f non compaiono quantificatori universali; si noti che è sempre possibile convertire un quantificatore universale in un quantificatore esistenziale poiché vale la seguente equivalenza: x(f) x( f)

INDIPENDENZA DAL DOMINIO Regole sintattiche per scrivere espressioni SAFE nel calcolo relazionale sui domini 2. ogni disgiunzione che compare in f deve avere la seguente forma: f 1 (x 1,, x m ) f 2 (x 1,, x m ) dove x 1,, x m sono tutte le variabili libere di f 1 e f 2.

NDIPENDENZA DAL DOMINIO egole sintattiche per scrivere espressioni SAFE el calcolo relazionale sui domini 3. ogni sottoformula massimale costituita dalla congiunzione di due o più formule f 1 f n deve avere tutte le variabili LIMITATE secondo la seguente definizione. VARIABILI LIMITATE: una variabile libera x di f i è LIMITATA se f i non è negata e f i non è né una formula atomica del tipo x θ y (y variabile), né del tipo x θ c con θ = (quindi x in x=c è LIMITATA). Se f i è del tipo x=y e y è LIMITATA allora anche x è LIMITATA.

INDIPENDENZA DAL DOMINIO Regole sintattiche per scrivere espressioni SAFE nel calcolo relazionale sui domini 4. una formula negata può comparire in f solo in congiunzione con altre formule, dove almeno una non è negata, e dove tutte le variabili sono LIMITATE..

Calcolo relazionale sulle tuple CARATTERISTICHE Nel calcolo relazionale sulle tuple con espressioni di range le variabili sono associate alle tuple e non ai valori del dominio. Il calcolo relazionale sulle tuple definisce la semantica dell SQL semplice (senza operatori aggregati e senza join esterni).

Calcolo relazionale sulle tuple SINTASSI Le espressioni i del calcolo l relazionale l sulle tuple hanno la seguente forma: { T L f } dove T è la target list, L è la range list e f è una formula.

Calcolo relazionale sulle tuple SINTASSI Target List È una lista di elementi separati da virgole e 1,, e n dove ogni elemento e i può essere: Y: x.(z) dove Y e Z sono sequenze di attributi con la stessa cardinalità e x è una variabile. x.(z) dove Z è una sequenza di attributi e x è una variabile (equivale a Z: x.(z)). x.* dove x è una variabile; in questo caso gli attributi sono quelli della relaziona associata alla variabile x nella range list.

Calcolo relazionale sulle tuple SINTASSI Range List È una lista di elementi separati da virgole r 1,, r m dove ogni elemento r i è così strutturato: tt t x j (R) dove x j è una variabile e R è il nome di una relazione dello schema della base di dati. Esiste uno e un sol elemento r i nella range list per ogni variabile libera della formula f.

Calcolo relazionale sulle tuple SINTASSI Formula Può essere una formula atomica: x.a xaθθ c oppure x 1.AA 1 θ x 2.AA 2 dove x, x 1, x 2 sono variabili, A, A 1, A 2 sono attributi, c è una costante e θ è un operatore di confronto. oppure una formula: se f 1 e f 2 sono formule, allora anche f 1 f 2, f 1 f 2, f 1 e f 2 lo sono. se f è una formula, allora anche x(r)(f) e x(r)(f) lo sono.

Calcolo relazionale sulle tuple SINTASSI Si noti che la presenza della range list consente di evitare l introduzione dei predicati per esprimere il fatto che i valori assunti dalle variabili appartengano ad un attributo di una relazione della base di dati.

Calcolo relazionale sulle tuple SEMANTICA Non si assegna la semantica del calcolo relazionale sulle tuple in quanto del tutto simile a quella del calcolo relazionale sui domini. Tuttavia, si noti che le variabili assumono come valori le tuple contenute in una relazione (come dichiarato nella range list o nei quantificatori) quindi non c è alcuna dipendenza dal dominio di riferimento.

Calcolo relazionale sulle tuple Osservazioni Il calcolo l relazionale l sulle tuple non è equivalente all algebra relazionale e non è equivalente al calcolo l relazionale l sui domini i in quanto l unione di due relazioni non è rappresentabile nel calcolo l relazionale l sulle tuple. E invece possibile rappresentare nel calcolo relazionale sulle tuple sia l intersezione che la differenza tra due relazioni.