Warum Datenbank?

Installation und Anwendung von Datenbankschnittstellen wie SQLite, PostgreSQL, MariaDB/MySQL, der DB-API 2.0 und sonstigen Datenbanksystemen.
Antworten
Benutzeravatar
Domroon
User
Beiträge: 104
Registriert: Dienstag 3. November 2020, 10:27
Wohnort: Dortmund

Liebes Forum,

eine vielleicht doofe Frage: Wieso sollte ich eine Datenbank nutzen? Es gibt doch mit Sicherheit Bibliotheken für Python um direkt bei dieser Sprache zu bleiben. Okay, ich kann z.B. bestehende MySQL Datenbanken nicht benutzen. Aber wenn ich sowieso bei Python bin und ein eigenes Programm schreiben will, welches mir z. B. Kundendateien oder etc. anlegt und diese z. B. verschlüsselt und dann in eine Textdatei schreibt. Warum mit einer Schnittstelle auf eine Datenbank zugreifen?

Vielleicht etwas naiv überlegt, ich will einfach nur den Sinn dahinter verstehen: Geht es hier um Effizienz? Um Erweiterbarkeit? Verbindung zu bereits etabliertem?

Vielen Dank euch ;)
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Wie gut bist du denn darin, Kundendaten verlässlich (auch zb um eine Absturz des Systems herum) weg zu schreiben? RDMS machen das mit Journals. Oder deine internen Datenstrukturen wieder in den Urzustand zu bringen, nachdem ein Teil des Prozesses nicht durchführbar war? RDBMS können Transaktionen. Wie erstellt die Kollegin aus dem Controlling einen Report auf deinen Daten? RDBMS haben standardisiertes SQL. Wie sicherst du die Daten gegen konkurrierende Zugriffe von verschiedenen Bearbeitern? RDMBS kenne ACID und Locking.

Und so weiter und so fort.
Benutzeravatar
Domroon
User
Beiträge: 104
Registriert: Dienstag 3. November 2020, 10:27
Wohnort: Dortmund

Okay verstehe, eine Datenbank übernimmt viele Aufgaben die ich selber programmieren und organisieren müsste. Deshalb lagert man solche Aufgaben in einen selbstständig und unabhängig arbeitenden Teil aus.
Danke Dir ;)
Benutzeravatar
sparrow
User
Beiträge: 4195
Registriert: Freitag 17. April 2009, 10:28

@Domroon: Grunsätzlich ist deine Idee aber nicht verkehrt. Also nicht die Idee es selber zu machen, sondern die, in der Sprache zu bleiben. Dafür gibt es sogenannte "Object Relational Mapper", die die entsprechenden Relationen in der Sprache abbilden. Schau dir mal SQLAlchemy an. Das nimmt man in der Regel.
Benutzeravatar
Domroon
User
Beiträge: 104
Registriert: Dienstag 3. November 2020, 10:27
Wohnort: Dortmund

@sparrow: Super, danke für Deinen Tipp. SQLAlchemy werde ich in meinem nächsten Projekt einsetzen ;)
DasIch
User
Beiträge: 2718
Registriert: Montag 19. Mai 2008, 04:21
Wohnort: Berlin

Datenbanken sind sehr komplex. Deine eigene für eine Anwendung zu entwickeln ist vom Sinn auf Aufwand her in etwa vergleichbar damit ein eigenes Betriebssystem zu entwickeln. Die Schlussfolgerung dass du dies selbst programmieren müsstest, trifft daher nicht so ganz den Punkt, den dies trifft ja bei allen Abhängigkeiten zu. Datenbanken sind aber speziell weil es einfach nicht realistisch machbar ist die selbst entwickeln. Es gibt natürlich Ausnahmen wie Amazon die DynamoDB entwickelt haben, Google mit Spanner, Apple mit FoundationDB (wobei dies ist eingekauft) usw. aber dass sind natürlich auch Unternehmen die entsprechende Resourcen haben.
Benutzeravatar
Domroon
User
Beiträge: 104
Registriert: Dienstag 3. November 2020, 10:27
Wohnort: Dortmund

@DasIch: Vielen Dank für diese Anmerkung ;) Das macht es auf jeden fall etwas greifbarer für mich ;)
naheliegend
User
Beiträge: 439
Registriert: Mittwoch 8. August 2018, 16:42

War das nicht damals genau das Problem, also das flatfiles verwendet wurden und jeder seine eigene Suppe gekocht hat und weswegen man DBs und eine einheitliche Abfragesprache entworfen hat?
Ich meine stell dir doch mal vor, dein Kollege Herr Data Analyst möchte sich auch die Daten anschauen? Oder ein anderer Kollege macht es genauso wie du, nur ein bisschen anders und man braucht einen anderen Algorithmus diese Daten aus den flatfiles zu lesen, aber dein Kollege hat vorher das Unternehmen verlassen und nur er weiß, welchen Algorithmus man anwenden muss.
__backjack__: "Jemand der VB oder PHP kann, der also was Programmieren angeht irgendwo im negativen Bereich liegt (...)"
bb1898
User
Beiträge: 200
Registriert: Mittwoch 12. Juli 2006, 14:28

Es reicht ja schon, wenn mir selber nach drei Jahren Datensammelei eine Fragestellung einfällt, die sich aus dem Vorhandenen im Prinzip beantworten ließe, die mir aber nicht im Voraus eingefallen ist. Mit SQL wird so was in vielen Fällen unaufwendig möglich sein.
Antworten