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

Documenti analoghi
Un altro operatore algebrico derivato: divisione

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

Fondamenti di Teoria delle Basi di Dati

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

Calcolo relazionale. Dr. C. d'amat

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

Algebra Relazionale e Calcolo Relazionale. L. Vigliano

3 Algebra Relazionale

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"

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

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

(anno accademico )

Corso di Informatica

Equivalenza di Espressioni Algebriche

Fondamenti di Teoria delle Basi di Dati

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

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

ALGEBRA RELAZIONALE ALGEBRA RELAZIONALE

Lezione 6. Algebra e Calcolo Relazionale

Parte 6 Esercitazione sull accesso ai file

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

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

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

SQL - Sottointerrogazioni

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

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

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

<Nome Tabella>.<attributo>

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

Fondamenti di Teoria delle Basi di Dati

RELAZIONI E BASI DI DATI

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

BASI DATI: algebra relazionale

SQL e algebra relazionale

Basi di dati Modelli e linguaggi di interrogazione

Il linguaggio SQL: query innestate

Modulo 8 I data base Unità 5 Le Query

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

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

Atzeni, Ceri, Paraboschi, Torlone Basi di dati

Esercizio 4.1. Soluzione:

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

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

Generalizzazione. Docente : Alfredo Cuzzocrea Tel. : Informatica

Indicare quale o quali delle seguenti affermazioni sono vere?

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

Informatica per le Scienze Umane. Introduzione al corso: programma

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

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, La normalizzazione

Linguaggi per basi di dati

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

Progettare Basi di Dati

Linguaggi di interrogazione per basi di dati relazionali

CAPITOLO V. DATABASE: Il modello relazionale

Cognome Nome Matricola Ordin.

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

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

Basi di Dati Corso di Laurea in Informatica Umanistica

CAPITOLO 4 ESERCIZI SU SQL

2 Algebra Relazionale

Basi di Dati: Corso di laboratorio

Basi di Dati: Corso di laboratorio

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

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

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

Laboratorio di Programmazione Laurea in Ingegneria Civile e Ambientale

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

Basi di Dati Esempi di SQL

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

ALGEBRA RELAZIONALE. L algebra relazionale

Alessandra Raffaetà. Esempio: Compagnia di trasporti

Il modello relazionale

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

Traduzione ER - relazionale

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

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

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

Esercitazione: Interrogazioni SQL

Compito Basi di Dati. Tempo concesso: 90 minuti 08 Giugno 2006 Nome: Cognome: Matricola:

Un monomio è in forma normale se è il prodotto di un solo fattore numerico e di fattori letterali con basi diverse. Tutto quanto sarà detto di

Esame di Informatica Generale 2/4/2012 Professori: Carulli, Fiorino. Docente Risultati Scritto Orali Fiorino martedì sera mercoledì mattina Carulli

Normalizzazione di Basi di Dati

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

1) Semplicissimi esercizi introduttivi

Basi di Dati Ingegneria Informatica e delle Telecomunicazioni

Compito Sistemi Informativi LA. Tempo concesso : 90 minuti 26 Giugno 07 Nome: Cognome: Matricola: Esercizio 1

Esercizi di progettazione di Basi di Dati Relazionali

Logica proposizionale

Ciclo di vita di un sistema informativo

Sistemi Informativi Territoriali

Capitolo 4. Soluzione: Soluzione: Create domain STRING as character varying (256) default sconosciuto not null

Normalizzazione. Definizione

Basi di Dati Esempi di SQL

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

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

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

Il modello logico dei dati

Transcript:

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a. 2010-2011 2011 Docente: Gigliola Vaglini Docente laboratorio: Alessandro Lori 1 99999999 Lezione 9 I linguaggi di interrogazione dichiarativi: Calcolo Relazionale 2 1

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 3 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 4 2

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

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 } 7 Esempio 1b Trovare gli impiegati che guadagnano più di 40 milioni { i.* i(impiegati) i.stipendio > 40 } 8 4

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) } 9 Esempio 2b Trovare nome e matricola degli impiegati che guadagnano più di 40 milioni { i.(matricola, Nome) i(impiegati) i.stipendio > 40 } 10 5

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))) 11 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))))} 12 6

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))))} 13 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)))} 14 7

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) 15 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 16 8

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) 17 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 18 9

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 19 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 20 10

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 21 Esercitazione lezioni 5 e 6 22 11

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. 23 Soluzione IdVolo ( Nazione Italia (Aeroporto) join CittàArrivo=Città CittàPartenza =Pisa OraArrivo OraPartenza ± DifferenzaMeridiano) < 2 (Volo)) Rappresentare lo stesso risultato nel calcolo dei domini. 24 12

{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 ± Differenzameridiano) <2} Rappresentare lo stesso risultato nel calcolo delle tuple. 25 Soluzione: { i.(idvolo) i(volo), a(aeroporto) i.cittàarrivo=a.città i.cittàpartenza = "Pisa a.nazione "Italia" i.oraarrivo-i.orapartenza + Differenzameridiano) <2 } 26 13

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. 27 Soluzione 28 14

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: 29 Soluzione Questa espressione non è esprimibile in calcolo sulle tuple a causa dell'unione tra due diverse tabelle. In calcolo sui domini l'espressione diventa: 30 15

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 31 Soluzione 32 16

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) Lo studente scriva un espressione in algebra relazionale che elenchi per volo e giorno della settimana i collegamenti diretti tra Roma e Bucarest. 33 Soluzione 34 17

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. 35 Soluzione Lo studente definisca la query precedente anche nel calcolo relazionale sulle tuple. 36 18

Soluzione Non si può fare 37 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. 38 19

Soluzione 39 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 40 20

7.a Definire in algebra relazionale una query che produca la lista dei titoli dei film che Marcello Mastroianni ha interpretato. 41 Soluzione 42 21

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

Soluzione 45 Esprimere la stessa query nel calcolo dei domini 46 23