Operatori di base. σ F (r) = {t t r. F(t) = true} SELEZIONE σ F (r)

Documenti analoghi
Algebra Relazionale. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Algebra relazionale. Algebra relazionale. Operatori dell algebra relazionale. Operatori dell algebra relazionale. Algebra relazionale.

ALGEBRA RELAZIONALE ALGEBRA RELAZIONALE

Tipi di operatori. Gli operatori dell algebra relazionale sono classificabili nelle seguenti categorie:

Lezione 6. Algebra e Calcolo Relazionale

SQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Equivalenza di Espressioni Algebriche

SQL. Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM : SQL ISO 9075:1992 SQL:1999 SQL:2003

ALGEBRA RELAZIONALE. L algebra relazionale

Parte III. L algebra relazionale

Operazioni sui database

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

logica dei predicati

3 Algebra Relazionale

Algebra Relazionale. algebra relazionale

Elementi di Algebra Relazionale

D B M G. Linguaggio SQL: fondamenti. Istruzione SELECT: fondamenti. Elena Baralis 2007 Politecnico di Torino 1. Struttura di base

Algebra relazionale 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

Modulo 8 I data base Unità 5 Le Query

Elena Baralis 2007 Politecnico di Torino 1

Interrogare una base di dati: algebra relazionale e SQL. Savino Castagnozzi Giorgio Macauda Michele Meomartino Salvatore Picerno Massimiliano Sartor

SELECT s.nome, e.data Studenti s, Esami e WHERE e.materia = 'BD' AND e.voto = 30 AND e.matricola = s.matricola

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

Introduzione all Algebra Relazionale

L ALGEBRA RELAZIONALE (2) Lezione del 28/10/2008 Prof. Mario Bochicchio

Basi di Dati e Sistemi Informativi. Algebra Relazionale

Basi di dati I Prova di autovalutazione 30 ottobre 2014

SQL IL LINGUAGGIO DI INTERROGAZIONE

Microsoft Access (parte 5) Query. Query. Query. Query. Creare una query

BASI DATI: algebra relazionale

Il sistema informativo deve essere di tipo centralizzato e accessibile mediante un computer server installato nella rete locale dell albergo.

Sommario. Introduzione... 13

Corso di Informatica

SQL. SQL: "storia. Sviluppato nella metà degli anni settanta (1974) presso il laboratorio di ricerca IBM di S.Josè. Dal 1983 ca. "standard di fatto"

Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo per un concessionario di automobili.

Gestione e Analisi dei Dati. Lezione 4 Relazioni multi tabella Relazioni uno-a-uno, uno-a-molti, molti-a-molti

Sistemi Informativi Territoriali

Basi di Dati. S Q L Lezione 2

Capitolo 4. SQL: il linguaggio di interrogazione. Originato da SEQUEL-XRM e System-R ( ) dell IBM

Introduzione a AlgebraEditor

Linguaggi per basi di dati ALGEBRA RELAZIONALE. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione

Basi di Dati. Esercitazione 2: Interrogazioni in SQL. K. Donno - Interrogazioni in SQL

SQL [2] Concetti avanzati di SQL. Esempi di interrogazioni

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

(Capitolo 4) Dopo aver eseguito l installazione del DBMS e di uno o più database: Oracle (7-9i) MySQL ( ) Accesso al DBMS

ALGEBRA RELAZIONALE RIEPILOGO

Basi di Dati: Corso di laboratorio

Sistemi di numerazione

APPUNTI DELLA LEZIONE DI DATABASE DEL 26/10/2016 Studenti: Marco D'Amato, Adriano Luigi Piscopello Professore: Mario Bochicchio

Modello logico dei dati utilizzato nell ambito delle basi di dati, introdotto da Codd nel 1970.

Basi di Dati. Esercitazione SQL. Paolo Papotti. 19 maggio 2005

Basi di Dati e Sistemi Informativi. Raffinamento dello schema e Normalizzazione nei database relazionali

Corso di JavaScript. Prerequisiti. B1 Tipi di dato e operatori. Concetto di variabile, espressione e tipo di dato

ESERCIZIO 1 (12 punti) Dato il seguente schema relazionale, che modella le informazioni relative ad un negozio di libri online:

SQL. Il nome sta per Structured Query Language Le interrogazioni SQL sono dichiarative

Matematica per le scienze sociali Elementi di base. Francesco Lagona

Interrogare una base di dati: Algebra relazionale e SQL. Alessandro Bardine Alessandro Ciaramella Vincenzo Galella Rudy Manganelli

