Laden...

Welche Datenbank für Desktopanwendung

Erstellt von Hirnhamster vor 13 Jahren Letzter Beitrag vor 13 Jahren 20.183 Views
H
Hirnhamster Themenstarter:in
103 Beiträge seit 2010
vor 13 Jahren
Welche Datenbank für Desktopanwendung

verwendetes Datenbanksystem:.. das ist hier die Frage ^^

Bitte meinen Post weiter unten im Thread beachten!

Hey Leute,
ich würde gern eine Desktopapplikation erstellen, die Daten in einer Datenbank hält. Bisher habe ich das bei Desktopanwendungen über XML Dateien gelöst, was allerdings eher suboptimal ist.

Mit Datenbanken haben ich bisher nur MySQL gearbeitet, das allerdings auf einem eigenen Webserver laufen musste. Für Desktopapplikationen möchte ich aber ungern immer meinen Apache anwerfen müssen, deshalb wollte ich Fragen, ob es sich auch anders lösen lässt.

Ein Stubser in die richtige Richtung (was gibt es da bezogen auf mein Problem, Vor/Nachteile,...) wäre super.

Vielleicht noch ein kleiner Nachtrag:
Ich habe schonmal mit Linq2Sql gearbeitet und mit dem OR Designer ein Datenmodell erstellt und zum laufen gebracht, aber ich "verstehe" nicht, wo dort die Daten liegen. Ich finde keine Datei oder ähnliches, wo die gespeichert werden...

Viele Grüße

PHP Tutorials zum PHP lernen

906 Beiträge seit 2005
vor 13 Jahren

du brauchst eine Embedded Datenbank.

Ich nutze immer Firebird. Die Datenbank ist kostenlos und hat eine Embedded Edition. Wenn du später auf einen Server gehen willst, brauchst du nur die DB auf den Server packen und den ConnectionString ändern. Das ist genial.

6.911 Beiträge seit 2009
vor 13 Jahren

Hallo,

siehe auch Empfehlungen für SQL-Datenbank gesucht. Darin gibts eine Übersicht über Datenbanken.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

S
443 Beiträge seit 2008
vor 13 Jahren

Wenn Du nicht vorhast 2 GB an Daten zu sammeln könnte man auch Access empfehlen.
Sicherung ist mit Copy-Paste erstellt.
Ich glaube bis 10.000 Datensätze pro Tabelle schneller als der SQL-Server (danach langsamer!)
und kann überall liegen, Internet-Fähigkeit hat sie halt keine.

mbg
Rossegger Robert
mehr fragen mehr wissen

Montag morgen ist die beste Zeit um eine erfolgreiche Woche zu beginnen

6.911 Beiträge seit 2009
vor 13 Jahren

Hallo,

für Access siehe zB Empfehlungen für SQL-Datenbank gesucht

Ich glaube bis 10.000 Datensätze pro Tabelle schneller als der SQL-Server

Ich glaub das erst wenn das bewiesen wurde 😉

Von einem Datenbank-Experten hab ich dazu mal gehört:

Also Access ist ungefähr so viel eine Datenbank wie ein Rollstuhl eine Chopper ist.

Es gibt besser (kostenlose) Alternativen. Diese wurden im Link genannt.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

H
Hirnhamster Themenstarter:in
103 Beiträge seit 2010
vor 13 Jahren

Also wenn ich diesen Beitrag zum SQL Server Compact richtig verstehe, dann ist das doch das, was ich suche, oder?

Was mir allerdings noch wichtig ist, ist die Verfügbarkeit auf anderen Rechnern. Also wenn ich meine Applikation auf einem anderen Rechner installiere, dann muss die Infrastruktur zur Nutzung der Datenbank vorhanden sein.

Ist das bei dem SQL Server Compact gegeben?

PHP Tutorials zum PHP lernen

6.911 Beiträge seit 2009
vor 13 Jahren

