Un altro operatore algebrico derivato: divisione

Documenti analoghi
Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a

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

Fondamenti di Teoria delle Basi di Dati

Calcolo relazionale. Dr. C. d'amat

Linguaggi per basi di dati. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,

Parte III. L algebra relazionale

Parte B Decomporre Sito, se necessario, in Forma Normale di Boyce Codd, senza perdite e mantenendo le dipendenze funzionali.

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

Exercises. Dr. C. d'amat

3 Algebra Relazionale

Linguaggi per basi di dati. Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill,

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, ALGEBRA E CALCOLO RELAZIONALE

Algebra relazionale: operazioni

Data Management Software. Il linguaggio SQL. Query Innestate. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management 10 Settembre 2003

Gestione e Analisi dei Dati. Lezione 2 Vincoli su attributo Selezioni semplici su una tabella

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"

Algebra Relazionale e Calcolo Relazionale. L. Vigliano

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

Il linguaggio SQL: query innestate

Basi di dati 8 novembre 2010 Prova parziale Compito A

Il linguaggio SQL: query innestate

(anno accademico )

DataBase Management System - DBMS

ALGEBRA RELAZIONALE (CAPITOLO 3) R. Basili a.a

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

Lezione 6. Algebra e Calcolo Relazionale

ALGEBRA RELAZIONALE (CAPITOLO 3) R. Basili a.a

Corso di Informatica

ALGEBRA RELAZIONALE ALGEBRA RELAZIONALE

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

Basi di dati: esercitazione. Paolo Atzeni 10/05/2006

Structured Query Language

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

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

Fondamenti di Teoria delle Basi di Dati

4/16/07. Le Basi di Dati Relazionali. Concetti Fondamentali. Base di dati, tabella, ennupla, attributo, dominio. Valori nulli

La gestione delle interrogazioni

Il linguaggio SQL: query innestate

Il linguaggio SQL: le viste

B a s i d i D a t i ( M o d u l o T e o r i a ) P r o v a s c r i t t a

Linguaggi per basi di dati. Interrogazione delle basi di dati. Linguaggi di interrogazione per basi di dati relazionali. Linguaggi di interrogazione

Basi di dati (database)

Equivalenza di Espressioni Algebriche

1 (12) 2 (6) 3 (4) 4 (4) 5 (6)

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

SQL - Sottointerrogazioni

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

Esercizio 5.1. Soluzione:

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

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

Informatica per le Scienze Umane. Introduzione al corso: programma

Basi di dati Modelli e linguaggi di interrogazione

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

INTRODUZIONE ALLA PROGETTAZIONE. Patrizio Dazzi a.a

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

Introduzione all algebra relazionale. Prof. Giovanni Giuffrida

Interrogazioni semplici

Modulo 8 I data base Unità 5 Le Query

( x 1 )A 2 1 x2, f1 1 (x 1 ) )

BASI DATI: algebra relazionale

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

Alessandra Raffaetà. Esercizio: Cinema

S.I.T. PER LA VALUTAZIONE E GESTIONE DEL TERRITORIO Corso di Laurea Magistrale in Scienze Ambientali. Alessandra Raffaetà

PIL Percorsi di Inserimento Lavorativo

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

SQL - Sottointerrogazioni correlate

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

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

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

Basi di Dati: Corso di laboratorio

RELAZIONI E BASI DI DATI

Sistemi di Elaborazione delle Informazioni (C.I. 15) Basi di dati Introduzione teorica

<Nome Tabella>.<attributo>

Informatica per le Scienze Umane. Introduzione al corso: programma dettagliato

Basi di dati (nuovo ordinamento) 16 giugno 2008 Compito A

Architettura CPU. Memoria principale (RAM) Dispositivi di ingresso. Dispositivi di uscita. Memoria secondaria (memoria di massa)

Esercizi sulla modellazione concettuale e su SQL. Alessandra Raffaetà. Dipartimento di Informatica Università Ca Foscari Venezia

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2

ALGEBRA RELAZIONALE. L algebra relazionale

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

Progettare Basi di Dati

Fondamenti di Teoria delle Basi di Dati

CAPITOLO V. DATABASE: Il modello relazionale

Informatica B. Introduzione alle Basi di Dati e ai DBMS

Il modello relazionale dei dati. modello relazionale 1

Indicare quale o quali delle seguenti affermazioni sono vere?

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

