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



Documenti analoghi
Fondamenti di Teoria delle Basi di Dati

(anno accademico )

Algebra Relazionale e Calcolo Relazionale. L. Vigliano

Fondamenti di Teoria delle Basi di Dati

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

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

logica dei predicati

Algebra di Boole ed Elementi di Logica

Il linguaggio SQL: query innestate

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

Vincoli di integrità

Per visualizzare e immettere i dati in una tabella è possibile utilizzare le maschere;

Linguaggi per basi di dati

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

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

Introduzione all Algebra Relazionale

Alcune nozioni di base di Logica Matematica

Basi di dati 9 febbraio 2010 Compito A

Algebra e calcolo relazionale. Ripasso. Le 7 Virtù del DBMS persistenza affidabilità volume condivisione riservatezza efficienza efficacia

CONCETTO DI LIMITE DI UNA FUNZIONE REALE

Operazioni sui database

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

Basi di dati 30 settembre 2010 Compito A

Calcolatori: Algebra Booleana e Reti Logiche

ALGEBRA RELAZIONALE RIEPILOGO

Capitolo 13. Interrogare una base di dati

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

Interrogazioni nidificate, commenti

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

Introduzione alla teoria dei database relazionali. Come progettare un database

Il Modello Relazionale

DATABASE RELAZIONALI

Gli operatori relazionali

2.2b: RELAZIONI E BASI DI DATI. Atzeni, cap

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

4 SQL : Interrogazioni nidificate

Lezione 8. La macchina universale

Architettura standard (ANSI/SPARC) a tre livelli per DBMS. Viste (relazioni derivate) Viste virtuali e materializzate. Viste materializzate

BASE DI DATI: sicurezza. Informatica febbraio ASA

Data Management Software. Il linguaggio SQL. Raggruppamenti. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004

SQL/OLAP. Estensioni OLAP in SQL

LE FUNZIONI A DUE VARIABILI

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi

Università degli Studi di Ferrara - A.A. 2014/15 Dott. Valerio Muzzioli ORDINAMENTO DEI DATI

MODELLO RELAZIONALE. Introduzione

Introduzione al corso

Organizzazione degli archivi

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

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

Compito DA e BD. Tempo concesso: 90 minuti 12 giugno 03 Nome: Cognome: Matricola: Esercizio 1

Progettare una base di dati che permetta di gestire il problema descritto nel seguito, nei seguenti punti:

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

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

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

Il linguaggio SQL: viste e tabelle derivate

Fasi di creazione di un programma

Esercizio 1. Cognome e nome:... Matricola:...

Progettazione di Basi di Dati

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

Il linguaggio SQL: viste e tabelle derivate. Versione elettronica: SQLd-viste.pdf

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

Riccardo Dutto, Paolo Garza Politecnico di Torino. Riccardo Dutto, Paolo Garza Politecnico di Torino

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

Elementi di Algebra Relazionale

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

Le Basi di Dati. Le Basi di Dati

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

Definizione di domini

Predicati e Quantificatori

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

SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

Schemi delle Lezioni di Matematica Generale. Pierpaolo Montana

Operatori logici e porte logiche

Ottimizzazione delle interrogazioni (parte I)

APPLICAZIONI LINEARI

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

Informatica (Basi di Dati)

Access. P a r t e p r i m a

Capitolo II. La forma del valore. 7. La duplice forma in cui si presenta la merce: naturale e di valore.

Algebra e Calcolo relazionale. Algebra e calcolo relazionale (parte 2)

XQuery. è lo standard adottato dal W3C per la XML. - Consente di iterare sugli elementi di un documento - Consente di ristrutturare i contenuti XML

LA CORRELAZIONE LINEARE

Esercizio sui data base "Gestione conti correnti"

Il linguaggio SQL: trigger. Versione elettronica: 04.7.SQL.trigger.pdf

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

N ORE LEZIONI FRONTALI: STUDIO INDIVIDUALE ( ) N ORE ESERCITAZIONI/LABORATORIO: STUDIO INDIVIDUALE ( )

Applicazioni lineari

risulta (x) = 1 se x < 0.

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

B9. Equazioni di grado superiore al secondo

SVILUPPO IN SERIE DI FOURIER. Prof. Attampato Daniele

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

Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE

Informatica. Il modello relazionale: Relazioni e tabelle. Relazioni con attributi

Algoritmi e strutture dati. Codici di Huffman

Derivate Limiti e funzioni continue

Modulo 2 Data Base 2

PROCESSO DI INDICIZZAZIONE SEMANTICA

