DB4O: un database Object-Oriented, per Java e dotNet

Se cercate un’alternativa ai Database relazionali, DB4O potrebbe fare al caso vostro. In questo articolo, vedremo come salvare e ricercare entry e soprattutto come viene gestito il refactoring degli oggetti salvati.

Sicuramente gli RDBMS godono di una supremazia difficilmente intaccabile, che rende impensabile una sostituzione, specie per moli di dati considerevoli e per dati dallo schema non elementare. Ma molti sviluppatori sono stufi di scrivere query SQL e soprattutto di trasporre modelli Object Oriented su relazioni e tabelle. Ponti middleware che permettano il mapping Object-relational (ORM), come Hibernate, Castor o Ibatis sono solitamente la migliore soluzione, ma richiedono comunque una fase di apprendimento non indifferente.

DB40 è un database Object Oriented, facilissimo da usare, che permette il salvataggio e la ricerca di oggetti Java a costo praticamente nullo. Vediamone l’utilizzo, con un esempio classico: una classe Person, con 2 campi di tipo String e un int e relativi getter e setter:

Per salvare una istanza della classe Person basta una riga di codice, mentre per effettuare le ricerche si utilizzano le Query by Example:

Come vedete il tutto è molto semplice, specie nel nostro scenario molto elementare. Bisogna comunque avere alcune accortezze tipiche dei DB Object Oriented, nel salvare i dati, per esempio per garantire l’unicità di alcune chiavi (o coppie di chiavi). Ma questo è ripagato, per esempio, dalla facilità di refactoring degli oggetti, conservando la persistenza. Aggiungiamo, per esempio, un campo enum alla classe Person:

La ricerca di elementi, utilizzando la nuova versione della classe, mostra anche gli elementi salvati prima della modifica:

Il cui output è:

Gli svantaggi di un approccio di questo tipo sono evidenti, si rinuncia alla accessibilità totale (per piattaforma e linguaggio di programmazione) che un DB classico offre, si perde probabilmente in prestazioni e soprattutto in scalabilità dell’architettura. Ma i files che contengono il salvataggio sono accessibili da tutte le piattaforme supportate (attualmente Java e DotNet), permettendo ad esempio la sincronizzazione dei dati fra una applicazione Desktop in Visual Basic .net, una server in Java e un per dispositivi mobili in C#.

La licenza di DB4O è doppia, GPL per chi vuole utilizzarlo in ambito Open e Commerciale per chi intende mettere sul mercato i propri prodotti.

Per approfondimenti:
http://www.db4o.com/
The busy Java developer’s guide to db4o: Queries, updates, and identity
The busy Java developer’s guide to db4o: Database refactoring with db4o
Esempio d’uso in C#

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *