# Speicherverbrauch Java Anwendung mit einer Datenbankanbindung



## Lia (2. Aug 2018)

Hi liebes Forum,

ich habe eine theoretische Frage bezüglich einem Projekt, was an der Uni vorgestellt wurde.

Es gab ein Programm welches in Java (Eclipse) entwickelt wurde. Also nur die Benutzeroberfläche. In der Benutzeroberfläche wurden quasi Daten eingelesen (in der Datenbank hinterlegt) und auch abgerufen und in Form von JTables ausgegeben usw..

Nun hab ich eine Frage dazu, wenn man z.B. eine Anwendung programmiert und über eine Benutzeroberfläche immer wieder Informationen in einer Datenbanktabelle hinterlegt (z.B. MySQL Workbench) wie ist das da eigentlich mit dem Speicherverbrauch, also gibt es da irgendwelche Nachteile bei einer größeren Datenmenge an Daten die über eine Benutzeroberfläche eingelesen werden?? Kann mir jemand vielleicht einige Nachteile von sowas nennen? 
oder ist sowas wie MySQL Workbench eher für kleinere Projekte gedacht??

Danke und ich hoffe ich war verständlich


----------



## Thallius (2. Aug 2018)

Sorry ich verstehe nicht was du da vorhast


----------



## mihe7 (2. Aug 2018)

Lia hat gesagt.:


> Danke und ich hoffe ich war verständlich


Leider nein. Ich weiß nicht, was Du jetzt genau wissen willst. Wenn Du große Datenmengen im Hauptspeicher hältst, dann brauchst Du ... viel Hauptspeicher.


----------



## Lia (2. Aug 2018)

oh gott wie peinlich sorry @Thallius @mihe7 

Also ich möchte eine Anwendung basteln. Die Oberfläche soll mit Java Programmiert werden. Es soll eine Verbindung zwischen dem Java Programm und der MySQLWorkbench aufgebaut werden. Die Informationen die im Java Programm eingegeben werden werden in den Datenbanktabelle hinterlegt und ggf mit der Oberfläche wieder ausgelesen.

Meine Frage war jetzt wie effizent das ist? Also ob es gut ist mit viele Informationen in MySQL Workbench zu hinterlegen oder wie viele Datenmengen oder gespeichert werden können, gibt es da irgendwelche Limits oder so?? Das meinte ich mit Speicherverbrauch


----------



## Thallius (2. Aug 2018)

MySQL Workbench ist nichts anderes als ein Helper Tool für eine MySQL Datenbank. Wieso du dieses von einem Java Programm heraus benutzen wilst erschließt sich mir nicht. Bist du sicher das du weißt was eine Datenbank ist und wie man diese benutzt?


----------



## Lia (2. Aug 2018)

ich hatte es mal ausprobiert.. hab bei mySQLWOrkbech ein ein Schema angelegt und darin konnte ich Tabellen verwalten und mit SQL Abfragen arbeiten. Das ist doch dann ein datenbankbasiertes Programm oder??


----------



## mihe7 (2. Aug 2018)

Die Workbench ist ein mySQL-Client - genauso wie Deine Java-Anwendung. Beide Anwendungen sprechen mit dem mySQL-Datenbank-Server. Daher braucht Deine Anwendung sich auch nicht mit der Workbench zu "unterhalten". 

Jedes Datenbanksystem hat Limits - was die Größe betrifft, so dürften diese Deine Erwartungen bei weitem übertreffen 

Wie viel Daten willst Du denn einlesen?


----------



## Lia (2. Aug 2018)

oh gott, jetzt habe ich noch eine Frage @mihe7 . Wenn ich aber von meiner Java-Anwendung spreche (die Benutzeroberfläche) ist es dann falsch, wenn ich sage "die Daten die in der Java Benutzeroberfläche eingegeben werden werden in den Datenbanktabellen hinterlegt" also Datenbanktabellen befinden sich ja dann in MySQL Workbench.. ??!

sorry für die dummen Fragen........


----------



## mihe7 (2. Aug 2018)

Also von vorne: es gibt eine Datenbank (DB), darin befinden sich Deine ... Daten  Die Daten müssen aber irgendwie verwaltet werden, dafür gibt es ein Datenbankverwaltungssystem (auf gut Englisch database management system - DBMS), das ist in Deinem Fall MySQL. Datenbank und DBMS bilden zusammen das Datenbanksystem. Weil die Daten in Tabellenform verwaltet werden, wird dieses auch als "relationales Datenbanksystem" bezeichnet.

Die Workbench ist einfach ein Programm, das mit dem DBMS spricht, um es dem DB-Administrator möglichst einfach zu machen, die Datenbank einzurichten, Inhalte anzusehen usw. So zeigt Dir Die Workbench z. B. das Schema (Tabellen, Spalten, Views, etc.) Deiner Datenbank an.



Lia hat gesagt.:


> die Daten die in der Java Benutzeroberfläche eingegeben werden werden in den Datenbanktabellen hinterlegt


Das ist schon richtig.


----------



## Lia (2. Aug 2018)

ok!!!! das ist total lieb danke für die Erklärung!! @mihe7. Das heißt, nochmal für Dumme , dass ich in MySQLWorkbench eine Datenbank (also so ein Schema) anlegen kann, worin sich meine Tabellen (mit den Daten) befinden. Und diese Tabellen mit den Daten können dann verwaltet werden. (mit verschiedenen Abfragen etc?! war das damit gemeint? z.B. abfragen an die tabellen ..?).


----------



## mihe7 (2. Aug 2018)

Lia hat gesagt.:


> in MySQLWorkbench eine Datenbank (also so ein Schema) anlegen kann, worin sich meine Tabellen (mit den Daten) befinden


Genau. Das Workbench ist ein Programm für den Administrator und nicht für den Otto-Normal-Anwender. Für letztere ist dann Dein Java-Programm da.


----------



## Lia (2. Aug 2018)

ok!! @mihe7 um das zusammenzufassen 
Mein MySQLWorkbench ist mein DBMS und darin ist meine DB enthalten, diese bilden das Datenbanksystem.
Und durch MySQLWorkbench und die darin enthaltene Datenbank, kann ich nach außen zugreifen, also auf das Anwendungsprogramm. In meinem Fall das Java Programm


----------



## httpdigest (2. Aug 2018)

Nein. Leider ist das auch keine Zusammenfassung dessen, was @mihe7 sagte, sondern etwas komplett anderes und leider komplett falsches.
Lies dir besser noch ein paar Mal https://www.java-forum.org/thema/sp...einer-datenbankanbindung.182301/#post-1160003 durch.


----------



## mihe7 (2. Aug 2018)

Nein, ganz falsch 

1. MySQL ist Dein DBMS.
2. Programme können mit dem DBMS kommunizieren, um auf die Daten der DB zuzugreifen.
3. Workbench ist ein Programm (von vielen), das auf diese Weise auf (D)eine DB zugreift.
4. Dein Java-Programm ist ein anderes Programm (von vielen), das auf diese Weise auf Deine DB zugreift.

Der Unterschied zwischen 3. und 4. ist, dass 3. ein Programm für Administratoren und 4. ein Programm für den Otto-Normal-Anwender ist.

Nicht wundern, wenn von mir die nächste Zeit keine Antwort mehr kommt. Muss mal weg.


----------



## Lia (2. Aug 2018)

okey @mihe7 , oh man also irgendwie kam das noch nicht ganz an :-( -.-. und welche Verbindung besteht mit XAMPP? ist es dann das mit dem DBMS? Dort muss ich ja immer MySQL ausführen damit ich im MySQL Workbench arbeiten kann..


----------



## Lia (2. Aug 2018)

ok nochmal ICH GLAUBE ich habs gerafft 
In XAMPP befindet sich mein MySQL DBMS . Zwischen diesem DBMS und dem MySQLWorkbench existiert eine Schnittstelle wodurch mein MySQLWorkbench auf die Datenbank zugreifen kann. (Die DB befindet sich ja in meinem fall im Workbench?!), jetzt richtig ? @mihe7 und @httpdigest


----------



## Thallius (2. Aug 2018)

Sorry aber nein du hast immer nicht nichts verstanden.

Ich werde es ein bisschen weniger korrekt dafür aber auch weniger kompliziert erklären: vergiss mal sowas wie DBMS.

MySql ist deine Datenbank. Diese kann man mit Hilfe von Queries ansprechen. Da gibt es solche Queries wie „Create Table“ mit denen du Tabellen anlegen kannst und queries wie „insert into“ mit denen du Daten in diese Tabellen einfügst und Queries wie „ Select from“ mit denen du die daten abfragst. 
Du kannst eine MySQL Datenbank komplett über die MySQL Shell erstellen, befallen, abfragen etc. Nur Must du dafür die MySQL Syntax beherrschen und dann in der Shell eintippen. Das ist umständlich. Deshalb gibt es Programme wie MySQL Workbench oder auch Navicat oder zig andere Programme, die einfach ein UI bieten um die Datenbank zu verwalten. 
Wenn du jetzt abervein eigenes Programm schreibst das auf die Datenbank zugreifen möchte, dann musst du selber Queries schreiben. Sprich spätestens jetzt Must du die Syntax der Queries so oder so lernen. Das bedeutet dein Java Programm redet direkt mit der Datenbank und nicht über die Workbench. 

Am besten lernst du mal die MySQL Datenbank mit Hilfe der MySQL Shell zu verwalten. Dann verstehst du auch worum es geht.

Die MySQL Shell kannst du bei xampp zum Beispiel ganz einfach starten indem du eine dossheöö aufmachst und in dem Ordner xammp/bin/MySQL/bin die Datei MySQL.exe startest.

Viel Spaß beim probieren


----------



## Dukel (2. Aug 2018)

Xampp sind mehrere Komponenten. Eine Datenbank (MySql), einen Webserver (Apache) und diverse Programmiersprachen (php, Perl).
Die Daten werden in der Datenbank gespeichert.
Es können Webapplikationen erstellt werden, die dann auf dem Apache laufen und in einer der Sprachen entwickelt sind. Diese können auf die Datenbank zugreifen.
Neben Webapplikationen können auch andere Applikationen (MySql Workbench oder deine geplante Java Applikation) auf die Datenbank zugreifen.


----------



## mihe7 (2. Aug 2018)

@Lia Sorry, ich weiß nicht, wie ich es besser erklären könnte. Die Sache ist wirklich ganz simpel.



Lia hat gesagt.:


> Zwischen diesem DBMS und dem MySQLWorkbench existiert eine Schnittstelle wodurch mein MySQLWorkbench auf die Datenbank zugreifen kann.



Ich sag jetzt einfach mal "ja".



Lia hat gesagt.:


> Die DB befindet sich ja in meinem fall im Workbench?!


Sie wird im Workbench dargestellt, befindet sich aber ggf. am anderen Ende der Welt.


----------



## JuKu (5. Aug 2018)

Einfach beachten, dass MySQL Workbench überhaupt *gar nichts* mit deiner Anwendung zu tun haben darf!
Stell dir vor du hättest kein MySQL Workbench, sondern nur MySQL, dann wirds verständlicher.
Und der MySQL Server besitzt einen Port nach außen (Port 3306) mit dem kommuniziert dein Programm.
MySQL Workbench ist darüber hinaus auch nur ein Programm, dass über Port 3306 mit dem MySQL Server kommuniziert.


----------

