Basi di dati. Una visione d insieme. Classificazione. Linguaggi di interrogazione. Algebra relazionale. selezione σ



Documenti analoghi
BASI DI DATI LINGUAGGI PER BASI DI DATI

(anno accademico )

Basi di dati. Selezione, proiezione e join. Linguaggi di interrogazione. Selezione, proiezione e join. Equivalenza di espressioni

ALGEBRA RELAZIONALE RIEPILOGO

Elementi di Algebra Relazionale

Operazioni sui database

Alcune nozioni di base di Logica Matematica

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

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

Predicati e Quantificatori

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

ALGEBRA DELLE PROPOSIZIONI

Introduzione all Algebra Relazionale

Correttezza. Esempi di TRC. AR è esprimibile tramite TRC. AR è esprimibile tramite TRC. AR è esprimibile tramite TRC

Algebra Booleana 1 ALGEBRA BOOLEANA: VARIABILI E FUNZIONI LOGICHE

Algebra relazionale: operazioni

Algebra di Boole ed Elementi di Logica

Vincoli di integrità

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

Ricorsione in SQL-99. Introduzione. Idea di base

LE FUNZIONI A DUE VARIABILI

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 booleana. Si dice enunciato una proposizione che può essere soltanto vera o falsa.

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

Il linguaggio SQL: query innestate

MODELLO RELAZIONALE. Introduzione

Basi di dati. Linguaggi di interrogazione

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

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

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

Ottimizzazione delle interrogazioni (parte I)

Teoria degli insiemi

Basi di Dati. prof. Letizia Tanca AA Altri linguaggi formali di interrogazione per il Modello Relazionale dei Dati

Linguaggio del calcolatore. Algebra di Boole AND, OR, NOT. Notazione. And e or. Circuiti e reti combinatorie. Appendice A + dispense

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

Linguaggi per basi di dati

Funzioni in C. Violetta Lonati

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

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

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

Funzioni funzione dominio codominio legge argomento variabile indipendente variabile dipendente

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

Introduzione. Elenco telefonico Conti correnti Catalogo libri di una biblioteca Orario dei treni aerei

Il Modello Relazionale

Progettazione di Basi di Dati

Lezione 8. La macchina universale

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

Calcolatori: Algebra Booleana e Reti Logiche

Algebra Booleana ed Espressioni Booleane

RELAZIONI BINARIE. Proprietà delle relazioni Data una relazione R, definita in un insieme non vuoto U, si hanno le seguenti proprietà :

BASE DI DATI: sicurezza. Informatica febbraio ASA

Database. Si ringrazia Marco Bertini per le slides

Capitolo 2. Operazione di limite

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

Il Modello Relazionale

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

Lezione 9: Cambio di base

Algebra Relazionale e Calcolo Relazionale. L. Vigliano

Algoritmi e strutture dati. Codici di Huffman

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

Alessandra Raffaetà. Basi di Dati

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

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

Basi di dati. (Sistemi Informativi) teoria e pratica con Microsoft Access. Basi di dati. Basi di dati. Basi di dati e DBMS DBMS DBMS

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

Errori più comuni. nelle prove scritte

Facoltà di Farmacia - Corso di Informatica

Soluzione dell esercizio del 2 Febbraio 2004

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

Informatica (Basi di Dati)

Anno 3. Classificazione delle funzioni

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

Corso di Informatica

Il database management system Access

NORMALIZZAZIONE DI SCHEMI RELAZIONALI. Prof.ssa Rosalba Giugno

Basi di Dati e Sistemi Informativi. Algebra Relazionale

Informatica per le discipline umanistiche 2 lezione 10

Fondamenti di Teoria delle Basi di Dati

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

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

Introduzione all Information Retrieval

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

Informatica. Rappresentazione dei numeri Numerazione binaria

Introduzione ai database relazionali

4 SQL : Interrogazioni nidificate

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

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

RISOLUTORE AUTOMATICO PER SUDOKU

Linguaggi di interrogazione. linguaggi interrogazione 1

risulta (x) = 1 se x < 0.

