Esercizio SQL.11

Esercizio SQL.11

di Chiara Damiani -
Numero di risposte: 1

Uno studente chiede:

svolgendo l'esercizio 11 delle slides riguardanti il Join in SQL ho sviluppato la seguente soluzione:

SELECT Dip.matricola_d

FROM Personale_docente AS Dip, Personale_docente AS Sup, Supervisione AS C 

WHERE Dip.matricola_d = C.dipendente AND Sup.matricola_d = C.supervisore AND Dip.classe_stipendio > Sup.classe_stipendio

confrontandola con la soluzione da lei proposta nelle slides mi chiedevo se fosse ugualmente corretta la mia soluzione dato che una classe stipendio maggiore corrisponde ad un valore dello stipendio anch'esso maggiore.


In riposta a Chiara Damiani

Ri: Esercizio SQL.11

di Chiara Damiani -
Avrei dovuto specificare alcuni dettagli dello schema relazionale nella consegna dell'esercizio.

E’ vero che una classe di stipendio più alta si traduce in un valore di stipendio più alto, ma l’attributo classe può assumere valori alfanumerici, poiché esiste anche la classe A,B,C. Nonostante nell’istanza dell’esempio nella slide in questione compaiono esclusivamente valori numerici, il dominio di questo attributo è VARCHAR. Per gli attributi di tipo alfanumerico gli operatori di confronto maggiore e uguale non hanno senso. Infatti, così come non ha senso l’espressione ‘A’>’B’, non ha senso nemmeno l’espressione ’3’>’2’.

Alla luce di questo, la soluzione proposta dallo studente non è corretta.