Hallo,

beim SQL Server CE müssen nur die paar (8?) DLLs mit kopiert werden. Sonst keine Installation notwendig.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

3.825 Beiträge seit 2006
vor 13 Jahren

SQL Compact hätte ich Dir auch empfohlen.

Ein Beispiel mit SQL Compact : http://www.seven-c.de/files/datenbankenhowto.htm#9

Kapitel 9.

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

161 Beiträge seit 2007
vor 13 Jahren

Wenns es nicht unbedingt eine SQL-based DB sein muss kann ich dir noch MongoDb, RavenDb und Db4o als Stichworte mitgeben.

Ansonsten würde ich in diesem Zusammenhang noch SQLite empfehlen.

"Eine wirklich gute Idee erkennt man daran,
dass ihre Verwirklichung von vorneherein ausgeschlossen erscheint."
(Albert Einstein)

175 Beiträge seit 2010
vor 13 Jahren

beim SQL Server CE müssen nur die paar (8?) DLLs mit kopiert werden. Sonst keine Installation notwendig.

Wobei da bitte zu berücksichtigen ist, dass man diese DLLs nicht mit seiner Applikation ausliefern darf - es sei denn, man registriert sich bei Microsoft und erhält ein solches Recht (mit welchen Verpflichtungen auch immer)...

Ich könnte da alternativ SQLite empfehlen - dafür gibt es auch einen ADO .NET Provider. Guckst Du hier: http://sqlite.phxsoftware.com/

Da wirft man die DLL mit in sein Projekt, ändert ein bisserl an der app.config und schwupps.... fertisch 😉

Bye,
Michael

Debuggers don't remove Bugs, they only show them in Slow-Motion.

6.911 Beiträge seit 2009
vor 13 Jahren

Hallo,

es sei denn, man registriert sich bei Microsoft und erhält ein solches Recht (mit welchen Verpflichtungen auch immer)...

Das ist unter Register for Redistribution Rights nachzulesen.

Irgendwie lustig. Zuerste steht "Free to use and distribute" und dann doch eine Registrierung 😉

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

H
Hirnhamster Themenstarter:in
103 Beiträge seit 2010
vor 13 Jahren

beim SQL Server CE müssen nur die paar (8?) DLLs mit kopiert werden. Sonst keine Installation notwendig.

Wobei da bitte zu berücksichtigen ist, dass man diese DLLs nicht mit seiner Applikation ausliefern darf - es sei denn, man registriert sich bei Microsoft und erhält ein solches Recht (mit welchen Verpflichtungen auch immer)...

Ich könnte da alternativ SQLite empfehlen - dafür gibt es auch einen ADO .NET Provider. Guckst Du hier:
>

Da wirft man die DLL mit in sein Projekt, ändert ein bisserl an der app.config und schwupps.... fertisch 😉

Bye,
Michael

Moment, heißt das jetzt, dass ich das nicht nutzen kann um z.B. Software zu verkufen, da es beim Kunden ohne die DLLs nicht laufen würde?

PHP Tutorials zum PHP lernen

6.911 Beiträge seit 2009
vor 13 Jahren

Hallo,

ohne DLLs gehts nicht. Diese dürfen aber verteilt werden (zB Copy & Paste oder ins Setup packen) ohne dass du dafür eine Gebühr zahlen musst, allerdings ist als Entwickler beim SQL CE eine kostenlose Registrierung bei MS notwendig -> siehe obigen Link.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

H
Hirnhamster Themenstarter:in
103 Beiträge seit 2010
vor 13 Jahren

Ah super, alles klar 😃

Ist das eigentlich mit Kanonen auf Spatzen geschossen, wenn ich lediglich 2-3 Tabellen brauche? Diese haben zwar jeweils zwischen 50k und 150k Einträge, aber trotzdem..?

