L'astrazione dei dati consente agli sviluppatori e agli amministratori di visualizzare solo i dati necessari agli utenti front-end, poiché non devono avere accesso a un intero silo di dati. L'astrazione viene utilizzata in diverse aree di sviluppo software e il livello dei dati di un'applicazione separa il database dall'interfaccia utente. Lo scopo è quello di sfruttare una migliore scalabilità e meno refactoring durante i cambiamenti dell'infrastruttura.
Che cos'è un DBMS?
Un sistema di gestione dei database (DBMS) è uno strumento utilizzato come interfaccia tra un utente e i dati archiviati raw. Utilizzando un DBMS, gli amministratori possono visualizzare i dati memorizzati in un database, aggiornare o inserire nuovi dati ed eseguire query per recuperare i dati. Gli amministratori possono anche gestire elementi del database come procedure memorizzate, trigger, tabelle, indici e altri oggetti. Un DBMS viene spesso utilizzato per creare il database e gestirlo in un secondo momento.
Un esempio di DBMS è MySQL . MySQL è un database relazionale, pertanto gli amministratori utilizzano il DBMS per visualizzare oggetti di database, creare tabelle o eseguire query sui dati. Un'applicazione utilizza il DBMS per eseguire query sui dati o aggiungerli al database. Poiché MySQL è un database relazionale, i dati vengono memorizzati in tabelle con vincoli su ogni colonna per controllare il tipo di dati memorizzati.
Un altro esempio di DBMS è MongoDB . MongoDB è un database open source NoSQL che memorizza dati non strutturati. I dati vengono archiviati in documenti e gli amministratori possono memorizzare qualsiasi numero e tipo di elemento nel documento. Gli amministratori utilizzano il DBMS MongoDB per gestire la struttura del database e le applicazioni lo utilizzano per eseguire query e aggiungere dati.
Che cos'è l'astrazione dei dati?
L'astrazione dei dati è una funzione logica in un'applicazione per separare i dati raw dal front-end. In parole povere, il livello dei dati gestisce la connessione al database e lo interroga dal front-end. L'astrazione dei dati consente all'applicazione front-end di eseguire query sui dati indipendentemente da dove sono archiviati. Gli sviluppatori possono quindi sostituire i database di back-end senza rifattorizzare grandi sezioni del codice per connettersi e lavorare con un nuovo motore di database.
Ad esempio, supponiamo di utilizzare MongoDB in sviluppo fino a quando non sarà possibile determinare il tipo di dati necessari per lavorare. In questo modo, è necessario utilizzare MySQL in produzione. Il livello di astrazione dei dati gestisce la connessione al database e le query da MongoDB e MySQL senza influire sul codebase front-end. Gli utenti non sono consapevoli delle modifiche apportate ai motori di database, ma possono comunque ottenere le informazioni di cui hanno bisogno.
Livelli di astrazione dei dati
L'astrazione dei dati è un termine generico che gestisce diversi aspetti della gestione dei dati. Quando gli sviluppatori creano un'applicazione e lavorano con gli amministratori, ci sono tre livelli di astrazione: fisica, logica e visiva. Ecco una breve spiegazione di questi livelli:
- Livello fisico/interno: Questo livello comprende l'infrastruttura che ospita il database, comprese le informazioni di rete per il server e la posizione del server. Ad esempio, i componenti fisici potrebbero essere una macchina virtuale cloud con CPU di livello medio e risorse di memoria.
- Livello logico/concettuale: Il livello logico è il codice utilizzato per connettersi al livello fisico. Contiene la logica per connessioni, query e gestione degli errori. I livelli logici possono includere il codice da collegare a più database a seconda dei fattori di input.
- Visualizzazione/livello esterno: L'applicazione front-end consente agli utenti di visualizzare i dati. Questo livello di astrazione è il più lontano dalla posizione di data storage raw, ma formatta e presenta i dati al visualizzatore in modo che possano essere utili.
Architetture di database multilivello
I livelli di astrazione possono essere livelli logici integrati nell'applicazione, ma possono anche essere posizionati su risorse fisicamente diverse. Lo scopo dell'astrazione multilivello è semplificare notevolmente la scalabilità di un singolo livello senza influire sugli altri livelli. L'architettura multilivello è anche denominata "architettura n-tier" in cui gli amministratori possono scegliere di avere più livelli per ciascun componente dell'applicazione.
È normale avere tre livelli in un'architettura multilivello: presentazione, dati e applicazione. Ecco una breve descrizione di questi livelli:
- tier di dati: Questo tier memorizza i dati ed esegue il motore di database. Può essere su un server bare bones dedicato o su una macchina virtuale. I database possono anche funzionare in cluster in un data warehouse con pipeline di dati complesse a seconda dello scenario del caso d'uso.
- tier applicazione: Questo tier gestisce l'applicazione. Ad esempio, se il front end è un'applicazione web personalizzata, un server web memorizza i file dell'applicazione ed li esegue. Gli utenti si connettono a questo server per eseguire l'applicazione.
- tier di presentazione: Il tier di presentazione è diverso dal tier di applicazione anche se sembra simile. I tier delle applicazioni hanno la base di codice e la logica delle applicazioni, mentre il tier di presentazione è quello che l'utente vede. In un'applicazione web, il tier di presentazione è il CSS e l'HTML utilizzati per formattare e visualizzare il codice dell'applicazione per l'utente.
Quali sono i vantaggi dell'astrazione dei dati?
La separazione dei livelli di dati dall'applicazione front-end consente una scalabilità granulare delle risorse. Anche le modifiche al livello dei dati non influiscono sul front-end, pertanto l'astrazione dei dati limita il refactoring del codice quando viene utilizzato un altro motore di database o il livello dei dati cambia posizione.
Supponiamo, ad esempio, che la tua organizzazione decida di spostare il database nel cloud da posizioni on-premise. Solo il livello dati deve cambiare e non sono necessarie modifiche al codice dell'applicazione front-end. Gli amministratori possono scalare le risorse per il livello di dati senza la necessità di scalare le risorse per il livello di applicazione se non è necessario.
Conclusione
In un'applicazione enterprise, disporre di un livello di astrazione dei dati per connettersi al DBMS consente di eseguire lo scale-up o lo scale-down. È inoltre possibile apportare modifiche all'architettura del tier di dati nell'architettura senza dover apportare molte modifiche al codice di base. È possibile utilizzare più motori di database o spostare il database in una nuova posizione senza costi generali di gestione.
Mentre pianifichi la tua architettura di astrazione dei dati, dai un'occhiata a Pure Storage ® FlashArray™ per il block storage e il file storage unificato. Per lo storage nel cloud, dai un'occhiata al cloud block storage di Pure Storage.