Algebra Relazionale e Calcolo Relazionale. L. Vigliano



Documenti analoghi
Linguaggi per basi di dati

Basi di Dati e Sistemi Informativi. Algebra Relazionale

Fondamenti di Teoria delle Basi di Dati

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

Operazioni sui database

(anno accademico )

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

Introduzione all Algebra Relazionale

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

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

Elementi di Algebra Relazionale

Il Modello Relazionale

Vincoli di integrità

ALGEBRA RELAZIONALE RIEPILOGO

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

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

Gli operatori relazionali

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

Il Modello Relazionale

Il linguaggio SQL: query innestate

Basi di dati 9 febbraio 2010 Compito A

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

SISTEMI INFORMATIVI AVANZATI -2010/ Introduzione

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

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

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

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

Algebra Relazionale. algebra relazionale

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

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

Capitolo 2. Esercizio 2.1. Esercizio 2.2

logica dei predicati

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

Elena Baralis 2013 Politecnico di Torino 1

ALGEBRA DELLE PROPOSIZIONI

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

1. PRIME PROPRIETÀ 2

BASE DI DATI: sicurezza. Informatica febbraio ASA

Basi di dati. 2. Il modello relazionale. Il modello relazionale. Relazione: tre accezioni. 2.1 Basi di dati relazionali. Giuseppe De Giacomo

LA NORMALIZZAZIONE. Introduzione

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

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

MODELLO RELAZIONALE. Introduzione

Informatica (Basi di Dati)

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

4 SQL : Interrogazioni nidificate

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

SQL/OLAP. Estensioni OLAP in SQL

Ottimizzazione delle interrogazioni (parte I)

Interrogazioni nidificate, commenti

Il seguente esempio ha lo scopo di illustrare i 3 tipi di relazione 1:1,1:N,N:N. Tabella Conto: Tabella Conto:

Mon Ami 3000 Varianti articolo Gestione di varianti articoli

Dimensione di uno Spazio vettoriale

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

Fondamenti di Teoria delle Basi di Dati

Decomposizione senza perdita. Decomposizione senza perdita. Conservazione delle dipendenze. Conservazione delle dipendenze

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

Il linguaggio SQL: viste e tabelle derivate

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

Informatica. Sintassi. Interrogazioni in SQL. Significato dell interrogazione. Tabella Impiegato. Basi di dati parte 4 SQL

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

Progettaz. e sviluppo Data Base

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

database: modello entityrelationship

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

Modulo 2 Data Base 2

Normalizzazione. Relazionali

Esercitazione su SQL

Dalla progettazione concettuale alla modellazione di dominio

Appunti di informatica. Lezione 2 anno accademico Mario Verdicchio

Basi di Dati. Programmazione e gestione di sistemi telematici

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

Lezione 8. La macchina universale

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

Funzioni. Funzioni /2

Alcune nozioni di base di Logica Matematica

Modello Relazionale. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto san giovanni

Introduzione ai database relazionali

Dati relazionali e XML

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

Secondo Compitino di Basi di Dati

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

DATABASE RELAZIONALI

2. Leggi finanziarie di capitalizzazione

Per studio di funzione intendiamo un insieme di procedure che hanno lo scopo di analizzare le proprietà di una funzione f ( x) R R

Il modello relazionale

GERARCHIA IS-A (è un) GENERALIZZAZIONI / SPECIALIZZAZIONI ESEMPIO 1

Definizione di domini

Database. Si ringrazia Marco Bertini per le slides

FIRESHOP.NET. Gestione del taglia e colore.

Database: collezione di fatti, registrabili e con un ben preciso significato, relazionati fra di loro

LA RETTA. Retta per l'origine, rette orizzontali e verticali

Corso di Basi di Dati. Linguaggi per basi di dati. Linguaggi per basi di dati. Linguaggi per basi di dati: Algebra Relazionale

Stefania Marrara - Esercitazioni di Tecnologie dei Sistemi Informativi. Integrazione di dati di sorgenti diverse

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

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

Basi Di Dati, 09/12/2003

Progettazione di Basi di Dati

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

Transcript:

Algebra Relazionale e Calcolo Relazionale

Operazioni associate al modello relazionale Notazione algebrica Algebra relazionale Linguaggio procedurale interrogazioni espresse applicando operatori alle relazioni Notazione logica Calcolo relazionale Linguaggio dichiarativo interrogazioni espresse tramite formule logiche le cui risposte devono essere rese vere dalle tuple

Algebra Relazionale

Algebra relazionale e Calcolo relazionale Entrambe le famiglie di linguaggi sono equivalenti in senso espressivo

Algebra relazionale L Algebra relazionale è un linguaggio procedurale, le cui operazioni quindi vengono specificate descrivendo il procedimento da seguire per ottenere la soluzione.

