Seite 1 von 1

Fragen zu SQLite-Datenbank

Verfasst: Dienstag 7. April 2020, 10:53
von Bill987654321
noisefloor hat auf eine meiner Fragen geschrieben:

Ich habe hier nur die Frage, was in meinem Fall besser ist. Soll ich die Datensätze in eine .txt-Datei oder eine .csv Datei schreiben?

Das sind beides textbasierte-Dateien. Die Dateiendung ist dabei auch ziemlich Latte, weil es darum geht, wie der Text / die Daten in der Datei aufgeteilt sind. Bei CSV-Dateien sollte es halte einen Feldtrenner geben, der die Daten trennt und die Aufteilung erlaubt. Auch mit dem CSV-Modul kannst du eine .txt Datei lesen, wenn der Inhalt passt.
Genau so kannst du eine CSV-Datei "händisch" lesen und dann manuell am Feldtrenner trennen. Macht man aber i.d.R. nicht, weil das CSV-Modul da einfacher ist.

Und bei strikt strukturierten Daten macht eine Datenbank wie SQLite ggf. in der Tat Sinn. Vorteil: du kannst gezielt Daten lesen (und schreiben), ohne jedes Mal die volle Datenmenge einlesen zu müssen.


Habe mich entschieden, die SQLite-Datenbank zu verwenden, weil dieses Modul bereits in Python vorhanden ist.

Ich möchte wie folgt vorgehen: Für jeden Spieltag, möchte ich die Tabelle mit den Instanzen aktueller Tabellenplatz, vorheriger Tabellenplatz, Mannschaftsname, Anzahl der Spiele, gewonne, unentschiedene, und verlorene Spiele, positive Tore, negative Tore, Tordifferenz und Punktestand anlegen. Jede Tabelle soll auf ein eigenes Blatt (wie bei Excel). Dann möchte ich eine Tabellenplatzverlaufskurve für eine Mannschaft und eine für alle Mannschaften generieren und diese auf dem Monitor und Drucker ausgeben.
Ist das so sinnvoll? Gibt es etwas zu beachten?

Als nächstes werde ich mal das Kapitel "Objektorientierung" durcharbeiten.

Gruß

Bill

Re: Fragen zu SQLite-Datenbank

Verfasst: Dienstag 7. April 2020, 11:02
von Sirius3
Solche aggregierten Daten würde man am besten gar nicht speichern, sondern man hat nur eine Liste mit Spielen und berechnet sich die Tabelle nach Bedarf.

Re: Fragen zu SQLite-Datenbank

Verfasst: Dienstag 7. April 2020, 12:23
von __blackjack__
@Bill987654321: Als Hinweis: Das heisst zwar sowohl in einer Tabellenkalkulation als auch in einer relationalen Datenbank „Tabelle“, aber es wird unterschiedlich gehandhabt. In einer Tabellenkalkulation würde man vielleicht für jeden Spieltag eine Tabelle mit dem gleichen Aufbau in der Datei anlegen, aber in einer Datenbank wäre das nur eine Tabelle und der Spieltag wäre eine Spalte. Auf der anderen Seite würde man in dieser Tabelle beispielsweise keine Mannschaftsnamen speichern, sondern nur Fremdschlüssel als Verweise in eine Mannschaftstabelle.

Re: Fragen zu SQLite-Datenbank

Verfasst: Dienstag 7. April 2020, 12:39
von Bill987654321
@blackjack
Mir ist Übersichtlichkeit und leichte Verständlichkeit sehr wichtig. Deshalb tendiere ich jetzt wieder dazu, nicht die SQLite-Datenbank, sondern eine csv-Datei zu verwenden. Ist es möglich, dass ich in einer .csv-Datei auf je einem Blatt die 34 Tabellen der einzelnen Spieltage speichern und aus den Werten des jeweiligen Tabellenplatzes eine Tabellenplatzverlaufskurve für eine Mannschaft bzw. für alle Mannschaften generien kann?
Mir persönlich ist es zudem viel lieber mit einer csv-Datei zu arbeiten, weil ich mit csv-Dateien schon öfter gearbeitet habe. Ich habe mit Datenbanken nur beruflich zu tun. Hier lege ich nur neue Datensätze an und drucke nur Listen aus. Mit Datenbankprogrammierung habe ich aber nichts zu tun. Auch ist es mir nicht wichtig, alles wie ein Profi zu programmieren. Mir reicht es, wenn am Ende das entstanden ist, was ich möchte.
Vielleicht versuche ich, wenn alles funktioniert, die csv-Datei durch eine SQLite-Datei zu ersetzen.

Re: Fragen zu SQLite-Datenbank

Verfasst: Dienstag 7. April 2020, 13:11
von __blackjack__
@Bill987654321: In CSV-Dateien gibt es keine Blätter. Das ist eine, gleichförmige Tabelle. Ich denke Du gehst da bei Übersichtlichkeit und Verständlichkeit zu sehr von Daten aus die zum Lesen für einen Menschen aufbereitet sind. Die enthalten dann aber oft redundante Daten und damit Fehlerquellen und der Code um das zu verarbeiten wird umständlicher als wenn man einfach nur die tatsächlich benötigten Daten speichert.

Re: Fragen zu SQLite-Datenbank

Verfasst: Dienstag 7. April 2020, 17:44
von Bill987654321
@blackjack
Wäre dann wieder die SQLite-Datenbank eine bessere Lösung als ein txt- oder eine csv-Datei?

Re: Fragen zu SQLite-Datenbank

Verfasst: Dienstag 7. April 2020, 18:15
von noisefloor
Hallo,

für die Fussballtabellen, wie sie dir vorschweben: ja, SQLite bzw. ein relationales RDBMS ist höchstwahrscheinlich die bessere Lösung.

Ob es für _dich_ die im Moment die bessere Lösung ist sei mal dahin gestellt. Die lernst ja gerade noch Python und hast halt so die Probleme, die ein Einsteiger hat. Wenn du jetzt noch SQL lernen muss und wie man die Tabellenstruktur inkl. Relationen entwirft wird's halt temporär noch mal eine Stufe aufwendiger / lernintensiver.

Was aber nicht ungewöhnlich ist: Schreib' deine Applikation mit dem Ansatz / Wissen, dass du hast. Wenn lernst du weiter, wirfst die Applikation weg und schreibst sie mit dem besseren Wissen neu. Das ist nicht schlimm, das haben wir alle so gemacht. Ist als Einsteiger relativ normal.

Gruß, noisefloor