Oracle NoSQL Database: Una Guida Completa per Sviluppatori

riguardo al Database NoSQL Oracle

Il Database NoSQL Oracle è una soluzione robusta che offre una sintassi simile a SQL per lavorare con i modelli di dati NoSQL. Questo sistema di database consente agli sviluppatori di gestire diversi tipi di dati senza problemi di incongruenza di impedenza, inclusi dati relazionali piani, dati gerarchici di tipo e dati JSON schema-less. L’incongruenza di impedenza si verifica quando differenze tra il database e i modelli di linguaggio del programma creano sfide nella gestione dei dati. Tuttavia, il NoSQL Oracle elimina questo problema fornendo un’esperienza fluida tra molte strutture dati.

Il servizio Cloud Database NoSQL Oracle semplifica il processo di sviluppo, permettendo agli sviluppatori di concentrarsi sulla costruzione di applicazioni invece di gestire l’infrastruttura. Supporta i modelli di database documentale, a schema fisso e key-value, offrendo tempi di risposta bassi, replicazione regionale attiva-attiva e scalabilità elastica. Il servizio è progettato per scalare agevolmente con carichi di lavoro dinamici, offrendo funzionalità come:

  • Gestione transazioniACID per garantire l’integrità dei dati
  • Scalabilità serverless per l’adeguamento della capacità flessibile
  • Sicurezza con misure approfondite per proteggere i dati
  • Pagamento per utilizzo che supporta sia la modalità su richiesta che la modalità di capacità prevista.

La piattaforma cloud di Oracle NoSQL Database è completamente compatibile con il database Oracle NoSQL on-premises, consentendo agli sviluppatori di passare da un ambiente cloud a uno locale.

Una delle caratteristiche principali di Oracle NoSQL è la sua compatibilità con SQL, permettendo agli sviluppatori di utilizzare un linguaggio di query familiare in un contesto NoSQL. Questo è un vantaggio significativo, riducendo la curva di apprendimento tipicamente associata ai database NoSQL, che spesso richiedono la conoscenza di linguaggi di query specializzati. Con Oracle NoSQL, gli sviluppatori possono godere della flessibilità di un database NoSQL senza rinunciare alle potenti capacità di query familiari di SQL.

Il servizio cloud del database Oracle NoSQL si occupa della gestione del backend, rendendolo ideale per gli sviluppatori che necessitano di una soluzione che si scala senza sforzo e minimizza il sovraccarico operativo. I principali vantaggi includono:

  • Concentrazione sulla sviluppo dell’applicazione: Gli sviluppatori possono concentrarsi sulla costruzione di funzionalità senza preoccuparsi della gestione di server, storage o aggiornamenti software.
  • Scalabilità elastica: Il database si scala dinamicamente per adattarsi ai cambiamenti del carico di lavoro, assicurando che le prestazioni rimangano costanti man mano che la domanda varia.
  • Risorse assegnate: Gli utenti definiscono le richieste di throughput e di archiviazione del database preventivamente, con il sistema che adatta automaticamente le risorse per soddisfare questi bisogni.

Il database NoSQL utilizza un modello di dati tabellare, consentendo ai sviluppatori di strutturare i dati secondo necessità mantenendo costrutti familiari come righe e chiavi uniche. Questa flessibilità si estende al supporto sia delle transazioni a riga singola sia degli scansionamenti non transazionali, rendendolo uno strumento versatile per una vasta gamma di applicazioni.

Oracle offre il Database NoSQL in tre edizioni:

  1. Edizione Community (CE): Distribuita sotto la licenza Apache 2.0, questa edizione è ideale per gli sviluppatori in cerca di una soluzione open source supportata dalla comunità.
  2. Edizione Enterprise (EE): Questa versione viene fornita con supporto commerciale da Oracle e viene concessa sotto la licenza commerciale Oracle.
  3. Edizione Base: Una versione più leggera e semplice per gli sviluppatori che cercano funzionalità di base del NoSQL senza caratteristiche di livello enterprise.

Strumenti per Sviluppatori e Ecosistema

Oracle fornisce una varietà di strumenti e SDK per migliorare l’esperienza dello sviluppatore, tra cui:

  • Plugin JetBrains: Un connettore che consente agli sviluppatori di interagire direttamente con Oracle NoSQL dai IDE di JetBrains. È possibile esplorare il plugin qui: Connettore per Database NoSQL Oracle.
  • SDK in Vari Linguaggi: Oracle offre SDK in Java, Python, Node.js e .NET. È possibile esplorare gli SDK disponibili sulla pagina GitHub di Oracle.
  • Supporto Java SE: Gli sviluppatori che lavorano nell’ecosistema Java possono trarre beneficio dal supporto ai framework Spring e Jakarta EE, incluso l’integrazione con le specifiche Jakarta NoSQL e Jakarta Data tramite Eclipse JNoSQL.