Algebra relazionale L algebra relazionale di base ha solo 5 operazioni : Unione, Differenza, Prodotto Cartesiano, Selezione e Proiezione Ulteriori operazioni che descriveremo sono derivabili dalle 5 operazioni di base

Unione, Intersezione, Differenza Unione R 1 R 2 di due relazioni R 1 e R 2 è una relazione contenente le tuple che appartengono o a R 1 o a R 2 Differenza R 1 - R 2 è una relazione che contiene le tuple che appartengono a R 1 e non appartengono a R 2 Dato che R S = R-(R-S) possiamo dire che l Intersezione R S è una relazione che contiene le tuple che appartengono sia a R sia a S

Unione, Intersezione, Differenza Laureati Matricola 7274 7432 9824 Cognome Rossi Neri Verdi Età 37 39 38 Dirigenti Matricola 9297 7432 9824 Cognome Neri Neri Verdi Età 56 39 38 Laureati Dirigenti Matricola 7274 7432 9824 9297 Cognome Rossi Neri Verdi Neri Età 37 39 38 56

Unione, Intersezione, Differenza Laureati Matricola 7274 7432 9824 Cognome Rossi Neri Verdi Età 37 39 38 Dirigenti Matricola 9297 7432 9824 Cognome Neri Neri Verdi Età 56 39 38 Laureati Dirigenti Matricola 7432 9824 Cognome Neri Verdi Età 39 38 Laureati - Matricola Cognome Dirigenti 7274 Rossi 37 Età

Ridenominazione L' operatore di Ridenominazione cambia il nome degli attributi allo scopo di facilitare operazioni insiemistiche La ridenominazione ρ B 1,B2, Bk (R) contiene A1,A2, Ak tuple t' tali che t' è una tupla e t'[b i ] =t[a i ], cioè cambiano i nomi degli attributi ma i valori non cambiano

Ridenominazione Paternità Padre Esempio di utilizzo Figlio Adamo Caino Adamo Abele Abramo Isacco Maternità Madre Eva Eva Sara Figlio Caino Abele Isacco ρ Genitore Padre (Paternità) ρ Genitore Madre (Maternità) Genitore Adamo Adamo Abramo Eva Eva Sara Figlio Caino Abele Isacco Caino Abele Isacco

Selezione L' operatore di Selezione produce un sottoinsieme delle tuple, su tutti gli attributi. "Decomposizione orizzontale" La selezione σ F (R) produce una relazione sugli stessi attributi di R che contiene le tuple di R su cui la formula F è vera.

Selezione Impiegati Cognome Nome Età Stipendio Rossi Mario 25 1000 Neri Luca 40 1500 Verdi Nico 36 2400 Rossi Marco 40 1900 σ Età>30 Stipendio>2000 (Impiegati) Cognome Verdi Nome Età Stipendio Nico 36 2400

Selezione Cittadini Cognome Nome Nascita Residenza Rossi Mario Roma Milano Neri Luca Roma Roma Verdi Nico Firenze Firenze Rossi Marco Napoli Firenze σ Nascita=Residenza (Cittadini) Cognome Neri Verdi Nome Nascita Residenza Luca Roma Roma Nico Firenze Firenze

Proiezione L' operatore di Proiezione produce un risultato cui contribuiscono tutte le tuple, ma su un sottoinsieme degli attributi. "Decomposizione verticale" La proiezione π Y (R) è l' insieme di tuple su un sottoinsieme Y di attributi X di R, ottenuta dalle tuple di R considerando solo i valori su Y cioè : π Y (R) = {t[y] tale che t R}

Proiezione Impiegati Cognome Nome Reparto Capo Rossi Mario Vendite Gatti Neri Luca Vendite Gatti Verdi Mario Personale Lupi Rossi Marco Personale Lupi π Cognome,Nome (Impiegati) Cognome Rossi Neri Verdi Rossi Nome Mario Luca Mario Marco

Differenza tra Selezione e A B C Proiezione selezione A B C A B C proiezione A B

Join L' operatore di Join permette di correlare dati contenuti in relazioni diverse, confrontandone i valori, e utilizzando una delle caratteristiche fondamentali del modello, quella di essere basata sui valori. Due tipi di join : Join naturale e Theta join

Join naturale L' operatore di Join naturale R 1 X R 2 (o R 1 join R 2 ) correla dati in relazioni diverse sulla base di valori uguali in attributi con lo stesso nome. Definito come : R 1 joinr 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 }

Join naturale R 1 Impiegato Reparto R 2 Rossi vendite Neri produzione Bianchi produzione Reparto produzione vendite Capo Mori Bruni Impiegato Reparto Capo R 1 X R 2 Rossi vendite Bruni Neri produzione Mori Bianchi produzione Mori

