AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Expertenrunde: BLOBS als externe Dateien oder in der DB?
Thema durchsuchen
Ansicht
Themen-Optionen

Expertenrunde: BLOBS als externe Dateien oder in der DB?

Ein Thema von alzaimar · begonnen am 28. Nov 2007 · letzter Beitrag vom 30. Nov 2007
Antwort Antwort
Seite 1 von 3  1 23      
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#1

Expertenrunde: BLOBS als externe Dateien oder in der DB?

  Alt 28. Nov 2007, 08:17
Datenbank: MSSQL, FB oder PostGres • Version: egal • Zugriff über: Das ist die Frage
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.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Expertenrunde: BLOBS als externe Dateien oder in der DB?

  Alt 28. Nov 2007, 08:39
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.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Expertenrunde: BLOBS als externe Dateien oder in der DB?

  Alt 28. Nov 2007, 08:41
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 ) 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.
Thomas
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#4

Re: Expertenrunde: BLOBS als externe Dateien oder in der DB?

  Alt 28. Nov 2007, 08:42
Zitat von alzaimar:

Wie würdet ihr die beiden Alternativen hinsichtlich
Unendliches Thema.
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
  Mit Zitat antworten Zitat
Ghostwalker

Registriert seit: 16. Jun 2003
Ort: Schönwald
1.299 Beiträge
 
Delphi 10.3 Rio
 
#5

Re: Expertenrunde: BLOBS als externe Dateien oder in der DB?

  Alt 28. Nov 2007, 08:51
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.
Uwe
e=mc² or energy = milk * coffee²
  Mit Zitat antworten Zitat
Benutzerbild von Codewalker
Codewalker

Registriert seit: 18. Nov 2005
Ort: Ratingen
945 Beiträge
 
Delphi XE2 Professional
 
#6

Re: Expertenrunde: BLOBS als externe Dateien oder in der DB?

  Alt 28. Nov 2007, 08:56
Zitat von hanspeter:
Bei Terrabyte wird die Datensicherung sicherlich auch ein Problem.
Das ist ja eigentlich egal: Ob ich jetzt die DB in Terabyte-Größe sichere oder eine kleine DB und muss dann den FileServer sichern - die zu sichernde Menge bleibt ja fast gleich (DB hat evtl. noch Overhead - aber bei der BLOBgröße eigentlich zu vernachlässigen)
Thomas
  Mit Zitat antworten Zitat
noidic

Registriert seit: 21. Nov 2005
Ort: Mönchengladbach
25 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Expertenrunde: BLOBS als externe Dateien oder in der DB?

  Alt 28. Nov 2007, 09:00
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.
The light at the end of the tunnel may be an oncoming dragon.
  Mit Zitat antworten Zitat
hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#8

Re: Expertenrunde: BLOBS als externe Dateien oder in der DB?

  Alt 28. Nov 2007, 09:26
Zitat von Codewalker:
Das ist ja eigentlich egal: Ob ich jetzt die DB in Terabyte-Größe sichere oder eine kleine DB und muss dann den FileServer sichern - die zu sichernde Menge bleibt ja fast gleich (DB hat evtl. noch Overhead - aber bei der BLOBgröße eigentlich zu vernachlässigen)

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
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Expertenrunde: BLOBS als externe Dateien oder in der DB?

  Alt 28. Nov 2007, 09:35
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
Heiko
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Expertenrunde: BLOBS als externe Dateien oder in der DB?

  Alt 28. Nov 2007, 09:40
Zitat:
TableSpace und FB ?
War vielleicht die falsche Begrifflichkeit. Aber BLOBS werden in FB, wenn sie eine bestimmte Größe erreichen in einem eigenen Bereich der DB gespeichert und in der Tabelle nur noch einen Verweis auf den Blob
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz