# Datenbanken auswahl, anforderungen



## PrinzMartin (6. Nov 2007)

Moin Moin 

seit Gestern mühe ich mich jetzt mit meiner Access Datenbank ab und hänge jetzt dabei, daten in die Datenbank einzufügen. Im Internet lese ich immer häufiger, dass Access Datenbanken eher unbeliebt sind

Meine Frage daher:

Welche Datenbank nehme ich am besten, wo bekomme ich die her und was für Programme brauche ich um die zu bearbeiten (Freeware)


Die Datenbank muss eigentlich nur mit Java zu lesen und zu ändern sein, ich muss also neue Datensätze einfügen könne also neue Zeilen mit neuem Inhalt anlegen usw....


ich hoffe es gibt da was gutes ansonsten mühe ich mich weiter ab und hoffe ihr wisst ein paar gute Tutorials (am besten Deutsch, Englisch ist aber auch Ok).


Grazie in anticipo


----------



## SlaterB (6. Nov 2007)

nimm MySQL, dazu sollte dich google überhäufen


----------



## PrinzMartin (6. Nov 2007)

naja Google überhäuft mich aber leider hilft das in diesem Falle gar nicht

Ich hab mir da jetzt was runtergeladen und zwar den MySQL Server 5.0 obwohl ich mich frage, was das eigentlcih ist, und dann noch den MySQL Administrator, das bringt mich aber auch nicht weiter....

ich möchte doch nur, dass das auf meinem Rechner läuft das muss nix mit Internet können oder so aber ich schaffe es nicht einmal ne Datenbank anzulegen und zu speichern.....

Ich frag mcih echt ob ich ein Problem habe Informationen auszuwerten, oder ob das echt nicht wirklich perfekt erklärt ist...

ehrlich gesagt finde ich nirgends eine Anleitung, was ich installieren muss, und wie ich dann eine Datenbank anlege, alles immer nur mit Php bzw fürs Internet oder ähnliches.


Mitlerweile zweifle ich echt an mir, es muss doch eigentlich ziemlich einfach sein so ne Datenbank anzulegen, wenn dafür scheinbar niemand wirklich Hilfe braucht...

naja vllt wisst ihr da ja ne Seite oder so wo das steht.....

grazie in anticipo


----------



## SlaterB (6. Nov 2007)

wie sieht es denn mit diesem Tutorial hier aus:
http://dev.mysql.com/doc/refman/5.1/de/tutorial.html

(erster Link bei Suche nach 'mysql tutorial')

ob man aus Java ein DB anlegen kann weiß ich nicht, wie oft passiert das auch schon

die Installation fande ich auch meist schwer, da sind die bekannten DBs wie auch Tomcat und ähnliches oft schlecht,
zu viele Konfigurationen, kein sinnvoller Defaultzustand, jede Programm-Version anders..

aber ohne Internet ist es schon etwas einfacher,
was genau klappt da noch nicht?,
der Server an sich oder die Anbindung an Java?

zu ersterem auch noch mal der Link aufs Tutorial
http://dev.mysql.com/doc/refman/5.1/de/installing.html
(mit Download-Link)
obwohl ich selber nicht genau weiß, was da drin steht


----------



## PrinzMartin (6. Nov 2007)

Ok Tutorial schau ich mir noch mal an

Naja vllt stell ich mir das auch falsch vor. Ich hab visher eigentlich noch nie was mit Datenbanken gemacht und wenn überhaupt mal mit Access.

Ich hab mir das jetzt so gedacht, dass ich da ein Programm runterlade und eventuell noch ne MySQL Version und dann läfut das wie Access nur anders....

also ich klicke auf neue Datenbank und kann das alles schön eintippen....

Ich schau mir aber erst mal das Tutorial an.

PS: bis zur einbindung von Java bin ich noch nich mal gekommen^^ da muss auch keine DB neu angelegt werden, sondern nur zeilen hinzugefügt werden...


----------



## SlaterB (6. Nov 2007)

