Datenbank ohne Installation (Multiuser)

Status
Nicht offen für weitere Antworten.

Reinhard

Aktives Mitglied
Hallo,

ich hoffe das ist jetzt das richtige Forum für meinen Beitrag. Es geht eigentlich mehr allgemein um eine Datenbank, aber Zugriff darauf über JDBC.

Ich habe das Problem, dass für eine kleine Java-Anwendung ein File-Server zur Verfügung steht. Da es sich um einen größeren Konzern handelt ist es nicht ohne größere Umwege möglich, eine neue Datenbank auf einem Server anzulegen.

Meine Fräge wäre nun, ob es möglich ist auf eine Datenbank über eine Netzlaufwerk-Freigabe zuzugreifen (z.B. wie bei MS Access). Dazu habe ich gesehen, dass es HSQLDB gibt. Ist es mit z.B. HSQLDB auch möglich mehrere Benutzer auf die Datenbank zugreifen zu lassen?

Die Datenbank wird nicht sonderlich umfangreich sein. Ich denke ca. 20 Tabellen und ca. 1000 Zeilen pro Tabelle.

Falls so etwas nicht geht, müsste ich den "formalen Weg" einschlagen und eine Datenbank beantragen.

Vielen Dank,
Reinhard
 

AlArenal

Top Contributor
Natürlich können per JDBC auch mehrere Benutzer zugreifen, auch gleichzeitig und auch im Fall von HSQLDB, aber das hat nichts mit irgendeinem File-Server zu tun, denn JDBC läuft als Protokoll direkt auf dem TCP/IP Stack.
Wenn du, wie du sagst, in einem größeren Unternehmen arbeitest und der Amtsaschimmel dort so laut wiehert, würde ich vermuten dass du nichtmal mit JDBC auf die DB kommen würdest, da zwischen lokalem Netz und Server sicher noch eine Firewall hängen dürfte.
In dem Fall bietet es sich meist nur noch an die Clients über einen Webservice an den Server anzubinden. Da hier alles über HTTP (Port 80) läuft, ist das in der Regel auch in sehr großen Konzernen unkritisch. Allerdings hast du dann natürlich einen erhöhten Entwicklungs- und Wartungsaufwand.
 

Reinhard

Aktives Mitglied
Hallo,

danke für die schnelle Antwort. Ich habe mir das ganze so vorgestellt (ich hoffe es ist verständlich):

Die Datenbank liegt hier (z.B. als Datei wie in MS Access):
\\server1\Datenbank\database.db (kann auch ein Netzlaufwerk sein "H:\database.db")

Das Java-Programm liegt hier:
\\server1\Programm\programm.jar (kann auch ein Netzlaufwerk sein "I:\programm.jar")

Nun wird programm.jar von User1 gestartet und greift auf database.db zu. Nun startet User2 programm.jar. Ist nun für User2 die database.db gesperrt, d.h. wird die database.db von User1 exklusiv gesperrt?

Mir geht es eigentlich im großen und ganzen nur darum, dass ich serverseitig nur "schwierig" Komponenten installieren kann. Am einfachsten wäre es in diesem Fall die Datenbank einfach so abzulegen. Ist dies mit JDBC (oder einer anderen Technologie) und HSQLDB (oder eine andere Datenbank) möglich?

Das mit dem Webservice wäre bestimmt nicht schlecht. Ist aber für dieses Projekt zu umfangreich. Außerdem müsste ich dort doch dazu auch auf dem Server den Webservice installieren / konfigurieren (das wäre ja auch so umständlich, wie mit der Datenbank ;) ).

Danke,
Reinhard
 

AlArenal

Top Contributor
Mir ist kein deinen Anforderungen entsprechendes Produkt bekannt. MS Access ist ne ganz eigene Sache, da musste MS mal wieder alles anders machen, als alle anderen, ohne es wirklich besser zu machen ;)

Eine SQL-Datenbanbank fragt man nunmal über SQL ab und nicht indem man um die Datenbank herum in den Daten-Dateien rumwurschtelt. Ansprechpartner der JDBC-Clients ist immer das RDBMS und keine Datei oder sonstwas. Die RDBMS ist dafür zuständig die Daten konsistent zu halten und mit konkurrierenden Zugriffen zu arbeiten.

