5° Anno TEORIA 3. Un modello logico: il modello relazionale | Page 41

15 . Il modello relazionale Vers . 6.2 – Gennaio 2023
Come da definizione per prima cosa costruiamo la tabella R X S
R X S
CodCliente
NomeCliente
Indirizzo
CodAg
CodAgente
NomeAgente
Telefono
C001
Neri Mario
Via Po , 5
A001
Verdi Luca
081-123456
C001
Neri Mario
Via Po , 5
A001
A002
Gialli Matteo
081-654321
C001
Neri Mario
Via Po , 5
A001
A003
Vito Andrea
081-456345
Bianchi Gianni
Via Lima , 7
A002
Verdi Luca
081-123456
Bianchi Gianni
Via Lima , 7
A002
A002
Gialli Matteo
081-654321
Bianchi Gianni
Via Lima , 7
A002
A003
Vito Andrea
081-456345
C003
Rossi Antonio
Via Riga , 9
A001
Verdi Luca
081-123456
C003
Rossi Antonio
Via Riga , 9
A001
A002
Gialli Matteo
081-654321
C003
Rossi Antonio
Via Riga , 9
A001
A003
Vito Andrea
081-456345
C004
Russo Mario
Via Roma , 8
NULL
A001
Verdi Luca
081-123456
C004
Russo Mario
Via Roma , 8
NULL
A002
Gialli Matteo
081-654321
C004
Russo Mario
Via Roma , 8
NULL
A003
Vito Andrea
081-456345
Proseguiamo effettuando la restrizione o selezione sulla relazione ottenuta ossia σP ( R X S ) con P = ⎨ Cliente . CodAg = Agente . CodAgente ⎬
σP ( R X S ) CodCliente
NomeCliente
Indirizzo
CodAg
CodAgente
NomeAgente
Telefono
C001
Neri Mario
Via Po , 5
A001
Verdi Luca
081-123456
Bianchi Gianni
Via Lima , 7
A002
A002
Gialli Matteo
081-654321
C003
Rossi Antonio
Via Riga , 9
A001
Verdi Luca
081-123456
Risultato finale dell ’ EQUI-JOIN Cliente �� Agente proposto è la seguente tabella :
CodAg = CodAgente
Cliente �� Agente
CodAg = CodAgente
CodCliente NomeCliente Indirizzo CodAg CodAgente NomeAgente Telefono
C001
Neri Mario
Via Po , 5
A001
Verdi Luca
081-123456
Bianchi Gianni
Via Lima , 7
A002
A002
Gialli Matteo
081-654321
C003
Rossi Antonio
Via Riga , 9
A001
Verdi Luca
081-123456
Grado ( Cliente �� Agente ) = Grado ( Agente ) + Grado ( Cliente ) = ( 4 + 3 ) = 7
CodAg = CodAgente
Card ( Cliente �� Agente ) = 3 che risulta essere ≤ Card ( Agente ) * Card ( Cliente ) = 12
CodAg = CodAgente
N . B . Se invece proviamo a ricavare la relazione risultato di quest ’ altra operazione relazionale :
Agente �� Cliente
CodAgente = CodAg
che ha come scopo quello di mostrare , in un ' unica tabella , per ogni agente , anche le informazioni relative ai clienti gestiti , ci accorgeremmo ovviamente che essa differirà dalla tabella ottenuta in precedenza . Ricordiamo infatti che , qualunque sia il tipo di join eseguito , esso conterrà sempre anche il prodotto cartesiano tra due relazioni , che , come sappiamo , è un operatore relazionale che non gode della proprietà commutativa .
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it ) Pag . 41