tutorials.de Buch-Aktion 05/2012
ERLEDIGT
JA
ANTWORTEN
14
ZUGRIFFE
853
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    inuh inuh ist offline Mitglied
    Registriert seit
    Feb 2005
    Beiträge
    10
    Hallihallo,
    ich wollte mal fragen, ob einer von euch einen Tipp bzw. eine Empfehlung bezüglich einer schnellen und robusten "embedded" Datenbakengine auf Lager hat, die man in C#/NET-Programmen verwenden kann. (Also keine Client-Server-DB)

    Es geht um eine Desktopanwendung, in der in (sehr) grossen Datenbeständen auf dem lokalen Rechner intensiv gesucht wird etc., und irgendwie bezweifle ich, dass die Kombination MS-Jet-Engine und Access da so gute Dienste leisten kann.

    Ich bin für jede Empfehlung und jeden Tipp hierzu dankbar,

    allerbeste Grüsse,

    inuh.
     

  2. #2
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    MS-SQL-Server wäre eine Möglichkeit. Da kannst via SqlClient darauf zugreifen und das geht recht flott.
     

  3. #3
    inuh inuh ist offline Mitglied
    Registriert seit
    Feb 2005
    Beiträge
    10
    Ja, danke, die ist schnell, jedoch ist das ja wieder eine Client-Server-Architektur.
    Aber ich bin ja auf der Suchen nach einer integrierten DB-Engine, d.h. eine Engine, die
    direkt in Dateien schreibt bzw. aus Dateien liest, ohne, dass ein Server dazwischen "vermittelt".
    Also in etwa so, wie es die Jet-Engine mit Access-".mdb"-Dateien macht. (nur eben schneller und leistrungefähiger)

    Habe jetzt mal die hier gefunden: http://www.vistadb.net/

    Hat damit z.B. schon jemand Erfahrung gesammelt?

    Schönen Dank.
     

  4. #4
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Die VistaDB arbeitet ja auch über einen Provider. Wo liegt da also der Unterschied zum SQL-Server? Abgesehen davon, dass du zb mit der MSDE schnell genug sein solltest.

    Vielleicht solltest auch angeben was du in etwa machen willst, denn dahin gehend tun wir uns leichter, dir zu sagen, welche Datenbank sich dazu eignet.

    Du könntest zB Gentle.NET verwenden, das dürfte dem entsprechen was du willst.
    Geändert von Norbert Eder (08.06.05 um 07:40 Uhr)
     

  5. #5
    inuh inuh ist offline Mitglied
    Registriert seit
    Feb 2005
    Beiträge
    10
    Hallo nochmal,

    entschuldige bitte, wenn ich mich nicht in der Sache nicht so richtig ausdrücken kann, ich komme eigentlich nicht aus der Windows-Programmier-Welt und vielleicht verstehe ich einige Sachen bezüglich lokaler Datenbanken auch nicht so richtig.

    Ich hab nochmal rumgesucht und "Embedded Firebird" gefunden.
    Dort steht ein Satz, der GENAU beschreibt, was ich suche:

    "Both the runtime and database file can be deployed by simple copying, no separate installer or component registration is required."

    Also eine Datenbankengine, die keine Installation weiteren Komponenten (Server, Provider o.ä.) benötigt, lediglich eine (oder mehrere) referenzierte DLLs werden benötigt.

    Ist sowas mit SQL-Server (MSDE) auch möglich?
    Ich dachte immer, daß man eben neben der Client-Anwendung auch noch den SQL-Server seperat installieren und konfigurieren müsste (wie der Name ja schon sagt).

    Achso, ja, worum gehts eigentlich genau:
    Eine recht grosse Artikelliste wird aus mehreren Warenwirtschaftssystemen ausgelesen und soll auf dem lokalen Desktop-Rechner "offline" zur Verfügung gestellt werden, d.h. eben auf dem lokalen Rechner in eine DB gepackt werden. Die Anwendung soll nun das komfortable Suchen, visuelle Aufbereiten und und und ermöglichen. Und - wies nun mal so ist - die Installation der Anwendung MUSS einfach sein, d.h. Sachen wie die Installation weiterer Komponenten (DB-Server o.ä) darf es nicht geben (kommt nicht von mir!)

    Und nun bin ich halt auf der Suche nach der "richtigen" Datenbank dafür.

    Allerbesten Dank fürs durchlesen und für die Geduld
     

  6. #6
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Gut, jetzt gibts endlich Hintergründe.

    Nun, die MSDE muss schon installiert werden, ein einfaches Kopieren reicht hier nicht aus. Die Installation der MSDE kann aber in die Installation deines Programmes integriert werden. Die Erstkonfiguration kannst du aus deinem Programm heraus machen ohne dass dem User hierzu etwas auffällt.

    Aber sicherlich gibt es einfachere Lösungen. Es gibt ein paar XML-Datenbanken, wobei diese nicht unbedingt als schnell zu werten sind. Dann wiegesagt der Ansatz über eine objekt-orientierte Datenbank. Hier gibt es einige, die recht gut sind und es im Grunde nichts installiert werden muss. Gentle.NET als Beispiel.

    Wie die "Embedded Firebird" ist, kann ich nicht sagen, ich kenn nur die normale Version und diese konnte mich nicht überzeugen.

    Access kannst du alleine schon aufgrund der Geschwindigkeit bei zunehmender Datensatzanzahl getrost unter den Tisch fallen lassen.

    Eine recht gute und schnelle "embedded db" ist noch db4objects. Hab damit recht gute Erfahrungen gemacht, ist aber auch nicht mit einer herkömmlichen SQL-Datenbank vergleichbar, da ein objekt-orientierter Ansatz.

    Sonst kenne ich noch die hsqldb, die läuft allerdings unter Java. Ein vergleichbares Produkt für .NET könnte eventuell VistaDB sein, wobei es hier sicherlich auch noch freie Entwicklungen geben dürfte.
     

  7. #7
    inuh inuh ist offline Mitglied
    Registriert seit
    Feb 2005
    Beiträge
    10
    Hey, danke für den grossen Schwung an Infos, damit kann ich ja schon eine Menge Anfangen.
    Ich denke, ich werde deine DB-Vorschläge einfach alle mal ausprobieren/sichten und vielleicht auch "benchmarken".

    Da wird schon was passendes dabei sein.

    Allerbesten Dank und beste Grüsse,

    inuih.
     

  8. #8
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Um welche Datenmengen gehts denn eigentlich, wenn ich fragen darf?
     

  9. #9
    inuh inuh ist offline Mitglied
    Registriert seit
    Feb 2005
    Beiträge
    10
    Klar darfst du fragen.

    Ich schätze die Datenmenge wird sich so ca. auf 100.000 bis 200.000 Datensätze
    belaufen, aber das ist auch nur eine Schätzung. Ich rechne aber mal mit dem absoluten worts-case und gehe einfach von 1/2-Mio Datensätze aus. (Da der Bestand ja auch wachsen wird).
     

  10. #10
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Bei der Datenmenge ist die Datenbank dahinter ansich relativ egal. Ich dachte schon du gehst auf die 10mio Datensätze zu ...
     

  11. #11
    inuh inuh ist offline Mitglied
    Registriert seit
    Feb 2005
    Beiträge
    10
    Neee, 10 Mio werdens wohl nich (hoff ich mal stark), aber man darf ja nicht die Verknüpfungstabellen vergessen (Kateorisierungen etc,), die können ja schnell mal auf ein Vielfaches des Grundbestandes wachsen.

    Ausserdem soll die Anwendung ja auch noch erträglich bedienbar sein, d.h. eine Suche oder Auswertung sollte relativ flott ablaufen, deswegen sollte die DB nicht grad die langsamste sein.
    (Stichwort Jet/Access)
     

  12. #12
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Ja gut, aber Access is keine Datenbank )
     

  13. #13
    Avatar von broetchen
    broetchen broetchen ist offline Mitglied Gold
    Registriert seit
    Feb 2004
    Ort
    Österreich/Wien
    Beiträge
    181
    Zitat Zitat von Norbert Eder
    Ja gut, aber Access is keine Datenbank )
    Was denn dann?
     

  14. #14
    inuh inuh ist offline Mitglied
    Registriert seit
    Feb 2005
    Beiträge
    10
    Eine sehr langsame Datenbank, die eigentlich die Bezeichnung "Datenbank" nicht verdient hat.
    Die Aussage war nicht ganz ernst gemeint glaub ich.

    "Datenhocker" wäre treffend
     

  15. #15
    Avatar von Norbert Eder
    Norbert Eder Norbert Eder ist offline Mitglied Diamant
    Registriert seit
    Feb 2004
    Ort
    Österreich / Graz
    Beiträge
    5.137
    Blog-Einträge
    51
    Die Aussage war in der Tat nicht ernst gemeint.

    Wobei ... eigentlich ist Access ja wirklich keine Datenbank, sondern nur eine Schublade damit der ganze Kram endlich weg ist
     

Ähnliche Themen

  1. Antworten: 4
    Letzter Beitrag: 25.08.10, 19:13
  2. Finder methods + JBoss + Was expecting one of: "CONCAT" "SUBSTRING" ... "(" ... <STRI
    Von cengizhdde im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 6
    Letzter Beitrag: 27.05.05, 15:29
  3. Zugriff auf "embedded" Resources in dll Assemply
    Von Tobias500 im Forum .NET Archiv
    Antworten: 1
    Letzter Beitrag: 02.11.04, 19:53
  4. "Rasend" schnelle Rotation
    Von C4D-PO im Forum Cinema 4D
    Antworten: 5
    Letzter Beitrag: 19.10.04, 23:03
  5. FreeHand 9, PDF-Export: "Unable to extract the embedded font"
    Von cocoon im Forum Desktop Publishing (DTP)
    Antworten: 10
    Letzter Beitrag: 30.09.03, 02:00