Um das weiter oben beschriebene Firewall-Problem zu umgehen kennt HSQLDB einen Web-Server-Modus. In diesem können JDBC-Clients über Port 80 auf den HSQLDB-Server zugreifen. Wo immer der Serverdienst dann im Endeffekt läuft - dort muss ihn noch immer jemand starten und ggf. warten können.

Eine Java-basiertes RDBMS, das rein auf Dateibasis und mit konkurrierendem Zugriff arbeiten kann, ist mir nicht bekannt. Sieh es als Chance dich von deiner MS Access Schädigung zu rehabilitieren... ;)
 
S

stev.glasow

Gast
HSQLDB kann man doch auch im In-Process Mode laufen lassen. Kann ich dort nicht auch eine über Windowsfreigaben zugängliche Datei angeben?

Mehrere Verbindungen von unterschiedlichen Clients wird nur nicht möglich sein da die Datenbank Engine auf dem Client in der jeweiligen VM läuft.
 

Reinhard

Aktives Mitglied
@AlArenal:

Ich hab ja nichts mit MS Access am Hut. Das war nur ein Beispiel von mir :)
Dann muss ich das dort mit der zentralen IT doch mal abklären und ein paar "Behördengänge" vornehmen :(

@stevg:

Der "In-Process Mode" hört sich schon mal ganz gut an. Schade ist aber, das man dann nicht von extern auf die "Datenbank" zugreifen kann, wenn die Anwendung läuft. Das hört sich schwer nach einem KO-Kriterium an ;)


Trotzdem danke für eure Informationen. Ich hab mir aber fast gedacht, das es ohne "serverseite Installation" der Datenbank (bzw. ohne RDBMS) nicht geht.

Reinhard
 
S

stev.glasow

Gast
Notfalls könntest du auch nen dateibasiertes System wie z.B. MS Access nehmen und über eine JDBC-ODBC Bridge (falls entsprechender ODBC Treiber vorhanden ist) per Java darauf zugreifen.
 

AlArenal

Top Contributor
stevg hat gesagt.:
HSQLDB kann man doch auch im In-Process Mode laufen lassen. Kann ich dort nicht auch eine über Windowsfreigaben zugängliche Datei angeben?

Und wie soll HSQLDB damit klarkommen, wenn mehrere User zeitgleich ihren Client starten und damit dieselben DB-Dateien nutzen müssen? Schonmal versucht zwei MySQL-Instanzen mit demselben Daten-Verzeichnis gleichzeitig laufen zu lassen? ;)
 
S

stev.glasow

Gast
Öh. lies mal den ganzen Post
""Mehrere Verbindungen ... wird nur nicht möglich sein""
Oder was meinst du? Beim 2ten Client wird dass dann halt geblockt und er bekommt ne Fehlermeldung.
[edit]
Das war auch nur nen Vorschlag - dass er das eigentlich nicht so wollte war mir auch klar. Muss er halt gucken was mehr Priorität hät.
 

Reinhard

Aktives Mitglied
Schade, ich dachte das es ein System mit folgenden Eigenschaften gibt:

Eine Java-basiertes RDBMS, das rein auf Dateibasis und mit konkurrierendem Zugriff arbeiten kann

Wie geschrieben, werde ich mich mit der dortigen IT-Abteilung (bzw. Fachabteilung) abstimmen, um Zugriff auf eine "komplette" Datenbank zu bekommen :)