Transcript:

Calcolo relazionale Fa riferimento ad una famiglia di linguaggi dichiarativi, basati sul calcolo dei predicati del primo ordine calcolo Specifica (èla base relazionale su tuple le di proprietà molti con costrutti su dichiarazioni domini del risultato del linguaggio di range piuttosto SQL) che indicare la procedura per calcolarlo Ne esistono versioni con potenzialità espressive diverse 1 A1,..., Calcolo su domini x1,.., f(x,...,aksono attributi distinti (anche non nella base di dati) A1: f(x1,..,,..,xk, :,..,xk) x1, x, èuna Ak: variabili a valori nei corrispondenti domini { A1: A xkèdetta formula logica (vale vero o falso) : x1, x, Target Ak: xk listin f(x1,..,xk) quanto definisce } Il struttura valori risultato sostituiti del èuna risultato a x1,..,xkrendono relazione su A1,...,,...,Akche vera la formula contiene fle tuple la i cui Le espressioni del calcolo sui domini hanno la forma 2

R(A1:x1,...,Ap:xp) La formula f xϑy formano e x1,..,xpsono una tupla variabili dove di RR(A1,..,Ap) èvera per èuno valori schema di x1,..,xpche di relazione Formule atomiche Se confronto o xϑc (=,,,,<,>) con x,y variabili, c costante e ϑoperatore di f1 f2(or) f1f2(and) f1(not) f1e f2sono formule allora sono formule Operatori logici 3 Data La una formula f e una variabile x (f) x si definisce la formula Data alla formula variabile èvera x rende se esiste vera falmeno un valore a che sostituito La x, formula una formula èvera f èvera f se e per una ogni x variabile possibile (f) x si definisce valore per la la formula variabile 4 Quantificatori Quantificatore esistenziale Quantificatore universale

P P Relazione fra e Ad esempio... Valgono le leggi di De Morgan x Per ogni impiegato x P cnon ècapo x x P Quindi... uno Non solo esiste dei m Supervisione(Impiegato: nessun msupervisione(impiegato: due operatori impiegato che ha ccome m, Capo: capo c) c) èsufficiente... Impiegati(Matricola,Nome,età,Stipendio) [1] Target Trovare guadagnano matricola, piùdi Supervisione(Capo,Impiegato) nome, 1.700etàe stipendio degli impiegati che Si considera il seguente schema {Matricola: Impiegati(Matricola: list...in m, Nome: m,nome: n, Età: e, n, Stipendio: Età: e, Stipendio: s s) (s>1700)} condizione Q: algebra relazionale σstipendio>1700(impiegati) 5 6

Target Trovare matricola, nome, etàdi tutti gli impiegati {Matricola: m, Nome: n, [2] s Impiegati(Matricola: list...in algebra m,nome: Età: e relazionale πmatricola,nome,età(impiegati) n, Età: e, Stipendio: s)} Q: Target {Matricola: Impiegati(Matricola: list m, Nome: m,nome: n,... Età: e anche... e n, Età: e, Stipendio: s)}condizione condizione Q:...in Target Trovare algebra πcapo(supervisione la matricola relazionale dei capi degli Impiegato=Matricola(σStipendio>1700(Impiegati))) impiegati che guadagnano piùdi 1.700 [3] {Capo: listc Impiegati(Matricola: Supervisione(Impiegato: m,nome: Capo: n, Età: c) e, s>1700 Stipendio: s) La variabile mcomune alle due condizioni atomiche realizza la condizione} correlazione fra le tuple prevista dal join 7 8

Q:{NomeCapo: Target Trovare di 1700 listnome e stipendio dei capi degli impiegati che guadagnanopiù nc, StipCapo: [4] s>1700 Impiegati(Matricola: sc m,nome: Supervisione(Impiegato: Capo: n, Età: c) e, Stipendio: s) Le variabili Impiegati(Matricola: crealizzano due join c, Nome: nc, Età: ec, Stipendio: sc)} Q:{Matricola: Trovare gli impiegati che guadagnano piùdel rispettivo capo, MatrCapo: mostrando m, matricola, Nome: nome n, Stipendio: e stipendio s, di entrambi c, NomeCapo: [5] nc, m,nome: StipCapo: n, sc Età: e, Stipendio: s) s>sc Supervisione(Impiegato: Impiegati(Matricola: Capo: c) Variabili } riferite a tuple c, diverse nc, Età: ec, Stipendio: sc) 9 10

