Siete alla ricerca di un database open source, relazionale e scritto in Java? Allora state cercando Derby.
Derby, infatti, è un RDBMS sviluppato da Apache e basato su SQL, costituito da un engine abbastanza piccolo da poter essere integrato in qualsiasi soluzione realizzata con java. Derby inoltre assicura l’integrità dei dati e fornisce supporto alle transazioni.
Derby offre al programmatore una duplice modalità di utilizzo: Embedded o Server-based. Utilizzando la modalità embedded, il database e l’applicativo utilizzeranno la medesima virtual machine, risultando di conseguenza trasparente all’utente finale il quale non dovrà preoccuparsi di avviare o arrestare il database. La seconda modalità, invece, vede Derby configurato come un server di rete. In questo caso, verrà utilizzata la JVM del server sul quale Derby è stato installato.
Piuttosto lunga risulta essere la lista dei progetti e dei prodotto in grado di supportare Derby: Tomcat, Jboss, Glassfish, Eclipse Database Developer, NetBeans, OpenOffice, Squirrel SQL, Hibernate, ma la lista potrebbe continuare a lungo.
(matTE0)
23 ott 2009 - 14:44 - #1Io preferisco H2 ed HSQLDB (che ne è il progenitore).
Derby lo metto un gradino sotto come anche SQLite.
mess
23 ott 2009 - 14:51 - #2molto lento purtroppo.
Ormai tutti i progetti “server” open lo usano come db di default (vedi liferay).
pinzia
23 ott 2009 - 15:38 - #3ma scusate come è come velocità?
Stiamo usando un applicativo gestionale con hsqldb ed il tutto è molto lento, con alcuni blocchi in chiusura connessione e con mancanza di alcune feature; ora pensano di migrare l’applicativo su mysql, perdendo però la possibilità di avere tutto in java, questo derby potrebbe esser all’altezza? È abbastanza ‘professionale’ come mysql o assomiglia molto a hsqldb?
Vincent666999
23 ott 2009 - 17:01 - #4Ottima soluzione scritta in java, migliore di HSQLDB ma non performante come H2, ma tutto sommato buono. Nel sito sun lo trovi sotto il nome di JAVADB e dovrebbe essere la versione 10.5.non_ricordo_bene. Molto completo anche nelle feature, ben gestibile con netbeans. Un po’ problematico è trovare software di modellazione che possa sfruttarlo, io uso:
Power*Architect —> http://www.sqlpower.ca/page/architect
netbeans
DbVisualizer
Saluti
Vincent666999
23 ott 2009 - 17:14 - #5Aggiungo per chi ama sperimentare, provate anche NeoDatis ODB
http://www.neodatis.org/
sulla linea di db4o ovviamente è totalmente ad oggetti.
a ri-saluti
Henryx
23 ott 2009 - 17:29 - #6Posto che MySQL non e` la risposta ma parte del problema, eviterei HSQLDB e H2[1] in quanto mi hanno dimostrato di essere poveri di funzionalita` e proni a corruzioni del database[2]. Per quanto riguarda Derby, anche io ho sentito storie sulla sua lentezza, ma c’e` anche da dire che il concetto di velocita` e` un concetto astratto e variabile. Se ad esempio non sono eseguite le dovute ottimizzazioni (indici, normalizzazione…), e` normale che il database sia lento, soprattutto in caso di una grossa mole di dati. Infine, se si vuole migrare da Derby a qualcos’altro, propenderei per Firebird in quanto, oltre ad aver dimostrato sul campo la sua affidabilita`, permette di avere una modalita` embedded (oltre che una modalita` client/server)
Enrico
[1] per quest’ultimo parlo “sulla fiducia”, in quanto una comparazione delle funzionalita` ed il fatto che e` sviluppato dallo stesso autore di HSQLDB non lasciano presagire nulla di buono
[2] devo comunque dire che il mio era veramente un caso limite, in quanto andavo a leggere gli stessi dati con cinque connessioni differenti e ad intervalli ciclici di 10-15 secondi
guidogozzano
23 ott 2009 - 17:29 - #7Non sono un appassionato di Micro$oft e detesto cordialmente Windows e tutte le sue versioni… ma certi che in un blog che si chiama ossblog non spendere nemmeno una parola sull’uscita di Winzoz 7 mi sembra davvero fazioso!!!!
Vincent666999
23 ott 2009 - 17:38 - #8@ Henryx
concordo sul fatto che un minimo di ottimizzazione non faccia mai male, ma davvero mi dite che Derby è lento?
@guidogozzano
Tutto il mondo ha parlato dell’uscita di Win 7, penso che almeno quì possiamo evitarcelo senza sentirci in colpa. Comunque per bilanciare le cose aggiungiamo anche che Ubuntu 9.10 e in RC.
Henryx
23 ott 2009 - 18:23 - #9@7
Penso che non ti sia chiara una cosa: OSSblog parla di sistemi operativi e applicazioni Open Source. Windows 7 non rientra in questa categoria, quindi, a che pro parlarne (eccetto per fomentare flame e compagnia cantante)?
@8
Sulla velocita` di Derby non ti so dire nulla, personalmente l’unico (e disastroso) approccio ai database Java l’ho avuto con HSQLDB. Da quello che ho sentito, sia da voci in ambito lavorativo che su internet, Derby prestazionalmente parlando non ha mai brillato. A tal proposito, puoi vedere una comparativa qui (anche se il logo di Sun non mi ispira molta imparzialita` riguardo al test) e qui. Infine, tieni presente che il parametro “performance” in questo tipo di applicazioni non e` un parametro chiave, in quanto va tenuto presente che quello che conta e` soprattutto l’affidabilita` (e Derby inizialmente e` stato concepito per essere il piu` stabile possibile)
Enrico
florianoo
24 ott 2009 - 02:52 - #10nooo, qualcunque db in java è una schifezza, liferay usa HSQLDB solo per mettere un bundle pronto all’uso (tanto la prima cosa che tutti fanno è farlo puntare ad un db mysql).
se è proprio necessario utilizzare un db standalone con l’applicazione tanto vale usare il veloce sqlite (scritto in c++ con salvataggio su un file) anche se poi le funzionalità non sono paragonabili ai veri dbms.
Massimo S.
24 ott 2009 - 22:48 - #11@guidogozzano
guarda che questo blog si chiama ossblog, non osblog, ovvero non è un blog sui sistemi operativi ma sull’open source sofware.
Quindi è assolutamente corretto che non si parli di Windows 7 in quanto non open source