Basi di Dati Corso di Laura in Informatica Umanistica

SIMULAZIONE I appello 8 gennaio 2016

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

Gli operatori relazionali

Il linguaggio SQL: query innestate

Laboratorio con DERIVE

Il linguaggio SQL: le viste

Gestione di basi di dati in Access. SUISM Docente: Ugo de Liguoro a.a Asti

SQL: Structured Query Language. T. Catarci, M. Scannapieco, Corso di Basi di Dati, A.A. 2008/2009, Sapienza Università di Roma

Access. P a r t e t e r z a

Università degli Studi di Milano. Esercizi Corso SIT. Basi di dati

Linguaggi per basi di dati

Relazioni e tabelle. Introduzione alle Basi di Dati Relazionali. Relazioni uno a uno. Esempio

Si considerino le seguenti specifiche relative alla realizzazione di un sistema informativo per la comunità scientifica di ricerca paleontologica.

Rappresentazione dell Informazione

Algebra Relazionale e Calcolo Relazionale. L. Vigliano

Fondamenti di informatica Esercizi Svolti Macchine di Turing. Realizzati da: Roberto Quaranta Matr

Linguaggi di interrogazione per basi di dati relazionali

BASI DI DATI. Esercizi sull algebra relazionale. Docente: Giorgio Giacinto A.A. 2008/2009

Ripasso Concetti Pratica in Access Link utili. ECDL - Database. European Computer Driving Licence - Modulo 5 - Database LEZIONE 3

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

Array e Oggetti. Corso di Laurea Ingegneria Informatica Fondamenti di Informatica 1. Dispensa 12. A. Miola Dicembre 2006

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 27 Marzo 07 Nome: Cognome: Matricola:

Microsoft Access. Obiettivo della lezione. Useremo Access per interrogare una base di dati (query)

Il potere espressivo di un linguaggio è caratterizzato da: PROGRAMMA = DATI + CONTROLLO

Espressione di chiamata di funzione

Ordinare dati. Microsoft Access. Ordinare dati. Ordinare dati. Ordinare dati. Ordinare dati. Query (II), filtri. L ordinamento crescente:

LINGUAGGI DI PROGRAMMAZIONE!

Linguaggio C. Tipi predefiniti e operatori. Università degli Studi di Brescia. Docente: Massimiliano Giacomin

Algoritmi e soluzione di problemi

Operatori di relazione

Aritmetica dei Calcolatori 2

DATABASE PER IL WEB. Programmazione Web 1

INTRODUZIONE AD SQL (CAPITOLO 4) R. Basili a.a

CAPITOLO V. DATABASE: Il modello relazionale

Corso di Matematica per la Chimica. Dott.ssa Maria Carmela De Bonis a.a

Compito Basi di Dati. Tempo concesso : 90 minuti 28 aprile 2005 Nome: Cognome: Matricola:

Unità Didattica 2 Linguaggio C. Espressioni, Operatori e Strutture linguistiche per il controllo del flusso

Elementi lessicali. Lezione 4. La parole chiave. Elementi lessicali. Elementi lessicali e espressioni logiche. Linguaggi di Programmazione I

Gestione dei dati vettoriali Query dei dati

MATEMATICA DI BASE 1

Inserire record. Microsoft Access. Inserire/modificare record. Inserire record. Cancellare record. Inserire/modificare record

Esprimere in algebra (ottimizzata), calcolo relazionale la seguente query:

Transcript:

Algebra relazionale Linguaggio dallo stile operazionale, in quanto rappresenta il piano di esecuzione di una query. Definisce un insieme di operazioni su relazioni. Le operazioni hanno come operandi una o due relazioni e come risultato una nuova relazione. Esistono 5 operatori di base, a partire dai quali è possibile ottenere altri operatori derivati. Le operazioni si compongono in espressioni complesse che rappresentano query. L insieme di tutte le query esprimibili attraverso espressioni dell algebra relazionale definisce il potere espressivo del linguaggio.

Operatori di base SELEZIONE σ F (r) operatore unario input: relazione r di schema R(X) predicato F composto da: operandi: attributi di R(X) e costanti operatori: di confronto e logici output: relazione di schema R(X): σ F (r) = {t t r. F(t) = true}

Operatori di base SELEZIONE σ F (r) r: a 1 a w 9 q a 2 e a 4 e F: A = a F: B > 3 and C = q a 1 a w 9 q a 2 e a 4 e

