Toon posts:

[Java] Database voor commerciële doelen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben opzoek naar een gratis database die commercieel gebruikt mag worden en goed "online" samen kan werken met Java.

SQLite leek me een goed idee alleen deze is volgens mij alleen standalone te gebruiken. Hebben jullie nog een goed idee, er zijn er namelijk zo veel!

Acties:
  • 0 Henk 'm!

  • Leftblank
  • Registratie: Juni 2004
  • Laatst online: 17:46
SQLite is grappig, maar is inderdaad meer op gebruik door een klein aantal users tegelijk bedoelt, het lockt nogal snel. Waarom ga je niet gewoon voor de meest bekende keus; Mysql? Oftewel, wat heb je zelf al uitgezocht verder? Keuze genoeg in ieder geval ;)

Acties:
  • 0 Henk 'm!

  • Robtimus
  • Registratie: November 2002
  • Laatst online: 16:27

Robtimus

me Robtimus no like you

PostgreSQL is onder de BSD license uitgegeven. Voor zover ik weet mag je het dan commercieel verspreiden zolang je hun copyright statement maar include.

More than meets the eye
There is no I in TEAM... but there is ME
system specs


Acties:
  • 0 Henk 'm!

  • Marcj
  • Registratie: November 2000
  • Laatst online: 18:13
Apache Derby is vergelijkbaar met SQLite, maar is volledig te integreren in jouw Java programma. Plus dat hij onder de Apache licence valt, wat zover ik weet betekent dat je deze mag verspreiden zolang je de licencie maar meegeeft.

Acties:
  • 0 Henk 'm!

  • den 150
  • Registratie: Oktober 2002
  • Niet online
Zowel Oracle en Microsoft hebben kleine gratis versies van hun databases. Mysql en Postgresql zijn beide gratis en volwassen genoeg. Daarnaast heb je de kleine databases zoals Derby en HSQLDB.

Het hangt er van af wat je ermee wil gaan doen: grote transaction processing, data archiveren, gewoon wat settings bijhouden, ...

Welke heb je zelf al gevonden? En waarom voldoen die wel/niet?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Leftblank schreef op dinsdag 30 december 2008 @ 13:53:
SQLite is grappig, maar is inderdaad meer op gebruik door een klein aantal users tegelijk bedoelt, het lockt nogal snel. Waarom ga je niet gewoon voor de meest bekende keus; Mysql? Oftewel, wat heb je zelf al uitgezocht verder? Keuze genoeg in ieder geval ;)
MySQL is niet gratis voor commercieel gebruik dacht ik.
IceManX schreef op dinsdag 30 december 2008 @ 13:54:
PostgreSQL is onder de BSD license uitgegeven. Voor zover ik weet mag je het dan commercieel verspreiden zolang je hun copyright statement maar include.
PostgreSQL is volgens http://www.sqlite.org/speed.html op bepaalde vlakken stukken trager dan bijvoorbeeld SQLite of MySQL. Maar op zich wel een goed idee.
Marcj schreef op dinsdag 30 december 2008 @ 13:59:
Apache Derby is vergelijkbaar met SQLite, maar is volledig te integreren in jouw Java programma. Plus dat hij onder de Apache licence valt, wat zover ik weet betekent dat je deze mag verspreiden zolang je de licencie maar meegeeft.
Heeft Apache Derby goede performance? Ik ga er naar kijken, het is natuurlijk wel beter omdat Java er gemakkelijk mee om kan gaan.

Acties:
  • 0 Henk 'm!

  • BHR
  • Registratie: Februari 2002
  • Laatst online: 17-09 21:58

BHR

Verwijderd schreef op dinsdag 30 december 2008 @ 14:10:
[...]
MySQL is niet gratis voor commercieel gebruik dacht ik.
Je hebt de community edition.
[...]

PostgreSQL is volgens http://www.sqlite.org/speed.html op bepaalde vlakken stukken trager dan bijvoorbeeld SQLite of MySQL. Maar op zich wel een goed idee.
Bovenaan het document staat duidelijk "Note: This document is old.". Zo wordt oa PostgreSQL 7.1(!) gebruikt. Je keuze dus niet op deze info baseren.
[...]


Heeft Apache Derby goede performance? Ik ga er naar kijken, het is natuurlijk wel beter omdat Java er gemakkelijk mee om kan gaan.
Alle genoemde dbs gebruiken JDBC. Wat dat betreft zou alleen het wel of niet direct bundelen van de database met je applicatie iets kunnen uitmaken voor je keuze.

No amount of key presses will shut off the Random Bug Generator


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
den 150 schreef op dinsdag 30 december 2008 @ 14:05:
Zowel Oracle en Microsoft hebben kleine gratis versies van hun databases. Mysql en Postgresql zijn beide gratis en volwassen genoeg. Daarnaast heb je de kleine databases zoals Derby en HSQLDB.

Het hangt er van af wat je ermee wil gaan doen: grote transaction processing, data archiveren, gewoon wat settings bijhouden, ...

Welke heb je zelf al gevonden? En waarom voldoen die wel/niet?
Ik wil het online gebruiken voor kleine transacties dus eigenlijk is een simpele database voldoende.

Als ik de applicatie test met MySQL dan duurt het ongeveer 5 sec. om te verbinden.
code:
1
connection = DriverManager.getConnection("jdbc:mysql://" + this.url + "/" + this.database + "?user=" + this.username + "&password=" + this.password);

Dit duurt uiteraard te lang, aangezien de applicatie meerdere malen de connectie opent en sluit. Ik weet niet of dit bij PostgreSQL of Apache Derby sneller gaat of dat ik een fout maak?

Acties:
  • 0 Henk 'm!

  • TeeDee
  • Registratie: Februari 2001
  • Nu online

TeeDee

CQB 241

Als je de database op een, laten we zeggen, Commodore 64 host dan kan dat wat traag zijn. Met andere woorden: Zoek eens uit waarom dit zo traag is, en geef dan niet meteen de database de schuld.

• DB configuratie
• Slechte/trage verbinding
• Firewall

[ Voor 14% gewijzigd door TeeDee op 30-12-2008 14:29 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op de MySQL site staat:
MySQL Community Server is the world's most popular open source database to the open source community.

Is dit dan niet alleen geldig voor de open source community?

Bedankt trouwens voor jullie snelle reacties! _/-\o_

Acties:
  • 0 Henk 'm!

  • Johnny
  • Registratie: December 2001
  • Laatst online: 16:31

Johnny

ondergewaardeerde internetguru

Verwijderd schreef op dinsdag 30 december 2008 @ 14:34:
[...]


Op de MySQL site staat:
MySQL Community Server is the world's most popular open source database to the open source community.

Is dit dan niet alleen geldig voor de open source community?

Bedankt trouwens voor jullie snelle reacties! _/-\o_
Kijk eens in de licentievoorwaarden in plaats van een slagzin van de homepage.

Verder is totaal niet duidelijk hoe je de database wil gebruiken. Om wat voor soort applicatie gaat het? Een clientside java-applicatie waarmee je de database meelevert, een client side applicatie die verbinding maakt met een database via internet of een webapplicatie die verbinding maakt met een eigen database op de server, of iets anders?

Aan de inhoud van de bovenstaande tekst kunnen geen rechten worden ontleend, tenzij dit expliciet in dit bericht is verwoord.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
TeeDee schreef op dinsdag 30 december 2008 @ 14:27:
Als je de database op een, laten we zeggen, Commodore 64 host dan kan dat wat traag zijn. Met andere woorden: Zoek eens uit waarom dit zo traag is, en geef dan niet meteen de database de schuld.

• DB configuratie
• Slechte/trage verbinding
• Firewall
Sorry voor de belediging :P , ik heb het verandert. Maar waarschijnlijk ga ik niet verder met MySQL dus ik wacht nog even met het verder uitzoeken.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Johnny schreef op dinsdag 30 december 2008 @ 14:38:
Kijk eens in de licentievoorwaarden in plaats van een slagzin van de homepage.

Verder is totaal niet duidelijk hoe je de database wil gebruiken. Om wat voor soort applicatie gaat het? Een clientside java-applicatie waarmee je de database meelevert, een client side applicatie die verbinding maakt met een database via internet of een webapplicatie die verbinding maakt met een eigen database op de server, of iets anders?
Licentie:
MySQL website op dinsdag 30 december 2008 @ 14:50:
Updated October 9, 2008

For OEMs, ISVs, VARs and Other Distributors of Commercial Applications:

OEMs, ISVs, VARs and other distributors that combine and distribute commercially licensed software with MySQL software and do not wish to distribute the source code for the commercially licensed software under version 2 of the GNU General Public License (the "GPL") must enter into a commercial license agreement with Sun.
Het gaat om een client side java applicatie die verbinding maakt met een database via internet. Het aantal gebruikers die er uiteindelijk gebruik van zullen maken is nog onduidelijk. De applicatie verricht simpele query's.

Acties:
  • 0 Henk 'm!

  • den 150
  • Registratie: Oktober 2002
  • Niet online
Op basis van je antwoorden lijkt mij dat je het beste bent met Mysql of Postgresql. Bijde zijn aanspreekbaar met JDBC over netwerk, volwassen, en schaalbaar. Voor Mysql zal je waarschijnlijk meer info online vinden.

Aangezien je enkel maar verbinding maakt met de mysql server en die niet zelf distribueert ben je niet verplicht om je eigen code beschikbaar te maken onder gpl. Postgresql heeft een bsd-style licentie, wat wil zeggen dat je er ongeveer alles mee kan doen wat je wil.

Overigens is het aanmaken van een connectie niet iets om te benchmarken. Probeer je db connecties te poolen, en gebruik transacties om verschillende (verzamelingen van) queries te onderscheiden.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Dank jullie wel :*) , ik ga aan de slag!

Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 19:06

