Allgemeine Frage zu Datenbanken
Jan K.
- datenbank
Hallo zusammen,
ich arbeite momentan einem Referat zur Speicherung von Daten ganz allgemein. Der Hauptteil bezieht sich auf die Speicherung in Flatfiles und die damit verbundenen Probleme (Prima SELFHTML Fachartikel dazu: Dateisperren).
Am Ende will ich dann die Vorzüge von Datenbanksystemen hervorheben.
Zur Einleitung will ich aber noch einen Schwall zu Datenbanken loswerden.
Vor Jahren, bevor ich mich mit HTML PHP &Co. befasst habe, habe ich mich gefragt ob man denn nun die Daten wie große Programme oder Videos denn nun sprichwörtlich IN der Datenbank speichert.
In meinem sporadischen Gefrickel ist mir das so nicht untergekommen. In der Datenbank wurde bei mir immer nur die Referenz zur Datei abgelegt, die eigentliche Datei wurde nur irgendwo abgelegt und nicht in eine Datenbank gestopft.
Ich habe jetzt aus dem stegreif keine Ahnung was für eine Datentyp einer MySql Datenbank in der Lage wär mehrere GB aufzunehmen, aber der Gedanke ist irgendwie schon dusselig.
Neulich im Tagesspiegel war ein Artikel über die verstorbene Person die bei StudiVZ die Profile gecrawlt hat und Profildaten und Fotos IN einer Datenbank gespeichert hat.
Da mir zu dem Zeitpunkt schon die Frage mit dem sprichhwörtlichen Speicherung von Großen Dateien (Profilfotos sind für meine Begriffe bezüglich Datentypen wie INT oder TEXT große Datenmengen) IN einer Datenbank durch den Kopf geschwirrt ist, dachte ich mir ein weiteres mal so macht man das nicht.
Man sagt doch nur zum vereinfachen "die Fotos wurden in einer Datenbank gespeichert"? Tatsächlich steht doch in der Datenbank nur die Referenz zur eigentlichen Datei?
Kann man einen Regelfall beschreiben wie sowas geht? Werden Dateien idR. nur referenziert? Gibt es bereiche in denen die Dateien tatsächlich in eine Datenbank gestopft werden?
Gruß,
Jan
Grüße,
SQL zB bietet datentyp für binäre dateien , aber an sich ist es egal - es geht nur darum wie die bytefolge ausgewertet wird.
was spricht denn gegen speicherung von bildergallerien in datenbanken?
für verwaltungszwecke ist es einfacher als dutzende ordner - zumindest wird es AFAIK bei blkdergallerien eingesetzt (hat uU mit dynamischer "bildanpassung" zu tun?)
MFG
bleicher
Es gibt doch den binary Typ, oder halt irgendwas entsprechendes in MySql. Da kannst du beliebig viel reinstopfen.
Es macht zwar auf den ersten Blick schon einen komischen Eindruck das zu tun. Auf den zweiten aber schon wieder nicht mehr. Irgendwo müssen die Daten ja sein, also vom Platz her gibts da schon mal keinen (beachtenswerten) Unterschied. Die Vorteile die ich sehe:
Bei MySQL weiß ich es nicht, aber der SqlServer kann glaub ich sogar größere Datenblöcke intern als einzelne Dateien speichern und blendet das dann nach außen hin als Tabelle ein.
Hi!
Es gibt doch den binary Typ, oder halt irgendwas entsprechendes in MySql.
BINARY und BLOB sind verschiedene Paar Schuhe.
Da kannst du beliebig viel reinstopfen.
Nein, bei 4GB ist Schluss. Und dann sind da noch weitere Beschränkungen der insgesammten Größe aller Daten pro Datei zu beachten, und das auch noch pro Storage-Engine und Betriebssystem (beziehungsweise Dateisystem) extra.
- Du kannst die Binärdaten in einem einzigen Statement mit den sonstigen Daten abfragen. Ohne extra Filezugriff.
Das relativiert sich wieder, wenn man seine Daten normalisiert abgelegt hat. Dann braucht man eben statt des zusätzlichen Dateizugriff eine Datenbankabfrage.
Lo!
yo,
- Du kannst die Binärdaten in einem einzigen Statement mit den sonstigen Daten abfragen. Ohne extra Filezugriff.
Das relativiert sich wieder, wenn man seine Daten normalisiert abgelegt hat. Dann braucht man eben statt des zusätzlichen Dateizugriff eine Datenbankabfrage.
was die normalisierung betrifft, so muss das bild nicht zwangsweise in einer anderen tabelle stehen, auch nicht bei einer durchgeführten normalisierung. und zweitens selbst wenn das der fall wäre, braucht man nicht unbedinkt eine zusätzlich abfrage, sondern kann eventuell eine bestehende erweitern.
Ilja
Hi!
- Du kannst die Binärdaten in einem einzigen Statement mit den sonstigen Daten abfragen. Ohne extra Filezugriff.
Das relativiert sich wieder, wenn man seine Daten normalisiert abgelegt hat. Dann braucht man eben statt des zusätzlichen Dateizugriff eine Datenbankabfrage.
was die normalisierung betrifft, so muss das bild nicht zwangsweise in einer anderen tabelle stehen, auch nicht bei einer durchgeführten normalisierung. und zweitens selbst wenn das der fall wäre, braucht man nicht unbedinkt eine zusätzlich abfrage, sondern kann eventuell eine bestehende erweitern.
Ja, ok, wenn man von nur einem Bild pro Person/Entity ausgeht. Weiterhin ist zu beachten, dass für eine Ausgabe im Web üblicherweise ebenfalls mindestens zwei Abfragen stattfinden, weil schließlich auch zwei Requests bedient werden müssen. Der eine nach der Seite, der andere nach dem einzubettenden <img>.
Lo!
Dankeschön, sehr viele nützliche Infos.