Vor- und Nachteile dateiorientierter sowie datenbankorientierter Datenablage?

2 Antworten

ich würde es nicht in Vor- und Nachteile, sondern in Anwendungsfälle und Anwender aufteilen.

  • Wenn es sich bei den Dateien nicht um Medien, sondern nehmen wir mal an, um HTML (oder vom Server zu parsende) Dateien handelt, dann ist es für den Programmierer manchmal einfacher, dateiorientiert zu arbeiten, da in einer Datenbank Scripte escaped oder modular ausgelagert werden müssten.
  • Benutzer ohne entsprechende Kenntnisse, die Inhalte (Blogartikel u.ä.) bearbeiten wollen, brauchen eine einfache Möglichkeit, nur die Texte (oder wahlweise auch festgelegte Bereiche der Website wie zum Beispiel das Logo) mit einem (WYSIWYG)-Editor bearbeiten zu können. Dies mit Dateien zu machen ist deutlich schwieriger zu realisieren als mit Datenbanken. Einen solchen Fall decken CMS-Systeme wie WordPress ab.
  • Dateien können offline und ohne Server bearbeitet (und wenn sie nicht geparsed werden müssen auch angesehen) werden, während man für Datenbanken das eine oder andere installieren muss.
  • Dateibestandteile und Metadaten lassen sich in einer Datenbank in einzelnen Spalten getrennt voneinander abspeichern, sodass man differenzierter auf Teile des Datensatzes einer Seite zugreifen und ihn zum Beispiel bearbeiten kann.

Es gibt da sicher noch mehr, aber erstmal diese vier ;)

Eine Ablage für Daten erfordert vorallem eine effektive Möglichkeit, die abgelegten Daten auf einfache Weise auch wiederzufinden. Ferner soll es dabei möglich sein, auf einfache Weise diese Daten zu pflegen, d.h. zu aktualisieren, ergänzen und Nichtbenötigtes zu entfernen. Wichtig ist auch, aus Anwendungen heraus die Daten zu erreichen und zu sichern.

Eine Datenbank bietet zum Teil sehr raffinierte Hilfsmittel an, um das zu realisieren. Dafür ist sie aufwändiger, kostet Geld und es bedarf einiges an Intelligenz, diese einzurichten. Im besonderen können mehrere Anwender gleichzeitig an den Daten arbeiten, ohne sich ins Gehege zu kommen und bei einem Systemcrash kann der Datenstand bis einschließlich der letzten abgeschlossenen Aktion wiederhergestellt werden.

Ein Dateisystem ist einfach und billig und bietet nur eine kleine Untermenge von dem an, was eine Datenbank kann. Wer seine Daten als Datei speichert, hat wenig Hilfsmittel, diese bei Bedarf auch wiederzufinden und schon gar nicht, aus einer Anwendung heraus. Für die Sicherheit muss man selber sorgen.



maximilianus7  23.03.2016, 14:34

falsch:
Im besonderen können mehrere Anwender gleichzeitig an den Daten arbeiten, ohne sich ins Gehege zu kommen
weil:
ohne programmierten sperrmechanismus können mehrere benutzer gleichzeitig denselben datensatz beackern. der letze gewinnt!

falsch:
Wer seine Daten als Datei speichert, hat wenig Hilfsmittel, diese bei Bedarf auch wiederzufinden und schon gar nicht, aus einer Anwendung heraus.
weil:
da hast was ganz anderes im sinn, als wie du das schreibst. oder hast du noch nie eine docx mit word abgespeichert und mit der anwendung windows-explorer (je nach OS) wiedergefunden und mit der anwendung word wieder angezeigt? wenn du die daten im web ablegst hast du statt dem explorer die entspr. server-scripte (z.b. PHP) die das abspeichern (upload), bzw. (download) realisieren.

1
wotan38  23.03.2016, 19:02
@maximilianus7

Ich kenne das so, dass beim Zugriff von mehreren Anwendern auf die selben Daten ohne programmtechnische Maßnahmen wie Sperrmechanismen es sich nicht vermeiden lässt, dass bei Änderungen des einen die Änderungen des anderen verlorengehen, wenn diese zeitlich unglücklich zusammentreffen. Es kommt nicht darauf an, dass zwei gleichzeitig etwas ändern können, sondern die Änderung des einen nicht durch den anderen durch Überschreiben wieder rückgängig gemacht wird.

