Microsoft appena rilasciato uno standard di database open source basato su PostgreSQL. DocumentDB è una piattaforma di database di documenti completamente open source poiché rilasciata sotto licenza MIT.
Un database di documenti è un tipo di database NoSQL destinato all'archiviazione, al recupero e alla gestione dei dati sotto forma di documenti. Questi documenti sono strutturati in formati come JSON, BSON, XML o parcidos. Questo tipo di database si differenzia dai database relazionali (SQL) in quanto non utilizzano tabelle con righe e colonne, poiché organizzano i dati come documenti indipendenti, questo si traduce in database molto flessibili e scalabili.
Microsoft rilascia lo standard di database open source
La nuova piattaforma di Microsoft consente agli sviluppatori di disporre di uno standard che combina la potenza dei database NoSQL e la flessibilità di PostgreSQL. Microsoft promette che non ci sono restrizioni nascoste o costi aggiuntivi. Potranno integrare DocumentDB, modificandolo o personalizzandolo nelle proprie applicazioni.
Per ottimizzare l'archiviazione e le operazioni dei dati. DocumentDB è strutturato su due componenti principali:
pg_documentdb_core
Questa estensione PostgreSQL personalizzata consente all'utente di lavorare con il formato dati BSON (Binary JavaScript Object Notation), ampiamente utilizzato in questo tipo di database. Con questa estensione puoi:
- Fornisce supporto per la gestione avanzata dei documenti BSON, comprese strutture profondamente annidate.
- Supporta molti indici: semplice, composito, multicampo, testo e geospaziale (supportati dall'estensione PostGIS).
- Consente query di ricerca vettoriale utilizzate in applicazioni di intelligenza artificiale generativa, rilevamento di frodi e anomalie, ricerca di similarità e sistemi di raccomandazione nelle applicazioni di e-commerce e di elaborazione del linguaggio naturale.
pg_documentdb_ap
Con questo modulo possiamo implementare importanti operazioni NoSQL come CRUD oltre a funzionalità di indicizzazione avanzate. D'altra parte, incorpora un meccanismo di autenticazione basato su SCRAM (Salted Challenge Response Authentication Mechanism) per rafforzare la sicurezza dei database.
Spieghiamo i termini:
CRUDELE
CRUD è l'acronimo utilizzato per descrivere le quattro operazioni fondamentali eseguite sui dati:
- Creare: È l'operazione di aggiunta di un nuovo documento al database.
- Leggere): È l'operazione di recupero di un documento dal database.
- Aggiornamento: È l'operazione di modifica del database.
- Eliminare: Operazione con la quale un documento viene cancellato dal database.
SCRAM
Il meccanismo di autenticazione SCRAM consiste in un protocollo di autenticazione sicuro progettato per facilitare lo scambio di credenziali tra il server e il client, riducendo al minimo i rischi di esposizione delle password e garantendo che le password non vengano inviate direttamente tramite la rete ma vengano prima elaborate utilizzando tecniche crittografiche.
Come testare DocumentDB?
Gli sviluppatori che desiderano lavorare con questa piattaforma possono scaricare il codice sorgente dal repository ufficiale su GitHub. Un'altra alternativa è l'installazione tramite Docker o altri metodi per configurare un ambiente locale che possono essere trovati nel collegamento all'inizio dell'articolo. Inoltre, è possibile partecipare alle discussioni sulla progettazione e contribuire al progetto e ottenere informazioni aggiornate attraverso i canali Discord.
Per gli utenti che necessitano di un ambiente pronto all'uso, possono facilmente integrare DocumentDB con FerretDB, che è anche una soluzione per documenti open source e si basa sul motore DocumentDB. FerretDB ha un'interfaccia che implementa il protocollo del database dei documenti ed è progettata per fornire l'esperienza NoSQL senza avere la conoscenza di PostgreSQL.
Senza dubbio un impegno ambizioso da parte di Microsoft è quello di cercare di far diventare DocumentDB uno standard aperto per i database documentali. Il progetto prevede che DocumentDB diventi l'equivalente dello standard ANSI per i database relazionali. L'obiettivo è ridurre al minimo le differenze tra le implementazioni del database NoSQL e creare un'esperienza più coerente per gli sviluppatori.