S::= Aa bb bc A::= 1B 0 B::= 0A 1 C::= Cc d Si scriva un riconoscitore in Prolog del linguaggio generato da G. Suggerimento: si elimini la ricorsione

Secondo Compitino di Basi di Dati

Sintesi di reti combinatorie. Sommario. Motivazioni. Sommario. Funzioni Espressioni. M. Favalli

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

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

Esercizi Capitolo 6 - Alberi binari di ricerca

Il modello relazionale

SQL/OLAP. Estensioni OLAP in SQL

REGOLE PER L ESAME (agg.te settembre 2015)

Esempi di algoritmi. Lezione III

Transcript:

a linguaggi formali Classificazione Basi di dati Linguaggi di interrogazione Docente: tefano Paraboschi parabosc@elet.polimi.it Algebra relazionale Calcolo relazionale Programmazione logica b linguaggi programmativi QL: tructured Query Language QBE: Query By Example Algebra relazionale Una visione d insieme definita da Codd (70) molto utile per imparare a formulare query insieme minimo di 5 operazioni che danno l'intero potere espressivo del linguaggio OPEAZIONI FONDAMENTALI UNAIE BINAIE selezione σ proiezione unione differenza prodotto X cartesiano intersezione DEIVATE BINAIE join semi-join 4 Esempio : gestione degli esami universitari studente MAT 45 70 NOME CITTA oma C-DIP esame corso MAT COD- DATA VOTO COD- TITOLO DOCENTE COO COO 0 matematica Barozzi 70 8--98 8 0 informatica Meo 5 elezione σ ='' TUDENTE e' una tabella (priva di nome) con schema : lo stesso schema di TUDENTE istanza : le tuple di TUDENTE che soddisfano il predicato di selezione 45 6

intassi del predicato di selezione Esempio di selezione espressione booleana di predicati semplici operazioni booleane : AND (P AND P) ( ) O (P O P) ( ) comparatore : =,!=, <, <=, >, >= σ (='') O ((='oma') AND NOT (= ')) TUDENTE NOT (P) ( ) predicati semplici : TUE, FALE termine comparatore termine termine : costante, attributo espressione aritmetica di costanti e attributi 7 MAT 45 70 NOME CITTA oma C-DIP 8 Proiezione Proiezione e duplicati Π, TUDENTE è una tabella (priva di nome) con schema : gli attributi e istanza : la restrizione delle tuple sugli attributi e 9 nel modello formale la proiezione elimina i duplicati Π TUDENTE nel modello informale (e nei sistemi) la eliminazione dei duplicati va richiesta esplicitamente 0 Assegnamento serve per dare un nome al risultato di una espressione algebrica non fa parte delle operazioni algebriche INFOMATICI = σ CDIP='' TOINEI = σ ='' TUDENTI TUDENTI UNIONE E DIFFEENZA tabella tabella tabella tabella tabella E tabella DEVONO EEE COMPATIBILI TEO GADO DOMINI ODINATAMENTE DELLO TEO TIPO t t t t

Unione Differenza INFOMATICI TOINEI è una tabella (priva di nome) con schema : lo schema di INFOMATICI istanza : la unione delle tuple di INFOMATICI e TOINEI 45 Per quanto riguarda le istanze, è commutativa INFOMATICI - TOINEI è una tabella (priva di nome) con schema : lo schema di INFOMATICI istanza : la differenza delle tuple di INFOMATICI e TOINEI Attenzione: non è commutativa 4 Prodotto cartesiano è una tabella (priva di nome) con schema : gli attributi di e (grado(x)= grado()+grado()) istanza : tutte le possibili coppie di tuple di e (card(x)=card()*card()) (A,B) A a b B (C,D) C c b a D Esempio x (A,B,C,D) A a a a b b b B C c b a c b a D 5 6 Intersezione TABELLA TABELLA Come gli altri operatori insiemistici, si può fare se TABELLA e TABELLA sono compatibili Derivabile tramite la seguente formula: Intersezione INFOMATICI TOINEI è una tabella (priva di nome) con schema : lo schema di INFOMATICI istanza : la intersezione delle tuple di INFOMATICI e TOINEI = - ( - ) 45 7 8

Join TUDENTE TUDENTE.=EAME. EAME è equivalente alla seguente espressione (operatore derivato): σ TUDENTE.=EAME. TUDENTE EAME Join TUDENTE TUDENTE.=EAME. EAME produce una tabella (priva di nome) con schema : la concatenazione degli schemi di TUDENTE e EAME istanza: le tuple ottenute concatenando quelle tuple di TUDENTE e di EAME che soddisfano il predicato attributi omonimi sono resi non ambigui usando la notazione puntata : EAME., TUDENTE. TUDENTE. EAME. Cod- Data 8--98 Voto 0 8 9 70 oma 70 0 0 intassi del predicato di join Join naturale espressione congiuntiva di predicati semplici: ATT comp ATT ove ATT appartiene a TAB ATT appartiene a TAB comp: =,!=, <, <=, >, >= EQUI-JOIN : soli confronti di uguaglianza equi-join di tutti gli attributi omonimi (si omette il predicato, si elimina la colonna ripetuta) TUDENTE EAME 70 oma Cod- Data Voto 0 8--98 8 0 Join naturale di tre tabelle emi-join TUDENTE `< TUDENTE.=EAME. EAME 70 TUDENTE EAME COO oma Cod- Data Voto 0 8--98 8 0 Titolo matem infor infor Docente barozzi meo meo è equivalente alla seguente espressione (operatore derivato): Π TUDENTE.* (TUDENTE ` TUDENTE.=EAME. EAME ) Produce come risultato un sottoinsieme di TUDENTE 70 oma 4

emi-join naturale TUDENTE `< EAME è equivalente alla seguente espressione: Π TUDENTE.* ( TUDENTE ` EAME ) E equivalente alla query precedente Espressioni algebriche Concatenazione di più operazioni algebriche Esprimono interrogazioni in modo formale Consentono di estrarre informazioni dai dati 70 oma 5 6 elezione e proiezione 45 70 oma quali studenti sono iscritti al diploma di informatica? Π σ ='' TUDENTE NOME elezione e proiezione 45 70 oma quali studenti di istica non sono di Milano? Π σ =''!= 'Milano TUDENTE NOME 7 8 Esempio : gestione degli esami universitari icordiamo anche che... TUDENTE TUDENTE a` EAME a` COO 45 70 oma EAME COO Cod- Data Voto Cod- 0 8--98 8 Titolo Docente matematica Barozzi informatica Meo 70 oma Cod- Data 8--98 Voto 0 8 0 Titolo matem infor infor Docente barozzi meo meo 70 0 9 0

elezione, proiezione e join quali studenti hanno preso 0 in matematica? elezione, proiezione e join quali studenti hanno preso 0 in matematica? Cod- Data Voto 0 Titolo matem Docente barozzi Π σ Voto=0 Titolo='matematica (TUDENTE EAME COO) 8--98 8 infor meo 70 oma 0 infor meo Equivalenza di espressioni quali studenti hanno preso 0 in matematica? TUDENTE 45 70 oma EAME COO Cod- Data Voto Cod- Titolo Docente 0 matematica Barozzi 70 8--98 8 0 informatica Meo Equivalenza di espressioni quali studenti hanno preso 0 in matematica? Π ( TUDENTE (σ Voto=0 EAME) (σ Titolo='matematica' COO)) equivalente a: Π σ Voto=0 Titolo='matematica (TUDENTE EAME COO) 4 elezione, proiezione e join quali professori hanno esaminato? elezione, proiezione e join quali professori hanno esaminato? Cod- Data Voto 0 Titolo matem Docente barozzi Π Docente σ = '' (TUDENTE EAME COO) 8--98 8 infor meo 70 oma 0 infor meo Docente Meo 5 6 4

Equivalenza di espressioni Equivalenza di espressioni TUDENTE 45 70 oma EAME COO Cod- Data Voto Cod- Titolo Docente 0 matematica Barozzi 70 8--98 8 0 informatica Meo 7 quali professori hanno esaminato? Π Docente (COO `U (EAME `U σ = '' TUDENTE)) equivalente a: Π Docente σ = '' (TUDENTE `U EAME `U COO) 8 Espressioni con unione e differenza estrarre la matricola degli studenti romani oppure degli studenti che hanno sostenuto un esame il giorno 8--0 (Π σ ='oma' TUDENTE) (Π σ Data=8--0 EAME) Espressioni con unione e differenza estrarre la matricola degli studenti che hanno preso almeno un voto superiore a 8 e non sono mai scesi sotto il 5 (Π σ Voto>=8 EAME) - (Π σ Voto<5 EAME) 70 70 9-70 40 Espressioni complesse estrarre il nome degli studenti che non hanno mai preso meno di 8 Π TUDENTE `U ( Π EAME - Π σ Voto<8 EAME) spiegazione: prima trovo le matricole di tutti gli studenti meno le matricole di coloro che hanno preso meno di 8, poi Espressioni complesse estrarre il nome degli studenti che hanno sostenuto informatica e matematica lo stesso giorno Π TUDENTE `U (( EAME `< σ Titolo= informatica COO ) `< = Data = Data (EAME `< σ Titolo= matematica COO )) spiegazione: prima trovo le matricole di coloro che hanno dato i due esami nello stesso giorno, poi trovo i loro nomi. trovo i loro nomi. 4 4

Espressioni complesse estrarre l ultimo esame di ciascuno studente EAME - (EAME `< = Data < Data EAME ) spiegazione: prima trovo gli esami che non sono ultimi, cioè che sono seguiti da qualche esame a pari studente in data superiore, poi sottraggo da tutti gli esami questi esami non ultimi e trovo gli appresentazione delle espressioni tramite alberi Ogni espressione dell algebra relazionale può essere rappresentata in modo grafico da un albero, che esplicita l ordine di valutazione degli operatori Ogni operatore corrisponde a un nodo operatori unari con un ramo in ingresso e uno in uscita operatori binari con due rami in ingresso e uno in uscita ultimi esami di ciascuno studente 4 44 Esempio di albero Π `U Trasformazioni di equivalenza per espressioni algebriche ) Eliminazione dei prodotti cartesiani TUDENTE σ Data=0/0/00 Voto=0 `U P EAME Corresponde a: Π TUDENTE `U Vale se p è una congiunzione di predicati del tipo ATT comp ATT `U σ Data=0/0/00 Voto=0 EAME 45 46 Trasformazioni di equivalenza per espressioni algebriche ) Push della selezione rispetto al join Trasformazioni di equivalenza per espressioni algebriche ) Push della proiezione rispetto al join `U Q `U Q Vale se p è un predicato che si applica ai soli Π L `U Q Π L `U Q Π L Π L J e J sono gli attributi DI e necessari a valutare Q L = L - schema() + J attributi di 47 L = L - schema() + J 48

Esempio ) Push della proiezione rispetto al join Trasformazioni di equivalenza per espressioni algebriche 4) Idempotenza della selezione Π ABD B=E Π ABD B=E (A,B,C) (D,E,F,G) Π AB Π DE L=ABD J=B J=E L=AB P = P P L=DE 49 50 Trasformazioni di equivalenza per espressioni algebriche 5) Idempotenza della proiezione Trasformazioni di equivalenza per espressioni algebriche 6) Push della selezione rispetto all unione Π L Π L Π L L = L L L 5 5 Trasformazioni di equivalenza per espressioni algebriche 7) Push della selezione rispetto alla differenza Trasformazioni di equivalenza per espressioni algebriche 8) Push della proiezione rispetto all unione 5 Π L Π L Π L Attenzione: non vale il push della proiezione rispetto alla differenza e all intersezione 54

