Laden...

DB oder normale Datei

Erstellt von Blue_Dragon vor 18 Jahren Letzter Beitrag vor 16 Jahren 2.479 Views
B
Blue_Dragon Themenstarter:in
198 Beiträge seit 2005
vor 18 Jahren
DB oder normale Datei

Hi Leute!

Also ich habe vor einen Vokabeltrainer zu programmieren...

Ich bin mir allerdings noch etwas unschlüssig über die Sicherung meiner Daten.

Bei einem Vokabeltrainer kann ich wohl von 10.000 Datensätzen standart ausgehen...
Ich möchte die Daten aber eigentlich nur absichern um sie bei jedem Start des Programms in Objektinsantzen zu bringen.

Was würdet ihr mir für diese Art von Datensicherung empfehlen? Eine DB wo der Speicherverbrauch denke ich nicht so hoch ist wie bei einer Datei oder doch eine Datei???

Von den Datenbanken her will ich keinen SQL Server oder sonstige installieraufwändige System benutzen, wenn dann würde ich das gerne über eine Access DB lösen.

So, was findet ihr ist im Verhältnis Aufgabenstellung zu Geschwindigkeit/Speicherplatzverbrauch überlegenswert und was würdet ihr an meiner Stelle verwenden?

lg
Dragon

248 Beiträge seit 2005
vor 18 Jahren

Hallo Dragon,

das ist mal wieder eine Geschmackssache, ich gebe mal meine persönliche Meinung zum Besten:

Lass die Finger von Datenhaltung in Dateien. Das Konzept ist uralt und auch bei nur 10.000 Datensätze kannst Du Inkonsitenzen und Redundanzen erhalten. ("Ein Begriff -> mehrere Bedeutungen") Ausserdem kannst Du Flatfiles nicht indizieren, weswegen Du bei einer Suche immer alle DS sequentiell durchsuchen musst.

Datenbanken müssen nicht groß sein. Als Desktop-DB ist Access vielleicht für Deine Ansprüche nicht die schlechteste Wahl. Ansonsten gibt es auch Open Source Angebote. Such' mal bei Google danach.

Hth,
😃 Torsten

B
Blue_Dragon Themenstarter:in
198 Beiträge seit 2005
vor 18 Jahren

Also erst mal danke für die Antwort!

Ich selbst bevorzuge auch Datenbanken bei meiner Arbeit, allerdings muss ich mich noch intensiver damit befassen da ich noch nicht sehr viel praktische Erfahrung bei der Erstellung von DB's mit den Normalformen habe, da tue ich mir noch etwas schwer.

Naja ich werde mal im Internet nach den Normalformen suchen.

Wenn ihr die Zeit habt könntet ihr mir noch erklären warum genau man Daten nicht mehr in Datein sichern sollte sondern in DB's.

215 Beiträge seit 2004
vor 18 Jahren

Dazu gibt es sehr unterschiedliche Auffassungen 🙂

Ich persönlich bevorzuge Dateien. Aber dafür habe ich mir
natürlich einen 'Wrapper' geschrieben 🙂

Dieses 'Sequentiell alles durchsuchen' stimmt also nur, wenn Du Zeilenweise
(z.B. als CSV) speicherst. Es gibt ja durchaus Alternativen!

Du kannst beim Speichern in ein File im Prinzip machen was Du willst!
Also auch Indizes.

Meine Ansicht:
Ich schreib lieber einen spezialisierten Datenwrapper als eine Datenbankengine
zu installieren (oder auch zu fordern). Der ist meist auch wesentlcih schneller 🙂

Das gilt natürlich nur in einem vernünftigen Rahmen 🙂
Also für alles, wo das Datenvolumen die 50MB überschreitet würde
ich auch ne DB verwenden 🙂

greetz
DaSchroeter

F
10.010 Beiträge seit 2004
vor 18 Jahren

Schon mal SQLite Benutzt?

Da wird keine DB-Engine Installiert, ist sau schnell....

3.728 Beiträge seit 2005
vor 18 Jahren
Einfach zugreifen

Der Datenzugriff mit relationalen Datenbanken (das sind alle Datenbanken die Daten in Tabellen organisieren und Beziehungen zwischen diesen Tabellen verwalten) ist besonders einfach. Mit SQL hast Du eine einfach zu erlernende Datenabfrage- und manipulationssprache.

Angenommen Du willst alle englischen Vokabeln von Lektion 5 anzeigen, dann könnte das in SQL etwa so aussehen


SELECT Vokabeln.*
FROM Vokabeln
INNER JOIN Lektionen ON Vokabeln.LektionsID=Lektionen.LektionsID
WHERE Lektionen.Sprache='en' AND Lektionen.Nummer=5 

Bei dateibasierter Datenhaltung müsstest Du einige aufwendige Schleifen programmieren, um das selbe zu erreichen. Allerdings wäre es viel langsamer als ein SQL-Zugriff auf eine relationale Datenbank.

Beherzige den Rat von the_lmich und verwende eine Datenbank wie Access, MySQL oder den MS SQL Server (Die Express Edition 2005 gibts kostenlos).

B
Blue_Dragon Themenstarter:in
198 Beiträge seit 2005
vor 18 Jahren

Ja mit SQL kenn ich mich ja eh aus und mit dem aufbau von realtionalen Datenbanken, aber leider nur in der Theorie...

Wenns ums praktische Umsetzen geht hab ich noch probleme weil ichs noch nicht oft genug gemacht hab...

Naja es wird schon werden 🙂

danke

215 Beiträge seit 2004
vor 18 Jahren

Schon mal SQLite Benutzt?

Ja klar, aber ich hab schlechte Erfahrungen damit gemacht.

Frag jetzt nicht welche, das hab ich grad nicht auf'm Schirm 🙂

16 Beiträge seit 2007
vor 16 Jahren

Hey,

ich bin noch nicht so fit im Umgang mit C# / Visual Studio. In der nächsten Zeit habe ich aber auch vor, einen Vokabeltrainer zu schreiben, um mehr Routine zu bekommen.

Ich stehe vor dem gleichen Problem, tendiere aber zu einer Datenbank. Aber ist es möglich eine Datenbank in mein Programm zu integrieren, ohne dass der Benutzer einen z.b. MySQL-Server o.ä. laufen lassen muss?

Gruß Hug'

"Wenn du durch die Hölle gehst, gehe weiter." (Winston Churchill)

J
3.331 Beiträge seit 2006
vor 16 Jahren

Hallo Hug,

diese Frage kommt alle paar Wochen wieder neu. Die aktuellste (mit entsprechenden Vorschlägen) findest Du unter Embedded Datenbank unter C#.

Gruß Jürgen

16 Beiträge seit 2007
vor 16 Jahren

Hey Jürgen,

hab anfangs auch im inet nach embedded db gesucht, aber ein artikel, glaub es war wikipedia, hat mich dann verunsichert. aber dann scheint das doch das richtige zu sein. big thx

gruß

"Wenn du durch die Hölle gehst, gehe weiter." (Winston Churchill)

H
182 Beiträge seit 2006
vor 16 Jahren

Vielleicht wäre ja DB4O als objektorientierte Datenbank für Dich praktisch

http://www.db4o.com

Gruß
HyperteX

"In der Informatik geht es genauso wenig um Computer wie in der Astonomie um Teleskope."
Edsger Dijkstra