2011-07-12 35 views
0

我編寫了一個科學應用程序,每次測量特定人員時都會存儲數百萬行時間序列數據。它還存儲有關人員的元數據,以及有關測量會話期間記錄的各種參數。用於與商業Java應用程序分發的免費數據庫

在我自己的研究中,我一直在使用逗號分隔的txt文件和這個應用程序。但是我正在將應用程序移植到Java,並且正在考慮發佈我的軟件的一個封閉源代碼的商業版本。我想找到一個完全免費的,閃電般快速且安全的數據庫,我可以通過一個封閉的商業Java應用程序進行分發。

我在想使用mySQL。當我在主題上進行谷歌搜索時,我還發現了其他數據庫程序在線描述。但是我沒有任何分發商業產品的經驗,而且我還需要確保我使用的數據庫能夠以閃電般的速度操縱數據中的數百萬行。

有沒有人閱讀過此書有關於在封閉源代碼商業Java產品中發佈免費數據庫的經驗?如果是這樣,你能給我一些關於選擇你分發的數據庫的優缺點的建議嗎,比如mySQL?我會特別感興趣的是你可能發送給主題的任何網頁鏈接,供我進一步閱讀。

+0

你也可以試試HSQLDB,jdk的捆綁數據庫也可行 – Dapeng

+0

我想我會用HSQLDB或SQLite去。他們不需要用戶下載並安裝它們。 – Rudy

+0

謝謝大家的意見。我現在將此標記爲已回答。 – CodeMed

回答

1

根據MySQL website,這取決於您是否真的想要在您的應用程序中重新分配數據庫(然後您需要商業許可證,因爲MySQL使用GPL授權 - 更多信息請參見this discussion)。如果你不需要這樣做,如果你的應用程序可能是一個Web應用程序,那麼你可以安全地使用它。

我建議你看看PostgreSQL數據庫,這是根據更多仁慈的許可證條件許可的,你可以看到兩個on this site很好的比較。 如果你想嵌入你的DB,那麼PostgreSQL實際上可能是一個問題;我不知道如何將PostgreSQL數據庫嵌入到Java應用程序中。

最後還有SQLite數據庫,這需要一點more work才能使它與Java協同工作,但看起來好像有很多可能性。

當然,Apache Derby(或Java DB)數據庫在Apache許可證下獲得許可,該數據庫還允許您在不強迫您將項目開源的情況下重新分發它。

+0

謝謝。我會在今晚或明天晚些時候回顧所有這些鏈接。我可能會在明天回答問題。 – CodeMed

3

取決於您的用例。

MySQL肯定會完成這項工作,但你需要你的用戶下載,安裝和配置MySQL。這不是無法克服的,但仍然是用戶的負擔。

您還可以在服務器或內存模式下使用內置於Java中的Derby關係數據庫。如果您希望單用戶使用,後者會很有意義。它不需要下載和安裝,但它需要JDK 6或更高版本(感謝Adam Batkin的更正)。

+0

我認爲我包含的鏈接清楚地表明,但如果用戶擁有JDK 7,則不需要單獨下載。 – duffymo

+1

它也在JDK6中 –

+0

謝謝,我會糾正它。 – duffymo

2

SQLite(http://www.sqlite.org)是在公共領域,它真的很好。

+0

SQLite是免費的,不需要用戶下載並安裝它們。 – Rudy

相關問題