Trasformazioni di equivalenza per espressioni algebriche 9) Commutazione di join e unione = = = Formule utili = Π L = = = = σ P = = = = 55 = P = P = σ P P = = 56 Ottimizzazione algebrica Tra tutte le rappresentazioni equivalenti, conviene scegliere quella meno costosa da eseguire Criterio informale: minimizzare la dimensione dei risultati intermedi Tecnica: utilizzare dove possibile le trasformazioni di push (,, 6, 7, 8); usare le trasformazioni di idempotenza (4, 5) per generare nuove selezioni e proiezioni 57 Esempio di ottimizzazione i ha lo schema: (A,B,C) (C,D,E) T(D,E,F,G) i deve ottimizzare l espressione algebrica: Π B σ (.C=.C) (.D=T.D) (.A=) (.B>T.F) T 58 Esempio di ottimizzazione Con la rappresentazione ad albero, si ottiene: Π B σ (.C=.C) (.D=T.D) (.A=) (.B>T.F) Esempio di ottimizzazione Applicando le trasformazioni, si ottiene: Π B (.C=.C) (.B>T.F) σ A= Omettiamo (.D=T.D) T T 59 60

Esempio di ottimizzazione Aggiungendo le proiezioni, si ottiene: Π.B ipetere con: Esercizio Π B (.C=.C) (.B>D.F) σ (.C=.C) (.D=T.D) (.A=) (.B>T.F) Π BC Π FC σ A= Π DC Π DF T T 6 6 Esercizi di ottimizzazione ) i ha lo schema: (A,B) (A,B) Ottimizzare l espressione algebrica: σ (.A=.A) (.A>) (.A=) Esercizi di ottimizzazione ) i ha lo schema: (A,B,C) (C,D,E) T(C,D,E) Ottimizzare l espressione algebrica: Π AD σ (.C=.C) (.E=) (.B=) (.B>.D) ( ( T)) Il risultato è una relazione vuota, perchè il predicato è una CONTADDIZIONE!!!! 6 64 Esempio di ottimizzazione Con la rappresentazione ad albero, si ottiene: Π B σ (.C=.C) (.B>.D) (.E=) (.B=) Esempio di ottimizzazione Applicando le trasformazioni, si ottiene: Π B (.C=.C) (.B>.D) - - σ (B=) T σ E= T 65 66

Esempio di ottimizzazione agionando sui predicati, si ottiene: Π B (.C=.C) Esempio di ottimizzazione Aggiungendo le proiezioni, si ottiene: Π B Π BC Π C σ (B=) - σ (B=) - σ (E=) (D<) T σ (E=) (D<) T 67 68 icerca della minima espressione contenitore (contain-view) Date n query, è un espressione che consente di estrarre i risultati delle n query tramite selezioni e proiezioni su di essa Esempio: (A,B,C) (B,C,D,E,F) T(D,G) )Π.C,G σ (A=) (.B=.B) (.D=T.D) (E=) (G>) T )Π.C,F σ (.C>G) (A=) (E=) (F>) (G>) (.D=T.D) (.B=.B) T 69 Estrazione della contain-view La massima sub espressione comune (ME): Π CGF Π BC σ A= Π BGF Π DF σ E= σ G> T 70 Calcolo delle query tramite la ME Calcolo relazionale : Π CG σ G> ME : Π CF σ C>G F> ME Una famiglia di linguaggi formali Due tipi principali Calcolo delle tuple (TC, Tuple elational Calculus) Calcolo dei domini (DC, Domain elational Calculus) TC in due versioni: Con tuple ristrette sul range Con tuple arbitrarie Guarderemo il TC con tuple arbitrarie (anche se non è descritto nel libro!) 7 7

TC è dichiarativo Esprime cosa si vuole nel risultato ma non come ottenerlo E diverso dall algebra, che è procedurale La dichiaratività è una caratteristica tipica dei linguaggi relazionali Definizione formale del TC Forma standard: { t p(t) } p(t) è una formula, costruita tramite atomi Atomi t t [A] comp t [A] t [A] comp k comp e un comparatore: =, <>, >, >=, <, <= k è una costante t[a] è una restrizione sull attributo A della tupla t 7 74 Definizione formale del TC Proprietà del TC egole di costruzione delle formule un atomo è una formula se p è una formula, lo sono anche p e (p) se p e p sono formule, lo sono anche p p, p p, p p se p è una formula in cui s è una variabile, lo sono anche s (p(s)), s (p(s)) Legge di De Morgan p p ( p p ) Corrispondenze tra quantificatori t (p(t)) t ( p(t)) Definizione di implicazione p p p p 75 76 Forme Normali Dalle tre leggi segue che è possibile scrivere tutte le possibili espressioni senza implicazione e con: Un solo quantificatore Un solo operatore binario La forma normale più usata (simile ad QL) usa quantificatore esistenziale e congiunzione 77 Esempi di TC degli studenti che hanno preso 0 in matematica { t t TUDENTE, t EAME, t COO ( t[]=t[] t[]=t[] t[cod]=t[cod] t[voto]=0 t[titolo]= matematica ) } 78

Esempi di TC icole degli studenti che hanno sostenuto matematica ma non basi di dati { t t EAME, t COO ( t[]=t[] t[cod]=t[cod] t[titolo]= matematica ) ( t EAME, t4 COO (t[]=t[] t[cod]=t4[cod] Correttezza i devono evitare formule unsafe: { t t } dà un risultato infinito i considerano corrette solo formule indipendenti dal dominio la soluzione non dipende dal dominio degli attributi, ma solo dall istanza del DB t4[titolo]= basi di dati ))) } 79 80 A è esprimibile tramite TC E sufficiente mostrare che si possono realizzare i cinque operatori fondamentali: elezione, σ A= : { t t (t[a]=) } Proiezione, Π AC : { t t (t[a,c]=t[a,c]) } A è esprimibile tramite TC Prodotto cartesiano, (A,B,C) (D,E,F): { t t, t (t[a,b,c]=t[a,b,c] t[d,e,f]=t[d,e,f] ) } Esempio di join, (A,C) A=B (B,D): { t t, t (t[a,c] = t[a,c] t[b,d] = t[b,d] t[a] = t[b] ) } 8 8 A è esprimibile tramite TC Anche TC è esprimibile tramite A Unione, : { t t, t ( t = t t = t ) } Differenza, : { t t ( t ) } La prova è più complicata i devono escludere espressioni unsafe e dipendenti dal dominio otto queste ipotesi TC e A hanno lo stesso potere espressivo 8 84

Linguaggi di query basati sulla programmazione logica Base di dati d esempio per Datalog La programmazione logica è un paradigma di programmazione basato su regole Linguaggio di riferimento: Prolog (970) Datalog: Prolog per basi di dati (984) Differenze principali rispetto a Prolog (per chi lo conosce): mancano i simboli di funzione modello di valutazione pienamente dichiarativo GENITOE Genitore Figlio Gianni Anna Anna Gianni Gianni Andrea PEONA Anna Gianni Andrea Età 65 40 60 4 0 esso M M F M M F 85 86 egole Datalog CALO ANNA Ogni regola è composta da una testa (head o LH) e da un corpo (body o H) E: P :- P, P, Pn ANTONIO PAOLA GIANNI ANDEA 87 Ogni P rappresenta un predicato (chiamato letterale), così composto: nome argomenti: costanti variabili simbolo don t care (non nella testa) E: persona(x,_, M ) 88 egole Datalog Fatti Datalog Hanno l interpretazione che la testa è vera se il corpo è vero Esempi di regole Padre(X,Y) :- Persona(X,_, M ), Genitore(X,Y) Madre(X,Y) :- Persona(X,_, F ), Genitore(X,Y) Ciascuna tupla corrisponde a un fatto (letterale ground) Ad esempio: Genitore(, ). Le variabili del LH devono apparire nel H 89 90

