ALGEBRA RELAZIONALE ALGEBRA RELAZIONALE

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

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

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

Parte III. L algebra relazionale

Lezione 6. Algebra e Calcolo Relazionale

Introduzione all algebra relazionale. Prof. Giovanni Giuffrida

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

Algebra relazionale: operazioni

Modulo 8 I data base Unità 5 Le Query

DataBase Management System - DBMS

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

Instanze inconsistenti. Informatica II Basi di Dati (07/08) Parte 2. Instanze inconsistenti. Vincoli di integrità

Basi di dati (database)

ALGEBRA RELAZIONALE. L algebra relazionale

RELAZIONI E BASI DI DATI

L algebra relazionale

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

3 Algebra Relazionale

L algebra relazionale

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

Normalizzazione Progettazione di basi di dati Normalizzazione Normalizzazione Normalizzazione e modello ER Esempio Esame Superato

Progettazione di basi di dati D B M G

Basi di dati. Modello relazionale dei dati. Prof.ssa Rosalba Giugno

Operazioni Relazionali. Prof. Francesco Accarino IIS Altiero Spinelli Via Leopardi 132 Sesto san giovanni

Esercitazione 1 Algebra relazionale

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

Progettazione di basi di dati

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

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

Linguaggi di interrogazione per basi di dati relazionali

Structured Query Language

Basi di dati 8 novembre 2010 Prova parziale Compito A

Il modello relazionale

Corso di Informatica

Algebra Relazionale e Calcolo Relazionale. L. Vigliano

SQL QUERY: Le interrogazioni del database

BASI DATI: algebra relazionale

Modello Relazionale. Architettura a tre livelli di un DBMS

Il modello relazionale dei dati. modello relazionale 1

SQL - Sottointerrogazioni correlate

Monday, January 24, 2011 SQL

Basi di dati I 8 luglio 2016 Esame Compito A Tempo a disposizione: un ora e trenta minuti.

Equivalenza di Espressioni Algebriche

La normalizzazione. In fase di progettazione occorre verificare che ogni tabella abbia una chiave primaria.

LA NORMALIZZAZIONE. Prima parte

Basi di Dati: Corso di laboratorio

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

Basi di Dati. Esercitazione Algebra Relazionale. 16 maggio 2008

PIL Percorsi di Inserimento Lavorativo

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

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

<Nome Tabella>.<attributo>

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

INFORMATICA SANITARIA Domande ed Esercizi di Preparazione all Esame (Parti 5-7)

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"

Ordo et connexio rerum idem est ac ordo et connexio idearum

Algebra relazionale e interrogazioni

Il modello Relazionale.

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

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

Vincoli di integrità Normalizzazione

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

Tabelle esempio: Impiegato/Dipartimento

Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2010/2011. Basi di dati

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL: fondamenti. Il linguaggio SQL

Modello relazionale. Basi di dati relazionali. Modello relazionale. Il modello relazionale. Schema di una relazione. Modello relazionale

Basi di dati 8 settembre 2015 Esame Compito A Tempo a disposizione: due ore. Libri chiusi.

I modelli logici dei dati

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

Università di Roma La Sapienza Laurea in Ingegneria Informatica. Basi di Dati. Anno Accademico 2003/2004 Canale M-Z.

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

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

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

Informatica B. Introduzione alle Basi di Dati e ai DBMS

Il linguaggio SQL: DML di base. Versione elettronica: 04.2.SQL.DMLbase.pdf

Basi di Dati prof. Letizia Tanca

Forme normali. Le forme normali sono di solito definite sul modello relazionale, ma hanno senso in altri contesti, ad esempio il modello E-R

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

ed SQL 10 Novembre 2009

CALCOLO DEL COSTO DI JOIN. costo di join 1

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

Memorizzazione di una relazione

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

Il linguaggio SQL: DML di base

Basi di dati Maurizio Lenzerini Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di Roma La Sapienza

Basi di da' Il modello relazionale. Anna Monreale Università di Pisa

Informatica Industriale Modello informatico: Applicativo Modello relazionale dei dati

Linguaggio SQL: fondamenti D B M G

Informatica per Statistica Riassunto della lezione del 06/12/2013

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

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: Elementi