Join naturale Esempi di Join non completi R 1 Impiegato Reparto R 2 Rossi vendite Neri produzione Bianchi produzione Reparto Capo produzione Mori acquisti Bruni Tupla dangling Impiegato Reparto Capo R 1 X R 2 Neri produzione Mori Bianchi produzione Mori

Join naturale Esempi di Join combinabili con tutto R 1 Impiegato Progetto R 2 Rossi A Neri A Bianchi A Progetto A A Capo Mori Bruni Impiegato Progetto Capo R 1 X R 2 Rossi Neri A A Mori Mori Bianchi Rossi Neri Bianchi A A A A Mori Bruni Bruni Bruni

Join esterno (outer Join) variante del Join naturale L' operatore di Join esterno prevede che tutte le tuple diano sempre un contributo al risultato, eventualmente estese con valori nulli ove non vi siano controparti opportune. Tre tipi di outer join : left join - right join - full join

Join esterno Left Join R 1 Impiegato Reparto R 2 Rossi vendite Neri produzione Bianchi produzione Reparto produzione acquisti Capo Mori Bruni Impiegato Reparto Capo R 1 X LEFT R 2 Rossi vendite NULL Neri produzione Mori Bianchi produzione Mori

Join esterno Right Join R 1 Impiegato Reparto R 2 Rossi vendite Neri produzione Bianchi produzione Reparto produzione acquisti Capo Mori Bruni Impiegato Reparto Capo R 1 X RIGHT R 2 Neri produzione Mori Bianchi produzione Mori NULL acquisti Bruni

Join esterno Full Join R 1 Impiegato Reparto R 2 Rossi vendite Neri produzione Bianchi produzione Reparto produzione acquisti Capo Mori Bruni Impiegato Reparto Capo R 1 X FULL R 2 Rossi vendite NULL Neri produzione Mori Bianchi NULL produzione acquisti Mori Bruni

Theta Join L' operatore di Theta Join R 1 X F R 2 è spesso definito come un prodotto cartesiano tra due relazioni R 1 ed R 2 seguito da una selezione che individua le tuple correlate secondo le esigenze. Definito come : R 1 X F R 2 = σ F (R 1 X R 2 ) dove F è una formula e R 1 e R 2 non hanno attributi di nome comune

Theta Join (Equi Join) R 1 R 2 Impiegato Rossi A Neri A Neri B Progetto Codice A B Nome Venere Marte R 1 X Progetto=Codice R 2 Impiegato Progetto Codice Nome Rossi A A Venere Neri Neri A B A B Venere Marte

Selezione, Proiezione, Join La possibilità, data dai precedenti operatori (soprattutto dal join), di eseguire cammini diversi tra le relazioni (la navigazione) è il punto di forza di questo modello.

Interrogazioni in algebra relazionale Un' interrogazione può essere definita come una funzione che, applicata a istanze di basi di dati, produce relazioni (le interrogazioni sono in pratica espressioni di relazioni che producono relazioni)

Esempi di interrogazioni in Algebra relazionale Consideriamo la seguente Base di dati : Relazioni IMPIEGATI(Matr,Nome, Età, Stipendio) SUPERVISIONE(Capo, Impiegato) La cui rappresentazione tabellare potrebbe essere :

Esempi di interrogazioni in Algebra relazionale Impiegati Matr Nome 101 Rossi 103 Bianchi 104 Neri 210 Celli 231 Bisi 252 Bini 301 S. Rossi Età 34 23 38 49 50 44 34 Stip 40 35 61 60 60 70 70 Supervisione Capo Impiegato 210 101 210 103 210 104 301 210 301 231 375 252 375 M. Rossi 50 65

Esempi di interrogazioni in Algebra relazionale Trovare matricola, nome ed età degli impiegati che guadagnano più di 40mila euro π Matr, Nome, Età (σ Stip>40 (IMPIEGATI)) Matr 104 210 231 352 301 375 Nome Neri Celli Bisi Bini S. Rossi M. Rossi Età 38 49 50 44 34 50

Esempi di interrogazioni in Algebra relazionale Trovare le matricole dei capi degli impiegati che guadagnano più di 40mila euro π Capo, (SUPERVISIONE X Impiegato=Matr (σ Stip>40 (IMPIEGATI ))) Capo 210 301 375

Esempi di interrogazioni in Algebra relazionale Trovare nome e stipendio dei capi degli impiegati che guadagnano più di 40mila euro π NomeC,StipC (ρ MatrC,NomeC,StipC,EtàC Matr,Nome,Stip.Età (IMPIEGAT I) X MatrC=Capo (SUPERVISIONE X Impiegato=Matr (σ Stip>40 (IM PIEGATI)))) NomeC Celli S. Rossi M. Rossi StipC 60 70 65

