# welches Datenbanksystem



## Seppel (13. Jul 2012)

hi,
ich kann mich persönlich nicht entscheiden.
Ich brauche für ein Projekt eine Datenbank.
Im Moment ist es eine kleine und das wird woll auch die nächsten zwei Jahre so bleiben.
Deshalb mein erster Gedanke: Eine Textdatei als Datenbank nutzen
geht schnell, sehr gut anpassbar und man hat nicht das Problem das man Schnittstellen mit anderer Software braucht.

Nur könnte es sein das dei Datenbank größer wird, und schneller arbeiten soll. Und angenommen (Spinnerei) das Programm inklusiver der Datenbank soll einem Mittelständigen Unternehmen bis zu 1000 Man ansprechend sein, dann ist die Idee mit der Textdatei nicht mehr so gut.

Nun die Frage, welche Datenbank die auf einen Server laufen soll und mit Java sehr gut abgefragt werden kann, ist hier zu empfehlen? Sollte möglichst OpenSource sein.

Ich will keine halben Sachen machen und das Projekt gleich richtig starten.

mfG


----------



## Final_Striker (13. Jul 2012)

Nimm eine Embeddet Datenbank wie z.B die Java DB


----------



## nillehammer (13. Jul 2012)

Alle gängigen Datenbanksysteme lassen sich von Java sehr gut ansprechen. Die Hersteller haben (inzwischen) gute jdbc-Treiber dafür implementiert. Mein Favorit ist hsqldb. Die ist in Java geschrieben. D.h. Du kannst Sie klassisch als Server laufen lassen, Du kannst sie aber auch im sog. embedded mode betreiben. Das verringert den JDBC-Overhead massiv. Allerdings ist bei 250GB Daten Schluss. Wenn Du mehr speichern willst, dann nimm MySql, Maria-DB (MySql-Fork) oder Postgres. Von den dreien ist MySql mein Favorit, weil das als erstes Da war und ich mich damit auskenne.


----------



## Fab1 (13. Jul 2012)

Grundsätzlich empfehle ich immer sehr gern MySQL. MySQL :: MySQL 5.1 Referenzhandbuch :: 25.3.5.1 Grundkonzepte von JDBC

Du hast ja gesagt, anfangs ist die Datenbank noch nicht so groß sondern erst in zwei Jahren. Du könntest, dass ganze dann natürlich in der CSV Datei speichern und anschließend in eine Datenbank exportieren. Ich denke nahezu jede Datenbanksystem hat eine Import Funktion für eine CSV Datei.


----------



## andiv (14. Jul 2012)

Ich würde dir auch zu einer eingebetteten Datenbank raten. Da lernst du den Umgang mit SQL und JDBC, aber hast nicht den ganzen Zusatzaufwand mit der Einrichtung eines Datenbankservers.

Meine Präferenz wäre da h2 (einfach und schnell). hsqldb oder derby wären Alternativen dazu.

Wenn du einen "richtigen" Datenbankserver verwenden willst dann stehen dir MySQL, PostgreSQL oder auch MSSQL (SQL Server Express gibts kostenlos) zur Auswahl.


----------



## Seppel (14. Jul 2012)

Hi,
danke für eure schnellen Antworten.
Sql war auch schon meine Tentenz.

Kann man einen automatischen syncronisierung zweier Tabellen in sql leicht implementieren?
Angenommen ein Unternehmen hat meine und ein anderes x-beliebiges Datenbanksystem und zum Beispiel die Kundendaten diese Unternehmens sind bei beiden Datenbanken nötig.
Ich nehme stark an das dies weniger schön werden wird.

Was CSV-Datein angeht habe ich folgenden Link gefunden: RFC 4180 - Common Format and MIME Type for Comma-Separated Values (CSV) Files
sind das alle Regeln an die man sich halten sollte? Oder gibt es da bessere Seiten?

mfG


----------



## Gast2 (14. Jul 2012)

Moin,


wenn Du schon weist das später eh eine DB ran kommt, dann mach gleich alles für eine DB mySQL kostet nichts. Sonst entwickelst Du jetzt alles für CSV/XML/TXT und später nochmal für DB. Du entwickelst also die Datenhaltung zwei mal.



Seppel hat gesagt.:


> Kann man einen automatischen syncronisierung zweier Tabellen in sql leicht implementieren?
> Angenommen ein Unternehmen hat meine und ein anderes x-beliebiges Datenbanksystem und zum Beispiel die Kundendaten diese Unternehmens sind bei beiden Datenbanken nötig.
> Ich nehme stark an das dies weniger schön werden wird.


ja - entweder haben beide Datenbanken ständig einen Sync miteinander (können fast alle, mySQL hatte ich schon getestet) oder Du musst Dir was einfallen lassen. In letzterem Fall sollte es sich von Vorteil erweisen das jeder Datensatz (pro Tabelle) weltweit eine eindeutige ID besitzt (z.B. GUID unter Windows) und einen Spalte "changed". Dann sollte es reichen wenn Du beim Sync nur noch nicht vorhande GUID austauscht bzw. Änderungen abgleichst. Ärgerlich wird es wenn der Datensatz aber auf beiden Seiten geändert wurde :bae:

hand, mogel


----------



## Paul279 (20. Jul 2012)

Ich würde gerne die Java DB ausprobieren. Hat diese irgendwo eine grafische Oberfläche so wie mysql mit phpMyAdmin?


----------



## Gast2 (20. Jul 2012)

Hm, ob JavaDB da was mitbringt weiß ich nicht. Aber ich schätze du kannst dich mit nem sql client verbinden, wie bspw. squirrel. Da hast du dann ne grafische Oberfläche.
Ich würde dir H2 empfehlen, das bringt direkt ne management oberfläche mit die du direkt im Browser öffnen kannst (ähnlich wie phpMyAdmin, nur nicht so mächtig).


----------



## tfa (20. Jul 2012)

Eine gute Alternative zu Squirrel usw. ist der DBVisualizer . Der funktioniert mit jeder JDBC-fähigen Datenbank.


----------



## Paul279 (20. Jul 2012)

Danke danke danke

Leider habe ich gestern 3 Stunden mit H2 "herumgeschi****". Die hat im Endeffekt nicht funktioniert.

(installiert wurde sie korrekt, konnte sie in netbeans einrichten, nur wenn ich eine jListe mit den Werten aus der H2 Datenbank befüllen wollte, kam immer ein Fehler, dass die Datenbank nicht erkannt werden konnte und ich es mal im Server Mode probieren sollte? Dabei hat beim Einrichten der Liste alles funktioniert, nur beim Ausführen hats nicht funktioniert - Naja habe lange gegoogelt aber nur das selbe Problem gefunden aber keine Lösung dazu, deshalb wechsel ich jetzt mal zu Java DB)

Danke werde mir mal Squirrel und DBVisualizer ansehen.


----------