Algebra Relazionale. algebra relazionale

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

Il modello relazionale. Relazione: tre accezioni. Relazione matematica. Parte II. Il modello relazionale

Informatica B. Introduzione alle Basi di Dati e ai DBMS

Operazioni sui database

Sommario. Introduzione... 13

Interrogazioni nidificate

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

Transcript:

ALGEBRA RELAZIONALE Ridenominazione Unione Differenza Selezione Proiezione Prodotto Join θ-join Join naturale Semijoin Join esterno Valori nulli Interrogazioni / espressioni relazionali Esercizi cesarini-bdsi algebra rel 1 ALGEBRA RELAZIONALE operatori che lavorano su una o due relazioni e restituiscono una relazione il risultato può essere usato come operando per un altro operatore espressione dell algebra relazionale: specifica l applicazione sequenziale di più operatori operatori primitivi: ridenominazione, unione, differenza, selezione, proiezione, prodotto operatori derivati: intersezione, divisione, join cesarini-bdsi algebra rel 2 1

data R di schema R(A1, Ak) e un insieme di attributi B1 Bk l operatore di ridenominazione RIDENOMINAZIONE ρ B1 Bk A1 Ak (R) produce una relazione di schema R(B1 Bk) che contiene una tupla t per ogni t contenuta nella relazione originaria in modo tale che t [Bi] = t[ai] i ρ matr corso voto stud corso voto (ESAME) stud corso voto matr corso voto 1111 SOP 30 1111 SOP 30 2222 SOP 24 2222 SOP 24 1111 BDSI 28 1111 BDSI 28 cesarini-bdsi algebra rel 3 UNIONE r s r, s relazioni definite sugli stessi attributi (dello stesso tipo) R(A1, An) S(A1,... An) il risultato è una relazione definita sugli stessi attributi Z(A1, An) che contiene le tuple che sono in r o in s z = {t t r t s} r = nome cdl s = nome cdl Rossi inf Verdi bio Verdi bio Rossi bio z = nome cdl Rossi inf Verdi bio Rossi bio cesarini-bdsi algebra rel 4 2

DIFFERENZA r - s r, s relazioni definite sugli stessi attributi (dello stesso tipo) R(A1, An) S(A1, An) il risultato è una relazione definita sugli stessi attributi Z(A1, An) che contiene le tuple che sono in r e non in s z = {t t r t s} r = nome cdl s = nome cdl Rossi inf Verdi bio Verdi bio Rossi bio z = nome Rossi cdl inf cesarini-bdsi algebra rel 5 SELEZIONE σ F r r definita sugli attributi A1, An R(A1, An) F formula proposizionale: Ai θ Aj θ {<,, =,, >, } è una formula Ai θ c c dom(ai) è una formula se α e β sono formule allora α β, α β, α sono formule il risultato è una relazione definita sugli stessi attributi Z(A1, An) che contiene le tuple che soddisfano F z = {t t r F(t)} r = nome cdl σ cdl= geo r = nome cdl Rossi inf Verdi bio σ cdl= inf cdl= bio r = nome cdl Rossi inf Verdi bio cesarini-bdsi algebra rel 6 3

SELEZIONE esempi STUD = nome cognome città-res città-nasc età Marco Bianchi Prato Empoli 30 Luca Bianchi Empoli Empoli 25 Pietro Rossi Firenze Napoli 25 Pietro Rossi Firenze Roma 26 Pietro Piccini Firenze Firenze 28 σ età<30 σ età>30 σ città-res=città-nasc σ città-res città-nasc età>25 cesarini-bdsi algebra rel 7 SELEZIONE esempi ELENCO (nome, cognome, fisc, città_nasc, anno_nasc, città_res, ind) σ città_nasc=città_res anno_nasc>1960 ELENCO ESAME (stud, corso, voto, data) σ corso= BDSI voto 27 ESAME VOLO (partenza, arrivo, ora_part, ora_arrivo) σ partenza= Peretola VOLO cesarini-bdsi algebra rel 8 4