{Matricola: Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di 1700c, Nome: n c,nome: [6] n, Età: e, Stipendio: s) Q: m ( n ( e ( s (Impiegati(Matricola: m, Nome: n, Età: e,stipendio: specifica Supervisione(Impiegato: m, Capo: c) s 1700)))) } i capi s ) tutti Non esiste un Impiegato con capo ce stipendio inferiore a 1700 11 {Matricola: Trovare di 1700 c, Nome: matricola n e nome dei capi i cui impiegati guadagnano tutti più m ( n ( e ( s ( (Impiegati(Matricola: c,nome: n, Età: e, Stipendio: m, Nome: s) n, Età: specifica Supervisione(Impiegato: m, Capo: c)) s >1700)))) } e,stipendio: i capituttis ) Si ottiene O cnon m dall espressione (A ha B impiegati C) = m dipendenti precedente (A B o C) l impiegato applicando = m ( (A guadagna le leggi B) di piùdi De C) Morgan 1700 12 Q: [7]

dichiaratività "verbosità": espressioni senza tante senso variabili! { A: x R(A: x) } dipendono queste espressioni { sono A: { x, A: dipendenti B: x, y B: y dal R(A: x) dominio: y=y} x) } risposta èinfinita... dal dominio delle variabili. Se il le èinfinito, risposte la possibili 13 Pregi e difetti Pregi Difetti Calcolo e algebra per indipendente relazionale equivalente dal dominio a calcolo essa esiste un'espressione relazionale che dell'algebra sia un'espressione di conseguenza ogni espressione del indipendente calcolo dell'algebra relazionale dal dominio) relazionale equivalente esiste a essa (e 14 L algebra relazionale è indipendente dal dominio Si considerano solo le espressioni del calcolo relazionale che sono indipendenti dal dominio Calcolo e algebra sono equivalenti Dimostrazione costruttiva...

Riduzione Dipendenza dati delle dal variabili dominio le i i valori variabili provengono rappresentano solo dalla tuple base di Le La fèunaformula target espressioni range listelencale listèla del con listadegliobiettividell interrogazione valoreveroo calcolo variabililiberedellaformula su falso tuple con dichiarazioni f di 15 Calcolo su tuple con dichiarazioni di range Per superare le limitazioni del calcolo su domini range hanno la forma { target list range list f } Y: x x.z èuna variabile che rappresenta una tupla il cui rangeèuna x.z Z X Y relazione èuna lista definita di attributi su un insieme e Y = Z di attributi X x.* abbreviazione x) per X: Z: x.z x.x (si prelevano tutti gli attributi della tupla 16 Target list La target list è composta da elementi del tipo

i.* Impiegati(Matricola,Nome,Età,Stipendio),Stipendio) i.(nome,età) definisce Impiegati, come ovvero risultato {Matricola,Nome,Età,Stipendio} una tupla che contiene tutti gli attributi di relazione NomeCapo,StipCapo:i.(Nome,Stipendio) rappresenta {Nome,Età} una tupla definita sulla relazione con i due attributi definisceunatuplacon i due attributi{nomecapo,stipcapo} 17 Target list: esempio i è una variabile associata ad una tupla della Range list Ad i i esempio... può (Impiegati) assumere i valori delle tuple contenute nella relazione x(r) i (Impiegati), s (Supervisione), i1 (Impiegati) Elenca le variabili libere della formula f con i relativi campi di variabilità (relazione di appartenenza R) 18

atomi x.a ϑc-confronto valore dell attributo A della tupla x con connettivi x1.a la.a1ϑx2.a costante.a2-confronto c quantificatori x1e quello logici(,, ) dell attributo A2della fra il valore tupla dell attributo x2 A1della tupla x(r) x(r) esiste che nella associano relazione un rangealle R una alle tupla variabili vero se (f) tutte le tuple x in R soddisfano fx che soddisfa f 19 La formula f La formula f è costruita utilizzando Q: { Q: { Trovare guadagnano matricola, nome, etàe stipendio degli impiegati che Target i.* piùdi list i(impiegati) 1.700 i.stipendio> 1700 } [1] Trovare matricola, nome, Rangelist etàdi tutti gli condizione i.(matricola,nome,età) i(impiegati) impiegati Target list Rangelist condizione }(vuota) 20

