Gateway_man Geschrieben 15. Dezember 2010 Teilen Geschrieben 15. Dezember 2010 Guten Tag, folgende Situation hat sich ergeben: Ich muss eine Verwaltungssoftware schreiben. Die Daten, welche das Programm verwalten soll, müssen lokal gespeichert werden. Das Mengengerüst beläuft sich auf jährlich ca. 500000 hinzukommende Datensätze. Die schwierigkeit liegt darin, das ich gänzlich auf die Installation eines Datenbankserver verzichten möchte. Fällt jemand eine alternative ein. Was wichtig wäre: Es sollte bei möglichkeit eine Schnittstelle fürs .NET vorhanden sein. Ich dachte anfangs noch an XML, jedoch drängt sich mir immer mehr der Verdacht auf, das die Datenmengen einfach zu groß dafür sind. lg Gatway Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 15. Dezember 2010 Teilen Geschrieben 15. Dezember 2010 Warum willst Du auf ein DBMS verzichten? Welche fachliche Begründung würde das rechtfertigen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gateway_man Geschrieben 15. Dezember 2010 Autor Teilen Geschrieben 15. Dezember 2010 Warum willst Du auf ein DBMS verzichten? Welche fachliche Begründung würde das rechtfertigen? Entschuldige ich hatte mich falsch ausgedrückt . Die Person, für die das Programm ist, will es nicht. Warum weiß ich auch nicht :confused:. lg Gateway Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 15. Dezember 2010 Teilen Geschrieben 15. Dezember 2010 Du kannst z.B. auf SQLite ? Wikipedia setzen. Je nach Anwendung käme auch so etwas in Frage XML-Datenbank ? Wikipedia Es ist für mich die Frage "was" genau nicht gewünscht ist, denn rein technisch kann ich auch einen mySQL Dämon laufen lassen, die Datenbank liegt für den Dämon eh lokal und greife dann via Socket oder TCP/IP auf die Datenbank zu (und das wenn gewünscht auch nur über lokalhost). Dann würde eben alles auf einem System liegen. Ich sehe da keine Probleme. Eine Datenbank ist ja nur ein Stück Software, das eben gewissen Eigenschaften an die Datenhaltung / -zurgiff liefert. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 15. Dezember 2010 Teilen Geschrieben 15. Dezember 2010 Ich sehe auch keinen Grund auf eine Datenbank zu verzichten. Wenn man es richtig reinrichtet muss der Benutzer ja nichtmal was davon mitbekommen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
NerdonRails Geschrieben 15. Dezember 2010 Teilen Geschrieben 15. Dezember 2010 ich würde dir statt sqlite, wenn es denn lokal sein muss, lieber zum SQL Server Compact raten, da man so technlogisch im Microsoft-Raum bleibt und nicht externen kram einbinden muss. SQL Server Compact gibt einem dann, ebenso wie sqlite, eine lokale Datenbank. Referenz: Entity Framework (SQL Server Compact) Und wenn du ganz verzweifelt bist nimm Access. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gateway_man Geschrieben 16. Dezember 2010 Autor Teilen Geschrieben 16. Dezember 2010 Vielen Dank für die verschiedenen Möglichkeiten. Ich denke eine auf filezugriff basierte Datenbank, welche ohne hintergrund Dienste auskommen, werd ich wie oben schon erwähnt unterjubeln können . ich würde dir statt sqlite, wenn es denn lokal sein muss, lieber zum SQL Server Compact raten, da man so technlogisch im Microsoft-Raum bleibt und nicht externen kram einbinden muss. Ich werde mich wohl eher für sqllite entscheiden, da ich zum einen mit dem compact Server bisher nicht so gute Erfahrungen gemacht habe und zum anderen da beim compact Server ab 4 GB Schluss ist. Desweiteren vermisse ich dort einige Befehle aus dem SQL Standart. Ich werde erstmal sqllite ausprobieren und schauen wie diese sich bei größeren Datenmengen verhält. Und wenn du ganz verzweifelt bist nimm Access. Das würde gänzlich aus dem Raster fallen. Meines wissens ist die maximale tabellengröße auf ca. 65000 Datensätze begrenzt. lg Gateway Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Der Kleine Geschrieben 16. Dezember 2010 Teilen Geschrieben 16. Dezember 2010 Das würde gänzlich aus dem Raster fallen. Meines wissens ist die maximale tabellengröße auf ca. 65000 Datensätze begrenzt. Nö, das war Excel 2003. Access ist auf als Dateigröße auf 2 GB beschränkt, wenn man nicht aufteilt. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
NerdonRails Geschrieben 16. Dezember 2010 Teilen Geschrieben 16. Dezember 2010 falls du linq in verbindung mit sqlite benutzen möchtest, gibt es hier: LINQ with SQLite (linqtosql) - Stack Overflow eine ganze Reihe an Providern (Closed & Open Source) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gateway_man Geschrieben 16. Dezember 2010 Autor Teilen Geschrieben 16. Dezember 2010 Nö, das war Excel 2003. Access ist auf als Dateigröße auf 2 GB beschränkt, wenn man nicht aufteilt. Ich meinte ja nicht die Gesamtgröße der Datei. Ich spielte jetzt auf die maximale Tabellengröße an. Da soweit ich weiß, die Access Tabellen Matrix auf der von Excel basiert. Danke für die Linq links, jedoch werde ich auf linq verzichten, da das Programm auch auf Rechner laufen soll, wo beispielsweise nur das Framework 2 oder 2.5 installiert ist. lg Gateway Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 16. Dezember 2010 Teilen Geschrieben 16. Dezember 2010 ein noch etwas exotischer Vorschlag wäre Hierarchical Data Format ? Wikipedia Du hast zwar kein SQL, aber die kannst n-dimensionale Cubes direkt abspeichern, was sich eben bei entsprechenden Auswertungen bemerkbar machen würde. Ebenso hast Du die Möglichkeit sparse (dünn besetzte) Datenstrukturen zu verwenden, d.h. wenn Du sehr viele Null Werte hast, werden diese nicht explizit gespeichert, was letztendlich Speicherplatz spart. Kommt natürlich aber auf Deine Daten an und wäre vielleicht mal einen Blick wert. Bibliothek läuft auf allen bekannten Plattformen und ein Zipper für die Daten ist direkt mit implementiert. Organisiert wird das ganze wie ein Verzeichnisbaum unter Unix Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gateway_man Geschrieben 16. Dezember 2010 Autor Teilen Geschrieben 16. Dezember 2010 ein noch etwas exotischer Vorschlag wäre Hierarchical Data Format ? Wikipedia Super danke, das Konzept sieht sehr interessant aus. Ich werd mich diesbezüglich mal näher informieren. Mir geht es hierbei auch darum Erfahrungen hinsichtlich Datenbank alternativen zu Sammeln. Von daher sind solche Vorschläge gerne gesehn . Da kommt es mir gerade recht das ich das ganze möglichst ohne Datenbank Server realisieren soll. lg Gateway Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
flashpixx Geschrieben 16. Dezember 2010 Teilen Geschrieben 16. Dezember 2010 Mir geht es hierbei auch darum Erfahrungen hinsichtlich Datenbank alternativen zu Sammeln. Ich nutze das Format primär für wissenschaftliche Daten. Mein Datenvolumen sind mehrere GBs. Wobei man auch so genannte Splitfiles bauen kann, d.h. man hat mehrere Dateien, die aber nur als ganzes den kompletten Datensatz enthalten (das wäre eben bei 2GB Limit wie man es z.B. bei FAT hat, eine Alternative). Weiterhin unterstützt HDF auch parallele Verarbeitung, in der MS Sprache wären das die HPC Sachen (ich glaube High Parallel Cluster), d.h. Du kannst wirklich riesige Datenmengen parallel lesen und schreiben. Nett sind die genannten Anotationen der Datensätze. Nachteilig, wenn man es jetzt gegenüber einer Datenbank sieht, ist eben die fehlende relationale Struktur und die Differenzierung nach Schlüsseln. Eine Art "View" Technik, wie man es aus SQL kennt, gibt es auch, wenn Du Cubes hast, musst Du nicht den gesamten Datenstamm einlesen, sondern kannst auch nur Teilblöcke lesen, die aber nicht zusammenhängend sein müssen. Natürlich gehen Abfragen wie "feld != value" oder "like" nicht, das musst Du dann selbst implementieren. Die Datensätze werden dann über Ranges bzw Slices adressiert Das ganze ist in C++ bzw C implementiert, wie man das unter .NET verwendet, müsstest Du dann mal schauen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gateway_man Geschrieben 17. Dezember 2010 Autor Teilen Geschrieben 17. Dezember 2010 Danke dir, werd mich mal drum bemühen der Technik String-Filterfunktionen zu verpassen. Allerdings denke ich, das eben solche Funktionen die ganze Performance zu nichte machen, da ich ja nichts desto trotz den Datenbestand durchloopen und vergleichen muss. Naja mal sehn eventuell komm ich auch ohne aus. Für alle die das Thema interessiert. Eine .NET Wrapper Klasse bekommt ihr von der hdfgroup. lg Gateway Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.