Forum: PC-Programmierung Datenbank für Anwendung (Desktop-Datenbank) gesucht!


von Erik (Gast)


Lesenswert?

Hallo Leute,

Ich suche für ein Programm, welches ich schreiben will, eine Datenbank.
Ich muss dabei viele Daten gegliedert ordnen können (Tabellenstruktur). 
Klar, dass hier eine Datenbank ideal ist. Meine Problem ist nur, das DBs 
wie MySQL oder PostgreSQL "oversized" sind. Ich möchte dem Nutzer des 
Programmes nicht noch "aufbürden" erst z.B. das komplette MySQL 
installieren zu müssen, um meine Software nutzen zu können.

Nun meine Frage:
Gibt es, bzw. kennt jemand vielleicht eine DB die für einzelne 
Anwendungen gedacht ist? Also z.B. als DLL oder kleine EXE die man nur 
mit in das Programmverzeichnis kopieren muss und welche ihre Daten dann 
dort ablegt? Vielleicht sogar Freeware oder OpenSource?

Danke für die Mühe.
Gruß,
Erik

von arc (Gast)


Lesenswert?

Berkeley DB
http://www.oracle.com/database/berkeley-db/index.html

SQLite
http://www.sqlite.org/

oder wenn's eine Objektorientierte sein soll:
http://lnx.orientechnologies.com/cms/?Solutions:Orient_ODBMS
bzw.
http://lnx.orientechnologies.com/cms/?Solutions:Orient_ODBMS:Just_Edition

Wenn's um .NET geht, kann man auch sehr einfach XML-Dateien nehmen.

von Wolfgang F. (wolfgang)


Lesenswert?

Unter welchem OS soll dein Programm den laufen?
Für Win kannst du z.B. MS Access verwenden

lg
Wolfgang

von Erik (Gast)


Lesenswert?

@Wolfgang F.
Es geht zunächst mal vorrangig um Win später evtl. aber auch um Linux.
Ich programmiere zur Zeit in C# (.Net bzw Mono).

@arc
Für meine Fälle scheint SQLite tatsächlich am Besten.
XML-Dateien sind gut, könnten bei meiner Datenmasse aber evtl. langsam 
werden.
Welche Möglichkeiten zur Nutzung von SQLite unter C# gibt es denn 
(Beispiel)?

Ich dachte auch schon an Firebird (http://www.firebirdsql.org/). 
Gegenüber SQLite scheint es mir aber wieder zu "oversized"...

Danke und Gruß,
Erik

von Karl H. (kbuchegg)


Lesenswert?

Erik wrote:

> Welche Möglichkeiten zur Nutzung von SQLite unter C# gibt es denn
> (Beispiel)?

Für SQLite gibt es eínen C# Wrapper

http://www.phpguru.org/static/SQLite.NET.html

von Gast (Gast)


Lesenswert?

Hallo Erik,

von Firebird gibt es auch eine embedded Version !
Musst nur eine DLL mitliefern, kann ohne Installation
auf dem Zielrechner verwendet werden,
einzige Einschränkung: es kann nur eine Anwendung exclusiv auf die DB 
zugreifen (kein Mehrbenutzerbetrieb).

MfG

von Erik (Gast)


Lesenswert?

@Gast
> einzige Einschränkung: es kann nur eine Anwendung exclusiv auf die DB zugreifen
Das ist nicht schlimm, da ich nur diese eine Anwendung für den Zugriff 
benötige.
Gibts evtl. irgendwo ne Anleitung zur Einbindung von Firebird in C# bzw. 
.NET?

@Karl heinz Buchegger
Danke, das werd ich auf jeden Fall mal versuchen...

Ich werde erst mal beides (SQLite und Firebird) probieren und nehme dann 
das, was besser klappt :-)

Danke danke danke,
Erik

von Erik (Gast)


Lesenswert?

Mir ist da gerade noch was aufgefallen:
SQLite:
>FOREIGN KEY constraints are parsed but are not enforced
Soll das jetzt heißen, dass z.B. ein
1
xx REFERENCES yy ON DELETE CASCADE
xx dennoch beibehält, wenn yy gelöscht werden würde?
Das führt dann ja zu Inkonsistenzen bzw. man muss sich selber um das 
Löschen von xx kümmern.
Geht das denn bei Firebird automatisch?
Wenn ja, so ist Firebird der klare Sieger!

von Gast (Gast)


Lesenswert?

Hallo Erik,

ja Firebird löscht Foreign Keys automatisch mit,
wenn es mit ON DELETE CASCADE so festgelegt wurde.
Zu Firebird und C# siehe auch:

http://firebirdsql.org/dotnetfirebird/
oder
http://www.codeproject.com/cs/database/EmbeddedFirebird.asp
oder
http://www.mycsharp.de/wbb2/thread.php?threadid=28699&hilight=firebird+embedded

MfG

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.