![]() |
Datenbank: MSSQL, FB oder PostGres • Version: egal • Zugriff über: Das ist die Frage
Expertenrunde: BLOBS als externe Dateien oder in der DB?
Hi
Nehmen wir an, ich hab ne Tabelle in einer Datenbank mit einer BLOB-Spalte. Dort drin sind Dateien abgelegt (Bilder, Dokumente, egal), die Größe variiert zwischen 1k und 10MB je Datei. Es gibt nun zwei Möglichkeiten, das zu realisieren A) Man kann einfach so lassen, wie sie ist, also den DB-Server die BLOB-Verwaltung überlassen (Auf dem Standpunkt steh ich). B) Andere Coder meinen nun, es sei 'besser', die Dateien im Fileserver abzulegen und in der DB nur den Dateinamen zu speichern. Wie würdet ihr die beiden Alternativen hinsichtlich - Performance - Sicherheit - Wartbarkeit des DBMS bewerten? Wie würdet ihr so etwas implementieren? Eure Meinungen würden mich interessieren. Danke. |
Re: Expertenrunde: BLOBS als externe Dateien oder in der DB?
Ich bevorzuge auch die Verwendung von Blobs. Dafür benötigt aber das DBMS eine richtige BLOB-Unterstützung, damit meine ich das er Blobs nicht als Teil der Tabelle sondern in einem eigenen Tablespace ablegt, was bei Oracle und FB der fall ist. Bei den anderen DBMS weiß ich nicht, wie diese das händeln.
Performance: Bei BLOBS nur gut, wenn Speicherung getrennt von Tabelle Sicherheit: Alles liegt in der Datenbank, kein Zugriff von außerhalb möglich. Wartbarkeit: Es reicht die Datenbanken zu kopieren, kein Problem mit Pfaden. |
Re: Expertenrunde: BLOBS als externe Dateien oder in der DB?
Ich teile Deinen Standpunkt. Alleine im Hinblick auf Konsistenz und Sicherheit ist das Speichern der Namen der falsche Ansatz. Du bist dann sehr unflexibel, falls Dateien auf einen anderen Server umziehen und Fehlersuche (z.B. wenn "jemand" ein Verzeichnis umbenennt - man muss ja mit allem rechnen :mrgreen: ) ist deutlich schwieriger. Moderne Datenbanksysteme sind optimiert, mit großen Dateien zu jonglieren. Auf der Arbeit speichern wir Fotos der Mitarbeiter als BLOBs. Damit erreichen wir zwar nicht die 10 MB pro BLOB, aber man vergrößert die Datenbank schon deutlich. Trotzdem kann ich bei der Performance absolut nicht meckern.
|
Re: Expertenrunde: BLOBS als externe Dateien oder in der DB?
Zitat:
In manchen Bereichen ist die Speicherung als Blob (aus Gründen der Datensicherheit) gesetzlich vorgeschrieben. Vorteil ist sicherlich das Daten und Information zusammen gehören und so abgespeichert sind. Manipulationen an dem Datenbestand sind außerhalb der Datenbank nicht möglich. Was nach meiner Meinung dagegenspricht ist das Aufblähen der Datenbank. Bei Terrabyte wird die Datensicherung sicherlich auch ein Problem. Aber auch darunter ist die Datensicherung mit einem File-gestützten System einfacher. Ich könnte bei dem Datensatz z.B. angeben CD-Nr/ Dateinamen. Ist die zugehörige Information nicht auffindbar, dann erfolgt die Aufforderung zum Einlegen einer CD. Ein weiteres Argument für filegestütztes Speichern ist die Möglichkeit mit mehr als einem Datensatz auf das gleiche Object zu verweisen. (z.B. unterschiedliche Suchkriterien) Mit Gruß Peter |
Re: Expertenrunde: BLOBS als externe Dateien oder in der DB?
Also..einfach mal eine Aufstellung der Vor-/Nachteile der System so wie ich das sehe (natürlich hinsichtlich der genannten Punkte :) )
Speicherung ausßerhalb des DBMS: Vorteil: - Blob-Daten können unabhängig von der DB aktualisiert werden. Ich muß als nicht immer die DB belästigen, wenn ich z.B. an einem Textdokument etwas ändere. - Im Falle eines DB-Crashes hab ich immernoch meine Blob-Daten und kann ggf. weiterarbeiten und muß nicht warten bis die DB wieder zurückgesichert ist. - Schnellere DB-Bearbeitung, da die Blob-Daten z.B. Bei Suchanfragen nicht mit berücksichtigt und auch nicht mit übertragen werden müssen. Nachteile: - Es kommt zu Inkonsistenzen, da man z.B. ein Dokument löschen kann, ohne den entsprechenden Eintrag in der DB zu entfernen. - Die Daten sind nicht durch das DBMS abgesichert. D.h. Jeder der auf den Fileserver Zugriff hat kann an den Daten rumfummeln. - Erhöter Wartungsaufwand, da man die Daten konsistent halten muß ("manuell"). Auch müssen die Blob-Daten extra gesichert werden. Dementsprechend sind die o.g. Vorteile die Nachteile bei Speicherung in der DB und die Nachteile die Vorteile bei Speicherung in der DB. Letztendlich würde ich das von Fall zu Fall entscheiden. Viel hängt davon ab, welche Anforderungen für die Bearbeitung gestellt sind, welche Resourcen (Hardware/Software) vorhanden ist, sowie welche Daten den gespeichert werden sollen und wie sie Verknüpft sind. |
Re: Expertenrunde: BLOBS als externe Dateien oder in der DB?
Zitat:
|
Re: Expertenrunde: BLOBS als externe Dateien oder in der DB?
Vor dieser Entscheidung stand ich auch schon einige male und werde auch noch häufiger entscheiden müssen, welchen Weg ich gehe. In den meisten Fällen entscheide ich das zusammen mit unserem DBA und als Faustregel haben wir gesetzt, dass wir auf die Fileserver-Lösung gehen, wenn die Gesamtgröße pro Monat 100MB übersteigt.
Eine generelle Aussage, was besser ist, wird man kaum treffen können, hier mal Vor- und Nachteile der Fileserverlösung (DB-Lösung entsprechend umgekehrt) aus meiner Sicht. pro: - Speicherkapazität kann leichter erhöht werden (zumindest nach Aussage unseres DBA) - Bei Ausfall der Datenbank Zugriff auf die Dateien weiterhin möglich - Dateien können direkt mit dem Standardprogramm geöffnet oder z.B. als Mailanhang verwendet werden. kontra: - Berechtigungen für Fileserver müssen zusätzlich gesetzt werden - 2 Server, die ausfallen können - 2 Zugriffsmethoden in der Anwendung nötig, damit mehr Codingaufwand und schlechtere Performance. Was die Sicherheit angeht sehe ich da keinen Unterschied, wie aus den kontras ersichtlich hat eine Fileserver-Lösung meistens eine schlechtere Performance und ist aufwändiger zu warten. Ich persönlich bevorzuge die DB-Lösung, aber in einigen Fällen macht Fileserver wohl mehr Sinn. |
Re: Expertenrunde: BLOBS als externe Dateien oder in der DB?
Zitat:
Ich meine nicht ganz. Bei einem Fileserver kann ich Daten einfacher auf mehrere Medien aufteilen. z.B. Bilder jahrgangsweise auf eine DVD. Insbesondere wenn viele Daten gespeichert werden, die nur zu Archivzwecken interessant sind, ist hier die Auslagerung einfacher. Eine weitere Möglichkeit wäre für diese Daten eine eigene Datenbank zu verwenden und diese bei Erreichen einer bestimmten Größe zu archivieren. Die 4,5 Gbyte einer DVD sind immer noch eine Grenze und das Aufteilen eines Backup auf mehrere Medien ist auch nicht ganz trivial. Gruß Peter |
Re: Expertenrunde: BLOBS als externe Dateien oder in der DB?
Hallo,
Ich hatte mich das eine mal auch zusammen mit dem Admin der Firma für FileServer entschieden (FB als DB). Grund war die bessere Speicherung/Archivierung für den Admin. Mal was anderes zu mkinzler. TableSpace und FB ? Seit wann geht das denn ? Heiko |
Re: Expertenrunde: BLOBS als externe Dateien oder in der DB?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:19 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz