c2 ling interrog
DESCRIPTION
TRANSCRIPT
![Page 1: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/1.jpg)
Basi di DatiBasi di Dati
Linguaggi di interrogazione
![Page 2: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/2.jpg)
Basi di Dati Dove ci troviamo?Basi di Dati – Dove ci troviamo?A) Introduzione
C) Modello Relazionale,
1 2
B) Prog Concettuale (ER) ) ,Algebra relazionale, SQL
1 2 3 4 5 6 7
B) Prog. Concettuale (ER)
1 2 3 4 5 6 7
E) Tecnologia di un DBMSD) Prog. Logica e Normalizzazione
1 2 3 4 5 61 2 3 4
F) Programmazione DB
1 21 2
2 Basi di Dati ‐ Linguaggi interrogazione
![Page 3: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/3.jpg)
ClassificazioneClassificazione
A linguaggi formaliAlgebra relazionaleCalcolo relazionaleProgrammazione logica
Linguaggi programmativig gg p gSQL: Structured Query LanguageQBE: Query By Example
Basi di Dati ‐ Linguaggi interrogazione3
![Page 4: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/4.jpg)
Algebra relazionaleAlgebra relazionale
Definita da Codd (1970)
Molto utile per imparare a formulare query
Insieme minimo di 5 operatori che danno l'intero potere espressivo del linguaggioespressivo del linguaggio
Basi di Dati ‐ Linguaggi interrogazione4
![Page 5: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/5.jpg)
Una visione d'insiemeUna visione d insieme
selezioneselezione
operazioni
unarieproiezioneproiezione
operazioni
binarie
unione unione
differenzadifferenzadifferenzadifferenza
joinjoin
Basi di Dati ‐ Linguaggi interrogazione5
![Page 6: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/6.jpg)
Esempio: gestione degli esami universitariEsempio: gestione degli esami universitari
studentestudente
MATRMATR
123123
NOMENOME
CarloCarlo
CITTA’CITTA’
BolognaBologna
CC‐‐DIPDIP
InfInf
415415
702702
PaolaPaola
AntonioAntonio
gg
TorinoTorino
RomaRoma
InfInf
LogLog702702 AntonioAntonio RomaRoma LogLog
esameesameMATRMATR CODCOD‐‐ DATADATA VOTOVOTO
corsocorsoCODCOD‐‐ TITOLOTITOLO DOCENTEDOCENTEMATRMATR
123123
CODCODCORSOCORSO
11
DATADATA
77‐‐99‐‐0404
VOTOVOTO
3030
CODCODCORSOCORSO
11
TITOLOTITOLO
matematicamatematica
DOCENTEDOCENTE
BarozziBarozzi
123123
702702
22
22
88‐‐11‐‐0505
77‐‐99‐‐0404
2828
2020
22 informaticainformatica MeoMeo
Basi di Dati ‐ Linguaggi interrogazione6
![Page 7: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/7.jpg)
Selezione (σ)Selezione (σ)
SELECT [PredSel] TABELLA
È una tabella (priva di nome) conhschema : lo stesso schema di ‘TABELLA’
istanza :le tuple di ‘TABELLA’ che soddisfano il predicato di selezione ‘P dS l’‘PredSel’
Basi di Dati ‐ Linguaggi interrogazione7
![Page 8: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/8.jpg)
Esempio di Selezione:Esempio di Selezione:
SELECT [NOME='Paola'] STUDENTE
È una tabella (priva di nome) conÈ una tabella (priva di nome) conschema :lo stesso schema di STUDENTElo stesso schema di STUDENTE
istanza : le tuple di STUDENTE che soddisfano il predicato di selezionele tuple di STUDENTE che soddisfano il predicato di selezione [NOME='Paola']
MATRMATR
415415
NOMENOME
PaolaPaola
CITTA’CITTA’
TorinoTorino
CC‐‐DIPDIP
InfInf
Basi di Dati ‐ Linguaggi interrogazione8
415415 PaolaPaola TorinoTorino InfInf
![Page 9: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/9.jpg)
Sintassi del PREDICATO di SELEZIONESintassi del PREDICATO di SELEZIONE
Espressione booleana di predicati semplici
operazioni booleane :operazioni booleane :
•• AND (AND (P1 AND P2P1 AND P2)) comparatore :comparatore :•• AND (AND (P1 AND P2P1 AND P2))
•• OR (OR (P1 OR P2P1 OR P2) ) comparatore :comparatore :
•• =, !=, <, <=, >, >==, !=, <, <=, >, >=•• NOT (NOT (NOTNOT P1P1))
termine :termine :predicati semplici :predicati semplici :
•• TRUE, FALSETRUE, FALSE•• costante, attributocostante, attributo
•• espressione aritmeticaespressione aritmeticaTRUE, FALSE TRUE, FALSE
•• termine comparatoretermine comparatore
t it i
•• espressione aritmetica espressione aritmetica di costanti e attributidi costanti e attributi
Basi di Dati ‐ Linguaggi interrogazione9
terminetermine
![Page 10: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/10.jpg)
Esempio di selezioneEsempio di selezione
SELECT [(CITTA'='Torino') OR ((CITTA'='Roma') AND NOT (C‐DIP='log'))] STUDENTEAND NOT (C DIP log ))] STUDENTE
MATRMATR
123123
NOMENOME
CarloCarlo
CITTA’CITTA’
BolognaBologna
CC‐‐DIPDIP
InfInf123123
415415
CarloCarlo
PaolaPaola
BolognaBologna
TorinoTorino
InfInf
InfInf
702702 AntonioAntonio RomaRoma LogLog
Basi di Dati ‐ Linguaggi interrogazione10
![Page 11: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/11.jpg)
Proiezione (π)Proiezione (π)
PROJECT [attributiProiez] TABELLA
È b ll ( d )È una tabella (priva di nome) conschema : gli attributi ‘attributiProiez’
istanza : la restrizione delle tuple sugli attributi ‘attributiProiez’
Basi di Dati ‐ Linguaggi interrogazione11
![Page 12: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/12.jpg)
Esempio di Proiezione:Esempio di Proiezione:
PROJECT [NOME,C‐DIP] STUDENTEÈ una tabella (priva di nome) conschema :schema : gli attributi NOME e C‐DIP
istanza :istanza : la restrizione delle tuple sugli attributi NOME e C‐DIP
NOMENOME
CarloCarlo
CC‐‐DIPDIP
InfInf
PaolaPaola
AntonioAntonio
InfInf
LogLog
Basi di Dati ‐ Linguaggi interrogazione12
AntonioAntonio LogLog
![Page 13: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/13.jpg)
Proiezione e duplicatiProiezione e duplicati
Nel modello formale la proiezione elimina i duplicati
Nel modello informale (e nei sistemi) la eliminazione dei duplicati va richiesta esplicitamentep p
EsEs.
PROJECT [C‐DIP] STUDENTE CC‐‐DIPDIP
InfInfInfInf
LogLog
Basi di Dati ‐ Linguaggi interrogazione13
![Page 14: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/14.jpg)
Assegnamento (=)Assegnamento (=)
Serve per dare un nome al risultato di una espressione algebrica
Non fa parte delle operazioni algebriche
INFORMATICI =SELECT [C DIP 'Inf'] STUDENTISELECT [C‐DIP= Inf ] STUDENTI
TORINESI =SELECT [CITTA'='Torino'] STUDENTI
Basi di Dati ‐ Linguaggi interrogazione14
![Page 15: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/15.jpg)
Unione (U)Unione (U)
TABELLA1 UNION TABELLA2
Si può fare se TABELLA1 e TABELLA2 sono compatibili (conSi può fare se TABELLA1 e TABELLA2 sono compatibili (con domini ordinatamente dello stesso tipo)
È una tabella (priva di nome) conschema :schema : lo schema di TABELLA1
i tistanza : l’unione delle tuple di TABELLA1 e TABELLA2
Basi di Dati ‐ Linguaggi interrogazione15
![Page 16: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/16.jpg)
Esempio di Unione:Esempio di Unione:
INFORMATICI UNION TORINESI
È una tabella (priva di nome) conÈ una tabella (priva di nome) conschema : lo schema di INFORMATICIlo schema di INFORMATICI
istanza : la unione delle tuple di INFORMATICI e TORINESIla unione delle tuple di INFORMATICI e TORINESI
MATRMATR NOMENOME CITTA’CITTA’ CC‐‐DIPDIP
123123
415415
CarloCarlo
PaolaPaola
BolognaBologna
TorinoTorino
InfInf
InfInf
Basi di Dati ‐ Linguaggi interrogazione16
415415 PaolaPaola TorinoTorino InfInf
![Page 17: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/17.jpg)
Differenza ( )Differenza (‐)
TABELLA1 MINUS TABELLA2
Si ò f TABELLA1 TABELLA2 tibiliSi può fare se TABELLA1 e TABELLA2 sono compatibili
È una tabella (priva di nome) conÈ una tabella (priva di nome) conschema :
lo schema di TABELLA1istanza :
la differenza delle tuple di TABELLA1 e TABELLA2
ATTENZIONE: non e' commutativa!
Basi di Dati ‐ Linguaggi interrogazione17
![Page 18: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/18.jpg)
Esempio di Differenza:Esempio di Differenza:
INFORMATICI MINUS TORINESI
È una tabella (priva di nome) conÈ una tabella (priva di nome) conschema : lo schema di INFORMATICIlo schema di INFORMATICI
istanza : la differenza delle tuple di INFORMATICI e TORINESIla differenza delle tuple di INFORMATICI e TORINESI
MATRMATR NOMENOME CITTA’CITTA’ CC‐‐DIPDIP ATTENZIONEATTENZIONEMATRMATR
123123
NOMENOME
CarloCarlo
CITTACITTA
BolognaBologna
CC DIPDIP
InfInfATTENZIONE: ATTENZIONE: non e' non e' commutativa !commutativa !
Basi di Dati ‐ Linguaggi interrogazione18
commutativa !commutativa !
![Page 19: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/19.jpg)
Join ( )Join ( )
TABELLA1 JOIN [PredJoin] TABELLA2
È una tabella (priva di nome) conschema :schema : la concatenazione degli schemi di TABELLA1 e TABELLA2
istanza:istanza: le tuple ottenute concatenando quelle tuple di TABELLA1 e di TABELLA2 che soddisfano il predicato ‘PredJoin’TABELLA2 che soddisfano il predicato PredJoin
Basi di Dati ‐ Linguaggi interrogazione19
![Page 20: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/20.jpg)
Esempio di JoinEsempio di JoinSTUDENTE JOIN [MATR=MATR] ESAME
È una tabella (priva di nome) conschema :schema :
la concatenazione degli schemi di STUDENTE e ESAME istanza: le tuple ottenute concatenando le tuple di STUDENTE e di ESAME che soddisfano [MATR=MATR]
STUDENTE.STUDENTE.MATRMATR
123123
NOMENOME
CarloCarlo
CITTA’CITTA’
BolognaBologna
CC‐‐DIPDIP
InfInf
ESAME.ESAME.MATRMATR
123123
CODCOD‐‐CORSOCORSO
11
DATADATA
77 99 0404
VOTOVOTO
3030123123
123123
702702
CarloCarlo
CarloCarlo
AntonioAntonio
BolognaBologna
BolognaBologna
RomaRoma
InfInf
InfInf
LogLog
123123
123123
702702
11
22
22
77‐‐99‐‐0404
88‐‐11‐‐0505
77 99 0404
3030
2828
2020
Basi di Dati ‐ Linguaggi interrogazione20
702702 AntonioAntonio RomaRoma LogLog 702702 22 77‐‐99‐‐0404 2020
![Page 21: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/21.jpg)
Sintassi del predicato di joinSintassi del predicato di joinEspressione congiuntiva di predicati semplici:
ATTR1 comp ATTR2
DoveATTR1 appartiene a TAB1ATTR2 appartiene a TAB2comp: =, !=, <, <=, >, >=comp: , ! , <, < , >, >
Attributi omonimi sono resi non ambigui usando la notazione g“puntata”
es: ESAME.MATR, STUDENTE.MATR
Basi di Dati ‐ Linguaggi interrogazione21
![Page 22: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/22.jpg)
Equi join e Join naturaleEqui‐join e Join naturale
EQUI‐JOIN : soli confronti di uguaglianza
JOIN NATURALE : equi‐join di tutti gli attributi omonimi
Es: STUDENTE JOIN ESAME
MATRMATR
123123
NOMENOME
CarloCarlo
CITTA’CITTA’
BolognaBologna
CC‐‐DIPDIP
InfInf
CODCOD‐‐CORSOCORSO
11
DATADATA
77‐‐99‐‐0404
VOTOVOTO
3030123123
123123
702702
CarloCarlo
CarloCarlo
AntonioAntonio
BolognaBologna
BolognaBologna
RomaRoma
InfInf
InfInf
LogLog
11
22
22
77 99 0404
88‐‐11‐‐0505
77‐‐99‐‐0404
3030
2828
2020
Basi di Dati ‐ Linguaggi interrogazione22
702702 AntonioAntonio RomaRoma LogLog 22 77 99 0404 2020
![Page 23: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/23.jpg)
Join naturale di tre tabelleJoin naturale di tre tabelle
Es. STUDENTE JOIN ESAME JOIN CORSO
MATRMATR NOMENOME CITTA’CITTA’ CC‐‐DIPDIP CODCOD‐‐CORSOCORSO
DATADATA VOTOVOTO DOCENTEDOCENTETITOLOTITOLO
123123
123123
CarloCarlo
CarloCarlo
BolognaBologna
BolognaBologna
InfInf
InfInf
11
22
77‐‐99‐‐0404
88‐‐11‐‐0505
3030
2828
barozzibarozzi
meomeo
matemmatem
inforinfor
702702 AntonioAntonio RomaRoma LogLog 33 77‐‐99‐‐0404 2020 meomeoinforinfor
Basi di Dati ‐ Linguaggi interrogazione23
![Page 24: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/24.jpg)
Espressioni algebricheEspressioni algebriche
Concatenazione di più operazioni algebriche
Esprimono interrogazioni in modo formale
Consentono di estrarre informazioni dai dati
Basi di Dati ‐ Linguaggi interrogazione24
![Page 25: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/25.jpg)
Selezione e proiezioneSelezione e proiezione
MATRMATR NOMENOME CITTA’CITTA’ CC‐‐DIPDIPMATRMATR
123123
NOMENOME
CarloCarlo
CITTACITTA
BolognaBologna
CC DIPDIP
InfInf
415415
702702
PaolaPaola
AntonioAntonio
TorinoTorino
RomaRoma
InfInf
LogLog
Quali studenti sono iscritti al diploma di informatica?
NOMENOME
CarloCarlo
PROJECT [NOME] PROJECT [NOME] SELECT [CSELECT [C DIP='Inf']DIP='Inf'] CarloCarlo
PaolaPaola
SELECT [CSELECT [C‐‐DIP= Inf ] DIP= Inf ] STUDENTESTUDENTE
Basi di Dati ‐ Linguaggi interrogazione25
![Page 26: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/26.jpg)
Selezione e proiezioneSelezione e proiezione
MATRMATR NOMENOME CITTA’CITTA’ CC‐‐DIPDIP
123123
415415
CarloCarlo
PaolaPaola
BolognaBologna
TorinoTorino
InfInf
InfInf415415
702702
PaolaPaola
AntonioAntonio
TorinoTorino
RomaRoma
InfInf
LogLog
Quali studenti di Logistica non sono di Milano?
PROJECT [NOME] PROJECT [NOME] SELECT [CSELECT [C‐‐DIP='Log' ANDDIP='Log' AND NOMENOMESELECT [CSELECT [C‐‐DIP= Log AND DIP= Log AND
CITTACITTA’ != 'Milano']’ != 'Milano']STUDENTESTUDENTE
AntonioAntonio
Basi di Dati ‐ Linguaggi interrogazione26
STUDENTESTUDENTE
![Page 27: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/27.jpg)
Esempio: gestione degli esami universitariEsempio: gestione degli esami universitari studentestudente
MATRMATR
123123
NOMENOME
CarloCarlo
CITTA’CITTA’
BolognaBologna
CC‐‐DIPDIP
InfInf
415415
702702
PaolaPaola
AntonioAntonio
TorinoTorino
RomaRoma
InfInf
LogLog
esameesameMATRMATR CODCOD‐‐ DATADATA VOTOVOTO
corsocorsoCODCOD‐‐ TITOLOTITOLO DOCENTEDOCENTE
123123
CORSOCORSO
11 77‐‐99‐‐0404 3030
CORSOCORSO
11 matematicamatematica BarozziBarozzi
123123
702702
22
22
88‐‐11‐‐0505
77‐‐99‐‐0404
2828
2020
22 informaticainformatica MeoMeo
Basi di Dati ‐ Linguaggi interrogazione27
![Page 28: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/28.jpg)
Selezione proiezione e joinSelezione, proiezione e join
Quali studenti hanno preso 30 in matematica?
MATRMATR NOMENOME CITTA’CITTA’ CC‐‐DIPDIP CODCOD‐‐CORSOCORSO
DATADATA VOTOVOTO DOCENTEDOCENTETITOLOTITOLO
123123
123123
CarloCarlo
CarloCarlo
BolognaBologna
BolognaBologna
InfInf
InfInf
11
22
77‐‐99‐‐0404
88‐‐11‐‐0505
3030
2828
barozzibarozzi
meomeo
matemmatem
inforinfor
702702 AntonioAntonio RomaRoma LogLog 33 77‐‐99‐‐0404 2020 meomeoinforinfor
Basi di Dati ‐ Linguaggi interrogazione28
![Page 29: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/29.jpg)
Selezione proiezione e joinSelezione, proiezione e join
Quali studenti hanno preso 30 in matematica?
PROJECT [NOME] PROJECT [NOME] SELECT [VOTO=30 ANDSELECT [VOTO=30 AND[[
TITOLO='matematica']TITOLO='matematica'](STUDENTE JOIN ESAME JOIN CORSO)(STUDENTE JOIN ESAME JOIN CORSO)
NOMENOME
(STUDENTE JOIN ESAME JOIN CORSO)(STUDENTE JOIN ESAME JOIN CORSO)
NOMENOME
CarloCarlo
Basi di Dati ‐ Linguaggi interrogazione29
![Page 30: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/30.jpg)
Equivalenza di espressioniEquivalenza di espressioni
Quali studenti hanno preso 30 in matematica?
PROJECT [NOME] PROJECT [NOME] SELECT [VOTO 30 ANDSELECT [VOTO 30 ANDSELECT [VOTO=30 ANDSELECT [VOTO=30 AND
TITOLO='matematica']TITOLO='matematica'](STUDENTE JOIN ESAME JOIN CORSO)(STUDENTE JOIN ESAME JOIN CORSO)(STUDENTE JOIN ESAME JOIN CORSO)(STUDENTE JOIN ESAME JOIN CORSO)
PROJECT [NOME] PROJECT [NOME] ( STUDENTE JOIN( STUDENTE JOIN(SELECT [VOTO=30] ESAME) JOIN (SELECT [VOTO=30] ESAME) JOIN (SELECT [TITOLO='matematica'] CORSO))(SELECT [TITOLO='matematica'] CORSO))
Basi di Dati ‐ Linguaggi interrogazione30
![Page 31: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/31.jpg)
Selezione proiezione e joinSelezione, proiezione e join
Quali professori hanno esaminato Antonio?
PROJECT [DOCENTE]PROJECT [DOCENTE]SELECT [NOME 'A t i ']SELECT [NOME 'A t i ']SELECT [NOME = 'Antonio']SELECT [NOME = 'Antonio'](STUDENTE JOIN ESAME JOIN CORSO)(STUDENTE JOIN ESAME JOIN CORSO)
DOCENTEDOCENTE
MeoMeo
Basi di Dati ‐ Linguaggi interrogazione31
![Page 32: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/32.jpg)
Equivalenza di espressioniEquivalenza di espressioni
PROJECT [DOCENTE]PROJECT [DOCENTE]PROJECT [DOCENTE]PROJECT [DOCENTE]SELECT [NOME = 'Antonio']SELECT [NOME = 'Antonio'](STUDENTE JOIN ESAME JOIN CORSO)(STUDENTE JOIN ESAME JOIN CORSO)(STUDENTE JOIN ESAME JOIN CORSO)(STUDENTE JOIN ESAME JOIN CORSO)
PROJECT [DOCENTE]PROJECT [DOCENTE]( O SO O( O SO O(CORSO JOIN(CORSO JOIN(ESAME JOIN(ESAME JOINSELECT [NOME 'A i '] STUDENTE))SELECT [NOME 'A i '] STUDENTE))SELECT [NOME = 'Antonio'] STUDENTE))SELECT [NOME = 'Antonio'] STUDENTE))
Basi di Dati ‐ Linguaggi interrogazione32
![Page 33: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/33.jpg)
Espressioni con unione e differenzaEspressioni con unione e differenza
Estrarre la matricola degli studenti romani oppure degli studenti che hanno sostenuto un esame il giorno 8‐1‐05
( PROJECT [MATR]( PROJECT [MATR]( PROJECT [MATR] ( PROJECT [MATR] SELECT [CITTA'='Roma'] STUDENTE)SELECT [CITTA'='Roma'] STUDENTE)UNIONUNIONUNIONUNION( PROJECT [MATR] (STUDENTE JOIN( PROJECT [MATR] (STUDENTE JOIN
SELECT [DATA 8SELECT [DATA 8 11 05] ESAME))05] ESAME))SELECT [DATA=8SELECT [DATA=8‐‐11‐‐05] ESAME))05] ESAME))
MATRMATR MATRMATR MATRMATRMATRMATR
702702
MATRMATR
123123UNIONUNION 702702
123123Basi di Dati ‐ Linguaggi interrogazione33
123123
![Page 34: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/34.jpg)
Espressioni con unione e differenzaEspressioni con unione e differenza
Estrarre la matricola degli studenti che hanno preso almeno un voto superiore a 28 e non sono mai scesi sotto il 25
(PROJECT [MATR](PROJECT [MATR](PROJECT [MATR] (PROJECT [MATR] SELECT [VOTO>=28] ESAME)SELECT [VOTO>=28] ESAME)MINUSMINUSMINUSMINUS(PROJECT [MATR] (PROJECT [MATR] SELECT [VOTO<25] ESAMESELECT [VOTO<25] ESAME))
MATRMATR
702702
MATRMATR
123123MINUSMINUS
MATRMATR
123123
Basi di Dati ‐ Linguaggi interrogazione34
![Page 35: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/35.jpg)
EserciziEsercizi
Riprendere le basi di dati per la gestione del personale e p p g pdegli ordini e esprimere in forma algebrica le interrogazioni:in quali tipi di progetti lavora Giovanni?chi e' il manager di Piero?quale impiegato e' stato assunto per primo?quali ordini ha emesso Paolo?quali prodotti sono ordinati da un cliente di Milano?quali prodotti hanno prezzo inferiore a 10 € e non sono
ti i di ?presenti in nessun ordine?
Basi di Dati ‐ Linguaggi interrogazione35
![Page 36: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/36.jpg)
Esempio : gestione personaleEsempio : gestione personale impiegatoimpiegato
MATRMATR
11
NOMENOME
PieroPiero
DATADATA‐‐ASSASS
11‐‐11‐‐0202
SALARIOSALARIO
1500 1500 €€
MATRMATR‐‐MGRMGR
22
22
33
GiorgioGiorgio
GiovanniGiovanni
11‐‐11‐‐0404
11‐‐77‐‐0303
2000 2000 €€
1000 1000 €€
nullnull
2 2
assegnamentoassegnamentoMATRMATR NUMNUM‐‐PROGPROG PERCPERC
progettoprogettoTITOLOTITOLO TIPOTIPONUMNUM‐‐PROGPROGMATRMATR
11
11
NUMNUM PROGPROG
33
44
PERCPERC
5050
5050
TITOLOTITOLO
IdeaIdea
WideWide
TIPOTIPO
EspritEsprit
EspritEsprit
NUMNUM‐‐PROGPROG
33
4411
22
33
44
33
44
5050
100100
100100
WideWide EspritEsprit44
Basi di Dati ‐ Linguaggi interrogazione36
33 44 100100
![Page 37: C2 Ling Interrog](https://reader034.vdocuments.mx/reader034/viewer/2022051109/549c4043b4795991318b46ef/html5/thumbnails/37.jpg)
Esempio : gestione ordiniEsempio : gestione ordini clienteclienteCODCOD‐‐CLI CLI INDIRIZZOINDIRIZZO PP‐‐IVAIVA
didiordineordineCODCOD‐‐ORDORD CODCOD‐‐CLICLI DATA DATA IMPORTOIMPORTO
CODCOD ORDORD CODCOD PRODPROD QTAQTA dettagliodettaglioCODCOD‐‐ORD ORD CODCOD‐‐PRODPROD QTAQTA dettagliodettaglio
CODCOD‐‐PRODPROD NOME NOME PREZZOPREZZO prodottoprodotto
Basi di Dati ‐ Linguaggi interrogazione37