![]() |
Datenbank: das ist die Frage • Zugriff über: noch nicht klar
Welche Datenbank
Hallo liebes Forum
Ich hoffe diese Frage wurde noch nicht gestellt, aber die Suche hat nichts ergeben. Ich möchte ein Programm schreiben, dass für eine öffentliche Einrichtung "Einträge" verwaltet. Die Anforderung ist: nur ein Datenbestand, von dem Clients (mein Programm) zugreifen können. Toll wäre es natürlich, wenn die "Einrichtung" einen DB-Server hätte... dem ist aber nicht so :wink: Und nun die Frage: welche Datenbank (oder Engine) ist dafür geeignet? Sie müsste halt direkt in Dateien schreiben.... wichtig ist nur, dass sie sich nicht als Service, oder ähnlich "fest" installiert, sodern eher "out of the box" funktioniert. Wäre ADO und Access ne Idee, oder gibt es da vielleicht ne Open Source Datenbank da ich natürlich mit Lizenzen aufpassen muss. P.S. Gleichzeitiger Zugriff wäre natürlich perfekt, aber nicht unbedingt erforderlich. Würde mich über jede Idee oder Anregung freuen. mfg WhiteHolly |
Re: Welche Datenbank
Es gibt auch "richtige" Datenbankserver als Nicht-Installations-Version (MySQL, Interbase, Firebird, ...). Es kommt noch darauf an wieviel Geld du ausgeben kannst bzw. willst. Bei 0€ ist die Auswahl natürlich viel stärker eingeschänkt als wenn du eine Entwicklerversion kaufen kannst/darfst die du dann kostenlos verteilen darfst.
Falls du ein paar € ausgeben kannst ist die Auwahl riesig und ohne genauere weiteren Anforderungen wird jede dieser DB's geeignet sein. |
Re: Welche Datenbank
Hallo,
wenn du Ärger vermeiden willst, nimm keine Desktop-Datenbank, einmal das Nez kurz weg -> Daten ev. futsch Wenn keine DB-Server da ist, muss einer angeschafft werden. Ansonsten, siehe mein Vorredner. Heiko |
Re: Welche Datenbank
Zitat:
|
Re: Welche Datenbank
Ich kann mich da nur anschliessen.
Du hast ja quasi ein verteiltes Umfeld. Die User haben alle ihre Stationen und die Daten sollen zentral verwaltet werden. Es gibt prinzipiell zwei Möglichkeiten. a) eine sogenannte Desktop-Datenbank (BDE/Paradox, Access, usw.) Hier liegen die Daten (meistens) in einem File auf dem zentralen Server. Die Clients greifen eben mit der Desktop-Datenbank auf die Daten zu. Natürlich kann da nur immer ein User gleichzeitig zugreifen, weil die Clients ja nichts voneinander wissen. BDE/Paradox kann zwar z.B. gewisse Blockierungen aktivieren, das ist aber auch kein sicherer Mechanismus. Auf jeden Fall ist die Chance auf Datenverlust bei allen Kandidaten sehr hoch. b) Ein DB-Server (MySQL, FireBird, PostgreSQL, MS-SQL, Oracle, usw.) Der DB-Server (eigentlich das DBMS) verwaltet die Daten und die Zugriffe. Die DBMS unterscheiden sich in der Funktionsvielfalt nicht grossartig. Und Komponenten für den Datenzugriff gibt es für Delphi auch jede Menge. Lediglich der Preis der DBMS ist interessant. Firebird ist kostenlos. PostgreSQL ist kostenlos. MySQL ist kostenlos für privat, man kann aber mit der deutschen Niederlassung verhandeln. MS-SQL kosten Geld. Nun musst Du halt überlegen, was Du brauchst... |
Re: Welche Datenbank
Erstmal vielen Dank für die netten und informationsreichen Antworten.
Ich habe mich noch einmal erkundigt und ein Datenbank-Server ist leider nicht möglich... Auch wurde mir gesagt, dass es kaum vorkommen sollte, dass zwei User gleichzeigig arbeiten wollen (es wäre nur ein Client aktiv im Einstatz, zwei andere nur als "nice-to-have" um "mal eben schnell was nachsehen zu können") Sprich das ganze endet wohl oder übel in einer Desktop-Datenbank. Das Problem ist auch, dass ich kein Geld für die Datenbank ausgeben kann. Ich einem früheren (Java) Projekt habe ich die Datenbank hsql benutzt, welche auch als Desktop-Datenbank funktionierte und sehr sicher lief. Die Datenbank erlaubte nur eine Connection, weitere wurden verweigert. Dieses Prinzip könnte ich auch hier anwenden. Vielleicht werde ich hsql wieder benutzen. ![]() Was meint ihr dazu? mfg Whiteholly |
Re: Welche Datenbank
[quote="whiteholly"]Ich habe mich noch einmal erkundigt und ein Datenbank-Server ist leider nicht möglich...
Zitat:
Zitat:
|
Re: Welche Datenbank
Der Preis für eine Datenbank ist belanglos, wenn diese nichts kostet.
|
Re: Welche Datenbank
Ich kann ja mal kurz erklären in welcher Situation ich mich befinde :wink:
Zur Zeit habe ich (mehr oder weniger) viel Freizeit... Abi gerade hinter mir, bald Zivildienst. Ich beschäftige mich sehr gerne mit Programmierung und wollte mal wieder in eine neue Programmiersprache "hinein schnuppern". Leider hat mir ein richtiges Projekt gefehlt um das ganze Praxisnah durchzuführen. Durch Zufall bin ich dann auf diese öffentliche Einrichtung gestoßen. Ich arbeite nur aus Spass, erhalte natürlich später ein "paar Euro"... aber worum es mir eigentlich geht ist praxisnahe Erfahrungen zu sammeln und ein bisschen Delphi zu erlernen. Von daher würde ich mich freuen, wenn ich eine Datenbank zur Verfügung hätte, die mich nichts kostet. mfg Whiteholly |
Re: Welche Datenbank
Zitat:
|
Re: Welche Datenbank
Wie wäre es mit Firebird Embedded?
Da hast Du eine DLL oder eine LIB. Die LIB kannst Du direkt in deine EXE einkompilieren. Die Datenbank gibst Du dann mit \\Server\PfadZurDatenbank\DatenbankFile an. Zugreifen kannst Du z.B. mit den ZEOS-Komponenten. |
Re: Welche Datenbank
War gerade auch auf Firebird Embedded gestoßen.
Hört sich sehr gut an. Ich werde es mal damit testen. mfg Whiteholly |
Re: Welche Datenbank
Immerhin kannste mit Firebird Embedded sicherstellen, dass nur einer gleichzeitig damit arbeitet. :wink:
Die Embedded-Version hat den Nachteil, dass die DB nur lokal liegen darf, also noch nicht einmal auf einer Freigabe im Netzwerk. Damit sollte das für deinen Zweck (mögliche Mehrbenutzer) wohl gestorben sein. Ich habe für unser Projekt auch ne Weile rumgeschaut, ob ich eine DB ohne Installation bekomme, auf die mehrere gleichzeitig zugreifen können. Aber das einzige was man dafür finde ist sowas wie Access und dessen Nachteile wurden hier schon sehr oft diskutiert. |
Re: Welche Datenbank
Hallo,
wie wäre es mit SQLite? Ich benutze es für ein kleines Tool auf der Arbeit (Verwaltung von Informationen zu Fehlerreports). Gleichzeitiger Lesezugriff ist kein Problem, nur gleichzeitig schreiben geht nicht. Dies sollte aber bei 2-3 Arbeitsplätzen kein Problem darstellen, denn die Wahrscheinlichkeit, dass genau in der selben Sekunde 2 oder 3 von 3 Usern einen Datsatz bearbeiten/speichern, ist meiner Meinung nach sehr gering. Ich benutze die Unit ![]() |
Re: Welche Datenbank
SQLite hat aber das selbe Problem wie FB embedded. warum eigentlich ne embedded und kein richtiger Server?
|
Re: Welche Datenbank
Zitat:
Wie gesagt, ich habe eine Anwendung mit SQLite als Datenbank auf der Arbeit am Laufen. Mehrere User können problemlos gleichzeitig lesend auf die DB zugreifen. Das sieht SQLite auch vor, nachzulesen auf ![]() Das gleichzeitige Schreiben geht nicht. Zitat von SQLite.org: Zitat:
Zitat:
|
Re: Welche Datenbank
Zitat:
|
Re: Welche Datenbank
Man kann auch einen Server verwenden ohne ihn (als Dienst) zu installieren
|
Re: Welche Datenbank
Was hat denn das mit Diensten zu tun ? Bei FB weiß ichs genau : es ist standardmäßig alles in den Checkboxen bei der Installation (und das als Dienst) so abgehakt, dass eine vorherige Installation überschrieben wird. Du glaubst ja wohl nicht ernsthaft, dass ein DAU in der Lage ist eine 2-malige Frage "Sind sie sicher" zu lesen und notfalls mal N zu klicken ? :lol: Nene, bin gerade in genau dieser Situtation : keiner weiß, welche DB vorhanden ist und ich werde einen Teufel tun und dem noch den FB-Server schicken (hat allerdings mit FB nur bedingt zu tun) um eventuell die ganze Fa. lahmzulegen. :wall: Wenn der jetzt mein Programm täglich einsetzt, es läuft bereits ein Jahr und dann kommt einer an mit Tips aus der DP, der meine Installation kaputt macht, na dann ist zumindest klar wohin die Rechnung mit den Fahrtkosten, der Arbeitszeit und der Hotelübernachtung hingeht. :mrgreen:
|
Re: Welche Datenbank
Ich habe jetzt ein kleines Test-Programm geschrieben um die Datenbank SQlite zu testen.
Die Datenbank gefällt mir sehr gut. Mit dem hier im Thread vorgeschlagenen Wrapper ist das ganze ziemlich simpel. Freigaben gehen nicht, aber mit Netzlaufwerk läuft alles wunderbar... Und das ganze sind nur 3 Dateien... Client, Datenbank-Datei, Datenbank-dll. Kopieren oder direkt von Netzlaufwerk ausführen geht wunderbar :wink: Sprich: keine Installation notwendig. Das Lesen von verschiedenen Clients (10stck) ging ohne Probleme. Auch konnte ich die Datenbank nicht zerschießen, als ich versucht habe gleichzeitig zu schreiben... (was ich aber nicht ausschließen kann, aber es ist mir nicht gelungen :-D ). mfg Whiteholly |
Re: Welche Datenbank
@Hansa: Ich redete von nicht installieren. man kann den server auch mitliefern und manuell als Programm auf abweichenden Port starten.
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:54 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-2025 by Thomas Breitkreuz