Schöne Grüße,
Reinhard
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Datenbank für Java Anwendung wie SQLite ohne Installation Datenbankprogrammierung 4
NoXiD Access Datenbank in java einbinden ohne ODBC treiber zu erstellen Datenbankprogrammierung 5
T MySQL Zugriff ohne Angabe der Datenbank Datenbankprogrammierung 3
S Datenbank zugriff optimieren - zugriff ohne cursor? Datenbankprogrammierung 7
D An Access Datenbank andocken ohne sie beim System anzumelden Datenbankprogrammierung 3
D ODBC Zugriff auf MDB-Datenbank, Insert Into ohne Funktion Datenbankprogrammierung 2
B ResultSet ohne Datenbank erstellen Datenbankprogrammierung 4
G Datenbank ohne Server Datenbankprogrammierung 28
torresbig MySQL hibernate - could not resolve entity class ... (Datenbank Anfänger) Datenbankprogrammierung 19
M Meine Datenbank lässt sich mit meiner Methode nicht ändern Datenbankprogrammierung 1
I SaaS Applikation: pro Kunde eine Datenbank / Schema oder eine DB für alle Kunden? Datenbankprogrammierung 76
T SQL-Statement Datenbank nach SQL Statement schließen? Datenbankprogrammierung 7
M Datenbank Zugraff nach Umwandlung in .jar-Datei nicht mehr möglich Datenbankprogrammierung 4
Auf MySql Datenbank zugreifen funktioniert nicht Datenbankprogrammierung 8
MongoDB-Datenbank in Androidstudio einbinden Datenbankprogrammierung 1
thor_norsk Datenbank: Apache Derby Datenbankprogrammierung 6
B SQlite Datenbank, trotz Statements wurden nicht alle Zeilen erzeugt? Datenbankprogrammierung 35
M Datenbank mit REST API Datenbankprogrammierung 66
M Entfernte Datenbank Datenbankprogrammierung 11
T Datenbank: Tabelle erstellen bei Web-Applikation Datenbankprogrammierung 4
D SQLite Datenbank in Android Studio (Java) durchsuchen Datenbankprogrammierung 3
M MySQL Datenbank in Array Datenbankprogrammierung 2
S Den letzten Eintrag aus Datenbank ziehen (Oracle SQL Dev.) Datenbankprogrammierung 14
N Datenbank abfragen nach bestimmten Wort Datenbankprogrammierung 7
Beginner22 Zugriff auf Datenbank aus Java über mariadb Datenbankprogrammierung 3
ma095 value NULL- Datenbank Postgresql Spring - intellij community Datenbankprogrammierung 0
raptorrs Plötzlich keine Verbindung zur Datenbank mehr möglich Datenbankprogrammierung 14
Davee SQLite SQLite Datenbank lässt sich nicht auf anderen PCs öffnen Datenbankprogrammierung 8
P Datenbank Tool - besser als oracle SQL Developer gesucht mit effizinte Verbindungsverwaltung Datenbankprogrammierung 2
X JPA (EclipseLink) und Oracle Datenbank Datenbankprogrammierung 2
T Datenbank auf einer Webseite aus einer Exceltabelle erstellen Datenbankprogrammierung 5
L SQL Datenbank Datenbankprogrammierung 7
L SQL Datenbank INSERT INTO Datenbankprogrammierung 6
L SQL Datenbank Tabelle insert Datenbankprogrammierung 7
L SQL Datenbank Tabelle erstellen Datenbankprogrammierung 6
nonickatall MySQL Auf neue Datensätze in einer Datenbank reagieren Datenbankprogrammierung 5
W MYSQL Datenbank Login Android Datenbankprogrammierung 3
anton1 Online Datenbank Datenbankprogrammierung 7
krgewb H2-Datenbank öffnen Datenbankprogrammierung 8
J Datenbank abfragen Datenbankprogrammierung 6
P Verbindung zu einer Access Datenbank per Eclipse oder Intellij Datenbankprogrammierung 0
O SQL Abfragen mit Mini Datenbank Datenbankprogrammierung 12
Z Datenbank Choicebox wird nicht befüllt Datenbankprogrammierung 15
S Suche In SQL Datenbank mit array Datenbankprogrammierung 6
P Enum in der Datenbank Datenbankprogrammierung 1
Z SQL- Datenbank 1.PK zu 2.FK Datenbankprogrammierung 3
E netbeans - jsp Daten in Datenbank hinzufügen Datenbankprogrammierung 2
bueseb84 Spring Boot : Update Mysql Datenbank Datenbankprogrammierung 1
Avalon Attribute werden mit Unterstrich in eine MySQL Datenbank eingetragen Datenbankprogrammierung 10
MiMa wo Datenbank verbinden/trennen? Datenbankprogrammierung 1
H MySQL Verbindung Datenbank und Eclipse (Java) Datenbankprogrammierung 5
DeltaPilot12 Datenbank connect Funktion Datenbankprogrammierung 7
J Oracle Datenbank-Tabelle per Combobox (oder ähnliches) auswählen Datenbankprogrammierung 3
N SQL Datenbank Spalte in Java Array Datenbankprogrammierung 2
J JAR-Datei und Datenbank Datenbankprogrammierung 8
Bluedaishi Datenbank Abfrage Datenbankprogrammierung 36
Kirby.exe Zeile aus der Datenbank holen wenn ein match besteht Datenbankprogrammierung 7
Kirby.exe Es werden keine Einträge in der Datenbank gemacht Datenbankprogrammierung 23
C Datenbank anlegen und über eine Website mit Daten füllen? Datenbankprogrammierung 25
J Welche Kriterien haben Einfluss auf die Geschwindigkeit einer Datenbank ? Datenbankprogrammierung 4
B Frage zu Datenbank Design bei Events (ZenDesk) Datenbankprogrammierung 1
M SQLite Datenbank mit SQLite Datenbankprogrammierung 7
C String in Datenbank einfügen Datenbankprogrammierung 11
C Keinen Zugrift auf Datenbank Datenbankprogrammierung 2
C Datenbank zugreifen Datenbankprogrammierung 10
L Auf Strato Datenbank zugreifen Datenbankprogrammierung 7
H Fehler bei getConnection zu MySQL Datenbank Datenbankprogrammierung 18
G Datenbank Statement Datenbankprogrammierung 22
M Datenbank editierbach machen in JTable Datenbankprogrammierung 13
S Datenbank MySQL und Java Datenbankprogrammierung 8
M H2 Verbindung zur Datenbank komplett schließen Datenbankprogrammierung 11
J Aufbau meiner Datenbank/Tabelle - Verbessern? So lassen? Datenbankprogrammierung 39
J Nur CRUD über Datenbank Klasse, oder auch mehr ? Datenbankprogrammierung 2
Dimax MySQL Maximale Datenlänge für eine Spalte einer Datenbank in java ermitteln Datenbankprogrammierung 15
L Appabsturz mit Datenbank Datenbankprogrammierung 4
J Zahlungseingänge von mehreren Kunden wie am besten abbilden in der Datenbank ? Datenbankprogrammierung 8
L Datenbank sichern Datenbankprogrammierung 8
S Daten von SQLite Datenbank nutzen Datenbankprogrammierung 5
J Datenbank VPS Server Datenbankprogrammierung 3
H MySQL MySQL - Keine Verbindung zur Datenbank?! Datenbankprogrammierung 4
NIckbrick MySQL Befehle aus Datenbank auslesen Datenbankprogrammierung 21
S Datenbank/Java true/false Datenbankprogrammierung 8
J JUNIT und CRUD-Datenbank Datenbankprogrammierung 4
F Datenbank/Datenabgleich/Wiederholungsabfrage Datenbankprogrammierung 12
@SupressWarnings() Eure bevorzugte Datenbank-Library Datenbankprogrammierung 9
C datenbank verbindung config Datenbankprogrammierung 23
L MySQL Android zu externer MySQL Datenbank verbinden Datenbankprogrammierung 5
M Datenbank vor unerlaubtem Zugriff durch Benutzer schützen Datenbankprogrammierung 3
U MySQL Aus Servlet in Datenbank schreiben Datenbankprogrammierung 4
H Datenbank Export mit Java Datenbankprogrammierung 3
P Daten in eine mySQL Datenbank einfügen Datenbankprogrammierung 4
S SQL-Statement Datenbank Zeitbereich durchsuchen Datenbankprogrammierung 2
L Messenger App - Wie am besten auf Datenbank zugreifen? Datenbankprogrammierung 4
H MySQL Datenbank auf Xampp nimmt keine Mediumblob an. Datenbankprogrammierung 0
D Datenbank Abfrage Datenbankprogrammierung 7
H MySQL Benutzer Login System mit Datenbank Informationen (Abfrage zu User ist auf DB gesichert) Datenbankprogrammierung 42
L Oracle Datenbank über Java aufrufen Datenbankprogrammierung 29
DaCrazyJavaExpert Derby/JavaDB Unfindbarer Fehler im Datenbank-Code Datenbankprogrammierung 87
DaCrazyJavaExpert Derby/JavaDB Wert einer Variable in der Datenbank direkt auf 1 setzten. Datenbankprogrammierung 71
W MySQL Ausgabe von Datenbank in Java-App Datenbankprogrammierung 6

Ähnliche Java Themen

Neue Themen


Oben