PROIEZIONE π Y r r relazione definita su A1, An R(A1, An) Y {A1, An} Y = {A1, Am} m n il risultato è una relazione definita su Y Z(A1, Am) che contiene le tuple di r proiettate su A1, Am z = {t[a1 Am] t r} r = nome cdl s = nome cdl Rossi inf Verdi bio Verdi bio Rossi bio π cdl r = cdl π cdl s = cdl inf bio bio cesarini-bdsi algebra rel 9 PRODOTTO r s r definita su A1, An s definita su B1, Bm R(A1, An) S(B1, Bm) Ai Bj il risultato è una relazione definita su A1, An, B1, Bm Z(A1, An, B1, Bm) le cui tuple sono ottenute concatenando ogni tupla di r con tutte le tuple di s z = {t t=u v u r v s} operatore concatenazione r = matr nome s = stud corso voto 1111 Rossi 1111 SOP 30 2222 Verdi 2222 SOP 24 1111 BDSI 28 r s = matr nome stud corso voto 1111 Rossi 1111 SOP 30 1111 Rossi 2222 SOP 24 1111 Rossi 1111 BDSI 28 2222 Verdi 1111 SOP 30 2222 Verdi 2222 SOP 24 2222 Verdi 1111 BDSI 28 cesarini-bdsi algebra rel 10 5

OPERATORI derivati INTERSEZIONE r s r,s relazioni definite sugli stessi attributi R(A1, An) S(A1, An) il risultato è una relazione definita sugli stessi attributi Z(A1, An) che contiene le tuple che sono sia in r che in s z = {t t r t s} r s r - (r - s) cesarini-bdsi algebra rel 11 DIVISIONE r s r definita su X, s definita su Y con Y X R(B1, Bn, A1, Am) S(A1, Am) il risultato è una relazione definita su B1 Bn Z(B1, Bn) che contiene le tuple z = {w u s w u r} = {w {w} s r} z è il massimo sottoinsieme della proiezione di r su che il suo prodotto con s è contenuto in r B1 Bn tale cesarini-bdsi algebra rel 12 6

θ - JOIN r Ai θ Bj s θ operatore di confronto r definita su A1 An, s su B1 Bm R(A1, An) S(B1, Bm) Ai Bj il risultato è una relazione definita su A1 An B1 Bm Z(A1, An, B1, Bm) che contiene le tuple z = {u v u r, v s, u[ai] θ v[bj]} se θ è l operatore = si dice equijoin r Ai θ Bj s = σ Ai θ Bj (r s) cesarini-bdsi algebra rel 13 θ - JOIN esempio r = matr nome s = stud corso voto 1111 Rossi 1111 SOP 30 2222 Verdi 2222 SOP 24 3333 Bianchi 1111 BDSI 28 r matr=stud s = matr nome stud corso voto 1111 Rossi 1111 SOP 30 1111 Rossi 1111 BDSI 28 2222 Verdi 2222 SOP 24 cesarini-bdsi algebra rel 14 7