als graphische Oberfläche dazu kenne ich persönlich noch den MySQL Query Browser
http://www.mysql.de/products/tools/query-browser/
http://dev.mysql.com/downloads/gui-tools/5.0.html


----------



## tuxedo (6. Nov 2007)

Wenn du sowas "optisches" wie Access haben willst, dann solltest du dir vielleicht mal OpenOffice Base (im OpenOffice Paket auf www.openoffice.org) anschauen. Das ist die Office-Alternative zu Access.


----------



## PrinzMartin (6. Nov 2007)

OK schau ich mir nachher an ich geh jetzt erst mal Trainieren...

würdest du denn sagen, dass sich das für nene Vokabeltrainer eignet, dass soll es nämlich werden...

ich brauche nur eine Tabelle, in der die Vokabeln gespeichert sind, dann muss ich aus meinem Java Programm die Daten Abfragen können und neue Daten in die Tabelle schreiben können....

wenn dass geht dann würde mir dass schon reichen oder fällt euch auf Anhieb noch was man da als Datenbank noch braucht........mir nicht.

Deshalb braucht es auch nix perfektes zu sein es reicht halt wenn diese Anforderungen erfüllt sind und das möglichst einfach sowohl im Bereich des Anlegens, da ich ja ne menge Vokabeln reinschreiben muss, wie auch im Bereich dess Zugriffs über Java....


naja danke shcon mal für das Tutorial das scheint gut zu sein ich Trainier dann mal eben und lasse euch Zeit mir ne menge Tips zu geben...

grazie in anticip


----------



## Guest (6. Nov 2007)

Für solche kleine Anwendung brauchst du keine Datenbank. Wieviele Vokabeln werden es denn sein, 1000, 10000?
Die einfachste Lösung wäre das ganze einfach zu serialisieren. Falls du nebenbei doch etwas JDBC/SQL lernen möchtest,
dann nimm für's erste lieber etwas kleines wie H2, hsqldb oder Derby, statt mySQL.


----------



## PrinzMartin (6. Nov 2007)

Ok naja es werden grob geschätzt bisher so 1700 sein das ändert sich allerdings stetig^^

unsere Lehrerin schläft nicht und versorgt uns regelmäßig....

was meinst du mit serialisieren? weil ich dachte auch nachher mehere Tabellen in der Datenbank zu haben, eine für schon gekonnte Vokabeln, eine für nicht gekonnte (außerdem nehme ich das wirklich zum lernen aber das ist wirklich nebensache serialisiert hab ich auch noch nicht also würd ich da auch bei lernen)^^


Ok ich hab mal unter serialisieren nachgelesen, ist eigentlich doch das gleiche wie wenn man in zum beispiel nem Spiel speichert oder?

naja leider hab ich keine Ahnung wie ich das machen soll aber dann würden mir ja zum beispiel Listen reichen oder? zum Beispiel 2 Listen, die ich dann Serialisiere und schon hab ich die gespeichert mit aktuellem Inhalt...... wenn ich das richtig verstanden hab klingt das nicht schlecht ;-) ich informier mich mal


----------



## PrinzMartin (6. Nov 2007)

Naja das wird wohl nichts, ich habe jetzt mal eine Liste genommen und mit einer for schleife "hallo" reingeschrieben bei 868 Listen Objekten ist schluss, dann bekomme ich ne ganze Menge Fehler.

Ich weiß jetzt allerdings nicht ob das am Serialisieren liegt oder an der Liste.....

mein Code:

```
import java.io.*;

public class serialisieren implements Serializable
{

  public static void main(String[] args)
  {
    cList liste;
    liste = new cList();

    for(int i = 0; i < 869; i++)
    {
      liste.insertBehind("hallo");
    }

    try
    {
      ObjectOutputStream objOut = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream("test.ser")));
      objOut.writeObject(liste);
      objOut.close();
    } catch (IOException e)
    {
      System.out.println(e);
    }
  }
}
```


Die Liste ham wa im Informatik Unterricht gemacht... da is nix besonderes dran, falls es dran liegen kann poste ich noch den Code aber ich will euch ja nicht überlasten ihr helft schon genug ;-)

