Skip to content

Instantly share code, notes, and snippets.

@manuelep
Last active April 9, 2024 14:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save manuelep/1eb55715b66d1faa6618817052394e1a to your computer and use it in GitHub Desktop.
Save manuelep/1eb55715b66d1faa6618817052394e1a to your computer and use it in GitHub Desktop.
Vantaggi nell'uso delle viste SQL nella normalizzazione di modelli di base dati.

Vantaggi nell'uso delle viste SQL nella normalizzazione di modelli di base dati.

In ambiente SQL una vista non è altro che una query di estrazione dati complicata a piacere secondo le esigenze, salvata all'interno dell'ambiente di gestione dati e richiamabile attraverso un semplice nome assegnato.

Il concetto sembrerebbe piuttosto semplice: poter salvare interrogazioni complicate a piacere, frutto anche di un lungo lavoro di analisi, e richiamarle all'uso mediante una semplice variabile. Per valutare però la vera potenzialità delle viste si pensi che la loro definizione rientra tra le regole fondamentali alla base delle definizione stessa dei database relazionali risalente agli anni '70 ad opera del professor Edgar F. Codd.

Le viste rappresentano quindi un aspetto fondamentale nella progettazione dei database e sono uno strumento potente anche se spesso sottovalutato. La loro utilità si estende ben oltre la semplificazione delle query; esse offrono infatti una serie di vantaggi che possono migliorare significativamente l'efficienza e la manutenibilità dei modelli di database.

Quali sono i principali benefici derivanti dall'uso delle viste nella progettazione dei database?

  1. Astrazione dei Dati Complessi Le viste consentono di astrarre dati complessi in strutture più gestibili. Ad esempio, è possibile combinare tabelle, eseguire calcoli e applicare filtri all'interno di una vista, rendendo più semplice e intuitiva l'interazione con il database per gli sviluppatori e gli utenti finali. In particolare permettono un più libero approccio alla normalizzazione del dato in fase progettuale e forniscono gli strumenti per adattarlo ad ogni esigenza di fruizione. Pensiamo per esempio a quanto possono essere differenti le esigenze richieste da una autorità esterna di controllo dell'operato nella gestione di reti idriche rispetto al tipo di informazione aggregata da fornire alla stessa utenza per garantire, da una parte la necessaria privacy e dall'altra la trasparenza sul buon operato di gestione della rete idrica.

  2. Sicurezza e Controllo dell'Accesso Utilizzando le viste, è possibile controllare l'accesso ai dati in modo più granulare. Si possono concedere autorizzazioni specifiche per le viste anziché per le singole tabelle, garantendo che gli utenti possano accedere solo alle informazioni rilevanti per il loro ruolo o responsabilità.

  3. Riduzione della Ridondanza dei Dati Le viste possono eliminare la ridondanza dei dati, consentendo di creare visualizzazioni consolidate e aggiornate di informazioni che sono distribuite su più tabelle. Questo non solo riduce il rischio di inconsistenza dei dati, ma semplifica anche il processo di aggiornamento e manutenzione.

  4. Prestazioni Ottimizzate Le viste possono migliorare le prestazioni delle query, specialmente quando coinvolgono operazioni complesse come join e calcoli. Le viste materializzate, poi, memorizzando i risultati, permettono nei casi più impegnativi dal punto di vista delle risorse di mantenere elevate prestazioni e tempi ridotti nell'accesso ai dati richiesti.

  5. Modularità e Riutilizzo del Codice e Miglioramento della Produttività Le viste promuovono la modularità e il riutilizzo del codice SQL. Le query complesse possono essere definite una volta all'interno di una vista e quindi richiamate da altre query o ricorsivamente da altre viste riducendo la duplicazione del codice e facilitando la manutenzione.

Conclusione

Sfruttando le viste in modo efficace, è possibile migliorare sia la sicurezza che l'efficienza e la manutenibilità dei modelli di database, consentendo agli sviluppatori di concentrarsi sulle sfide del business piuttosto che su questioni tecniche complesse. Investire nel corretto utilizzo delle viste può portare a un miglioramento significativo delle prestazioni complessive del sistema e a una maggiore soddisfazione degli utenti finali.

Applicazioni

All'interno dei progetti e delle consulenze che Gter fornisce, compatibilmente con le condizioni e i rapporti con la committenza, si cerca di dare una giusta importanza ad aspetti come quello trattato in questo articolo, orientando più possibile il lavoro di sviluppo alla buona manutenibilità nel tempo del software. Nell'ambito della consulenza a GAIA s.p.a, per esempio, per la quale Gter sta gestendo la migrazione della base dati verso strumenti completamente Open Source, l'uso delle viste è stato uno degli strumenti utili alla ridefinizione del modello dati per differenziare l'accesso alle informazioni da parte dell'autorità di controllo dell'operato rispetto alle esigenze dirette dei tecnici rilevatori e manutentori o ancora rispetto alla stessa utenza provata senza creare conflitti e complicazioni.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment