dubbi sulla traduzione dell'operazione di Join in SQL Clicca QUI per vedere il messaggio nel forum |
mattiie |
Salve a tutti! Sto studiando l'algebra relazionale e l'SQL. Sul libro (quello tradotto dalla Castano) l'operazione di join dell'algebra relazionale viene tradotta in SQL con un semplice SELECT-FROM-WHERE. Nelle slide invece viene tradotto con .. JOIN .. ON <join condition>.
La prima formula a me sembra che faccia il prodotto cartesiano e una selezione. E' vero che è equivalente ma in termini di prestazioni è meno efficiente.
Ho letto che i DBMS ottimizzano le nostre interrogazioni SQL ma la domanda è "in termini di prestazioni,è meglio utilizzare la seconda formula o la prima? Cioè la SELECT- FROM - WHERE viene comunque tradotta dal DBMS in un JOIN?
Mattiie |
CowBoy |
Ciao Mattiie,
la tua domanda mi sembra generica dato che un SELECT - FROM - WHERE in SQL può prendere svariate forme... l'algebra relazionale ottimizzata è quella che viene usata dal DBMS per trovare il modo più efficiente di eseguire una query nel DB.
Quando tu fai un JOIN usando il linguaggio SQL la richiesta viene tradotta in algebra relazionale ottimizzata(selezione, proiezione, join, o altro) dal gestore delle interrogazioni(*).
(*) http://it.wikipedia.org/w/index.php...
interrogazioni
Il succo di tutto ciò?! Mentre in algebra relazionale ottimizzata siamo noi a dover trovare l'espressione ottimale, quando parliamo di SQL non dobbiamo mai pensare alle prestazioni/ottimizzazioni dato che non sono in mano nostra(**)...
(**) Non è del tutto vero, c'è un po di grigio in quella frase ma non penso che sia il tuo caso.
Buono studio! |
|
|
|