Macht es hier mehr Sinn auf etwas weniger "Mächtiges" umzuschwenken oder ist das eigentlich egal bzw. erkaufe ich mit keine Nachteile dadurch?

PHP Tutorials zum PHP lernen

V
162 Beiträge seit 2010
vor 13 Jahren

Hi,

ich würde Firebird vorschlagen wollen.

Als Embedet macht es eine gute Show. Unterstützt dann nur keine Events.
Wenn du dann später von Desktop auf Server-Client umstellen willst, must du wie oben beschrieben
nur die Verbindungsdaten ändern. Kopierst die lokale DB Datei auf den Server und fertig ist es.
Server kann Linux, Mac OS X und Windows sein.
Toll ist auch, daß man einfachst Backups auf DB ebene Programmieren kann.
Dies sorgt dann für die Datensicherheit.

Wenn du weißt, das dein Projekt eh auf Server-Client hinausläuft würde ich dir MSSQL + CE edition empfehlen. Sync scheint da super zu laufen 😃

PS: Hab gerade in der Pause ein Weizen in praller Sonne getrunken, ooOOhh , Rechtschreibfehler dürft ihr heute für euch behalten 😃

Das Leben ist schön!

6.911 Beiträge seit 2009
vor 13 Jahren

Hallo,

Ist das eigentlich mit Kanonen auf Spatzen geschossen, wenn ich lediglich 2-3 Tabellen brauche? Diese haben zwar jeweils zwischen 50k und 150k Einträge, aber trotzdem..?

Da es so viele Datensätze sind ist eine DB schon passend. Wenns nur wenige Daten wären könnte auch XML verwendet werden (Serialisierung).

Du siehst ja es gibt genügend Möglichkeiten 😉

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

E
395 Beiträge seit 2007
vor 13 Jahren

ich würde gern eine Desktopapplikation erstellen, die Daten in einer Datenbank hält. Bisher habe ich das bei Desktopanwendungen über XML Dateien gelöst, was allerdings eher suboptimal ist.

@ gfoidl 😉

MfG Paul

V
162 Beiträge seit 2010
vor 13 Jahren

ich würde gern eine Desktopapplikation erstellen, die Daten in einer Datenbank hält. Bisher habe ich das bei Desktopanwendungen über XML Dateien gelöst, was allerdings eher suboptimal ist.
@ gfoidl 😉){gray}

Dich verstehe ich nicht.
Warum schreibst du das? Er hat doch nur eine richtige Antwort gegeben.

Das Leben ist schön!

6.911 Beiträge seit 2009
vor 13 Jahren

Hallo,

ich - der betroffene - verstehts aber 😉 Es soll aber nicht vom Thema ablenken und daher muss das nicht diskutiert werden.

mfG Gü

Stellt fachliche Fragen bitte im Forum, damit von den Antworten alle profitieren. Daher beantworte ich solche Fragen nicht per PM.

"Alle sagten, das geht nicht! Dann kam einer, der wusste das nicht - und hat's gemacht!"

H
Hirnhamster Themenstarter:in
103 Beiträge seit 2010
vor 13 Jahren

Ich grabe den Thread für die Nachwelt nochmal aus und möchte nur anmerken, dass ich jedem SQLite als DB System empfehlen würde. Siehe dazu auch meinen anderen Thread bezüglich massiver Performance Probleme mit SQLCE.

Kurze Zusammenfassung:*Ich verwende http://sqlite.phxsoftware.com/ als Wrapper *Der Wrapper ist public Domain, unterliegt somit keinen lizenzrechtlichen Einschränkungen *Weitergabe erfolgt durch das hinzufügen einer einzigen DLL bei der Installation *SQLite ist etwa 6(!) mal schneller *Bulk Inserts, TRUNCATE und andere Befehle werden unterstützt

Wenn es also um mehr als ein "paar Daten" geht, dann ist SQLite definitiv besser als SQLCE.

Grüße
Hamster

PHP Tutorials zum PHP lernen