JOIN NATURALE r s r, s definite su insiemi di attributi non disgiunti R(A1, Ak, An) S(A1, Ak, B1, Bm) il risultato è una relazione definita su A1, An, B1, Bm Z(A1, An, B1, Bm) che contiene le tuple z = {t t[a1 An] r t[a1 Ak B1 Bm] s} r s = π A1 An B1 Bm σ R.A1=S.A1 R.Ak=S.Ak (r s) Più formalmente r s = π A1 An B1 Bm σ A1=A1 Ak=Ak (r (ρ A1 Ak A1 Ak (s)) cesarini-bdsi algebra rel 15 JOIN NATURALE bis r s r, s relazioni definite sugli insiemi di attributi X e Y R(X) S(Y) il risultato è una relazione definita su X Y Z(X Y) che contiene le tuple z = {t t[x] r t[y] s} se X e Y sono disgiunti, si ha la definizione del prodotto se X e Y coincidono si ha la definizione dell intersezione se X e Y hanno alcuni attributi in comune, si ha la definizione tradizionale del join naturale cesarini-bdsi algebra rel 16 8

JOIN NATURALE esempi r = matr nome s = matr corso voto 1111 Rossi 1111 SOP 30 2222 Verdi 2222 SOP 24 3333 Bianchi 1111 BDSI 28 r s = matr nome corso voto 1111 Rossi SOP 30 1111 Rossi BDSI 28 2222 Verdi SOP 24 cesarini-bdsi algebra rel 17 JOIN NATURALE esempi STUD(stud, corso, progetto) ELAB(progetto, tutor) STUD = stud corso progetto ELAB = progetto tutor Rossi Basidati BD1 BD1 Pinco Bianchi Basidati BD1 BD2 Pallino Verdi Basidati BD2 R3 Pippo Neri Reti R3 STUD ELAB = stud corso progetto tutor Rossi Basidati BD1 Pinco Bianchi Basidati BD1 Pinco Verdi Basidati BD2 Pallino Neri Reti R3 Pippo JOIN completo: ogni tupla dei due operandi contribuisce al risultato cesarini-bdsi algebra rel 18 9

JOIN NATURALE esempi STUD(stud, corso, progetto) ELAB(progetto, tutor) STUD = stud corso progetto ELAB = progetto tutor Rossi Basidati BD1 BD1 Pinco Bianchi Basidati BD1 BD2 Pallino Verdi Basidati BD2 R3 Pippo Neri Reti R3 Rossi Reti R4 STUD ELAB = stud corso progetto tutor Rossi Basidati BD1 Pinco Bianchi Basidati BD1 Pinco Verdi Basidati BD2 Pallino Neri Reti R3 Pippo JOIN non completo: la tupla [Rossi Reti R4] non contribuisce al risultato tupla dangling (dondolante) cesarini-bdsi algebra rel 19 JOIN NATURALE esempi STUD(stud, corso, progetto) ELAB(progetto, tutor) STUD = stud corso progetto ELAB = progetto tutor Rossi Basidati BD1 R1 Pinco Bianchi Basidati BD1 P2 Pallino Verdi Basidati BD2 Neri Reti R3 Rossi Reti R4 STUD ELAB = stud corso progetto tutor Il risultato del join è una relazione vuota cesarini-bdsi algebra rel 20 10

JOIN NATURALE esempi STUD(stud, corso, progetto) ELAB(progetto, tutor) STUD = stud corso progetto ELAB = progetto tutor Rossi Basidati BD1 BD1 Qui Bianchi Basidati BD1 BD1 Quo BD1 Qua STUD ELAB = stud corso progetto tutor Rossi Basidati BD1 Qui Rossi Basidati BD1 Quo Rossi Basidati BD1 Qua Bianchi Basidati BD1 Qui Bianchi Basidati BD1 Quo Bianchi Basidati BD1 Qua ogni tupla di STUD è stata concatenata con ogni tupla di ELAB cesarini-bdsi algebra rel 21 JOIN NATURALE esempi STUD(stud, corso, progetto) ELAB(progetto, tutor) STUD = stud corso progetto ELAB = progetto tutor Rossi Basidati BD1 BD1 Pinco Bianchi Basidati BD1 BD2 Pallino Verdi Basidati BD2 R3 Pippo Neri Reti R3 Rossi Reti R4 poiché ELAB.progetto è chiave, ogni tupla di STUD contribuisce al risultato al massimo una volta. [Rossi Reti R4] non contribuisce. card (STUD ELAB) card (STUD) cesarini-bdsi algebra rel 22 11

JOIN NATURALE esempi STUD(stud, corso, progetto) ELAB(progetto, tutor) STUD.progetto ref ELAB.progetto STUD = stud corso progetto ELAB = progetto tutor Rossi Basidati BD1 BD1 Pinco Bianchi Basidati BD1 BD2 Pallino Verdi Basidati BD2 R3 Pippo Neri Reti R3 R4 Tommy ogni tupla di STUD contribuisce al risultato una volta. card (STUD ELAB) = card (STUD) cesarini-bdsi algebra rel 23 JOIN NATURALE cardinalità R1(X1) R2 (X2) k1 = card ( r1 ) k2 = card ( r2 ) k = card ( r1 r2) 0 k (k1 k2) join completo: k max(k1, k2) se (X1 X2) chiave(r2) allora k k1 se (X1 X2) chiave(r2) e esiste un vincolo di integrità referenziale fra gli attributi X1 X2 di R1 e la chiave di R2 allora k = k1 cesarini-bdsi algebra rel 24 12

SEMIJOIN r s r, s definite su insiemi di attributi non disgiunti R(A1, Ak, An) S(A1, Ak, B1, Bm) il risultato è una relazione definita su A1, An Z(A1, Ak, An) che contiene le tuple z = {t r t[a1 Ak] π A1 Ak (s)} r s = π A1 An (r s) FORN = codf nomef città ORD = codf codart descr quantità 1 Rossi Prato 1 a lapis 5 2 Verdi Empoli 2 a lapis 6 3 Bianchi Arezzo 1 b penna 10 1 c mina 2 FORN ORD restituisce i fornitori a cui è stato ordinato qualcosa cesarini-bdsi algebra rel 25 JOIN ESTERNO r full s r, s definite su insiemi di attributi non disgiunti R(A1, Ak, An) S(A1, Ak, B1, Bm) il risultato è una relazione definita su A1, An, B1, Bm Z(A1, An, B1, Bm) le cui tuple sono z = r s ( (r - π A1 An (r s) {B1=null, Bm=null}) ({Ak+1=null, An=null} (s - π A1 Ak B1 Bm (r s))) le tuple che non contribuiscono al join naturale vengono unite con tuple nulle cesarini-bdsi algebra rel 26 13

JOIN ESTERNO esempi STUD = stud corso progetto ELAB = progetto tutor Rossi Basidati BD1 BD1 Pinco Bianchi Basidati BD1 BD2 Pallino Rossi Reti R4 R3 Pippo Verdi Basidati BD2 STUD Full ELAB = stud corso progetto tutor Rossi Basidati BD1 Pinco Bianchi Basidati BD1 Pinco Verdi Basidati BD2 Pallino Rossi Reti R4 NULL NULL NULL R3 Pippo STUD left ELAB = stud corso progetto tutor Rossi Basidati BD1 Pinco Bianchi Basidati BD1 Pinco Verdi Basidati BD2 Pallino Rossi Reti R4 NULL cesarini-bdsi algebra rel 27 QUERY / VALORI NULLI LAUREA = stud data voto Rossi 10/4/01 106 Verdi 10/4/01 NULL Bianchi 15/10/01 98 σ voto>100 LAUREA come viene considerato lo studente Verdi di cui non conosciamo il voto? cesarini-bdsi algebra rel 28 14

LOGICA A TRE VALORI NULL valore sconosciuto,? logica a tre valori: vero, falso, sconosciuto TABELLE VERITA AND vero falso? OR vero falso? vero v f? vero v v v falso f f f falso v f??? f?? v?? X NOT X v f f v?? cesarini-bdsi algebra rel 29 LOGICA A TRE VALORI difficoltà di gestione di risultati certi e risultati probabi li problemi nella valutazione di espressioni LAUREA = stud data voto Rossi 10/4/01 106 Verdi 10/4/01 NULL Bianchi 15/10/01 98 σ voto>100 LAUREA σ LAUREA voto 100 Rossi OK Bianchi OK Verdi? Verdi? Rossi OK Bianchi OK Verdi? cesarini-bdsi algebra rel 30 15

VALORI NULLI / ALGEBRA RELAZIONALE tradizionale logica a due valori un valore nullo rende falso ogni predicato atomico Aθ B, A θ cost introduzione di nuovi predicati A is NULL A is NOT NULL σ voto >100 LAUREA σ voto 100 LAUREA σ voto IS NULL LAUREA il risultato è la stessa relazione di partenza valori nulli / uguaglianza NULL = NULL? NULL NULL? cesarini-bdsi algebra rel 31 Applicazione ripetuta degli operatori Gli operatori ρ,, -, σ, π, θ, si applicano a tabelle e danno come risultato ancora una tabella E possibile quindi applicare un operatore al risultato prodotto da un altro Molte interrogazioni possono essere risolte con una opportuna applicazione degli operatori visti Esempi FORNITORE(codice, nome, indirizzo) ORDINE (num, fornitore, data) l elenco dei codici dei fornitori a cui è stato mandato un ordine dopo il 10/1/00 π fornitore (σ data>10/1/00 ORDINE) Il codice e il nome dei fornitori a cui è stato mandato un ordine dopo il 10/1/00 π codice nome (σ data>10/1/00 (ORDINE fornitore=codice FORNITORE)) π codice nome (FORNITORE codice=fornitore (σ data>10/1/00 ORDINE)) cesarini-bdsi algebra rel 32 16

ESERCIZI Società a livello nazionale che gestisce più punti vendita DISCO (disco_id, titolo, casa_disc, genere) AUTORE (autore_id, nome, nazionalità) COMPOSTO_DA (disco_id, autore_id) NEGOZIO (p_iva, nome, indirizzo, città) VENDITA (p_iva, disco_id, copie) In tutti gli esempi abbiamo solo il join nat. perché i nomi degli attributi sono uguali, se fossero diversi ci vorrebbe un equijoin Nome degli autori di nazionalità russa π nome σ naz= russa AUTORE P_iva dei negozi che del disco di codice 53 hanno venduto più di 10 copie π p_iva σ d_id=53 copie>10 VENDITA cesarini-bdsi algebra rel 33 ESERCIZI DISCO (disco_id, titolo, casa_disc, genere) AUTORE (autore_id, nome, nazionalità) COMPOSTO_DA (disco_id, autore_id) NEGOZIO (p_iva, nome, indirizzo, città) VENDITA (p_iva, disco_id, copie) Nome, indirizzo e città dei negozi che del disco di codice 53 hanno venduto più di 10 copie π nome ind città (NEGOZIO σ d_id=53 copie>10 VENDITA) Nome, indirizzo e città dei negozi che hanno venduto più di 10 copie di un disco di titolo Forever π nome ind città ( NEGOZIO (π p_iva (σ tit= Forever copie>10 DISCO VENDITA))) cesarini-bdsi algebra rel 34 17

ESERCIZI DISCO (disco_id, titolo, casa_disc, genere) AUTORE (autore_id, nome, nazionalità) COMPOSTO_DA (disco_id, autore_id) NEGOZIO (p_iva, nome, indirizzo, città) VENDITA (p_iva, disco_id, copie) P_iva dei negozi che hanno venduto più di 10 copie di un qualche disco π p_iva σ copie>10 VENDITA P_iva dei negozi che di ogni disco che avevano in negozio hanno venduto più di 10 copie P_iva dei negozi che di nessun disco hanno venduto 10 copie o meno (π p_iva VENDITA) ( π p_iva σ copie 10 VENDITA) cesarini-bdsi algebra rel 35 ESERCIZI DISCO (disco_id, titolo, casa_disc, genere) AUTORE (autore_id, nome, nazionalità) COMPOSTO_DA (disco_id, autore_id) NEGOZIO (p_iva, nome, indirizzo, città) VENDITA (p_iva, disco_id, copie) I titoli dei dischi di cui almeno un autore è italiano π titolo ( DISCO ( COMP_DA (σ naz= it AUTORE))) I codici dei dischi di cui almeno un autore è non italiano π d_id ( COMP_DA (σ naz it AUTORE)) I codici dei dischi di cui tutti gli autori sono italiani (π d_id COMP_DA) (π d_id ( COMP_DA (σ naz it AUTORE))) cesarini-bdsi algebra rel 36 18

ESERCIZI DISCO (disco_id, titolo, casa_disc, genere) AUTORE (autore_id, nome, nazionalità) COMPOSTO_DA (disco_id, autore_id) NEGOZIO (p_iva, nome, indirizzo, città) VENDITA (p_iva, disco_id, copie) Considerando VENDITA si vuole il valore massimo che compare nella colonna copie π copie (VENDITA) - π copie (VENDITA copie<xcopie ρ Xp_iva, Xdisco_id, Xcopie p_iva, disco_id, copie VENDITA) cesarini-bdsi algebra rel 37 ESERCIZI DISCO (disco_id, titolo, casa_disc, genere) AUTORE (autore_id, nome, nazionalità) COMPOSTO_DA (disco_id, autore_id) NEGOZIO (p_iva, nome, indirizzo, città) VENDITA (p_iva, disco_id, copie) L elenco di tutti i negozi insieme ai dischi venduti NEGOZIO VENDITA L elenco di tutti i dischi insieme alle informazioni che riguardano i loro autori DISCO COMP_DA AUTORE cesarini-bdsi algebra rel 38 19