Infine Si possono formulare espressioni equivalenti fra loro che semplificano la notazione o permettono di ridurre le dimensioni dei risultati intermedi Per i valori nulli (e per evitare ambiguità nelle risposte) si introducono due nuove forme di condizione di selezione : A is null assume valore vero se il valore della tupla su A è nullo, falso altrimenti A is not null viceversa

Calcolo Relazionale

Calcolo relazionale Il Calcolo relazionale è un linguaggio dichiarativo, in cui le espressioni descrivono le proprietà del risultato(verofalso), piuttosto che la procedura per ottenerlo. E basato sul calcolo dei predicati del primo ordine

Calcolo relazionale La forma di logica chiamata Calcolo relazionale è alla base di quasi tutti i linguaggi di interrogazione esistenti e basati sul modello relazionale.

Calcolo relazionale Esistono diverse versioni del calcolo relazionale, ne vedremo solo due : 1) Calcolo relazionale sui Domini Quello più vicino al calcolo dei predicati 2) Calcolo relazionale sulle Tuple con dichiarazioni di range Variazione del precedente Base di molti costrutti degli attuali linguaggi

Calcolo relazionale sui Domini Le espressioni hanno la forma : {A 1 : x 1,.., A k : x k f} Dove A 1 : x 1,.., A k : x k target list o lista degli obiettivi A 1,.., A k sono attributi (rispetto a cui viene formulata l' interrogazione) x 1,.., x k sono variabili f è una formula del tipo : R(A 1 : x 1,.., A p : x p ) con R (A 1,.., A p ) schema di relazione e x 1,..,x p variabili xθy o xθc con x e y variabili e c costante θ operatore di confronto (=,<,>,,, )

Calcolo relazionale sui Domini Oppure f è del tipo: (2) se f 1 e f 2 sono formule lo sono anche f 1 f 2,f 1 f 2, e f 1 Se f è una formula e x è una variabile allora anche x(f) e x(f) anche sono formule

Esempi di interrogazioni nel Calcolo relazionale sui Domini Sulla base del modello già visto : trovare matricola, nome, età e stipendio degli impiegati che guadagnano più di 40mila euro {Matr:m, Nome:n, Età:e, Stip: s IMPIEGATI(Matr:m, Nome:n, Età:e, Stip: s ) s>40}

Calcolo relazionale sui Domini.ma un' espressione di un linguaggio di interrogazione sarebbe utile che fosse indipendente dal dominio Abbiamo bisogno di un' altra versione del calcolo relazionale, in cui le variabili, anziché denotare singoli valori, denotino tuple.

Considerazioni sul Calcolo relazionale sui Domini Il Calcolo relazionale sui Domini ha dei difetti : Agisce sui domini invece che sui valori Per il motivo precedente diventa "verboso" (ha bisogno di tante variabili) Può portare a espressioni che non hanno senso Occorre un linguaggio che 'focalizzi' le tuple di interesse

Calcolo Relazionale su Tuple con dichiarazione di range

Calcolo relazionale su Tuple con dichiarazione di range Le espressioni hanno la forma : Dove {Target list Range list formula} - Target list lista degli obiettivi con elementi Y:x.Z o x.z se Z:x.Z o x.* - Range list elenco delle variabili libere della formula con i relativi campi di variabilità

Calcolo relazionale su Tuple con dichiarazione di range (2) Le espressioni hanno la forma : {Target list Range list formula} e dove - formula è una formula del tipo : - x.aθc o x.aθy.b - connettivi di formule - x(r)(f) o x(r)(f)

Esempi di interrogazioni nel Calcolo relazionale su Tuple con dichiarazione di range Sulla base del modello già visto : Trovare matricola, nome, età degli impiegati che guadagnano più di 40mila euro {i.(matr, Nome,Età) i(impiegati) i.stip > 40} Se voglio tutti gli attributi diventa : {i.* i(impiegati) i.stip > 40}

Esempi di interrogazioni nel Calcolo relazionale su Tuple con dichiarazione di range Trovare le matricole dei capi degli impiegati che guadagnano più di 40mila euro {s.capo i(impiegati), s(supervisione) i.matr=s.impiegato i.stip > 40}

Esempi di interrogazioni nel Calcolo relazionale su Tuple con dichiarazione di range Trovare nome e stipendio dei capi degli impiegati che guadagnano più di 40mila euro {NomeC, StipC : i'.(nome, Stip) i'(impiegati), s(supervisione), i(impiegati) i'.matr=s.capo s.impiegato=i.matr i.stip > 40}

Calcolo relazionale su Tuple con dichiarazione di range Il Calcolo su tuple però non permette di esprimere tutte le interrogazioni che possono essere formulate in Algebra relazionale. Ad es. non c'è l' unione, per questo nei linguaggi interrogativi viene aggiunto esplicitamente un costrutto di unione.

Riassumendo : Algebra relazionale Calcolo relazionale del dominio delle tuple ISBL Query-by-example Quel SQL