Corso
Gli amministratori di database e gli utenti dei database affrontano due sfide: scrivere query SQL complesse e mettere in sicurezza l’accesso al database. A volte le query SQL diventano più complicate per l’uso di più join, subquery e di GROUP BY in un’unica query.
Per semplificare queste query, puoi usare una sorta di proxy rispetto alla tabella originale. Inoltre, a volte per motivi di sicurezza l’amministratore del database vuole limitare l’accesso diretto al database. Per esempio, se una tabella contiene varie colonne ma all’utente servono solo tre colonne di dati, il DBA creerà una tabella virtuale di tre colonne. Per entrambi gli scopi puoi usare le view. Le view possono funzionare come un proxy o come una tabella virtuale. Le view riducono la complessità delle query SQL e forniscono un accesso sicuro alle tabelle sottostanti.
Che cos’è una view?
Le view sono una versione speciale delle tabelle in SQL. Forniscono un ambiente di tabella virtuale per varie operazioni complesse. Puoi selezionare dati da più tabelle oppure puoi selezionare dati specifici in base a determinati criteri nelle view. Non contengono i dati effettivi; mantengono solo la definizione della view nel data dictionary.

La view è una query memorizzata nel data dictionary, sulla quale l’utente può interrogare proprio come fa sulle tabelle. Non usa memoria fisica, viene memorizzata solo la query nel data dictionary. Viene calcolata dinamicamente ogni volta che l’utente esegue una query su di essa. Le modifiche effettuate in qualsiasi punto della view si riflettono nella tabella di base effettiva.
La view ha principalmente due scopi:
- Semplificare le query SQL complesse.
- Imporre restrizioni agli utenti nell’accesso a dati sensibili.

Tipi di view
- Simple View: Una view basata su una sola tabella, che non contiene la clausola
GROUP BYné funzioni. -
Complex View: Una view basata su più tabelle, che contiene la clausola
GROUP BYe funzioni. -
Inline View: Una view basata su una subquery nella clausola
FROM, la quale crea una tabella temporanea e semplifica la query complessa. -
Materialized View: Una view che memorizza sia la definizione sia i dati. Crea repliche dei dati memorizzandoli fisicamente.

Simple View

Complex View


Inline View
Un’inline view è un’istruzione SELECT nella clausola FROM di un’altra istruzione SELECT per creare una tabella temporanea che può essere referenziata dalla SELECT. Le inline view sono usate per scrivere query SQL complesse senza operazioni di join e subquery. Si parla di tabella temporanea perché una copia duplicata dei dati restituiti dalla subquery memorizzata non viene salvata nel database. Nella community Oracle e Postgres, questa tabella temporanea è chiamata inline view. Viene anche chiamata subselect.

Materialized View
La materialized view replica fisicamente i dati recuperati. Questi dati replicati possono essere riutilizzati senza eseguire di nuovo la view. Questo tipo di view è noto anche come "SNAPSHOT". Le materialized view riducono il tempo di elaborazione per rigenerare l’intero set di dati. Aiutano gli utenti remoti a replicare localmente i dati e a migliorare le prestazioni delle query. La parte impegnativa qui è sincronizzare le modifiche nelle tabelle sottostanti delle materialized view.


Confronto tra view e materialized view

Creare e eliminare una view in SQL
Le view possono essere create e sostituite usando CREATE VIEW e REPLACE VIEW.

Le view possono essere eliminate usando il comando DROP VIEW.

Pro e contro delle view
Le view possono essere utilizzate come un sottoinsieme dei dati reali per eseguire determinate operazioni. Ci aiutano a fornire un’astrazione a vari utenti o a nascondere la complessità per gli utenti che accedono ai dati dalla tabella. Per esempio, un utente ha il permesso di accedere a particolari colonne di dati invece che all’intera tabella. Possono aiutarci a semplificare query complesse in una più semplice. Semplificano anche l’accesso ai dati da più tabelle collegate con join. Possono essere usate come tabelle aggregate tramite operazioni di group by. Le view possono essere utilizzate per motivi di sicurezza o aggiungere valore extra dal punto di vista della sicurezza. Non occupano spazio perché contengono solo la definizione nel data dictionary, non una copia dei dati effettivi.
Oltre ai molti vantaggi, le view presentano anche alcuni svantaggi come la dipendenza dalla struttura della tabella di base, i tempi di calcolo e alcune restrizioni. Le view dipendono dalla struttura della tabella. Se cambi la struttura della tabella, allora devi modificare la definizione della view associata.
Conclusione
Complimenti, sei arrivato alla fine di questo tutorial!
In questo tutorial hai visto molti dettagli sulle view. Hai imparato cosa sono le view, i tipi di view, Simple View, Complex View, Inline View, Materialized View, la sintassi per creare ed eliminare le view e i pro e contro delle view.
Ora metti in pratica il concetto di view per analizzare i tuoi dataset. Grazie per aver letto questo tutorial!
Se vuoi imparare di più su SQL, segui il nostro corso Introduction to Relational Databases in SQL.