Query in Datalog Altre regole Esempio di query (detta goal)?- Padre(,X) Valutazione: si cerca una regola che abbia per testa il predicato Padre e si cercano valori per la variabile X (unificazione) i ottiene X = { Gianni } Un goal senza variabili restituisce True o False?- Padre(, ) True?- Padre(, Andrea ) False 9 Nonno(X,Z) :- Padre(X,Y), Genitore(Y,Z) Fratello(X,Y) :- Genitore(Z,X), Genitore(Z,Y), X Y Zio(X,Y) :- Persona(X,_, M ), Fratello(X,Z), Genitore(Z,Y) 9 Corrispondenza tra Datalog e l algebra relazionale Database estensionale e intensionale proiezioni selezione Padre(X,Y) :- Persona(X,_, M ), Genitori(X,Y) join Espressione corrispondente in algebra relazionale: PADE = Π,5 σ = M PEONA `U = GENITOI Database estensionale (EDB) insieme delle tabelle presenti nel DB Database intensionale (IDB) insieme dei predicati che sono a sinistra in una regola è la conoscenza dedotta a partire da EDB Normalmente si impone EDB IDB = 9 94 Negazione in Datalog Potere espressivo di Datalog Alcuni letterali del corpo possono essere negati es: Padre(X,Y) :- Genitore(X,Y), not Madre(X,Y) L uso della negazione in Datalog aumenta il potere espressivo del linguaggio Anche l uso della negazione richiede cautela: q(x) :- p(x) p(0).?- q(x) produce un risultato infinito! 95 Datalog senza negazione permette di rappresentare gli operatori {σ, Π,, } {σ, Π, } già visti Per l unione si usano più regole con la stessa testa; P = : P(X,Y) :- (X,Y) P(X,Y) :- (X,Y) Per la differenza serve il not; P = : P(X,Y) :- (X,Y), (X,Y) 96

Query ricorsive Meccanismo di valutazione Datalog con negazione ha quindi un potere espressivo almeno pari all algebra relazionale In effetti ha un potere superiore, perché permette l espressione di query ricorsive Una query ricorsiva presenta il letterale della testa all interno del corpo della regola: start Antenato(X,Y) :- Genitore(X,Y) Antenato(X,Y) :- Antenato(X,Z), Genitore(Z,Y) i può immaginare che venga seguito il seguente processo iterativo: ANTENATO 0 GENITOI ANTENATO ( Π,4 ANTENATO 0 a`= GENITOI ) ANTENATO 0 ANTENATO ( Π,4 ANTENATO a`= GENITOI ) ANTENATO fino a che ANTENATO n risulta pari a ANTENATO n- (punto fisso) ricorsione 97 98 Valutazione delle query ricorsive ANTENATO Nella base dati d esempio si ottiene il risultato illustrato a fianco Anna Anna Gianni Gianni Gianni Andrea Andrea CALO ANTONIO PAOLA ANNA GIANNI ANDEA Nuovi elementi rispetto a GENITOE Anna Andrea Anna 99 00 Predicati e funzioni egole corrette Nella definizione delle regole si possono usare predicati speciali operatori di confronto = (unificazione),, <,, >, funzioni aritmetiche +,,, Bisogna fare molta attenzione: n(x) :- n(x ) n(0).?- n(x) produce un risultato infinito! 0 La negazione deve essere safe tutte le variabili di un letterale negato devono comparire in un letterale positivo del corpo della regola (X) :- (X), Q(Y) non va bene La negazione deve essere stratificata sinteticamente, non ci devono essere cicli di dipendenza tra letterali negati P(X) :- (X) P(X) :- (X), P(X) non va bene P 0

iepilogo della terminologia Datalog Modello relazionale Datalog standard elazione Predicato Attributo Argomento Tupla Fatto Query egole Interrogazione Goal intesi sui poteri espressivi TC =A, con TC safe e non dipendente dal dominio Datalog più espressivo di TC e A (a causa della ricorsione), con espressioni Datalog safe, stratificate e che non producono infiniti simboli- 0 04 TC = A DATALOG In che modo si differenziano i linguaggi formali? L algebra è un linguaggio POCEDUALE: si dice esattamente in che modo valutare le interrogazioni (e si può ottimizzare) TC è un linguaggio DICHIAATIVO: si dice cosa si vuole ottenere ma non come ottenerlo. DATALOG è pure dichiarativo, ma la costruzione delle dipendenze tra le regole può essere fatta in modo procedurale. 05 06 Perchè vi abbiamo raccontato tutto ciò? QL assomiglia al calcolo relazionale L algebra assomiglia a quanto viene effettivamente valutato da un DBM Datalog avvicina le basi di dati al mondo della logica e della deduzioni 07