Gerco

Professional Newbie

Je gaat een client applicatie direct verbinding laten maken met een MySQL server op het internet? Dat is uit veiligheidsoverwegingen niet aan te raden... niet zonder SSL in ieder geval.

Bedenk overigens wel dat er voor de MySQL JDBC driver wellicht andere licentievoorwaarden gelden als voor de server. Als die MySQL Connnector-J onder GPL valt moet je wel degelijk je eigen app onder de GPL uitbrengen wanneer je die samen distribueert!

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

  • rrrandy
  • Registratie: Juli 2005
  • Laatst online: 27-06 13:00
Verwijderd schreef op dinsdag 30 december 2008 @ 14:22:
[...]


Ik wil het online gebruiken voor kleine transacties dus eigenlijk is een simpele database voldoende.

Als ik de applicatie test met MySQL dan duurt het ongeveer 5 sec. om te verbinden.
code:
1
connection = DriverManager.getConnection("jdbc:mysql://" + this.url + "/" + this.database + "?user=" + this.username + "&password=" + this.password);

Dit duurt uiteraard te lang, aangezien de applicatie meerdere malen de connectie opent en sluit. Ik weet niet of dit bij PostgreSQL of Apache Derby sneller gaat of dat ik een fout maak?
Je maakt geen fout. Bij andere databases zal het niet (veel) sneller gaan. Google eens op connection pooling :)

Acties:
  • 0 Henk 'm!

  • MSalters
  • Registratie: Juni 2001
  • Laatst online: 13-09 00:05
Gerco schreef op dinsdag 30 december 2008 @ 17:07:
Je gaat een client applicatie direct verbinding laten maken met een MySQL server op het internet? Dat is uit veiligheidsoverwegingen niet aan te raden... niet zonder SSL in ieder geval.
SSL alleen gaat niet veel helpen - je kunt nog steeds als client een DROP TABLE verzenden. SSL zorgt er voor dat als A en B communiceren, A weet dat alle communicatie in een sessie van B afkomstig is en vice versa, terwijl C daar geen inzicht in heeft. Maar op Internet weet A meestal niet wie B is.

Man hopes. Genius creates. Ralph Waldo Emerson
Never worry about theory as long as the machinery does what it's supposed to do. R. A. Heinlein


Acties:
  • 0 Henk 'm!

  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 19:06

Gerco

Professional Newbie

MSalters schreef op dinsdag 30 december 2008 @ 18:22:
SSL alleen gaat niet veel helpen - je kunt nog steeds als client een DROP TABLE verzenden. SSL zorgt er voor dat als A en B communiceren, A weet dat alle communicatie in een sessie van B afkomstig is en vice versa, terwijl C daar geen inzicht in heeft. Maar op Internet weet A meestal niet wie B is.
Dat timmer je natuurlijk met rechten af. Een client die op die manier verbinding maakt zal natuurlijk alleen SELECT rechten hebben op een zeer beperkt aantal tabellen en velden daarin. Misschien UPDATE of INSERT rechten, maar liever niet.

Je hebt natuurlijk gelijk dat het beter is om het gewoon helemaal niet te doen, maar *als* je het doet gebruik je SSL (liefst met client-certificaten) en draconische rechtenbeperkingen.

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


Acties:
  • 0 Henk 'm!

  • Remus
  • Registratie: Juli 2000
  • Laatst online: 15-08-2021
Ik zou ook kijken naar Firebird (http://www.firebirdsql.org/). Dat is ook een open source database, maar de licentie is minder beperkend dan MySQL (al is de JDBC driver licentie LGPL en daarmee iets meer beperkend dan de BSD licentie van PostgreSQL).
Pagina: 1