Challenges

Sebbene Oracle NoSQL Database offra il vantaggio significativo della compatibilità SQL, è importante notare che opera ancora all’interno di un paradigma NoSQL. Ciò significa che anche se gli sviluppatori possono utilizzare query simili a SQL, una comprensione approfondita delle strutture dati e dei principi NoSQL è ancora necessaria per sfruttare pienamente il sistema. Concetti come schemi flessibili, archiviazione di documenti e operazioni su chiave-valore richiedono un cambio di approccio alla modellazione e alle interrogazioni rispetto ai database relazionali tradizionali. Gli sviluppatori provenienti da ambienti esclusivamente SQL dovranno imparare questi concetti NoSQL per ottimizzare le loro applicazioni e sfruttare la flessibilità offerta da Oracle NoSQL.

Un’altra considerazione riguarda l’ecosistema in crescita che circonda Oracle NoSQL. Mentre la piattaforma si espande rapidamente e si integra con Java framework popolari come Jakarta EE, Spring e altri strumenti per sviluppatori, è ancora relativamente nuova rispetto ad alcuni database NoSQL già affermati. Come risultato, la disponibilità di strumenti di terze parti, plugin e risorse guidate dalla comunità sta ancora cercando di raggiungere il livello di maturità di alcuni database NoSQL più vecchi. Anche se l’investimento di Oracle nella piattaforma garantisce supporto continuo e crescita, potrebbe volerci del tempo prima che l’ecosistema raggiunga il livello di maturità di questi database. I sviluppatori dovrebbero sapere che, in alcuni casi, potrebbe essere necessario sviluppare in modo custom ulteriore per colmare i buchi nelle dotazioni o nelle integrazioni che sono più facilmente disponibili per altri sistemi NoSQL.

Iniziare con Oracle NoSQL

Per iniziare a lavorare con Oracle NoSQL, i sviluppatori possono scegliere di usare la soluzione cloud fornita da Oracle Cloud oppure eseguire il database localmente tramite Docker. Per l’esecuzione locale, il seguente comando Docker può iniziare il processo:

Shell

 

docker run -d --name oracle-instance -p 8080:8080 ghcr.io/oracle/nosql:latest-ce

Questo comando imposta un’istanza di Oracle NoSQL sulla macchina locale, rendendo facile testare e sviluppare applicazioni senza configurare infrastrutture complesse.

Oracle NoSQL integra in modo fluido Jakarta Data e l’ecosistema Eclipse JNoSQL. Ecco un esempio di applicazione Java che dimostra come interagire con Oracle NoSQL utilizzando una semplice entità Beer:

Java

 

@Entity
public class Beer {

    @Id
    private String id;

    @Column
    private String style;

    @Column
    private String hop;

    @Column
    private String malt;

    @Column
    private List<String> comments;

    @Column
    private List<Crew> crew;

    @Column
    private Map<String, Object> data;
}

L’interfaccia del repository sfrutta la specializzazione di Oracle NoSQL per fornire unaEsperienza di query simile a SQL:

Java

 

@Repository
public interface BeerRepository extends OracleNoSQLRepository<Beer, String> {

    Set<Beer> findByStyle(String style);

    @Query("select * from Beer")
    Set<Beer> query();

    @Find
    @OrderBy("hop")
    CursoredPage<Beer> style(@By("style") String style, PageRequest pageRequest);

    @Query("From Beer where style = ?1")
    List<Beer> jpql(String style);
}

L’esecuzione di questa applicazione consente ai sviluppatori di interagire con Oracle NoSQL, interrogando e persistendo i dati utilizzando costrutti Java familiari.

Conclusione

Oracle NoSQL Database offre una soluzione flessibile e scalabile per i sviluppatori che costruiscono applicazioni moderne che richiedono alta disponibilità, bassa latenza e la capacità di lavorare con diversi modelli di dati. Con funzionalità come la compatibilità SQL, servizi cloud gestiti e strumenti di sviluppo estesi, Oracle NoSQL fornisce un ambiente completo sia per i principianti che per i sviluppatori esperti. Indipendentemente dalla distribuzione in cloud o locale, Oracle NoSQL semplifica il processo di sviluppo, permettendo ai sviluppatori di concentrarsi sulla creazione di funzionalità e sulla consegna di valore più velocemente.

Per maggiori istruzioni dettagliate sull’utilizzo di Oracle NoSQL, visitare la pagina di Oracle su GitHub.

Source:
https://dzone.com/articles/oracle-nosql-database-developers-guide