Forum: PC-Programmierung Datenbank ohne Server


von Dieter (Gast)


Lesenswert?

Hallo,

ist es möglich eine Datenbank anzulegen ohne einen Server? Ich möchte 
ein Java Programm schreiben, um Kunden Datensätze zu speichern. Die 
Datenbank müsste für ca. 6 Personen im Büro kleichzeitig erreichbar 
sein. Standort der Datenbank wäre auf einem externen PC der für alle 
erreichbar ist.

Bitte um Vorschläge!

von Benjamin U. (utzus)


Lesenswert?

Hmm,

ich glaube nicht, dass sowas geht, denn genau dafür ist ein Server ja 
da. http://de.wikipedia.org/wiki/Server_%28Software%29

Ich kenn noch SQLite http://de.wikipedia.org/wiki/SQLite . Ich hab aber 
keine Ahnung, was passiert, wenn mehrere Leute gleichzeitig darauf 
zugreifen.

Gute Nacht

von (prx) A. K. (prx)


Lesenswert?

Dieter schrieb:

> ist es möglich eine Datenbank anzulegen ohne einen Server? Ich möchte
> ein Java Programm schreiben, um Kunden Datensätze zu speichern. Die
> Datenbank müsste für ca. 6 Personen im Büro kleichzeitig erreichbar
> sein. Standort der Datenbank wäre auf einem externen PC der für alle
> erreichbar ist.

Prinzipiell ist das machbar, wenn du den Begriff "gleichzeitig" nicht 
peinlich genau verstehst. Denn während es kein Problem ist, 6 PCs 
gleichzeitig auf Files lesend zugreifen zu lassen, klappt es nicht 
wirklich gut, wenn mehr als einer davon die Datenbank-Files verändert.

Du musst also ein entsprechendes Locking implementieren.

Andererseits stellt sich natürlich die Frage nach dem tieferen Grund 
deiner Aversion gegen einen Datenbank-Server wenn du ohnehin schon einen 
externen PC als Fileserver vorsiehst, der wohl ebensogut statt dessen 
einen Datenbankserver abgeben könnte. Wobei ich mal davon ausgehe, dass 
du kein 1TB CRM realisieren willst.

von Peter II (Gast)


Lesenswert?

naja mit access geht das.
(ob das jetzt als DB durchgeht ist ein anders thema)

von Dieter (Gast)


Lesenswert?

Ich arbeiter in einer großen Firma und für diese geringe Menge von Daten 
wird mir kein Server genehmigt. Die beste möglichkeit wäre eine Datei 
für alle erreichbar irgendwo abzulegen.

von Tom M. (tomm) Benutzerseite


Lesenswert?

amazon simpledb oder sowas in der "Wolke"?

von Dieter (Gast)


Lesenswert?

Ich bin noch auf XML gestoßen. Was wäre jetzt besser, sowas wie SQLLite 
oder XML? Oder gibt es noch andere Möglichkeiten?

von Frank E. (Firma: Q3) (qualidat)


Lesenswert?

Der Begriff "Server" ist sehr relativ. Es gibt bereits NAS-Laufwerke, 
auf denen ein MySQL läuft, so ab 150,- Euro ... das sollte doch wohl 
machbar sein.

von Andreas D. (rackandboneman)


Lesenswert?

"Standort der Datenbank wäre auf einem externen PC der für alle
erreichbar ist."


Damit ist es aus Sicht des Programmierers ein Server, auch wenn dieser 
weder ausschliesslich Serveraufgaben übernimmt noch in einen 
Serverschrank eingebaut wird. Dazu benötigst Du eine 
Datenbank-Server-Software (zB Mysql, entsprechende HSQLDB-Variante..). 
Evtl lässt Du sie auch auf einem bereits vorhandenen "richtigen" Server 
mitlaufen wenn es im Büro einen gibt*

Von Versuchen, wirklich für Einzelplatzbetrieb gedachte Datenbankformate 
(SQLite, Access MDB, Paradox...) via Fileserver/"Freigaben" verteilt zu 
nutzen, sei jedem kategorisch abgeraten der noch fragen muss warum das 
zu Problemen führen kann.

Wäre HSQLDB nicht evtl das richtige, wenn das Programm eh in Java 
geschrieben ist?



Wenn mit "externem PC" ein Rechner gemeint ist der direkt offen im 
Internet steht, dann solltest Du sehr sorgfältig sicherstellen dass die 
Sicherheitseinstellungen der gewählten Datenbanksoftware korrekt und 
verstanden sind.

von Dieter (Gast)


Lesenswert?

ich meinte eine externe Festplatte, bei der man nichts aussführen kann.

von Andreas D. (rackandboneman)


Lesenswert?

"wird mir kein Server genehmigt"

Hatte gepostet bevor Du das geschrieben hast.

Das braucht auch keinen dedizierten Server. Aber Dienste jeglicher Art 
auf Arbeitsplatzrechner zu legen ist, sobald es irgendeine Alternative 
dazu gibt, die pessimale Lösung.

von Peter II (Gast)


Lesenswert?

Dieter schrieb:
> ich meinte eine externe Festplatte, bei der man nichts aussführen kann.

viele Festplatten (NAS) können aber etwas auführen - was ist das denn 
für eine Festplatte?

von Dieter (Gast)


Lesenswert?

Das weiß ich nicht genau, aber da werden nur unsere Projekt abgelegt.

von Robert L. (lrlr)


Lesenswert?

mit firebird embedded geht das (angeblich) inzwischen

Embedded Server Notes

    The embedded server in the Windows library, fbembed.dll, now uses 
Superclassic, not Superserver as previously, thus unifying its model 
with that of local connection to Superclassic on POSIX. The database 
file-lock that previously restricted connections to a single application 
space is replaced by a global lock table that allows simultaneous access 
to the same database from different embedded server modules. This 
facilitates concurrent debugging of applications and use of native 
utility tools like gbak, gstat and so on.


jdbc und firebird ist jetzt ansich auch kein problem

wie/ob man jetzt den embedded server mit jdbc verwenden kann, ist mir 
unbekannt

aber google sagt es geht:

http://www.firebirdfaq.org/faq350/

von Dieter (Gast)


Lesenswert?

Das hört sich doch ganz gut an. Das werde ich mal in Angriff nehmen 
Danke dir!

von Purzel H. (hacky)


Lesenswert?

Eine Netzwerk Festplatte ist schon ein Server. Ein Server bedeutet, die 
Maschine, resp ein Port, wartet auf Anfragen und arbeitet die ab. Ein 
Server macht nie was von selbst. Die Rechner, die die Anfragen absenden 
nennen sich Clients. Fuer was Guenstiges, wuerd ich die Synology 
empfehlen.

von Andreas D. (rackandboneman)


Lesenswert?

Hier ging es wohl eher darum ob auf dem NAS eine beliebige Software, die 
auf eben solche Anfragen horcht (und das macht sie von selbst :), 
eingerichtet werden kann. Und/Oder ob sich dort ein vorinstallierter 
MySQL-Server befindet den man nutzen kann.


PS: "grosse" Datenbankserver (Mysql, Oracle, Postgres...) können auf 
einem Host viele Datenbanken für viele Anwendungen gleichzeitig 
bereitstellen. Frag doch mal euren Admin ob er deine DB nicht auf einem 
solchen System mit unter bringen kann. Rechne allerdings mit Fragen die 
Du als Entwickler auch beantworten können solltest (erwartete Größe und 
Last usw.).

von gerd b (Gast)


Lesenswert?

Hallo Dieter,

ich hab ein Java Programm geschrieben, dass HSQLDB benutzt.
Die Datenbank ist im Prinzip nur ein einziges File + eins für die 
Konfiguration.

Bei meinem Programm wird die Datenbank zwar beim ersten Zugriff 
"gelockt". Aber ich meine, man kann die auch so öffnen, dass mehrere 
gleichzeitig drauf zugreifen können.

Hier der Link zu meinem Programm:
http://fakturama.sebulli.com/

Gerd

von Andreas D. (rackandboneman)


Lesenswert?

Es geht eher um den Servermode den HSQLDB dem Vernehmen nach inzwischen 
beherrscht.

von Dieter (Gast)


Lesenswert?

Mit HSQLDB habe ich schon mal gearbeitet. Das beutet ich kann das 
Datenbank-File irgendwo ablegen und es können auch mehrere Anwender die 
Datenbank benutzten. Könntest du mir vielleicht den entsprechenden 
Ausschnitt aus deinem Programm zeigen?

von Dieter (Gast)


Lesenswert?

ich habs gefunden, versuche es jetzt zu verstehen.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.