Wann sollte eine Datenbank zum Speichern der Daten gegenüber dem Speichern der Daten in einer Textdatei bevorzugt werden?
Wikipedia sagt uns, dass eine Datenbank eine organisierte Sammlung von Daten ist . Durch diese Maßnahme, die Textdatei ist eine Datenbank. Es heißt weiter:
Die Daten sind in der Regel so organisiert, dass sie relevante Aspekte der Realität auf eine Weise modellieren, die Prozesse unterstützt, die diese Informationen erfordern. Beispiel: Modellierung der Verfügbarkeit von Zimmern in Hotels auf eine Weise, die die Suche nach einem Hotel mit offenen Stellen unterstützt.
Dieser Teil ist subjektiv - er sagt uns nicht genau, wie die Daten modelliert werden sollen oder welche Vorgänge optimiert werden müssen. Ihre Textdatei besteht aus einer Reihe unterschiedlicher Aufzeichnungen, eine für jeden Tag, sodass Sie einen Aspekt der Realität auf eine Weise modellieren, die für Ihr Problem relevant ist.
Wenn Sie "Datenbank" sagen, denken Sie wahrscheinlich an eine Art relationales Datenbankverwaltungssystem, aber wenn Sie Ihre Textdatei als Datenbank betrachten, ändert sich Ihre Frage von "Wann sollte ich eine Datenbank verwenden?" zu "Welche Art von Datenbank soll ich verwenden?" Wenn Sie die Dinge in diesem Licht sehen, ist die Antwort einfacher zu sehen: Verwenden Sie eine bessere Datenbank, wenn diejenige, die Sie haben, nicht mehr Ihren Anforderungen entspricht.
Wenn Ihr Python-Skript und Ihre einfache Textdatei gut genug funktionieren, müssen Sie keine Änderungen vornehmen. Mit nur einem neuen Datensatz pro Tag und Computern, die jedes Jahr schneller werden, vermute ich, dass Ihre aktuelle Lösung für eine lange Zeit rentabel sein könnte. Die Datenmenge eines Jahrzehnts würde nur 3650 Datensätze ergeben, die nach der Analyse wahrscheinlich weniger als 75 Kilobyte benötigen würden.
Stellen Sie sich vor, dass Sie statt einer kleinen Aufzeichnung pro Tag jede Frage aufzeichnen, die in CodeReview gestellt wurde und von wem und wann. Darüber hinaus sammeln Sie auch alle Antworten und die relevanten Metadaten. Sie könnten das alles in einer Textdatei speichern, aber eine flache Datei würde es schwierig machen, Informationen zu finden, wenn Sie sie benötigen. Es gibt zu viele Daten, um das Ganze in den Speicher zu schreiben. Wenn Sie also eine Frage oder Antwort finden möchten, müssen Sie die Datei durchsuchen, bis Sie gefunden haben, wonach Sie gesucht haben. Wenn Sie alle von einem bestimmten Benutzer gestellten Fragen finden möchten, müssen Sie die gesamte Datei durchsuchen. Wenn Sie alle Fragen mit "Bugs" als Tag suchen möchten, müssen Sie die Datei durchsuchen.
Das wäre furchtbar langsam, also könnten Sie beschließen, die Dinge zu beschleunigen, indem Sie einige Indizes erstellen, die Ihnen mitteilen, wo Sie in der Datei nach einem bestimmten Datensatz suchen müssen. Sie könnten einen Index für Fragen, einen anderen für Benutzer, einen dritten für Antworten usw. haben. Wenn Sie eine Frage finden möchten, durchsuchen Sie den (viel kleineren) Fragenindex, ermitteln die Position der Frage in der Hauptdatendatei und springen schnell an die richtige Stelle in der Datei. Das wäre eine große Leistungssteigerung. In der Tat ist das so ziemlich das, was ein Datenbankverwaltungssystem ist.
So verwendet einen DBMS , wenn es ist , was Sie brauchen. Verwenden Sie es, wenn Sie über viele Daten verfügen, wenn Sie schnell und möglicherweise auf eine Weise auf diese Daten zugreifen müssen, die Sie zu Beginn nicht vollständig vorhersagen können. Wenn Sie über verschiedene Arten von Daten verfügen - verschiedene Arten von Datensätzen -, die miteinander verbunden sind, verwenden Sie ein RDBMS, damit Sie die verschiedenen Datensätze entsprechend verknüpfen können .