![]() |
Datenbank: wird gesucht • Version: ? • Zugriff über: SQL?
Welche Datenbank.
Ich habe ein kleineres Projekt, wo ich diverse Daten speichern muss, ich gehe mal von 10-15 Tabellen aus. Max. Einträge pro Tabelle 50000 Datensätze (eine Tabelle), die restlichen Tabellen haben unter 1000 Einträge.
Das Problem ist, das auf den Zielrechnern keine Installation erlaubt ist und auch nicht erwünscht ist. Wie könnte man die Daten auf den Rechnern speichern. Aus dem Bauch fällt mir XML ein. Was für Komponenten (auch Fremdanbieter) könnte man nehmen? Am liebsten wären mir Abfragen über SQL. Geht das auch mit XML? Für kleinere oder größere Denkanstöße wäre ich dankbar. Gruß |
AW: Welche Datenbank.
Jeder "popelige" Desktopdatenbank die es für Delphi gibt kommt ohne Installation aus.
Namen wären: Absolute Database TurboDB ADS Local Server ... |
AW: Welche Datenbank.
Soll es Multi-User fähig sein? wenn nicht, würde ich zu einer Embedded-Datenbank raten, wie z.B. Firebird Embedded.
Dann brauchst du auch keine Installation, sondern kannst dein Programm quasi als ZIP-Datei verteilen. Es muss auch kein großer Server im Hintergrund laufen. Nachteil ist eben, dass "normalerweise" nur ein Benutzer auf die Datenbank zugreifen kann. Also keine Client/Server-Netzwerk-Lösung |
AW: Welche Datenbank.
Müssen mehrere Programme(*.exe) auf die Daten zugreifen oder nur eins?
Bei nur einem würde sich evtl. die Embedded Variante von Firbird empfehlen. Da hast ne DLL und die Datenbank wird komplett in einer Datei untergebracht. Installiert werden muss AFAIK nix zusätzlich. Edit: Roter Kasten ist noch in den Weihnachtsferien?? |
AW: Welche Datenbank.
Zitat:
Zitat:
|
AW: Welche Datenbank.
Zitat:
|
AW: Welche Datenbank.
Zitat:
Soll die Anwendung auf einem Netzlaufwerk liegen, oder hat jeder Anwender einen USB-Stik mit der Anwendung oder ..... Gruß K-H |
AW: Welche Datenbank.
Zitat:
Das Programm und den Daten werden auf einem Server auf einem freigegebenen Verzeichnis liegen. Die User sollen dann mit dem Programm arbeiten, aber nicht parallel. Eventuel müsste ein Hinweis erscheinen, dass die Datenbank gerade bearbeitet wird. Aber das Problem kann man wohl anders lösen. Welche Möglichkeiten hätte ich den, wenn mehrere User parallel arbeiten. Schlimmstenfalls würde der letzter User der speichert, gewinnen. |
AW: Welche Datenbank.
Zitat:
Zitat:
|
AW: Welche Datenbank.
Zitat:
Zitat:
|
AW: Welche Datenbank.
Soweit ich weiß, dürfen Firebird Datenbanken nicht auf Netzlaufwerken / UNC-Pfaden liegen. Das fällt also dann schon mal raus.
Und bevor du auf dumme Ideen kommst: Access als Desktop-DB fällt immer raus ;-) |
AW: Welche Datenbank.
So, laut Kundenaussage "könnte" die Datenbank Multiuserfähig sein. Soll heißen, nicht zwingend, könnte aber die Multiuserfähigkeit könnte drohen.
Was nun? Welche Datenbank bzw. welches System kommt noch in Frage? Zitat:
|
AW: Welche Datenbank.
Zitat:
Wir haben das bei einem Produkt bei uns auch mal so gemacht und müssen seitdem täglich diverse Datenbankdateien beim Kunden reparieren. :-( und wenn man Google fragt, sind wir da kein Einzelfall |
AW: Welche Datenbank.
Hallo
Ich würde die embeded Firebird Datenbank nehmen ==> Braucht man wirklich Mulituser dann einfach irgendwo einen Server (Firebird ist ja Kostenlos) installieren . Alles was man braucht ist irgend ein Rechner der immer läuft mfg Reinhold |
AW: Welche Datenbank.
Zitat:
Zitat:
Zitat:
Willst du dagegen ohne (maximalen) frust auf das DBMS Abends nach Hause gehen nimm lieber keine Access :-) |
AW: Welche Datenbank.
DB sind nicht so mein Thema.
Wenn die DB im Netzwerk liegen soll kommst Du m.E. ohne irgendeine Installation nicht hin. Schon gar nicht bei MultiUser-Zugriffen. Die Datenbankdatei ist bei Firebird und Firebird embedded identisch. Du kannst also ein Projekt für den lokalen Einsatz mit Firebird embedded bauen und das Ganze später dann doch noch in´s Netzwerk verlagern. Wenn keine gemeinsamen Zugriffe möglich sein sollen könnte man ggf. die DB-Datei aus dem Netzwerk auf den lokalen Rechner kopieren, dort öffnen und danach ggf. wieder zurück kopieren. Aber elegant ist das sicher nicht. Was spricht im Firmenumfeld gegen eine vernüftige Installion eines DB-Servers? Firebird ist auch für kommerziellen Einsatz frei und offenbar für normale Anbwendungsfälle auch ausreichend schnell und stabil. |
AW: Welche Datenbank.
Alles in allem eine etwas seltsame Beschreibung.
Es kommt mir so vor, als ob Dein Auftraggeber des öfteren mal das Titelblatt einer Computerzeitung mit C (und p am Ende) gelesen hat. a) hör auf Bernhard, laß es Dir schriftlich geben, sonst gibt es hinterher Streit über eine "klitzekleine" Änderung, die Dich 5 Jahre Deines Lebens kostet. b) Schau Dir mal Firebird an, da hast Du beide Optionen (Server und embedded) und die Ausgaben sind minimal. Gruß K-H |
AW: Welche Datenbank.
Zitat:
![]() ![]() |
AW: Welche Datenbank.
Zitat:
Zitat:
|
AW: Welche Datenbank.
Afaik sollte man Multiuserzugriff auf Netzwerklaufwerken mit Embedded Datenbanken vermeiden wo es geht. Da kann soviel schief gehen ... je nach Protokoll/Implementierung des Laufwerk können schon einfache Locking-Operationen leise scheitern.
Eine Datenbank sollte die stabilste Komponente im System sein, denn Nutzer-Daten sind das einzige Unersätzliche in einer Anwendung. Wenn es nur irgendwie geht, setze eine richtige Datenbank ein. |
AW: Welche Datenbank.
Zitat:
Zitat:
Zitat:
|
AW: Welche Datenbank.
Zitat:
Wenn man mit möglichem Hardwareausfall von ca 1Woche leben kann geht das. Ist halt kein Server. Gruß K-H |
AW: Welche Datenbank.
Zitat:
Zitat:
|
AW: Welche Datenbank.
Zwei der vorgenannten Vorgehen wären auch meine Favoriten (Reihenfolge bewusst):
1) Nutzung eines ggf. bereits bestehenden DBMS. Der Kunde könnte/müsste seine IT dann ggf. einen entsprechenden Userzweig mit Zugriff auf nur deine Kataloge, sowie den Katalog selbst erstellen lassen. Beides von jemandem der schon nur einigermaßen weiss was er tut schnell machbar. 2) Aufstellen eines eigenen Servers mit deinem Wunsch-DBMS. Voraussetzung ist hier allerdings, dass die Kunden-IT das Einbringen externer Rechner zulässt. (Dieser ließe sich aber auch recht einfach so weit beschneiden, dass er nur DB Zugriffe erlaubt, und ggf. eine Form von Fernwartung.) Letzteres machen wir bei einem Kunden in der Industrie für die einzelnen Produktionsbetriebe, die eine abgeschlossene Einheit sind. Jeder Betrieb hat seinen eigenen kleinen Server mit DBMS und eigenem kleinen Netzwerk für die Prozesskommunikation. Zusätzlich hängt der Server im Kundennetz, so dass wir über einen Zugangsserver an alle zur Fernwartung auch vom Büro aus dran kommen. Seit >10 Jahren läuft das Wasserdicht und ohne Zwischenfälle im Kundennetz. Als Rechner empfehlen sich hier statt einfachen PCs jedoch eher Micro-Server mit entsprechend robuster Hardware und vor allem vernünftigem Spiegel-RAID. (Die gibt's auch schon um ca. 600€ EK aufwärts, was zum dedizierten Bedienen eines DMBS mit so wenigen Usern locker ausreicht.) Gerade wenn die Anforderungen derart schwammig daher gelullt kommen sollte man sich möglichst offen für alles rüsten. (Oder im Zweifel den Auftrag ablehnen. Wenn etwas zu unwichtig ist, sich ein paar zumindest so grundlegende Gedanken zu machen, dann wird es eh nicht gebraucht. Aber Telefonnummer da lassen, für wenn sie dann auf die Nase gefallen sind ;)) |
AW: Welche Datenbank.
Zitat:
|
AW: Welche Datenbank.
Wenn die Datenbank Multiuser, remote und robust sein soll - dadurch haben sich alle dateibasierende Lösungen erledigt - dann bleiben nur Systeme, die eine eigene Trasportschicht anbieten.
Das machen alle Server-Datenbanksysteme so. Werden alle Server-Datenbanksysteme ausgeschlossen, dann bleibt - nichts? Als eine mögliche Alternative - sozusagen durch die Hintertür - wäre evtl. ![]() Wenn man also dem Kunden das so verkauft, dass man für MultiUser ein laufendes Programm auf einem Server habe muss :stupid: |
AW: Welche Datenbank.
Dann könnte man dann einfach den Datenbankserver anders bezeichnen :mrgreen:
|
AW: Welche Datenbank.
Zitat:
|
AW: Welche Datenbank.
Zitat:
Und dann könnte man auch gleich ne ordentliche Trennung zwischen Geschäftlogik und Oberfläche hinbekommen, wenn die Logik da läuft wo die embeded Datenbank auch liegt... @OP: Mal ne frage : Kann es sein, dass des Kunden IT in ein Rechenzentrum ausgelagert wurde ? Ich habe vermehrt fest gestellt das Rechenzentren die ihren Kunden rein virtuelle Arbeitsplätze aufschwatzen, mit Server installationen schonmal so ihre Probleme haben (vor allem wenn man mal "schnell" Fernwarten muss). Deswegen kann ich den Ansatz verstehen, wenn man vermeiden will das man die IT eines Rechenzentrums involviert. Allerdings sollte eine MultiUser zugriff auf die Daten für derartige Projekte ausgeschlossen werden. Es gibt keine Methode bei filebasierten Datenbanken über SMB oder SMB2 einen zuverlässigen Mehrbenutzerzugriff zu gewährleisten. Deine Anwendung müsste diesen Zugriff schlicht sperren. Ich würde keinem Kunden versprechen das er mit einer datei basierten Datenbank Multiuserzugriffe bekommt. Bzw.das ich mich irgendwie für das Sichern, Wiederherstellen oder Reparieren von derlei Daten verantwortlich fühle. |
AW: Welche Datenbank.
Ich hab dafür SQLite verwendet. Braucht nirgendwo eine Installation oder irgendwelche Komponenten. Wie du damit arbeitest steht hier ->
![]() Diese DB erlaubt aber keine mehrere Zugriffe. Also Server-Client Lösung geht damit kaum oder sehr schwer. |
AW: Welche Datenbank.
Zitat:
![]() Zitat:
|
AW: Welche Datenbank.
Zitat:
|
AW: Welche Datenbank.
Zitat:
.. wenn man Zeit hat könnte man ja einen Service davor setzen. Dieser Verbindet sich als einziger mit der Datenbank. Die Clients verbinden sich mit dem Service und der Service führt die Clientrequests aus. Grüße Klaus |
AW: Welche Datenbank.
So, ich den Ball zum Kunden zurückgespielt. Eine Anfrage an die IT des Kunden läuft.
Es kommt wohl nur ein vernünftiges DBMS in Frage. Ich weiss, dass der Kunde MS-SQL-Server im Einsatz hat. Sollen sie mir dort eine Instanz zur Verfügung stellen, damit ich dort meine DB aufbauen kann. Ich habe keine Lust mir mit halbseidenen Lösungen die Karten zu legen und mir hinterher das Gemecker anhören zu müssen. Wollen wir mal schauen, wie der Kunde sich entscheidet. |
AW: Welche Datenbank.
Zitat:
OT: Wenn schon Excel, dann bitte per Email weiterschicken. Dann hat man sogar historisierte Backups. ;) |
AW: Welche Datenbank.
Zitat:
Ob es auf der gleichen Hardware/Instanz läuft ist dabei unerheblich und kann manchmal auch nicht gewünscht sein (Performance, Trennung, Lizenz). |
AW: Welche Datenbank.
Zitat:
Gruß K-H |
AW: Welche Datenbank.
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz