fremde Datenbank bearbeiten

Datenbanklösungen mit AOO/LO

Moderator: Moderatoren

Eifelboy
Beiträge: 1
Registriert: Mo, 08.12.2008 16:00

fremde Datenbank bearbeiten

Beitrag von Eifelboy »

Hallo Zusammen,

mein Thread ist reichlich lang, und sollte sich eigentlich gezielt an HSQL-Experten wenden. Da ich aber bei der Expertensuche keinen einzigen HSQL-Experten und nur 2 mit der Kombination Java + SQL gefunden habe dachte ich, ich versuche es mal im Forum. Also:

Ich habe Probleme mit einem Programm (kein Base), daß in der Testphase (mit einem kleinere Testdatenbestand) recht gut funzte, nun, da wir die ganzen Daten einpflegen wird die Datenbank instabil. Die eingesetzte Datenbank ist HSQL. Das Programm läuft im Einzelplatz unter Windows 2000 - Vista.

Lt. Wikipedia gibt es bei HSQL 3 Tabellentypen
1. Memory only – Alle Daten werden nur im Speicher vorgehalten und nicht auf dem Datenträger gespeichert. Änderungen gehen beim Beenden des Servers (bzw. der Applikation im Standalone-Modus) verloren.
2. Logdatei-Tabellen – Alle SQL-Befehle, die die Tabellen-Daten verändern (CREATE, ALTER, INSERT, UPDATE), werden in einer großen SQL-Logdatei gespeichert. Die Logdatei wird bei jedem Start wieder abgearbeitet und dann im Speicher abgelegt.
3. Gecachte Tabellen – Auf dem Datenträger gespeicherte Tabellen, die beim Start nicht komplett in den Speicher gelesen werden müssen. Die Größenbeschränkung einer Tabelle und eines Feldes liegt derzeit bei 8 GB.

Soweit ich das beurteilen kann (meine rudimentären DB-Kenntnisse sind auf DOS-Niveau hängen geblieben, da war alles noch viel einfacher ...) verwendet das Programm Variante 2.

Meine Fragen:

a) Variante 1 ist ja einfach zu identifizieren, aber woran kann man definitiv erkennen, daß Variante 2 oder 3 eingesetzt wird?

b) Ich vermute, daß Variante 2. deutlich schneller ist. Allerdings würde das auch die Instabilität erklären, wenn der Datenbestand wächst - oder ist das zu laienhaft interpretiert?

c) Bis zu welcher DB-Größe wird Variante 2 empfohlen? Ganz große DBs lassen sich damit ja bestimmt nicht verwalten - oder?

d) Laut Wikipedia ist auch Variante 3. "sehr schnell" - könnt ihr das bestätigen? Gibt es Erfahrungen mit der alternativen Anwendung beider Variante und eine Gegenüberstellung der Vor- und Nachteile?

e) Lassen sich die Varianten 2. und 3. parallel einsetzen. Also z.B. 2. für Parameter die für Berechnungen im Programm präsent sein müssen und regelmäßig benötigt werden und 3. für Kundendaten, Kataloge etc. die nur in bestimmten Fällen aufgerufen werden.

f) Wenn die Variante 3 verwendet wird, werden dann die Tabellen in einzelnen Dateien gespeichert oder landet trotzdem alles in einer Riesendatei? (BTW, das finde ich eine der schönen Seiten alter DOS-DBs. Für jede Tabelle, jeden View, jeden Report etc. gab es eine eigene Datei. Wenn eine Datei defekt war, funktionierten die anderen trotzdem - sofern kein Zugriff auf die defekte Datei benötigt wurde. Heute scheint es mir so, daß jedesmal das ganze Programm zusammenbricht. Von den Problemen mit der Datensicherung ganz zu schweigen)

g) Mir wäre es eine große Hilfe, wenn ich mit Base die vielleicht intern vorhandenen Datentabellen öffnen/befüllen/bearbeiten könnte. Ist sowas denkbar/machbar?

h) Wenn man SQL lernen will, welches Lehrbuch, Lernprogramm etc. könnt empfehlen der keine SQL-Vor-Kenntnisse hat?

Vielen Dank, schon mal an alle die bis hierhin gelesen haben und ganz riesigen Dank an alle die eine oder auch mehrere Fragen beantworten.