Varför är Derby och MySQL den enda RDMBS du anser? Om du säger Derby , bör du kolla in HSQLDB , H2 , SQLite också. Om du säger MySQL , bör du kolla in Postgres också (som har många fler funktioner).
Detta är bara för att nämna några gratis RDBMS. Naturligtvis, som Charlie redan uttryckte det, finns det massor av andra och massor av anledningar att gå åt båda hållen. Kolla in denna (IMO utmärkt) jämförelsesida på Wikipedia, där du hittar fördelar och begränsningar med alla RDBMS:
http://en.wikipedia.org/wiki/Comparison_of_relational_database_management_systems
När det gäller ditt krav på att din webbapp ska vara "nedladdningsbar" kan du naturligtvis bädda in en RDBMS (vilken som helst av Derby, H2, HSQLDB) i din webbapp. Men du kan också bara göra din MySQL eller Postgres eller vilken integration som helst konfigurerbar och ge dina nedladdare instruktioner om hur de ställer in din webbapp själva. När allt kommer omkring när du använder en containerkonfigurerad DataSource
för din webbapp kan denna konfiguration göras enkelt.
Nu, även om du tror att det kan vara lättare för dig att utveckla din webbapp med en inbäddad databas, bör du alltid tänka steget före. Frågor som:
- Kommer du att kunna ansluta till den databasen direkt, för att enkelt korrigera datainkonsekvenser? (Det kommer att hända oss alla)
- Kan du enkelt ändra schemat?
- Kommer du att kunna säkerhetskopiera dina data enkelt?
- osv etc... det finns fler underhållsfrågor också
Eftersom dina kommentarer tyder på att din data ökar med tiden, och den borde bestå, skulle jag inte välja en inbäddad version, utan hålla data åtskilda från applikationen. Observera att detta inte utesluter Derby från din applikationsdesign. Det betyder bara att du måste köra Derby som en fristående server.