Seite 1 von 2

DBMS für lokale Datenbanken

Verfasst: Fr Mär 21, 2014 12:06 pm
von xerion21
Hallo zusammen,

ich habe mal eine Frage bezüglich der Auswahl eines DBMS.
Ich habe mich mal ein wenig in SQL eingearbeitet ( EInführung ins SQL, Oreilly ) und stelle mir nun die Frage, was für ein DBMS für eine Lokale Datenbank am besten ist.

Folgende Situation herscht gerade:

Ich habe eine Anwendung (C#) geschrieben, welche aus einer Datenbank Informationen ziehen soll und diese dann auch bearbeiten darf.
Nun möchte ich das Programm gerne an andere Personen ausrollen, dies kann man ja unter C# relativ einfach über "Veröffentlichen"(Click-Once).
Nun würde ich aber gerne ein Setup haben, bei dem auch automatisch eine Datenbank erstellt wird und diese dann von dem Programm angesprochen wird. Desweiteren soll bei einem Update die Datenbank nicht überschrieben werden. Da ich davon keine Ahnung habe, dachte ich ich frage mal bei euch nach ;)

Erschwerend kommt hinzu, dass die Datenbank auch ohne Internet erreichbar seien soll.

Gruß

Philip

P.S. Bin ich mit den vielen Fragen überhaupt in der richtigen Kategorie?

Re: DBMS für lokale Datenbanken

Verfasst: Fr Mär 21, 2014 12:18 pm
von cloidnerux
Nun würde ich aber gerne ein Setup haben, bei dem auch automatisch eine Datenbank erstellt wird und diese dann von dem Programm angesprochen wird. Desweiteren soll bei einem Update die Datenbank nicht überschrieben werden. Da ich davon keine Ahnung habe, dachte ich ich frage mal bei euch nach ;)
Das erfordert einen Installer, der selbstständig mit der Datenbank kommuniziert. Das wird wohl kaum mit dem One-Click installer von VS möglich sein.
Alternativ kannst du auch mit dem Programmstart überprüfen, ob eine Datenbank existiert und diese, falls dem nicht der Fall sein sollte, anlegen.

Re: DBMS für lokale Datenbanken

Verfasst: Fr Mär 21, 2014 12:27 pm
von xerion21
cloidnerux hat geschrieben: Das erfordert einen Installer, der selbstständig mit der Datenbank kommuniziert. Das wird wohl kaum mit dem One-Click installer von VS möglich sein.
Alternativ kannst du auch mit dem Programmstart überprüfen, ob eine Datenbank existiert und diese, falls dem nicht der Fall sein sollte, anlegen.
Ja einen Installer müsste ich dann wohl benutzten, iregendwelche Vorschläge?
Die Frage ist halt, was für ein DBMS? Was ist für lokale Anwendungen gut geeignet?

Re: DBMS für lokale Datenbanken

Verfasst: Fr Mär 21, 2014 1:35 pm
von nufan
xerion21 hat geschrieben:Ich habe eine Anwendung (C#) geschrieben, welche aus einer Datenbank Informationen ziehen soll und diese dann auch bearbeiten darf.
Nun möchte ich das Programm gerne an andere Personen ausrollen, dies kann man ja unter C# relativ einfach über "Veröffentlichen"(Click-Once).
Nun würde ich aber gerne ein Setup haben, bei dem auch automatisch eine Datenbank erstellt wird und diese dann von dem Programm angesprochen wird. Desweiteren soll bei einem Update die Datenbank nicht überschrieben werden. Da ich davon keine Ahnung habe, dachte ich ich frage mal bei euch nach ;)

Erschwerend kommt hinzu, dass die Datenbank auch ohne Internet erreichbar seien soll.
Nur damit ich das richtig verstehe: Du willst für eine C#-Applikation eine lokale Datenbank haben. Die Daten kommen jetzt aus einer anderen Datenbank oder wird das alles von deinem Programm generiert?

Ich würde dir aber zu SQLite raten, dafür scheint es auch C#-Bindings zu geben. Du kannst damit ohne eigenen Server-Prozess eine Datenbank im Arbeitsspeicher (Daten gehen beim Beenden verloren!) oder in einer Datei anlegen. Bei einem Update deiner Anwendung würde die Datei dann auch so erhalten bleiben. Bei Änderungen des Datenbankschemas durch ein Update müsstest du halt etwas nachhelfen.
xerion21 hat geschrieben:P.S. Bin ich mit den vielen Fragen überhaupt in der richtigen Kategorie?
Ja du bis schon richtig hier :) Alternative wäre auch das C#-Unterforum gewesen, aber ich finde das passt hier sogar noch besser.

Re: DBMS für lokale Datenbanken