Q: Trovare Target matricola dei capi degli impiegati che guadagnano piùdi 1.700 { s.capo listi(impiegati), [2] i.matricola= Rangelist condizione s.impiegatoi.stipendio>1700 join s(supervisione) condizione selezione } 21 Q:{NomeCapo, Target Trovare di 1700 listnome e stipendio dei capi degli impiegati che guadagnanopiù StipCapo: [3] c(impiegati), c.matricola= s(supervisione), s.capos.impiegato=i.matricola c.(nome,stipendio) i(impiegati) i.stipendio> 1700} Rangelist condizione selezione condizioni di join Le indipendente due variabili ce iaccedono ai valori della stessa relazione in modo 22

Q: Target Trovare gli impiegati che guadagnano piùdel rispettivo capo, {i.(matricola,nome,stipendio), mostrando matricola, nome e stipendio di entrambi [4] MatrCapo,NomeCapo,StipCapo: list c(impiegati), c.matricola= s(supervisione), s.capos.impiegato= c.(matricola,nome,stipendio) i(impiegati) Rangelist i.stipendio> condizione di c.stipendio} selezione condizioni di join i.matricola Trovare di 1700matricola e nome dei capi i cui impiegati guadagnano tutti più {c.(matricola, Target Nome) [5] c(impiegati), list s(supervisione) Q: c.matricola= Rangelist i(impiegati) ( (s.capo=s1.capo ( s1(supervisione) s1.impiegato=i.matricola) join per trovare in i.stipendio> Impiegati la tupla del 1700))} capo i e s1 non all interno sono variabili delle libere relazioni nella corrispondenti formula, ma variano s.capo 23 24

Trovare di 1700matricola e nome dei capi i cui impiegati guadagnano tutti più {c.(matricola, Target Nome) [6] c(impiegati), list s(supervisione) Q: c.matricola= Rangelist ( i(impiegati) (s.capo=s1.capo( s1(supervisione) s1.impiegato=i.matricolai.stipendio 1700)))} join per trovare in Impiegati la tupla del capo condizioni accedere alla di join tupla rispettivamente con le informazioni per trovare ogni i impegatodipendente capi in Supervisione e s.capo 25 I Ogni risultati variabile sono ha costruiti come rangeuna a partire dalle sola variabili relazionelibere Se relazione non si si hanno riesce una due sola a combinarle variabili variabile si libera per può produrre far si fa riferimento riferimento il risultato alle ad in due una modo relazioni sola corretto ma 26 Limitazioni: unione es. Il calcolo su tuple con dichiarazioni di range non permette di esprimere l unione di relazioni R1(A) R2(A)

Operazioni insiemistiche Intersezione Differenza { x1.* x1(r1) x2(r2) (x1.a1=x2.a2...x1.ak=x2.ak)} { x1.* preleva x1(r1) le x2(r2) tuple di r1che (x1.a1=x2.a2...x1.ak=x2.ak)} hanno una tupla uguale in r2 preleva le tuple di r1che non hanno una tupla uguale in r2 SQL che è basato sul calcolo su tuple con dichiarazione di range prevede un operatore esplicito per l unione Gli operatori di intersezione e differenza sono esprimibili possiamo calcoli solo estrarrevalori, non calcolarne di nuovi In a su SQL livello insiemi di ci interesse sono di di tupla estensioni tuple o di (somme, singolo ad hoc medie, valore (conversioni, ecc.) somme, ecc.) Soluzione esterna a SQL.. con programma... 28 Altri limiti calcolo di valori derivati interrogazioni inerentemente ricorsive, come la chiusura transitiva 27

Chiusura transitiva Per capo, ogni impiegato, trovare Supervisione(Impiegato, tutti i superiori (cioèil Capo) Paolo e BianchiGaia cosi' via) Belli capo, il capo del Gaia Mario Belli Mei Filippo Mario Mori Verdi ImpiegatoSuperiore Paolo Gaia Mario Belli BianchiGaia BianchiMario Mei Filippo Belli Mori Verdi Q:ImpiegatoCapo Accesso ricorsivo alla stessa relazione per un numero non predeterminato di volte {Impiegato: Soluzione i, Superiore: col s join? (Supervisione(Impiegato: join trovare i capi i,capo: dei Supervisione(Impiegato: capi s) c) c, Capo: s))} Se la gerarchia è a 2 livelli si può pensare a una soluzione con un join di Supervisione con se stessa Se si vuole estendere a gerarchie più profonde si devono aggiungere join a più termini 29 30

Conclusione Non esiste in algebra e calcolo relazionale la possibilità di esprimere l'interrogazione che, per ogni relazione binaria, ne calcoli la chiusura transitiva Per ciascuna relazione, è possibile calcolare la chiusura transitiva, ma con un'espressione ogni volta diversa: quanti join servono? non c'è limite! 31