0
thomsue  16.04.2016, 11:52
@maximilianus7

eine ordentliche Datenbank bzw. reden wir hier von einem DBMS, hat diese Funktion!

0
thomsue  16.04.2016, 11:53
@wotan38

Insbesondere sollte man mal auf den Unterschied zwischen Datenbank und DBMS eingehen: ein ordentliches DBMS-System hat diese Sperrmechanismen.

0
Minilexikon  23.03.2016, 15:36

Ich schließe mich mal maximilianus7 an:

Es gibt auch in vielen Fällen die Möglichkeit, eine FTP-Verbindung aufzubauen und dann durchs Dateisystem zu navigieren wie mit dem Windows Explorer (je nach OS).

ohne programmierten sperrmechanismus können mehrere benutzer gleichzeitig denselben datensatz beackern. der letze gewinnt!

Um das noch ein klein wenig deutlicher zu machen: Es ist zwar theoretisch möglich aber praktisch nicht wirklich. Alle Bearbeitungen der anderen Benutzer würden durch den zuletzt speichernden Benutzer überschrieben.

Neben einem Sperrmechanismus gibt es übrigens auch noch Versionierungssysteme.

Du siehst, ohne entsprechende (programmatische) Kenntnisse ist sowohl das eine als auch das andere Modell fehleranfällig.

Das eine Datenbank generell Geld kostet, ist schlichtweg Quatsch. Windows und Oracle bieten beispielsweise eine kostenpflichtige SQL-Software an, aber der Standard, MySQL, ist kostenlos.

Was eine SQL-Datenbank bei weitem (von der GUI — auf Festplattenspeichermechanismen gehe ich an dieser Stelle mal nicht ein) nicht so gut kann, wie ein Dateisystem ist Verschachtelung. SQL kennt nur Spalten, Zeilen und Zellen. Danach ist Schluss. Für weitere Verschachtelung muss der Datenbankentwickler dann Kreuztabellen anlegen und das kann sehr schnell sehr unübersichtlich werden.

Dem wirken zum Beispiel (dokumentorientierte) noSQL-Datenbanksysteme entgegen, die oft JSON-ähnliche Strukturen aufweisen, die mit Verschachtelung keine Probleme haben.

0
wotan38  23.03.2016, 18:46
@Minilexikon

Ich glaube nicht, dass man eine kostenlose Datenbank wie MYSQL mit einer professionellen käuflichen vergleichen kann. Kein Mensch würde für eine Datenbank Geld ausgeben, wenn man mit einer kostenlosen das gleiche machen könnte. Dass Hersteller von Datenbanksystemen kostenlose Testversionen mit gewissen Funktionseinschränkungen zur Verfügung stellen, rechtfertigt nicht die Annahme, dass Datenbanken kostenlos sind. Meine Datenbank hat jedenfalls was gekostet und ich würde keine kostenlose für einen professionellen Einsatz beim Kunden verwenden.

0
Minilexikon  04.04.2016, 16:06
@wotan38

mySQL ist keine bloße Testdatenbank. Es ist kostenlose open source-Software, die mit kostenpflichtiger Mithalten kann. Warum dann noch Leute die von Microsoft und Oracle kaufen, ist eben die Illusion, dass es, nur weil es was kostet, besser sein muss. Letztendlich bezahlt man eben nur Geld die Lizenz.

0
wotan38  05.04.2016, 13:01
@Minilexikon

Bei Daimler-Benz z.B. läuft die gesamte Fertigung automatisiert ab. Da wird jedes Teil, das montiert werden muss, exakt zum richtigen Zeitpunkt bereitgestellt. Glaubst Du im Ernst, dass man sowas mit einer kostenlosen Open-Source-Software hinbekommt? Bei den MySQL-Beispielen etwa hier (die ich mir oft anschaue, sonst aber mich nicht damit beschäftige), habe ich noch nie eine COMMIT-Anweisung gesehen. Bei einer richtigen Datenbank, bei der man transaktionsgesteuert arbeitet, muss jede Schreiboperation damit abgeschlossen werden. Ansonsten lassen sich zeitliche Abläufe gar nicht kontrolliert bewerkstelligen. Um sich in SQL einzuarbeiten, ist MySQL durchaus eine feine Sache, für Anfänger allemal. 

0