Basi di dati I 27 gennaio 2016 Esame Compito A Tempo a disposizione: un ora e quarantacinque minuti. Libri chiusi.

SQL. SQL: una visione panoramica. SQL: "storia" Definizione dei dati

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

Operatori aggregati: COUNT

SQL e algebra relazionale

Linguaggi di interrogazione per basi di dati relazionali

Traduzione ER - relazionale

Basi di Dati: Corso di laboratorio

Linguaggi per basi di dati

Esercizio 4.1. Soluzione:

MODELLI DEI DATI. Informatica Generale (AA 07/08) Corso di laurea in Scienze della Comunicazione Facoltà di Lettere e Filosofia

Cognome Nome Matricola Ordin.

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

Transcript:

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a. 2012-2013 2013 Docente: Gigliola Vaglini Docenti di laboratorio: Francesco Pistolesi,, Antonio Virdis 1 Un altro operatore algebrico derivato: divisione Vogliamo trovare i nomi dei clienti che hanno un conto corrente in tutte le filiali di banca di Pisa. Le relazioni sono Branch(bank_name bank_name, branch_name, branch_city) Account(branch_name branch_name, bank_name, account_number, branch_city) Depositor(account_number account_number, customer_name) CN,BN (depositor BN ( BC= Pisa depositor account) Pisa (branch)) 2 1

Cosa si intende CN,BN (depositor account) BN ( BC= Pisa Pisa (branch)) Equivale a CN (depositor account) CN (( CN (depositor account) X BN ( BC= Pisa Pisa (branch)) - CN,BN (depositor account)) 3 CN CN (depositor account) X BN ( BC= Pisa Pisa (branch) Si combinano tutti i clienti presenti nel data base con le filiali di Pisa; togliendo da questo insieme le coppie (cliente,filiale) presenti nel data base, cioè CN,BN (depositor account) Restano i clenti che hanno un conto in una filiale a Pisa, ma non in tutte. Togliendo dai clienti del data base i clienti ottenuti, restano i clienti che hanno un conto in tutte le filiali di Pisa. CN,BN 4 2

Definizione Siano r(r) e s(s) relazioni con R R S, r s r è una relazione su R-S; R una tupla t t r s iff t R-S (r) t s, t r r tale che t [S]= t [S] t e t [R-S]= t 5 Lezione 12 Linguaggi di interrogazione dichiarativi: Calcolo Relazionale 6 3

Calcolo relazionale Una famiglia di linguaggi dichiarativi, basati sul calcolo dei predicati del primo ordine Diverse versioni: calcolo relazionale su domini calcolo su ennuple con dichiarazioni di range 7 Calcolo su domini { A1: x1,,, An: xn f } Ai sono nomi di attributi xi sono nomi di variabili La lista di coppie Ai : xi viene detta target list (descrive il risultato) f è una formula Formule atomiche sono R(A1: x1,,, An: xn), che è vera sui valori di x1 xn xn che formano una tpla di R, e xi xj,, che è vera sui valori di xi e xj che soddisfano 8 4

Calcolo su tuple con dichiarazione di range { x1.z1,, xn.zn xi(r1),, xj(rm Rm) ) f } x1.z1,, xn.zn è la target list xi(r1),,, xj(rm Rm) è la range list (dice il campo di variabilità delle variabili) f è una formula, con formule atomiche del tipo xi.zi xj.zj,, ad esempio 9 Base di dati per gli esempi Impiegati(Matricola Matricola,Nome, Età, Stipendio) Supervisione(Capo, Impiegato) 10 5

Esempio 1a Trovare gli impiegati che guadagnano più di 40 milioni { Matricola: m, Nome: n, Età: : e, Stipendio: s Impiegati (Matricola: m, Nome: n, Età: : e, Stipendio: s) s > 40 } 11 Esempio 1b Trovare gli impiegati che guadagnano più di 40 milioni { i.* i(impiegati) i.stipendio > 40 } 12 6

Esempio 2a Trovare nome e matricola degli impiegati che guadagnano più di 40 milioni { Matricola: m, Nome: n Impiegati (Matricola: m, Nome: n, Età: : e, Stipendio: s) s > 40 } oppure { Matricola: m, Nome: n e,s(impiegati (Matricola: m, Nome: n, Età: : e, Stipendio: s) s > 40) } 13 Esempio 2b Trovare nome e matricola degli impiegati che guadagnano più di 40 milioni { i.(matricola, Nome) i(impiegati) i.stipendio > 40 } 14 7

Quantificatori esistenziali e universali Per interrogazioni più complesse, che in algebra ad esempio richiedevano una differenza, servono altri strumenti, Sono intercambiabili x(f)= x(f)= ( x( (f))) (f))) x(f)= x(f)= ( x( (f))) (f))) 15 Quantificatori esistenziali e universali Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di 40 milioni. {Matricola: c, Nome: n Impiegati(Matricola: c, Nome: n, Età: : e, Stipendio: s) Supervisione(Capo:c, Impiegato:m) m'( m'( n'( n'( e'( e'( s'( (Impiegati(Matricola:m', Nome:n', Età:e', Stipendio:s') Supervisione(Capo:c, Impiegato:m')) s' > 40))))} 16 8

Quantificatori esistenziali e universali Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di 40 milioni. {Matricola: c, Nome: n Impiegati(Matricola: c, Nome: n, Età: : e, Stipendio: s) Supervisione(Capo:c, Impiegato:m) m'( m'( n'( n'( e'( e'( s ( Impiegati(Matricola: m', Nome: n', Età: : e', Stipendio: s') Supervisione(Capo:c, Impiegato:m') s' 40))))} 17 Quantificatori esistenziali e universali {Matricola: c, Nome: n Impiegati(Matricola: c, Nome: n, Età: : e, Stipendio: s) Supervisione(Capo:c, Impiegato:m) m'( m'( n'( n'( e'( e'( s'( Impiegati(Matr Matr: : m', Nome: n', Età: : e', Stip: : s') Supervisione(Capo:c, Impiegato:m') s' 40))))} { i.(matricola, Nome) s(supervisione), i(impiegati) i.matricola=s.capo ( i'( i'(impiegati)( )( s' s'(supervisione) (s.capo=s'.capo s'.impiegato=i'.matricola i'.stipendio 40)))} 18 9

Calcolo su domini, discussione Pregi: dichiaratività Difetti: "verbosità": ": tante variabili! Le variabili del calcolo dei domini rappresentano singoli valori Nel calcolo su tple rappresentano tple possibilità di scrivere espressioni senza senso (dipendenti dal dominio) A:x, B:y R(A:x) y=y nell'algebra tutte le espressioni hanno un senso (indipendenti dal dominio) 19 Calcolo su tuple,, discussione Il calcolo su tuple con dichiarazioni di range non permette di esprimere alcune interrogazioni importanti, in particolare le unioni: R 1 (AB) R 2 (AB) Ogni variabile ha un solo range nel risultato, mentre vorremmo tple sia della prima relazione che della seconda Nota: intersezione e differenza sono esprimibili Per questa ragione SQL (che è basato su questo calcolo) prevede un operatore esplicito di unione, ma non tutte le versioni prevedono intersezione e differenza 20 10

Calcolo e algebra Calcolo e algebra sono "equivalenti" per ogni espressione del calcolo relazionale che sia indipendente dal dominio esiste un'espressione dell'algebra relazionale equivalente a essa per ogni espressione dell'algebra relazionale esiste un'espressione del calcolo relazionale equivalente a essa (e di conseguenza indipendente dal dominio) 21 Calcolo e algebra: limiti l'insieme di interrogazioni esprimibili è significativo Ci sono però interrogazioni interessanti non esprimibili,, ad es. interrogazioni inerentemente ricorsive, come la chiusura transitiva 22 11

Chiusura transitiva Supervisione(Impiegato, Capo) Per ogni impiegato, trovare tutti i superiori (cioè il capo, il capo del capo, e cosi' via) Impiegato Rossi Neri Lupi Capo Mori Lupi Bruni Falchi Impiegato Rossi Neri Lupi Rossi Superiore Mori Lupi Bruni Falchi Falchi 23 Chiusura transitiva Nell'esempio, basterebbe il join della relazione con se stessa, previa opportuna ridenominazione Ma aggiungiamo una nuova ennupla Impiegato Rossi Capo Mori Lupi Impiegato Rossi Neri Superiore Mori Lupi Bruni Neri Bruni Lupi Falchi Lupi Falchi Rossi Falchi Falchi Leoni Lupi Leoni Rossi Leoni 24 12

Chiusura transitiva Non esiste in algebra e calcolo relazionale la possibilità di esprimere l'interrogazione che calcoli la chiusura transitiva di una relazione qualunque L operazione si simula con un mumero di join illimitato 25 Esercitazione 5 26 13

1 Si consideri il seguente schema di base di dati Aeroporto (Città, Nazione) Volo (IdVolo, Giorno, OraArrivo, CittàArrivo, CittàPartenza, OraPartenza) Aereo (Tipo, NumPasseggeri, QuantMerci) Scrivere una espressione dell algebra relazionale che elenchi gli identificatori dei voli internazionali in partenza da Pisa con durata inferiore alle 2 ore. 27 Soluzione IdVolo ( Nazione Italia (Aeroporto) CittàArrivo=Città CittàPartenza = Pisa OraArrivo OraPartenza) < 2 (Volo)) Rappresentare lo stesso risultato nel calcolo dei domini. 28 14

{IdVolo:iv Volo (IdVolo: iv, Giorno: g, OraArrivo: oa, CittàArrivo: ca, CittàPartenza: cp, OraPartenza: op) Aeroporto (Città: c, Nazione:n) c=ca cp= "Pisa" n "Italia" (oa-op) <2} Rappresentare lo stesso risultato nel calcolo delle tuple. 29 Soluzione: { i.(idvolo) i(volo), a(aeroporto) i.cittàarrivo=a.città i.cittàpartenza = "Pisa a.nazione "Italia" i.oraarrivo-i.orapartenza +) <2 } 30 15

2 Si consideri l espressione algebrica dove R1, R2, R3 hanno gli schemi R1(AB), R2(CDE), R3(FGH). Trasformarla in modo da ridurre la dimensione dei risultati intermedi. 31 Soluzione 32 16

3 Si consideri uno schema relazionale contenente le relazioni R1(ABC), R2(DG), R3(EF) Formulare in calcolo relazionale su tuple e su domini l'interrogazione realizzata in algebra relazionale dalla seguente espressione: 33 Soluzione Questa espressione non è esprimibile in calcolo sulle tuple a causa dell'unione tra due diverse tabelle. In calcolo sui domini l'espressione diventa: 34 17

Si consideri uno schema relazionale contenente le relazioni R1(ABC), R2(DG), R3(EF). Formulare in calcolo relazionale su tuple l'interrogazione realizzata in algebra relazionale dalla seguente espressione: 4 35 Soluzione i.(d,g), s(e,f) i(r3), s(r1) s.b=i.f i.g=s.c i.d=s.a 36 18

5 Si consideri il seguente schema di base di dati Aeroporto (Città, Nazione) Volo (IdVolo, TipoAereo, GiornoSettimana, CittàPartenza, OraPartenza, CittàArrivo, OraArrivo) Aereo (TipoAereo, NumPasseggeri, QuantMerci) Scrivere un espressione in algebra relazionale che elenchi per volo e giorno della settimana i collegamenti diretti tra Roma e Bucarest. 37 Soluzione 38 19

Soluzione Lo studente scriva un espressione in algebra relazionale che elenchi tutte le città con cui è collegata direttamente Pisa sia come città di arrivo che come città di partenza. 39 Soluzione Lo studente definisca la query precedente anche nel calcolo relazionale sulle tuple. 40 20

Soluzione Non si può fare 41 6 Dato il seguente schema: AEROPORTO(Città, Nazione,NumPiste) VOLO(IdVolo,GiornoSett,CittàPart,OraPart, CittàArr,OraArr,TipoAereo) AEREO(TipoAereo,NumPasseggeri,QtaMerci) scrivere in algebra relazionale la interrogazione che permette di determinare gli aeroporti italiani che hanno solo voli interni. 42 21

Soluzione 43 Si consideri il seguente insieme di relazioni: Film(CodFilm, Titolo, CodRegista, Anno) Produzione (CasaProduzione, Nazionalita, CodFilm, Costo) Attore (CodAttore, Cognome, Nome, Sesso, DataNascita, Nazionalita) Interpretazione (CodFilm, CodAttore, Personaggio) Regista (CodRegista, Cognome, Nome, Sesso, DataNascita, Nazionalita) 7 44 22

7.a Definire in algebra relazionale una query che produca la lista dei titoli dei film che Marcello Mastroianni ha interpretato. 45 Soluzione 46 23

Esprimere la stessa query nel calcolo relazionale dei domini e delle tuple. 47 7.b Definire in algebra relazionale una query che produca la lista dei titoli dei film che Marcello Mastroianni ha interpretato senza Sofia Loren. 48 24

Soluzione 49 Esprimere la stessa query nel calcolo dei domini 50 25