Vista (basi di dati): differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
RedBot (discussione | contributi)
m r2.7.2) (Bot: Modifico uk:Вигляд (бази даних)
Xqbot (discussione | contributi)
m r2.7.3) (Robot: Modifico uk:Вигляд (бази даних) in uk:Розріз даних; modifiche estetiche
Riga 6:
Una vista può essere composta da una o più tabelle; alcuni DBMS, come [[MySQL]], consentono anche di basare la vista su un'espressione [[SQL]] che non coinvolge alcuna tabella (es: SELECT 1+1 AS somma).
 
== Viste aggiornabili ==
Le viste possono essere anche aggiornabili, cioè vi si possono eseguire comandi Sql di tipo INSERT, UPDATE e DELETE, ma non tutti i DBMS supportano questa possibilità. I dati apparentemente scritti sulla vista vengono in realtà inseriti nelle tabelle che la compongono; per fare questo sono necessari controlli abbastanza complessi da parte del DBMS. Inoltre, non tutte le viste possono essere scrivibili. Ad esempio non è scrivibile una vista che cerca il valore massimo di una certa tabelle o che raggruppa i record con una clausola GROUP BY, perché tali dati non sono fisicamente scritti su una qualche tabella, ma rielaborati tramite una query. Ma se anche tutti i dati contenuti nella vista sono scritti fisicamente nelle tabelle, qualora la vista coinvolga diverse tabelle è necessario che tra esse vi sia una relazione uno a uno.
La sesta [[Leggi Formali|legge formale]] recita: "tutte le viste che sono aggiornabili in teoria, dovrebbero esserlo anche in pratica".
 
== Viste materializzate ==
Alcuni DBMS, come [[Oracle]], supportano le viste materializzate (''materialized views''). Si tratta di viste che vengono scritte fisicamente su disco per consentirne una lettura più rapida. I dati ivi contenuti vengono aggiornati automaticamente a intervalli regolari dal DBMS. Queste viste vengono utilizzate di solito per applicazioni di datawarehousing.
 
== Scopo delle viste ==
Le viste generalmente vengono utilizzate per semplificare le query. Se il database è realmente relazionale, leggere un insieme di dati avente un significato potrebbe essere complesso, perché potrebbe richiedere eccessive JOIN fra tabelle; con una vista è possibile semplificare molto la stesura di query che leggono le informazioni.
 
Un altro scopo delle viste potrebbe essere semplificare o potenziare la gestione dei permessi. Ad esempio si potrebbe creare una query che legge solo alcuni dati da una tabella (tramite la clausola WHERE), per poi assegnare il permesso in lettura ad un certo utente sulla vista, ma non sulla tabella di base. In questo modo l'utente non vedrà i dati che non vengono estratti dalla vista.
 
== Voci correlate ==
*[[Database]]
*[[Modello relazionale]]
*[[stored_procedurestored procedure|Stored procedures]]
*[[Trigger (database)|Trigger]]
 
Riga 42:
[[ru:Представление (базы данных)]]
[[sk:Pohľad (databáza)]]
[[uk:Вигляд (базиРозріз даних)]]
[[zh:视图]]