Operatori di base PROIEZIONE π Y (r) operatore unario input: relazione r di schema R(X) Y X output: relazione di schema R(Y): π Y (r) = {t[y] t r}

Operatori di base PROIEZIONE π Y (r) r: a 1 a w 9 q a 2 e a 2 f a 4 e Y: A Y: AB A A B a a 1 w w 9 a 2 a 4

Operatori di base UNIONE r s operatore binario input: relazioni r e s di schema R(X) output: relazione di schema R(X): r s = {t t r t s}

Operatori di base UNIONE r s a 1 a b 3 a a 1 a w 9 q r: s: a 2 e a 4 e f 1 e a 4 e r s: w 9 q a 2 e a 4 e b 3 a f 1 e

Operatori di base DIFFERENZA r s operatore binario input: relazioni r e s di schema R(X) output: relazione di schema R(X): r s = {t t r t s}

Operatori di base DIFFERENZA r s a 1 a b 3 a a 1 a w 9 q r: s: a 2 e f 1 e a 4 e r s: w 9 q a 2 e a 4 e

Operatori di base PRODOTTO CARTESIANO r x s operatore binario input: relazione r di schema R(X) e s di schema S(Y) output: relazione di schema P(XY): r x s = {t t = t r [X]t s [Y]. t r [X] r, t s [Y] s}

Operatori di base PRODOTTO CARTESIANO r x s a 1 a r: s: w 9 q A D m 2 h 1 r x s: R. S.A D a 1 a m 2 a 1 a h 1 w 9 q m 2 w 9 q h 1

Operatore di renaming Operatore unario che rinomina attributi o relazioni. Il renaming è un operatore utile quando si compongono espressioni, in quanto consente di evitare ambiguità rinominando attributi o relazioni. ρ(r,r) rinomina r in r ρ A A (r) rinomina A in A per la relazione r

Operatori derivati INTERSEZIONE r s operatore binario input: relazioni r e s di schema R(X) output: relazione di schema R(X): r s = r (r s)

Operatori derivati INTERSEZIONE r s a 1 a w 9 q r: s: b 3 a f 1 e r s: a 4 e a 2 e a 4 e a 4 e

Operatori derivati DIVISIONE r s operatore binario input: output: relazioni r di schema R(X) e s di schema S(Y) tali che Y X. relazione di schema D(X-Y) che contiene ogni tupla t d tale che per ogni t s in s: t d [X-Y]t s [Y] r r s = π x-y (r) π x-y ((π x-y (r) x s) r)

Operatori derivati DIVISIONE r s a 1 a w 1 a r: s: a 2 a B C 1 a 2 a r s: A a w 4 b

Operatori derivati JOIN r s F operatore binario input: output: relazioni r di schema R(X) e s di schema S(Y) predicato F costituito da predicati di join della forma: A θ B dove A X, B Y, e θ è un operatore di confronto. I predicati di join si possono combinare in espressioni tramite operatori logici. r s = σ F (r x s) F In genere si parla di θ-join (equi-join se θ è l operatore di uguaglianza)

Operatori derivati JOIN r s F a 1 a w 1 a r: s: a 2 a w 4 b D E 1 a 2 a r s: F F: B=D D E a 1 a 1 a w 1 a 1 a a 2 a 2 a

Operatori derivati JOIN NATURALE r s operatore binario input: relazioni r di schema R(X) e s di schema S(Y) output: r s = π xy (σ F (r x s)) dove F: (R.A = S.A) A X Y Il join naturale corrisponde ad eseguire un equi-join su tutti gli attributi comuni ai due schemi e a proiettare il risultato sull unione degli attributi

Operatori derivati JOIN NATURALE r s a 1 a w 1 a f 2 a g 4 b B C D 1 a 3 r: s: r s: 2 a 1 D a 1 a 3 w 1 a 3 f 2 a 1

Operatori derivati JOIN NATURALE r s r relazione di schema R(X) s relazione di schema S(Y) Qual è il risultato se X=Y? r s = r s Qual è il risultato se X Y =? r s = r x s

Operatori derivati JOIN ESTERNO SINISTRO r s (left outer join) LEFT Estensione del join naturale in cui ogni tupla di r fa parte del risultato, eventualmente estesa con valori NULL ove non vi sia controparte opportuna in s. a 1 a B C D D a 1 a 3 w 1 a r: s: f 2 a g 4 b 1 a 3 2 a 1 r s: LEFT w 1 a 3 f 2 a 1 g 4 b null

