Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

differenza query - vista

201 views
Skip to first unread message

Jupiter

unread,
Sep 25, 2010, 5:00:10 AM9/25/10
to
Ciao

tra una semplice select che mostra a schermo una tabella sul browser, e
una vista....qual'e' la differenza (a parte la sintassi?)

grazie

bramante

unread,
Sep 25, 2010, 6:46:26 AM9/25/10
to
che intendi su browser???

una tabella è un insieme di campi che hanno una loro omogeneità (i dati
anagrafici, i dati di vendita, i dati di conto corrente, i dati di ....)
una vista, è come dice la parola stessa una vista, che questa possa
essere di un "sottinsieme" di una tabella (vista dei dai anagrafici
delle sole persone di sesso femminile, oppure i dati di vendita di un
particolare anno, trimestre, fatturato minimo, i soli dati di un conto
corrente che abbia lo scoperto, un fido, un protesto in corso, ecc..)
oppure un "insieme" o "sottinsieme" di più tabelle, (i dati anagrafici
dei correntisti che hanno un conto corrente con scoperto, le vendite
effettetuate al cliente che hanno un volume di affare di tot, ecc)

le viste sono tabelle "virtuali" che vengono alimentate dalle altre
tabelle, queste servono per aggregare o disaggregare dati da una o più
tabelle per i diversi scopi, serve anche per non ripetere e far eseguire
query che potrebbero essere complesse (e quindi intasare l'elaborazione)

le viste possono essere ti tipo statico(materialized) (solo oracle e MS
sql server) o di tipo dinamico, la differenza tra i due e come vengono
aggiornati i dati.
il tipo materialized ha dati statici (la query che compone la view viene
eseguita UNA tantum (dipendente da chi gestisce il dbms)) mentre nelle
classiche view (dinamiche) la query che popola la view viene eseguita
ogni qualvolta si fa accesso alla stessa view.

Ciao

Cujo

unread,
Sep 27, 2010, 4:29:26 PM9/27/10
to
Jupiter <no.thanks.@it> wrote:

> tra una semplice select che mostra a schermo una tabella sul browser, e
> una vista....qual'e' la differenza (a parte la sintassi?)

Tralasciando il fatto che la domanda suppongo riguardi i DBMS e non php,
in generale una vista è all'incirca una query *salvata "lato server"*
(passatemi un po' di "approssimazione" per spiegar meglio).

Una vista è definita proprio DA una query ed una volta creata la vista
(sul database SERVER, non sul client), il risultato è che puoi
richiamarla in tutto e per tutto come se fosse *una tabella* (e
dimenticandoti di come è stata definita).

Ad esempio, potresti avere una *tabella dei prodotti* chiamata
"tblProdotti".

Se da programma volessi visualizzare solo i prodotti *ordinabili* (dove
magari sono molti i criteri che concorrono a determinare se un prodotto
è o meno "ordinabile", per esempio la effettiva presenza in magazzino ma
non solo) potresti costruirti da programma la query (complessa)
opportuna oppure creare una vista *tblProdottiOrdinabili* che ti faccia
vedere solo quelli "ordinabili" e limitarti da programma ad una semplice
"select * from ...", spostando di fatto parte della "logica" del tuo
applicativo dal programma al database backend.

Tieni anche presente che una vista può essere definita da una query
anche MOLTO articolata, che coinvolge più tabelle, ecc.

Quando fare una o l'altra cosa potrebbe essere argomento di LIBRI. ;)

Dipende *fortemente* *dal contesto* e a volte è una mera questione *di
filosofia*.

ciao, f.

0 new messages