grazie


----------



## The_S (7. Nov 2007)

Was ist denn cListe? Nehm doch einfach ne ArrayList -.- . Und da passen weit mehr als 869 Datensätze rein. Poste doch mal die Fehlermeldung inkl. StackTrace!


----------



## PrinzMartin (7. Nov 2007)

cList ist die normale Java List von uns programmiert....

aber ich denke ich möchte doch lieber eine Datenbank nehmen, das macht die Sache für mich schöner... auch weil ich dann nebenbei noch die Datenbank anbindung lerne^^

und ich will ja nicht zu viel auf einmal lernen...

Eine Frage ist mir aber noch gekommen... Wenn ich jetzt ein MySQL oder OpenOffice Datenbank nehme, kann die dann auch auf einem PC verwendet werden, auf dem kein MySQL installiert ist? also würde mein Programm damit arbeiten können?

ansonsten probier ich jetzt erst mal das kanze von euch vorgeschlagene zu verarbeiten ;-) danke sehr


----------



## SlaterB (7. Nov 2007)

ein Programm mit DB-Anbindung kann logischerweise ohne DB wenig machen,
da bietet sich dann wirklich an, die DB mitherumzuschleppen,

also nicht MySQL sondern was leichtes 

> etwas kleines wie H2, hsqldb oder Derby


----------



## The_S (7. Nov 2007)

Warum programmiert ihr eine Liste, wenn Java schon ca. 5367509 unterschiedliche Listen implementiert? Zumal eure Liste scheinbar nicht wirklich gut ist, wenn sie nach knapp 900 Elementen den Geist aufgibt.

Natürlich muss MySQL auf dem Rechner installiert sein. Deshalb empfehle ich dir auch eine Datenbank, die recht einfach auch im Stand-Alone-Modus betrieben werden kann (wie z. B. die HSQLDB)


----------



## PrinzMartin (7. Nov 2007)

Naja mit der Liste also wenn du so fragst, dann kann man im Informatik Unterricht eigentlich gar nichts mehr prgrammieren....... gibt ja eh schon alles....

Ok, genau so ne standalone Datenbank scheine ich dann ja wohl zu brauchen.... ich schaus mir mal an, aber es währe ja dämlich, wenn der User noch x Programme installieren muss um das Programm zu benutzen....


danke sehr....


PS: ich frage jetzt so viel, um nicht auf der hälfte des Projektes feststellen zu müssen, dass andere mein DB nicht nutzen können oder ähnliches...


----------



## The_S (7. Nov 2007)

Naja, als Übung kann man das ja schonmal machen. Aber wenn die Liste fehleranfällig ist, sollte man sie wohl nicht verwenden oder eben die bugs fixen.

Ihr könntet ja ma im Info-Unterricht ne Eierlegende-Woll-Milch-Sau programmieren. Das gibts noch net  .


----------



## PrinzMartin (7. Nov 2007)

Ja stimmt das könnten wir tun^^

naja außerdem sehe ich gerade, dass die Liste fürs Abi 2009 zum Stoff gehört also noch ein grund die zu proggen ;-)

ich schlage mich jetzt gerade mit HSQLDB rum und such ein gutes tutorial zum anlegen einer DB^^ aber da hilft Google hoffentlich ;-)


----------



## The_S (7. Nov 2007)

google und die forensuche


----------



## PrinzMartin (7. Nov 2007)

Joa ich habs schon nur leider kann ich Daten bisher nur per INSERT einfügen, LOAD DATA LOCAL INFILE scheint nicht zu klappen.... das ging bei MySQL so schön, vllt mach ich da aber auch einfach nen Fehler ich such momentan noch^^

ich arbeite mit diesem Database Manager, der in dem HSQLDB paket dabei ist.... ich schaff das schon ;-) langsam aber sicher ;-)


----------



## The_S (7. Nov 2007)

Was ist an INSERT schlimm? Das is Standard-SQL ...


----------



## PrinzMartin (7. Nov 2007)

Naja wenn man grob geschätzt 1700 Eintragungen machen möchte, dann gefällt einem die aussicht gar nicht....

bei MySQL gibt es ja 


```
mysql> LOAD DATA LOCAL INFILE '/path/pet.txt' INTO TABLE haustier
    -> LINES TERMINATED BY '\r\n';
```

Damit kontne ich dann alles in eine txt Datei schreiben.... das geht deutlich schneller wie ich finde...

außerdem finde ich gerade keine möglichkeit so eine Automatisch vortlaufende ID wie es sie bei Access gibt zu nutzen....

vllt braucht man die auch gar nicht aber ich weiß sonst nicht wie ich einzelne Zeilen löschen soll, da ich nur 


```
DELETE FROM tabelle WHERE feld = "das und das"
```

naja und da braucht man doch ne eindeutige nummer um die zeilen zu identifizieren.... ich bin halt wirklich auf dem Gebiet noch ganz neu aber ich hab schon 3 Seiten bei Google durchsucht nach HSQLDB tutorial HSQLDB zeilen löschen etc...


vllt wisst ihr ja wenigstens eine gute Seite, wo jede anwendung einmal beschrieben wird mit nem kleinen Beispiel oder so

grazie in anticipo


----------



## The_S (8. Nov 2007)

Für eine eindeutige Identität musst du beim Erstellen der Tabelle das Schlüsselwort "IDENTITY" für das entsprechende Feld angeben.

Es gibt bestimmt eine Möglichkeit ein CVS oder ein XML in die Datenbank zu importieren, diese kenne ich aber nicht auswendig. Aber schreib dir doch einfach ein kleines Programm, dass deine Textdatei zeilenweise ausliest und jeden Datensatz in die DB schießt. Sollte schneller gehen als 1700 Datensätze von Hand einzupflegen  .


----------



## ms (8. Nov 2007)

Du könntest auch die 1700 Datensätze in Excel importieren und einen Insert-Befehl mit einer Formel erstellen. Dann einfach klick klick (Formel kopieren) und hurra ... 1700 ausführbare Insert-Statements untereinander.

ms


----------



## The_S (8. Nov 2007)

Da find ich die Java-Version aber schöner  .


----------



## PrinzMartin (8. Nov 2007)

Joa stimmt könnte ich machen, das mit der java Version klingt nicht schlecht... ich probier jetzt aber erst mal so ne HSQLDB in ein einfaches Java Programm einzubinden und einfach nur die DB Werte mal auszugeben......  Damit sollte ich heute beschäftigt sein denke ich ;-)


----------



## PrinzMartin (8. Nov 2007)

argh  Problem gelöst..... es gibt auch da einen Manager nur besser versteckt




> Ich habe es Tatsächlich geschafft, meine ersten Eingaben in die DB gemacht und auch die ersten Daten ausgegeben....
> 
> aber da ich mit einer HSQLDB Datenbank arbeite, muss ich ja die hsqldb.jar als library einfügen... bei Netbeans ist das ja kein problem, da gibbet ja nen Manager für, aber wenn man jetzt einen einfachen Java Editor hat, den ich persölich schöner finde, da ich ja nicht schnell was zusammenklicken sondern eher lernen will wie es geht, gibt es da so einen Manager nicht...
> 
> ...




PS: Ich benutze den Java Editor von einem Herrn Rhöner
http://lernen.bildung.hessen.de/informatik/javaeditor/


PS2: wofür steht eigentlich dieses Männchen mit der roten Nase ich frag mich dass, seit ich Java kenne :-D


----------



## Gast (8. Nov 2007)

wenn du deine daten als csv-datei hast kannst du die direkt als tabelle in hsqldb einbinden und dann mit einem instert alles in eine "richtige" tabelle übertragen.

http://hsqldb.org/doc/guide/ch06.html

btw: h2 kann das auch


----------



## The_S (9. Nov 2007)

Welches Männchen mit der roten Nase? Meinst du den Duke? Das Maskottchen?


----------



## tuxedo (9. Nov 2007)

Ja, das meint er.

--> http://www.java.com/en/dukeszone/


----------