Operatori derivati JOIN ESTERNO DESTRO r s (right outer join) RIGHT Estensione del join naturale in cui ogni tupla di s fa parte del risultato, eventualmente estesa con valori NULL ove non vi sia controparte opportuna in r. a 1 a B C D D a 1 a 3 w 1 a r: s: f 2 a 1 a 3 2 b 2 r s: RIGHT w 1 a 3 f 2 a 1 g 4 b 2 a 1 null 2 b 2

Operatori derivati Unendo le due definizioni precedenti, si ottiene il join completo (full join), in cui ogni tupla di r e s fa parte del risultato, eventualmente estesa con valori NULL ove non vi sia controparte opportuna. a 1 a w 1 a r: s: f 2 a B C D 1 a 3 2 a 1 r s: FULL D a 1 a 3 w 1 a 3 f 2 a 1 g 4 b null g 4 b 3 b 2 null 3 b 2

Algebra relazionale: esempio Sailor(Sid, Sname, Srate, Sage) Boat(Bid, Bname, Bcolor) Rent(Sid, Bid, date) Sid Sname Srate Sage 22 Popeye 9 56 b: Bid Bname Bcolor 129 Sealion red 72 Alinghi red 313 Bathtub blu Sid Bid Rdate s: 18 Soldini 8 38 7 Rusty 6 63 r: 22 72 2004/12/10 18 313 2005/07/07 28 Lubber 2 22 28 313 2005/29/07

Trovare i nomi dei marinai che hanno noleggiato la barca 313. π Sname (σ Bid= 313 (s r)) Trovare i nomi dei marinai che hanno noleggiato una barca rossa. π Sname (σ Bcolor= red ((s r) b)) π Sname (π Sid (σ Bcolor= red (b) r) s) Trovare i nomi dei marinai che hanno noleggiato una barca rossa o verde. π Sname (σ Bcolor= red or Bcolor= green ((s r) b))

Trovare i nomi dei marinai che hanno noleggiato una barca rossa ed una barca verde. π Sname (σ Bcolor= red ((s r) b)) π Sname (σ Bcolor= green ((s r) b)) Trovare i nomi dei marinai che hanno noleggiato tutte le barche. π Sname ((π Sid,Bid (r) π Bid (b)) s) Trovare i nomi dei marinai che hanno noleggiato tutte le barche verdi. π Sname ((π Sid,Bid (r) π Bid (σ Bcolor= green (b))) s)

Trovare le coppie di marinai tali che il primo è più vecchio ma meno esperto del secondo. π Sname,Sname (ρ Sid Sid (s) Sname Sname Srate Srate Sage Sage Sage >Sage Srate < Srate ρ Sid Sid (s)) Sname Sname Srate Srate Sage Sage Trovare le coppie di marinai che hanno noleggiato la stessa barca. π Sname,Sname (ρ Sid Sid (s r) ρ Sid Sid (s r))... Sid >Sid Bid = Bid...

Trovare la barca noleggiata più recentemente....intanto troviamo la data più recente tra quelle relative ai noleggi: π Rdate (ρ Sid Sid (r)) (π Rdate (ρ Sid Sid (r) ρ Sid Sid (r)))...... Rdate < Rdate...e chiamiamo d (di schema D(Rdate )) la relazione risultante.... Quindi troviamo le barche noleggiate in tale data: π Bid (ρ Sid Sid (r) d)...

LIBRERIA (Nome, Piva, Indirizzo, Città) LIBRO (CodL, Titolo, Editore) AUTORE (CodA, Cognome, Nome, Nazionalità) SCRITTO (CodL, CodA) VENDITA (PIva, CodL, NumCopie) 1) Visualizzare i nomi di tutti gli autori di nazionalità italiana 2) Visualizzare tutte le librerie di Roma 3) Selezionare l editore del libro Basi di Dati 4) Trovare il codice dei libri scritti da Umberto Eco 5) Trovare i nomi degli autori del libro Basi di Dati

6) Selezionare le librerie che hanno venduto più di 100 copie del libro Il nome della rosa 7) Visualizzare i libri che hanno venduto almeno una copia nella libreria Gasperini di Rimini 8) Visualizzare i libri che hanno venduto almeno 10 copie nella libreria Gasperini di Rimini 9) Visualizzare i libri che non hanno vendito nessuna copia nella libreria Gasperini di Rimini 10) Visualizzare i libri che hanno venduto almeno una copia in tutte le librerie di Rimini 11) Visualizzare i libri editi da Bompiani 12) Mostrare l indirizzo della libreria Mille pagine di Roma