00:00:00
ben ritrovati in questo video
00:00:03
vedremo le operazioni dell'algebra
00:00:06
relazionale ma vediamo innanzitutto a
00:00:10
cosa serve l'algebra relazionale
00:00:14
supponiamo di avere una base di dati di
00:00:17
questo tipo che descrive un azienda in
00:00:22
questa base di dati ci sono diverse
00:00:24
tabelle una tabella contiene vari dati
00:00:28
riguardanti i più impiegati un'altra si
00:00:31
occupa dei dipartimenti
00:00:34
poi abbiamo alcuni dati riguardanti le
00:00:36
sedi dati sui progetti e su quanto gli
00:00:42
impiegati abbiano lavorato da alcuni
00:00:46
progetti e infine le persone a carico di
00:00:50
ciascun impiegato in questa base i dati
00:00:54
e ben costruita secondo le regole che
00:00:57
derivano dalla progettazione concettuale
00:00:59
dalla proprietà zione logica quindi non
00:01:02
c'è ridondanza dei dati
00:01:05
i dati sono ripetuti solamente quando
00:01:10
necessario e come vedete ho indicato
00:01:13
alcune colonne alcune tabelle con
00:01:17
diversi colori e il significa altre
00:01:20
questo è quando c'è una linea singola
00:01:24
questo è il dato di riferimento
00:01:29
quando c'è una linea doppia questa è una
00:01:31
chiave esterna che fa riferimento al
00:01:34
dato dello stesso colore con linea
00:01:36
singola quindi abbiamo questo ssn che è
00:01:41
un codice che identifica ciascun
00:01:44
impiegato
00:01:46
se troviamo colonne con una doppia linea
00:01:49
dello stesso colore quindi rossa
00:01:52
vuol dire che in quella colonna sono
00:01:53
contenuti i dati che fanno riferimento
00:01:56
al ssn e ogni volta che troviamo una
00:02:01
doppia linea rossa
00:02:02
sappiamo che in quella colonna ci sono i
00:02:06
codici che identificano gli impiegati e
00:02:09
così via per tutti gli altri gli altri
00:02:11
colori che identificano i vari
00:02:13
collegamenti tra i dati delle tabelle
00:02:17
avendo a disposizione questa base di
00:02:20
dati
00:02:20
potremmo voler rispondere ad alcune
00:02:22
domande ad esempio quali sono gli
00:02:27
impiegati che hanno una persona a carico
00:02:31
magari ci interessa per ragioni fiscali
00:02:34
potremmo voler sapere qual è il progetto
00:02:38
a cui sono state dedicate più ore di
00:02:40
lavoro o magari vogliamo semplicemente
00:02:43
sapere in media se vengono pagati più
00:02:47
gli uomini oppure le donne per
00:02:50
rispondere a tutte queste domande
00:02:52
dobbiamo interrogare la base di dati
00:02:55
cioè dobbiamo manipolare le tabelle e i
00:03:00
dati contenuti nelle tabelle per
00:03:03
ottenere una risposta l'algebra aver
00:03:07
relazionale ci permette di manipolare
00:03:10
queste tabelle con alcune operazioni
00:03:13
sono operazioni molto formali molto
00:03:20
simili a operazioni matematiche quello
00:03:25
che vedremo noi sarà solamente la base
00:03:30
dell'algebra relazionale vedremo
00:03:31
essenzialmente tre operazioni
00:03:33
vedremo la selezione la proiezione e il
00:03:36
joint per iniziare diamo alcune
00:03:41
definizioni innanzitutto ogni tabella
00:03:47
della base di dati verrà chiamata
00:03:50
relazione per questo si chiama algebra
00:03:54
relazionale perché l'algebra delle
00:03:56
tabelle delle relazioni ogni operazione
00:04:00
della libra relazionale parte da una o
00:04:05
più relazioni da vedremo che sono lente
00:04:09
il joint prende in considerazione due
00:04:12
relazioni mentre la selezione la
00:04:14
proiezione partono sempre da una sola
00:04:17
relazione era così importante e che ci
00:04:20
permetterà poi di costruire espressioni
00:04:23
più complesse
00:04:24
e che il risultato di ogni operazione è
00:04:27
una nuova relazione
00:04:32
facciamo subito un esempio per
00:04:34
introdurre la proiezione
00:04:37
supponiamo che il dirigente di questa
00:04:40
azienda voglia inviare ad ogni impiegato
00:04:44
all'indirizzo di ogni impiegato una
00:04:46
lettera ebbene per far questo è
00:04:50
necessario conoscere alcuni dati degli
00:04:52
impiegati nel tipicamente l'indirizzo a
00:04:55
cui inviare la comunicazione
00:04:57
questi dati sono contenuti nella tabella
00:04:59
impiegato ma non ci interessano davvero
00:05:02
tutti i dati degli impiegati ad esempio
00:05:05
non importa assolutamente la loro data
00:05:07
di nascita o il loro stipendio
00:05:10
quindi quello che vorremmo fare è
00:05:12
estrarre da questa tabella solamente i
00:05:17
dati che ci servono
00:05:19
in questo caso solo le colonne che
00:05:21
contengono i dati che ci servono
00:05:23
la proiezione fa proprio questo
00:05:26
parte da una relazione e restituisce
00:05:31
come risultato
00:05:33
un'altra relazione selezionando solo
00:05:37
alcune colonne le colonne che indichiamo
00:05:42
noi quindi poniamo che da questa
00:05:46
relazione impiegato noi vogliamo
00:05:48
estrarre solamente le colonne de il nome
00:05:51
di battesimo del cognome e
00:05:54
dell'indirizzo
00:05:59
in altre parole potremmo esprimere la
00:06:03
nostra richiesta
00:06:04
con questa frase trovare il nome il
00:06:06
cognome ed indirizzo degli impiegati
00:06:11
vediamo come scrivere l'espressione
00:06:14
dell'algebra relazionale con
00:06:16
l'operazione della proiezione che ci
00:06:19
permette di risolvere questa richiesta
00:06:23
innanzitutto la proiezione si indica con
00:06:25
la lettera p greco dopo di che lascio un
00:06:31
pochino di spazio perché il ragionamento
00:06:34
che voglio fare questo
00:06:36
mi interessa subito indicare a quale
00:06:41
relazione applico questa operazione
00:06:44
applico questa operazione alla relazione
00:06:47
impiegato e ciò che manca è indicare
00:06:55
quali sono le colonne che voglio
00:06:57
mantenere quali sono le colonne che
00:07:00
devono formare il risultato la relazione
00:07:02
che risulta da questa espressione molto
00:07:08
semplicemente qui così indichiamo
00:07:13
esattamente i nomi delle colonne in cui
00:07:17
sono contenuti i nomi i cognomi
00:07:19
indirizzi degli impiegati che erano
00:07:22
quindi nomi bat cognome e indirizzo
00:07:27
separiamo ciascuna colonna con una
00:07:30
virgola e abbiamo terminato questa è
00:07:34
l'operazione della proiezione applicata
00:07:37
sulla relazione impiegato in cui
00:07:40
estraiamo solo tre colonne dalla tabella
00:07:46
ora l'operazione che abbiamo appena
00:07:48
scritto è la soluzione nel linguaggio
00:07:52
della lebbra relazionale per risolvere
00:07:56
la nostra richiesta
00:07:57
tuttavia come abbiamo detto prima
00:07:59
dobbiamo ricordarci che ogni operazione
00:08:03
dell'algebra relazionale restituisce
00:08:06
come risultato una nuova relazione
00:08:09
quindi praticamente il risultato di
00:08:12
questa operazione è una nuova relazione
00:08:15
una nuova tabella e questa tabella è
00:08:18
formata solamente dalle colonne del nome
00:08:22
del cognome dell'indirizzo ma mantiene
00:08:27
tutte le righe della tabella di partenza
00:08:31
quindi questa operazione la proiezione
00:08:34
ci permette di estrarre alcune colonne
00:08:37
che ci interessano
00:08:39
mantenendo però tutte le righe della
00:08:42
tabella quindi abbiamo mantenuto i dati
00:08:45
dei
00:08:47
tutti impiegati ma estraendo solo quelli
00:08:52
che ci interessavano non abbiamo escluso
00:08:55
nessun impiegato ma abbiamo ottenuto
00:08:58
solo i dati interessanti
00:09:03
la selezione è invece un'operazione un
00:09:09
po opposta alla proiezione perché la
00:09:12
selezione ci permette a partire da una
00:09:16
relazione di mantenere tutte le colonne
00:09:19
di questa relazione
00:09:22
ma di estrarre solo alcune righe ad
00:09:27
esempio
00:09:28
poniamo che tra tutti i progetti
00:09:31
noi vogliamo avere i dati solo di quei
00:09:37
progetti che sono stati sviluppati nella
00:09:39
sede di huston quindi a partire dalla
00:09:42
tabella progetto
00:09:44
noi non vogliamo veri dati di tutti
00:09:46
questi progetti ma solamente di quelli
00:09:49
sviluppati nella sede di huston quindi
00:09:52
il progetto numero 3 e il progetto
00:09:55
numero 20
00:09:58
a questo serve la selezione la nostra
00:10:03
richiesta quindi è quella di trovare i
00:10:05
progetti sviluppati nella sede di hughes
00:10:08
a questo proposito dobbiamo utilizzare
00:10:12
come abbiamo detto la selezione che
00:10:15
viene indicata con la lettera greca
00:10:17
sigma minuscola come prima lascio un
00:10:23
pochino di spazio e dopo vedremo la
00:10:28
condizione di selezione che dobbiamo
00:10:30
scrivere ma penso sia
00:10:33
molto più semplice scrivere innanzitutto
00:10:36
la relazione su cui applichiamo la
00:10:41
selezione quindi dobbiamo scrivere
00:10:44
semplicemente il nome d'arte bella nello
00:10:53
spazio lasciato dobbiamo invece indicare
00:10:56
la condizione di selezione
00:10:59
torniamo quindi un attimo la base di
00:11:00
dati la condizione di selezione si
00:11:05
esprime scrivendo il nome della colonna
00:11:08
che contiene i dati che ci permettono di
00:11:15
trovare le righe che ci interessano ad
00:11:19
esempio noi volevamo trovare i progetti
00:11:23
che venivano sviluppati solo nella sede
00:11:26
di huston quindi naturalmente quello che
00:11:31
faremo noi è andare a consultare la
00:11:33
colonna sede p e mantenere solo quelle
00:11:39
righe in cui il valore di questa colonna
00:11:43
e huston la condizione di selezione
00:11:48
quindi si scrive molto semplicemente
00:11:50
scrivendo sede p quale houston
00:11:54
il significato è la cella della colonna
00:12:00
sede p deve contenere il valore giusto
00:12:04
se questo è vero allora la riga viene
00:12:08
mantenuta nel risultato dell'operazione
00:12:11
altrimenti in tutti gli altri casi ad
00:12:13
esempio se il valore di questa cella e
00:12:16
belair sugarland
00:12:18
stafford nel caso in cui non sia huston
00:12:21
l'intera lega viene scartata quindi la
00:12:27
condizione di selezione sdp dei houston
00:12:30
e abbiamo terminato di scrivere
00:12:35
l'operazione di selezione e quindi
00:12:37
l'intera espressione
00:12:42
questo è il risultato pratico la
00:12:46
relazione risultante dall'operazione di
00:12:49
selezione come vedete vengono mantenute
00:12:52
tutte le colonne della relazione
00:12:56
progetto ma vengono selezionati solo
00:13:00
alcune righe quelle in cui il valore
00:13:03
disse de pin e huston prima di passare
00:13:10
al join l'operazione che ci permetterà
00:13:14
di unire i dati di più tabelle vediamo
00:13:18
come possiamo combinare le due
00:13:19
operazioni appena viste la proiezione e
00:13:21
la selezione in un'unica espressione ad
00:13:26
esempio per mantenere una delle
00:13:29
richieste che abbiamo appena visto
00:13:36
vorremmo poter trovare i progetti che
00:13:41
vengono sviluppati nella sede di huston
00:13:43
ma di questi progetti vorranno mantenere
00:13:46
solamente il nome e il numero del
00:13:51
dipartimento in cui vengono sviluppati
00:13:55
quindi non ci interessa la colonna che
00:13:57
riguarda la sede
00:13:59
sappiamo già che il suo valore sull
00:14:00
aiuto e non ci interessa nemmeno il
00:14:02
numero del progetto che è un dato utile
00:14:05
solamente per l'indicizzazione dei
00:14:08
progetti una richiesta è quindi quella
00:14:12
di trovare il nome dei progetti il
00:14:14
numero di dipartimento di tutti quei
00:14:17
progetti sviluppati nella sede di huston
00:14:19
per fare questo vediamo adesso come
00:14:21
combinare le operazioni di selezione
00:14:24
proiezione quindi poniamo di partire
00:14:32
dall'operazione di proiezione
00:14:37
indichiamo conti recco
00:14:40
vogliamo mantenere solo il nome dei
00:14:43
progetti quindi la colonna nome e il
00:14:49
numero dei dipartimenti che è la colonna
00:14:51
nudi ora se dovessimo usare solamente
00:14:56
l'operazione di proiezione qui così
00:14:58
scriveremmo la relazione su cui
00:15:02
applichiamo questa operazione
00:15:06
tuttavia visto che dobbiamo applicare
00:15:10
anche un'altra operazione scriviamo in
00:15:15
questo modo selezione in cui sede p sede
00:15:24
del progetto e huston e solo qui
00:15:29
indichiamo la relazione su e applichiamo
00:15:33
le operazioni
00:15:37
questo è corretto perché dobbiamo sempre
00:15:42
ricordarci che il risultato di
00:15:45
un'operazione è una relazione proviamo a
00:15:49
leggere questa espressione a partire da
00:15:53
l'operazione più interna cioè la
00:15:55
selezione a partire dalla tabella
00:15:58
progetto selezioniamo solo quelle righe
00:16:00
per cui il valore della colonna sede pie
00:16:02
huston
00:16:04
quindi stiamo semplicemente partendo
00:16:07
dalla tabella vista durante la selezione
00:16:12
di questa tabella poi non manteniamo
00:16:15
tutte le colonne ma manteniamo solo le
00:16:19
colonie del nome e del numero
00:16:21
dipartimento il risultato sarà quindi
00:16:25
questa relazione
00:16:28
abbiamo le stesse righe che venivano
00:16:32
mantenute dalla selezione ma ora abbiamo
00:16:34
meno colonne perché la proiezione ha
00:16:39
mantenuto solo le colonne indicate
00:16:43
quindi ogni volta che vogliamo
00:16:44
[Musica]
00:16:46
applicare più operazioni quindi ridurre
00:16:49
sia il numero delle colonne sia il
00:16:50
numero delle righe di una tabella
00:16:53
dobbiamo scrivere una cosa del genere
00:16:56
con catenarie le operazioni in questo
00:17:01
modo
00:17:05
vediamo ora il joint in questa
00:17:07
operazione come abbiamo detto serve per
00:17:10
unire i dati di più da pelle
00:17:13
ad esempio se volessimo rispondere alla
00:17:15
richiesta quali impiegati hanno lavorato
00:17:18
al progetto numero uno e se di questi
00:17:26
impiegati volessimo conoscere il nome e
00:17:28
il cognome e dovremo utilizzare i dati
00:17:31
della tabella impiegato che conte che
00:17:33
contiene il nome il cognome degli anni
00:17:35
di questi impiegati e la tabella lavora
00:17:38
su che associa ad un impiegato il
00:17:42
progetto i progetti a cui ha lavorato in
00:17:46
realtà forse la richiesta sarebbe più
00:17:48
naturale se fosse espressa come quali
00:17:51
impiegati hanno lavorato al progetto
00:17:53
prodotto hicks visto che di solito si
00:17:57
usano i nomi rispetto gli indici
00:18:00
tuttavia per adesso limitiamoci a questo
00:18:04
per semplificare il giovane che vogliamo
00:18:07
fare quindi per adesso
00:18:11
limitiamoci a fare il joint della
00:18:14
tabella impiegato con la tabella lavoro
00:18:17
show
00:18:20
l'operazione di joint difficilmente fine
00:18:24
a se stessa si esegue il joint per poi
00:18:27
eseguire selezione e proiezione per cui
00:18:30
adesso che vediamo
00:18:32
il joint singolarmente la richiesta
00:18:36
possiamo esprimerla in questo modo
00:18:39
eseguire il joint tra il tabelle
00:18:41
impiegato e le la tabella alla base il
00:18:45
john si esprime in maniera tutto sommato
00:18:48
semplice perché bisogna scrivere i nomi
00:18:54
di v delle relazioni impiegato da una
00:18:59
parte e lavora su dall'altra il simbolo
00:19:07
del joint e questo ho lasciato dello
00:19:13
spazio perché qui va scritta la
00:19:14
condizione di joint la condizione di
00:19:19
joint è espressa solitamente
00:19:23
dall'uguaglianza di due colonne
00:19:28
in questo caso per sapere ad esempio a
00:19:33
quali progetti all'abate john's smith
00:19:35
come possiamo fare
00:19:37
sappiamo che questo codice rappresenta
00:19:39
un impiegato e qui troviamo i codici di
00:19:42
impiegati
00:19:44
quindi basta vedere qual è il codice di
00:19:45
john smith 123456789 cercare questo
00:19:51
codice in questa tabella e troviamo le
00:19:54
prime due righe e quindi sappiamo che
00:19:57
jones unità lavorato al progetto numero
00:19:58
uno per 32 ore e mezzo al progetto
00:20:01
numero due
00:20:01
tra sette ore e mezzo quindi questo
00:20:04
ragionamento che abbiamo fatto adesso a
00:20:06
parole viene espresso dal joint dicendo
00:20:12
che se vogliamo unire queste due tabelle
00:20:14
dobbiamo far sì che la colonna ssn sia
00:20:19
uguale alla colonna ssn i o meglio
00:20:25
uniamo le righe di queste due tabelle
00:20:28
solo quando il valore contenuto nella
00:20:33
colonna ssn è uguale al valore contenuto
00:20:36
nella colonna ssn cioè sappiamo
00:20:40
benissimo che ad esempio la terza riga
00:20:41
di questa tabella
00:20:43
non coinvolge john smith perché nella
00:20:48
colonna ssn non è riportato il suo
00:20:52
codice la condizione di joint diventa
00:20:59
quindi ssn che è la colonna di impiegato
00:21:06
uguale a ssn che la colonna di lavora su
00:21:13
ssn la chiave primaria di impiegato ssn
00:21:17
e chiave esterna contenuta nella tabella
00:21:20
lavoro su riferita alla chiave primaria
00:21:25
di impiegato quindi tutti i giorni si
00:21:28
eseguiranno in questo modo ci deve
00:21:30
essere un l'uguaglianza tra una chiave
00:21:34
esterna in una chiave primaria di solito
00:21:37
ci potrebbero essere dei casi in cui si
00:21:40
fanno uguaglianze tra chiavi esterne
00:21:44
se le basi dei dati sono abbastanza
00:21:47
grandi
00:21:49
tuttavia dobbiamo uguagliare 22 colonne
00:21:53
che contengono gli stessi dati
00:21:57
questo è il risultato dell'operazione di
00:22:00
joint non lo indicato in maniera
00:22:03
completa perché i dati sono davvero
00:22:06
molti ma ho indicato quelli fondamentali
00:22:08
innanzitutto da una parte abbiamo tutte
00:22:14
le colonne della tabella impiegato
00:22:19
io ho indicato solo le ssn in maniera
00:22:21
esplicita
00:22:22
dall'altra parte abbiamo tutte le
00:22:24
colonne della tabella lavora su in
00:22:28
questo caso indicato in maniera
00:22:29
esplicita solo il codice degli impiegati
00:22:31
e il nome il numero dei progetti
00:22:37
quindi abbiamo le colonne di tutte le
00:22:39
due tabelle riunite in un'unica grande
00:22:42
tabella come vengono accoppiate le righe
00:22:46
secondo la condizione di joint come
00:22:50
vedete il codice 123456789 che era
00:22:56
quello di john è rappresentato nella
00:22:59
prima riga e il proseguimento della
00:23:01
prima riga per quanto riguarda i dati
00:23:03
della tabella lavora su contengono
00:23:06
devono contenere solo quelle righe della
00:23:10
tabella lavora su in cui compariva il
00:23:12
codice di john quindi in questa tabella
00:23:18
di joint compaiono due righe riferite a
00:23:24
john la prima riga perché ha lavorato
00:23:26
sul progetto numero uno la seconda riga
00:23:29
perché ha lavorato sul progetto numero
00:23:32
due
00:23:32
quindi possono comparire dei doppioni di
00:23:39
righe perché ci possono essere più
00:23:42
abbinamenti se lo stesso impiegato può
00:23:45
aver lavorato su più progetti dalla
00:23:48
parte della tabella impiegato ci
00:23:51
potranno essere dei valori identici ma
00:23:54
perché
00:23:56
dobbiamo immaginare che la riga della
00:23:59
tabella continua su comprendendo i dati
00:24:04
di entrambe le tabelle e un impiegato
00:24:07
può essere associato a più progetti in
00:24:11
progetti a cui ha lavorato quindi il
00:24:15
risultato dell'operazione di joint è una
00:24:18
grande tabella che comprende tutte le
00:24:20
colonne delle due tabelle e
00:24:23
l'accoppiamento delle righe viene fatto
00:24:25
seguendo la condizione di giugno da
00:24:29
ultimo vediamo di rispondere a un
00:24:32
quesito che ci richiede di utilizzare
00:24:36
tutte e tre le operazioni che abbiamo
00:24:38
visto ad esempio potremmo voler
00:24:42
rispondere a questa domanda chi sono gli
00:24:47
impiegati di cui vogliamo sapere solo il
00:24:50
nome il cognome che hanno lavorato al
00:24:53
progetto numero uno a questa domanda
00:25:02
dobbiamo rispondere facendo ricorso al
00:25:05
jogging
00:25:06
perché il nome e il cognome degli
00:25:08
impiegati si trovano nella tabella
00:25:10
impiegato mentre come abbiamo visto il
00:25:16
riferimento al numero del progetto e
00:25:18
all'impiegato che ci ha lavorato sono
00:25:21
contenute nella tabella lavora su poi
00:25:24
dobbiamo far ricorso alla proiezione
00:25:27
perché nella tabella che non vogliamo
00:25:30
ottenere
00:25:31
vogliamo avere solamente il nome e il
00:25:33
cognome degli impiegati
00:25:35
quindi non tutte le colonne di impiegato
00:25:37
nei tutte le colonne anzi nessuna delle
00:25:40
colonne di lavora su e dobbiamo
00:25:43
applicare la selezione perché non
00:25:46
vogliamo mantenere tutte le righe cioè
00:25:49
tutti gli impiegati tutti i nomi cognomi
00:25:52
degli impiegati ma vogliamo mantenere
00:25:55
solo i nomi e cognomi di quelli che
00:25:57
verranno accoppiati dal joint al numero
00:26:01
del progetto 1
00:26:05
la richiesta può essere espresso in
00:26:07
termini tutto sommato semplici quindi
00:26:10
trovare nome e cognome degli impiegati
00:26:12
che hanno lavorato al progetto 1 visto
00:26:17
che però questa richiesta comporta
00:26:23
l'utilizzo di tutte e tre le operazioni
00:26:26
per rispondere dovremmo ragionare un
00:26:29
attimo con calma e possiamo partire
00:26:32
dall'operazione che ci viene più comoda
00:26:35
io partirei direttamente dal jogging
00:26:39
dobbiamo ricordarci una cosa importante
00:26:42
però se utilizziamo in un'espressione il
00:26:46
joint il gioco in dell'essere
00:26:50
l'operazione più interna cioè quella
00:26:52
scritta più a destra
00:26:54
ora io non penso di riuscire a scrivere
00:26:56
in un'unica riga la soluzione a questa
00:27:01
domanda quindi magari il joint lo
00:27:03
scriverò in cui così è il giovane
00:27:09
esattamente quello che abbiamo visto
00:27:14
prima
00:27:15
abbiamo già fatto il gioco entro la
00:27:16
travel tra la tabella impiegate latrobe
00:27:18
e la tabella lavora su quindi ssm uguale
00:27:23
ssn
00:27:28
e poi la tabella lavora su
00:27:34
e il risultato di questo giovane è una
00:27:37
grande tabella che contiene le colonne
00:27:39
di impiegate di lavoro su a questa
00:27:43
tabella a questa relazione e vorremmo
00:27:47
magari applicare una selezione la
00:27:50
selezione sigma minuscolo deve contenere
00:27:58
una condizione e la condizione è quella
00:28:00
che il numero dei progetti indicata
00:28:04
nella colonna np sia uguale a 1 e la
00:28:09
proiezione poi ci aiuta a mantenere nel
00:28:14
risultato solo le colonne richieste
00:28:17
quindi la colonna del nome e la colonna
00:28:24
del cognome
00:28:27
ora proverò a scrivere tutta questa
00:28:32
espressione in un'unica rica ecco
00:28:37
l'espressione che contiene le tre
00:28:41
operazioni ora perché ho detto che il
00:28:44
joint dev'essere l'operazione più
00:28:46
interno quindi deve essere scritta nella
00:28:49
parentesi più interna più a destra
00:28:51
perché dobbiamo sempre immaginare che il
00:28:54
risultato delle operazioni è una
00:28:56
relazione una taverna noi non possiamo
00:29:03
ad esempio applicare la selezione n più
00:29:07
uguale ubu se non esiste una colonna che
00:29:11
si chiama np non possiamo applicare la
00:29:15
proiezione di nome bat e cognome
00:29:18
se non esistono nella relazione tra cui
00:29:23
applichiamo questa proiezione queste
00:29:26
colonne quindi innanzitutto bisogna fare
00:29:29
il joint quindi vogliamo avere a
00:29:34
disposizione tutte le colonne di
00:29:36
impiegate tutte le colonne di lavora su
00:29:38
solo a questo punto noi possiamo fare
00:29:42
una selezione o una proiezione
00:29:45
sarebbe anche meglio quindi lasciare la
00:29:50
proiezione come operazione più esterna
00:29:55
perché se noi mettessimo la proiezione
00:29:59
ad esempio al secondo posto al posto
00:30:02
della selezione noi innanzitutto faremmo
00:30:08
il joint delle due tabelle
00:30:11
poi però estrarremo subito due colonne
00:30:15
quindi avremo come risultato le colonne
00:30:18
del nome del cognome
00:30:20
a quel punto però risulterebbe strano
00:30:25
fare una selezione su una colonna che
00:30:28
non esiste
00:30:32
sebbene questo ragionamento abbiano
00:30:35
valenza specialmente in casi pratici
00:30:38
sarebbe meglio che anche noi lo
00:30:40
seguissimo quindi lasceremmo gli o in
00:30:44
come operazione più interna la selezione
00:30:46
come seconda operazione è la proiezione
00:30:49
come operazione più esterno quale sarà
00:30:54
il risultato dell espressione che
00:30:57
abbiamo appena scritto e possiamo
00:30:59
provare a vedere al progetto numero uno
00:31:04
lavora il nostro caro john di poi il
00:31:07
lavoro anche l'impiegato il cui ssn
00:31:13
questo joyce english quindi il risultato
00:31:22
sarà una tabella formata da solo due
00:31:25
colonne
00:31:26
il nome e cognome che contiene i dati di
00:31:29
john e di jobs
00:31:31
ecco qui il risultato quindi nonostante
00:31:36
l'espressione possa essere complicata e
00:31:42
posso includere tutte e tre le
00:31:43
operazioni che abbiamo visto il
00:31:45
risultato in realtà può essere anche
00:31:48
molto semplice e spesso dipende da quali
00:31:52
colonne vengono selezionate oppure da
00:31:55
con le righe vengono mantenute anche se
00:32:00
nell'espressione può capitarmi joint che
00:32:03
di per sé unisce le colonne di più
00:32:05
tabelle
00:32:08
il risultato tuttavia dipende da tutte
00:32:13
le operazioni che compaiono nell
00:32:14
espressione da riassumere in questo
00:32:18
video abbiamo visto come è possibile
00:32:20
partire da una base di dati e estrarre e
00:32:25
da questa base di dati e dalle sue
00:32:27
tabelle o correlazioni solo le
00:32:30
informazioni importanti e grazie a tre
00:32:34
operazioni dell'algebra relazionale cioè
00:32:36
la selezione che a partire da una
00:32:39
tabella mantiene solo alcune righe la
00:32:42
proiezione che mantiene invece solo
00:32:45
alcune colonne e il joint che di per sé
00:32:48
cioè impiegato da solo non è utile ma
00:32:52
serve per applicare selezione e
00:32:55
proiezione tabelle diverse unendo
00:33:02
tabelle diverse come abbiamo appena
00:33:05
visto
00:33:06
se vogliamo fare la selezione sui dati
00:33:10
di una tabella ma proiettare invece le
00:33:14
colonne di una tabella diversa allora
00:33:18
dobbiamo avere un modo per far per
00:33:21
combinare i dati e le righe di queste
00:33:25
tabelle attraverso i giochi bene per
00:33:30
oggi è tutto
00:33:31
alla prossima