Banche dati

Database agnostic: cos’è, quali vantaggi e rischi comporta

Database adottato in ambito eCommerce e nei trade order dei servizi finanziari. Ecco come è fatto, quando e perché conviene adottarlo

Pubblicato il 19 Gen 2023

Kingston Technology: prima in classica fra i fornitori di moduli Dram

Un database agnostic è una banca dati in grado di memorizzare, elaborare, modificare e interconnettere data agnostic senza dover dipendere da uno specifico database management system (DBMS). Anche una tecnologia può essere database agnostic, per realizzare applicazioni compatibile con molteplici database.

Agnostico deriva dal greco e significa “non conoscibile”, il termine si trasla in ambito informatico. Ecco cosa significa, quali vantaggi e rischi comporta.

Database agnostic: cos'è, vantaggi e rischi

Cosa significa database agnostic

Il database agnostic si riferisce a un database che usa data agnostic ovvero quando il metodo o il format della trasmissione dati è indipendente dalla funzione dei programmi. Significa che il database riceve dati in molteplici formati o da molteplici sorgenti, processando quei dati in maniera efficace.

I database agnostic si riferiscono anche alla capacità di un software di funzionare con qualsiasi DBMS di qualsiasi vendor. Il Dbms è il software che consente la realizzazione, gestione e interrogazione del set di dati organizzati, secondo principi, nei database.

Nell’IT, “agnostico” riguarda per esempio un software o hardware che funziona con vari sistemi operativi, invece di declinarsi a un singolo sistema.

Un software database agnostic può risultare utile in un ambiente dove la sorgente dei dati deriva da database eterogenei. Inoltre un database agnostic non è progettato per lavorare con uno specifico DBMS, dunque non può trarre beneficio delle speciali funzionalità che tali sistemi offrono.

Il database-agnosticism è spesso offerto come funzionalità della business intelligence (BI), business analytics e di soluzioni enterprise resource planning (ERP).

Infine un database può essere cloud-nativo e cloud-agnostico. In questo ultimo caso non importa se l’applicazione è creata sul cloud con risorse software virtuali.

REN Foundation: OS and Database Agnostic

REN Foundation: OS and Database Agnostic

Guarda questo video su YouTube

Gli schema-agnostic database

Gli schema-agnostic database sono anche detti vocabulary-independent database, in quanto supportano gli utenti a essere indipendenti dal vocabolario e supportano il matching semantico automatico fra query e database. Lo schema-agnosticism rappresenta la proprietà di un database di mappare una query, emessa con la terminologia e la struttura dell’utente, mappandola in automatico al vocabolario del dataset.

Esempi di database agnostic

Un esempio è un sistema di eCommerce, sviluppatore in linguaggio Java e JavaScript. Ovviamente, dovrebbe avere un database per immagazzinare prodotti, ordini, transazioni eccetera.

Ma lo shopping online utilizza qualsiasi database engine per quello scopo. Dove per qualsiasi database engine si intende un’ampia scelta: SQL Server, Oracle, MySQL, PostgreSQL, NoSQL, relazionali.

Ma non c’è solo l’eCommerce, altro campo di utilizzo è quello dei trade order nei servizi finanziari.

Database agnostic

Implementazioni

Quando si archiviano i dati in un formato di storage generico, questa sorgente funge da entità di layer di sincronizzazione. Il formato di storage generico può interfacciarsi con una varietà di differenti programmi, con un metodo di estrazione di dati che formatti i dati in modo tale che un programma specifico può capire. Ciò permette ai programmi che richiedono data format differenti di accedere agli stessi dati. Molteplici database agnostic possono creare, leggere, leggere e cancellare (CRUD) le stesse informazioni dalle medesime storage location senza fare errori.

Poiché il synchronization layer è un’entità data agnostic, l’aggiunta di altri può costringere al recoding dell’intero database agnostic. I concept creati in altri programmi (che non contengono quel campo) vanno bene.

I database agnostic agevolano il trasferimento dei dati, senza richiederne la conversione. Memorizzare i dati in un synchronization layer funge da compatibility layer, da cui recuperare, aggiornare, ordinare e scrivere dati, a prescindere dal format impiegati.

Nel mondo Java, si usa la tecnica ORM (Object Relational Mapping), per operare con objects in Java e permettere alle library (come Hibernate) di trattare con le differenze dei database engine. In pratica, in Java la mappatura degli objects alle tavole in un database, permette objects. La library consente di costruire SQL query per uno database engine specifico.

Infine è possibile realizzare database-agnostic application usando Entity Framework di Microsoft.

Database agnostic

Benefici

Se i dati del database agnostic sono trattati come agnostici, la programmazione è semplificata, dal momento che deve trattare solo con il caso dei data agnostic e non con molteplici casi. Ciò riduce il numero dei casi individuali.

Il front-end può essere sviluppato in JavaScript, eseguito da un browser su un computer di un utente con un certo sistema operativo. Invia richieste al backend scritto in Java, eseguito su un server. Il backend in Java non rende persistenti i dati, dunque interroga un database MySQL per fare ciò. Il database in MySQL risponde con dati che il backend in Java processa e invia al frontend in JavaScript. Il client browser presenta una pagina web con i dati.

Se un’azienda usa MySQL come database engine, un’altra utilizza Oracle per supportare il traffico crescente ed un’altra Microsoft SQL Server, il vendor utilizza un’applicazione per database agnostic indipendente dal database engine.

Un problema deriva dal fatto che alcuni SQL datatypes non sono condivisi da tutti i vendor di database: i BOOLEAN non esistono in Oracle. Il database agnostic risolve questa problematica.

Database agnostic

Rischi

Il database agnostic introduce alcuni problemi. Se solo un pezzo di codice è usato per operazioni CRUD (indipendenti dal concept), c’è un singolo punto di fallimento. Se quel codice presenta debolezze, l’intero sistema presenta vulnerabilità. Per mitigare questo rischio, è sufficiente testare innumerevoli volte il codice.

Inoltre, i database che usano data agnostic sono in grado di aumentare la velocità di caricamento, dal momento che il codice deve cercare le definizioni di campo e visualizzare il format così come i dati specifici da visualizzare.

La velocità di caricamento può essere migliorata, usando una copia dei record con i dati già estratti per indicizzare i campi, invece di dover estrarre i campi e formattare le informazioni nello stesso tempo dei dati. Poiché ciò genera un incremento della velocità, aggiunge un elemento di non-data agnostic al processo. Può essere facilmente creato attraverso una generazione di codice.

Infine, un rischio può derivare dalla difficoltà di scrivere software indipendenti dal database engine.

Database agnostic

Valuta la qualità di questo articolo

La tua opinione è importante per noi!

Articoli correlati

Articolo 1 di 5