Verfasst: Fr Mär 21, 2014 2:25 pm
von xerion21

Nur damit ich das richtig verstehe: Du willst für eine C#-Applikation eine lokale Datenbank haben. Die Daten kommen jetzt aus einer anderen Datenbank oder wird das alles von deinem Programm generiert?
ja ich will eine lokale Anwendung haben. Dieses Programm benötigt eine Datenbank. In der das Programm die einzugebenden Informationen speichert.
Die Datenbanken kann auch schon vorher erstellt sein. Oder das Programm erstellt diese. das ist mir eigentlich gleich.

Ich würde dir aber zu SQLite raten, dafür scheint es auch C#-Bindings zu geben. Du kannst damit ohne eigenen Server-Prozess eine Datenbank im Arbeitsspeicher (Daten gehen beim Beenden verloren!) oder in einer Datei anlegen. Bei einem Update deiner Anwendung würde die Datei dann auch so erhalten bleiben. Bei Änderungen des Datenbankschemas durch ein Update müsstest du halt etwas nachhelfen.
Ja SQLite habe ich auch schon dran gedacht. Muss ich mal schauen. Ja gut, die Daten sollen dann in einer Datei angelegt werden. Dann muss ich bei der Installation lediglich eine sq3l-Datenbank anlegen lassen.
Kann ich eigentlich auch ggf. einfach durch das Programm eine Access-Datenbank erstellen, ohne dass ich selbst Access auf dem Rechner habe?
VS liefert doch auch die Möglichkeit ein M$-Datenbank mitzugeben?

Re: DBMS für lokale Datenbanken

Verfasst: Fr Mär 21, 2014 2:31 pm
von cloidnerux
Ja gut, die Daten sollen dann in einer Datei angelegt werden.
Du solltest vlt auch mal überlegen, ob überhaupt eine Datenbank notwendig ist.
Es könnte sogar einfacher sein, deine Daten in einem Objekt(Liste, Array, was auch immer) zu speichern und dieses einfach in eine Datei zu serialisieren.
Kann ich eigentlich auch ggf. einfach durch das Programm eine Access-Datenbank erstellen, ohne dass ich selbst Access auf dem Rechner habe?
Ich bezweifle es stark.

Re: DBMS für lokale Datenbanken

Verfasst: Fr Mär 21, 2014 9:54 pm
von xerion21
Du solltest vlt auch mal überlegen, ob überhaupt eine Datenbank notwendig ist.
Es könnte sogar einfacher sein, deine Daten in einem Objekt(Liste, Array, was auch immer) zu speichern und dieses einfach in eine Datei zu serialisieren.
Ja eigentlich wollte ich schon eine Datenbank nehmen, da ich sonst extrem viele Dateien anlegen muss, welche im Laufe der Zeit sehr viele Datensätze beinhaltet.

Ich schätze mal, dass die Datenbank jede Woche um ca 200 Datensätze wächst ( in verschiedenen Tabellen )

Re: DBMS für lokale Datenbanken

Verfasst: Sa Mär 22, 2014 11:05 am
von canlot
Ich habe mal für ein C# Verwaltungsprogramm mysql verwendet, hat ganz gut funktioniert. Man muss wahlweise eine 2.0 oder 4.0 Connector-dll runterladen und einbinden. Der Gebrauch ist ganz einfach, die Datenbank lief bei mir sogar auf einem xampp-server. Ich denke Mariadb könnte man damit auch verwenden, habe ich aber nicht ausprobiert.

Re: DBMS für lokale Datenbanken

Verfasst: Mi Mär 26, 2014 2:54 pm
von xerion21
So nun bin ich soweit, dass ich meine MySQL-Lektüre durchgearbeitet habe.

Nun habe ich für mein Programm folgende 2 Varianten. Da mein Programm erstmal nur lokal Verwendung finden soll ( es dauert noch, bis eine WEBfähige Version entsteht ), werde ich auch erstmal eine lokale Datenbank benutzten. Da ich das Programm auch ohne Netzanwendung verwenden möchte... Auf meinem Rechner ist schon der MySQL-Server installiert, somit würde sich dies anbieten.
Wenn ich jedoch mein Programm an andere Personen weitergebe, müssten diese sich zuerst den MySQL-Server installieren, bevor diese das Programm verwenden können. Das ist sehr unpraktisch... Vor allem wegen einer Datenbank einen lokalen Server aufzusetzen lohnt sich nicht :/
Daher habe ich an SQLite gedacht.

Ich kenne mich aber mit SQLite gar nicht aus und was für Verweise benötige ich für C#?

Re: DBMS für lokale Datenbanken

Verfasst: Mi Mär 26, 2014 7:45 pm
von canlot
Wie gesagt ein xampp Server würde völlig ausreichen.