Programm und Datenbank - erste schritte

Guten tag,

hoffe ich bin hier richtig :smiley: es dreht sich um folgendes, und zwar möchte ich ein programm schreiben mit dem ein verein seine mitglieder verwalten kann, dazu soll es möglich sein diversen personen verschiedene zugriffsrechte zu erteilen. desweiteren sollen natürlich die daten der personen im netz gespeichert werden so das mit der software von überall auf die daten zugegriffen werden kann. dazu müsste ich doch nun eine datenbank auf einem server einrichten? gibt es da kostenlose möglichkeiten? und wie sicher ist denn sowas?

hatte mir auch überleg diese daten auf einen ftp-server zu speichern aber dies wäre wohl umständlicher und unsicherer oder täusche ich mich da? ftp-server würde man ja kostenlos bekommen (zumindest gabs da früher einige anbieter) wie sieht es da bei datenbanken aus, gibt es dafür kostenlose online anbieter?

danke schonmal im voraus

gruß tommy

Bei Datenbanken ist eine der ersten Regeln den Zugriff zu beschränken.
Bei Datenbanken die im Internet sind heißt es daher oft, dass nur der eigene Rechner (localhost) darauf zugreifen darf.
Bei größeren Geschichten mit mehreren Datenbankservern werden dann für diese Spezielle Freigaben erteilt, so daß auch nur diese darauf zugreifen können. Die Datenbank steht, dann aber nicht im Internet, sondern in einem Privaten Netz (z.B auch einem VPN).

Es gibt allerdings PaaS-Anbieter, die eine Plattform bereitstellen, die auch eine Datenbank beinhaltet. Bis zu bestimmten Kontingenten sogar kostenfrei.
Da ist es dann eine Webanwendung auf die Zugegriffen wird und den eigentlichen Zugriff auf die Datenbank durchführt.

Google App Engine ist ein solches Beispiel. Ein weiteres ist Heroku.
Bei Personenbezogenen Daten solltest du allerdings sehr stark auf die Datenschutzbestimmungen schauen.

danke für deine antwort. das mit dem datenschutzbestimmungen lag mir auch schon im magen. gäbe es noch eine andere möglichkeit? evtl über java ee die anwendung auf dem server laufen lassen und dann können sich benutzer über den browser einloggen? wobei ich mich mit java ee nicht auskenne hoffe ich habe die grobe funktionsweise richtig verstanden. später würde ich da gerne noch eine app dazu schreiben, wäre es dann ein hindernis wenn ich das mit java ee löse?

wie wird generell so etwas gemacht wenn man ein programm hat, welches auf daten zugreift welche von vielen personen verwendet wird ?

Die “Standardarchitektur” ist eine DB im Backend, die KEINE Verbindungen aus dem Internet entgegen nimmt. Davor ein Appserver oder ein Webserver, auf dem eine Webanwendung läuft. In diese kann man sich einloggen und nur diese verbindet sich mit der DB. Die Webanwendung kann so flexibel programmiert werden, dass sie auch Requests von Apps entgegennehmen kann. Da also keine Einschränkung.

Da Du offensichtlich noch ziemlich am Anfang stehst, überlege, ob es überhaupt Java sein muss. PHP tut es sicher auch und da gibt es mehr und günstigere Angebote für’s Hosting als bei Java-Webanwendungen. Die Teilung zwischen Datenbank und Webanwendung gibt es auch dort.

Und einen Anfänger eine Anwendung programmieren lassen, welche im Internet steht… kein gutes Gefühl.

[QUOTE=nillehammer]
Und einen Anfänger eine Anwendung programmieren lassen, welche im Internet steht… kein gutes Gefühl.[/QUOTE]

ich habe eben noch nie was mit datenbanken gemacht bzw. anwendungen die daten übers netz teilen müssen. und wie möchte ein anfänger was lernen wenn er nicht anfängt was zu programmieren?!

gut danke dann kenne ich nun die grobe struktur. webserver auf dem eine php-anwendung die schnittstelle zwischen pc-anwendung und datenbank darstellt und für die pcs eben eine java-anwendung, die dann die daten verarbeitet und grafisch darstellt.

in dem anderen java forum gab es da mal ein projekt ([noparse]http://www.java-forum.org/codeschnipsel-u-projekte/31511-mysql-over-php-java-bridge.html[/noparse]) allerdings ist die homepage down… aber genau so etwas wäre das ja? gibt es dann da nicht fertige anwendungen die sich nur ums einloggen kümmern und datenbankverbindung nach außen?

Also, wenn du Zeit hast und auch was lernen möchtest dann bietet die Google App Engine schonmal ein gutes Grundgerüst.

Dort wird dir Server, Datenbank und vieles mehr zur Verfügung gestellt. Gerade ein Anfänger wird dabei schon das ein oder andere Problem bei der Installation und Konfiguration ereilen. Man kann also innerhalb kürzester Zeit loslegen.

Für GAE kann man verschiedene Sprachen verwenden. Auch Java.
GAE verhält sich weitestgehend ähnlich wie JEE, hat aber die ein oder andere Einschränkung mit der man aber auch leben kann.

Damit kannst du erstmal die Grundlagen die nötig sind erlernen.

https://developers.google.com/appengine/docs/java/gettingstarted/introduction?hl=de

bietet ein Tutorial bei dem anhand eines Gästebuchs alles einmal erklärt wird.

Von den Quotas ist man bei einem Verein, sofern es nicht gerade der FCB ist sehr weit entfernt, so daß dies auch kostenfrei laufen kann.

Für das Frontend, kann man dann entweder HTML im Browser nutzen oder man bindet eine z.B. Swing Anwendung mti Json/Rest an.
Das erste finde ich allerdings sehr interessant und für die meisten Anwendungsfälle ausreichend.

gut danke dann kenne ich nun die grobe struktur. webserver auf dem eine php-anwendung die schnittstelle zwischen pc-anwendung und datenbank darstellt und für die pcs eben eine java-anwendung, die dann die daten verarbeitet und grafisch darstellt.

Ich hätte hier eher an eine Browserbasierte Anwendung gedacht. Der HTML-Output wird dabei von Deiner Webanwendung generiert. Bedient wird das ganze dann per Browser. Die Webanwendung kann in irgend einer Dir genehme Serverseitigen Sprache geschrieben sein (Java + Webframework, PHP, .NET etc.).

gibt es dann da nicht fertige anwendungen die sich nur ums einloggen kümmern und datenbankverbindung nach außen?

Kommt drauf an, was Du erwartest. Wenn Du mit einer ganz spartanischen GUI leben kannst, die Dir ermöglicht, Daten zu pflegen, reicht evtl. schon phpMyAdmin. Darüber hinaus gibt es Frameworks/Bibliotheken, die Dir eine ganze Menge an Infrastruktur mitbringen. Aber einarbeiten musst Du Dich in jedem Fall.