Kontruktion einer Minidatenbank
-
Tach...
Ich schätze das geht jedem so ... bei jedem Projekt muß man irgenwie Daten speichern. Abhängig von der Größe bzw. der Daten, die gespeichert werden müssen, ist es oftmal übertrieben, eine Datenbank zu benutzen. Ehr würden sich wohl dann Embedded - Versionen anbieten, aber vieleicht brauch man auch keine SQL - Queries usw. Deshalb denke ich darüber nach, mich an eine Art Mini - Datenbank zu machen, die nur die wichtigsten Features in annembarer Zeit anbietet.
Zur Planung würde mich allerdings noch einiges interessieren:
Zb. ob es dem Anwender ausreicht die Standartdatentypen wie Timestamps, Alphas usw. speichern zu können oder auch selbstdefinierte Typen?
Was aber noch wichtiger ist ... ich bin mir über die Konstruktion noch nicht ganz im Klaren. Vom Arbeitsaufwand scheint es doch besser zu sein, jeder Tabelle eine eigene Index - Datei zuzuordnen. So müssen bei Datenänderungen nicht massenhaft Daten verschoben werden. Das hat aber bei vielen Tabellen eben auch massenhaft Dateien zur Folge. Wie handhaben sowas proffessionelle Datenbank? Welche wichtigen Hinweise könnt ihr mir geben?
MfG & Thx
-
http://www.sqlite.org/ ist das was du suchst.
MySQL bietet auch bereits ein RDBMS welches man direkt ins Projekt einbinden kann.
-
@maynard: Suchst Du eine Embedded DB, oder willst Du eine schreiben?
Wenn Du eine suchst, ist auch Embedded Firebird (www.ibphoenix.com) einen Blick wert.
Ansonsten hast Du Dir da einen mächtigen Brocken Arbeit vorgenommen. Und wieso sollte man dann um Queries herumkommen? Wenn ich eine Datenbank verwende erwarte ich, dass ich per SQL auf sie zugreifen kann. Alleine nur den gebräuchlichsten Teil des SQL-Standards umzusetzen ist eine Menge Arbeit.
Was meinst Du mit benutzerdefinierten Datentypen? Wie willst Du für so etwas z.B. Such- und Sortierfunktionen machen, wenn Du nicht weißt, wie die Daten zu interpretieren sind?
-
Tach...
Der Begriff MiniDatenbank klingt wahrscheinlich etwas zu hochgesteckt. Grundsätzlich hatte ich mir das ähnlich einem Container vorgestellt, der in einer Datei gespeichert ist und dessen Entries über diese "Datenbank" gelesen / geschrieben werden. Funktionen wie Sortieren oder Suchen lassen sich bei benutzerdefinierten Typen eigentlich durch virtuelle Funktionen oder Funktionsobjekte umsetzen. MiniDatenbank deshalb, weil ich vorhatte, auch Beziehung zwischen den Daten / Tabellen zuzulassen.
Grundsätzlich ging es mir eigentlich nur darum, bei kleineren Projekten Daten speichern zu können und nicht jedesmal was spezielles für jedes Vorhaben zu schreiben. Und ich hatte mir eben gedacht, dass es anderen sicher auch so geht, oder basieren eure Programma fast ausschlieslich auf Datenbanken ?
MfG
-
Also ich Persönlich gebe nutze bei Standalone Projekten wo ich Daten speichern muss die oben genannte SQLite Datenbankengine. Hier gibt man nur eine DLL Datei mit und kann dann ganz bequem die Daten die in einer Datenbankdatei gespeichert werden mit SQL Befehlen abfragen, etc.
Somit muss nichts mehr gross auf dem Zielrechner installiert werden...
-
maynard schrieb:
...oder basieren eure Programma fast ausschlieslich auf Datenbanken ?
Ja, sobald in Relation zu einander stehende Daten ins Spiel kommen... Warum das Rad neu erfinden? Insbesondere wo eine DB doch sehr nützliche Möglichkeiten zum Sortieren, Filtern, Berechnen, usw. bietet. Und da das meist auch schon seit Jahren erprobter und optimierter Code ist, ist dieser meist auch sehr stabil und schnell.