888 Beiträge seit 2007
vor 13 Jahren

Hallo,

ich verwende .NET 4.0 und bin auf der suche nach einer 100% managed Code, free, embedded Datenbank, also eine die ich auf ANY kompilieren kann.

Weiss jemand Rat?

Grüße

Gelöschter Account
vor 13 Jahren

definiere 100% managed code....

888 Beiträge seit 2007
vor 13 Jahren

Also worauf ich hinaus will ist, ich will eine Embedded DB benutzen die ich auf ANY kompilieren kann.

Gelöschter Account
vor 13 Jahren

du willst die sourcen der DB haben oder willst du einfach nur deinen eigenen code gegen ANY compilieren? also das die db deswegen immernoch auf 32 bit laufen darf?

888 Beiträge seit 2007
vor 13 Jahren

Hallo Jack,

die Sourcen der DB benötige ich nicht.

Ich will mein Projekt gegen ANY kompilieren und im Taskmanager soll nicht mehr *32 auf einer x64-Maschine stehen.

F
10.010 Beiträge seit 2004
vor 13 Jahren

Es gibt auf googlecode eine 100% .NET Portierung von sqlite.

888 Beiträge seit 2007
vor 13 Jahren

Habs mal probiert damit:
http://code.google.com/p/sqlite-net/

...aber 100%ig ist die Implementierung nicht, es gibt nicht mal DB-Parameter.

Ich muss sagen ich bin stark überrascht, das es das was ich suche nicht zu geben scheint. Keine der modernen embedded DB's bietet ANY-Unterstützung.

F
10.010 Beiträge seit 2004
vor 13 Jahren

Das projekt meinte ich nicht.

http://code.google.com/p/csharp-sqlite/

Gelöschter Account
vor 13 Jahren

@FZelle:

Ich wäre mir da nicht so sicher, das der code auch unter x64 einwandfrei läuft. Ich bin mir nicht mal sicher ob der code überhaupt einwandfrei läuft, wenn ich mir die "malloc_c.cs" so ansehe... insbesondere diese nutzlosigkeit in der managed umgebung ist fraglich und die pointerarrithmetik absolut unnötig.
Das sieht alles eher nach c++ 1:1 kopie aus... einfach nur compilierbar gemacht. Daher vermute ich, das es nur unter x86 korrekt läuft.

F
10.010 Beiträge seit 2004
vor 13 Jahren

Hast schon recht, das war ein Projekt das nur die Machbarkeit beweisen sollte.
Aber es hat sich schon gemausert.

Und ich selber habe es unter 64Bit probiert, und das geht auch.

Wenn man aber ein fertiges Produkt haben will, dann sollte man eher http://www.vistadb.net/ anschauen.

Gelöschter Account
vor 13 Jahren

Ja ja.. gehen schon aber die frage ist, unter welchen umständen es durch die art und weise der protierung inkonsistenzen oder gar korrupte bereiche erzeugt.

888 Beiträge seit 2007
vor 13 Jahren

@Jack & FZelle

Also, ich hab mein Projekt mit der C#-SQLite Version von GoogleCode zum Laufen bekommen, erstmal läuft es wie gewünscht. Das Projekt lässt sich gegen ANY kompilieren und starten. Meine Querys konnten so bleiben, musste nur die Typ-Namen anpassen, ConnectionString ändern & Strong-Names im C#-SQLite hinzufügen.

Ich werde das jetzt so einchecken und weiterhin beobachten ob Probleme mit dieser Version auftauchen. Ein wirklich gutes Gefühl mit so einer nicht supporteten Version hab ich nicht. Aber das kann auch nur ein Vorurteil sein.

Vielen Dank auch für den Vista-DB hinweis, das ist eigentlich genau das Richtige, die Lizensbedingenungen sind auch ziemlich cool. Mal sehen ob sich die Firma erbarmt etwas zu investieren...

Grüße