Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Image in Datenbank speichern - nur einmal (https://www.delphipraxis.net/207583-image-datenbank-speichern-nur-einmal.html)

NoGAD 11. Apr 2021 12:50


Image in Datenbank speichern - nur einmal
 
Huhu.

Wie handhabt man es im Allgemeinen, dass eine Datenbank nicht zu groß wird, wenn Bilder mit gespeichert werden?

Meine Idee ist, dass ein Bild, welches hinzugefügt wird, mittels SHA512 als String abgelegt wird.

Würde das ausreichen oder gibt es eventuell den unwahrscheinlichen Fall, dass es zwei gleiche SHA512-Hashes für unterschiedliche Bilder gibt?


LG Mathias

Uwe Raabe 11. Apr 2021 13:54

AW: Image in Datenbank speichern - nur einmal
 
Du meinst, den Hash zusätzlich zum Bild abzuspeichern um Doubletten zu erkennen, oder?

Delphi.Narium 11. Apr 2021 15:31

AW: Image in Datenbank speichern - nur einmal
 
Um Dubletten zu verhindern, speichere ich zusätzlich die MD5-Checksumme. Eindeutiger Index auf die Spalte. Beim Einfügen einer Dublette kracht es dann und ich kann darauf reagieren.

Das ist ein 128-Bit langer Wert. Das reicht vollkommen aus.

Theoretisch kann es bei jedem Hash Dubletten geben, da immer mit einer endlichen Menge von Bit ein Objekt aus einer unendlichen Menge von Objekten abgebildet werden soll. Mit einer endlichen Menge von Bit kann man aber eine unendliche Menge nicht vollständig abbilden.

Es ist also egal welchen Hash Du nimmst. Die Möglichkeit von Dubletten ist nicht auszuschließen. Die Wahrscheinlichkeit von Dubletten tendiert aber gegen 0. (Mir sind mit der MD5-Checksumme noch keine Dubletten untergekommen, egal ob Bilder oder sonstige Dateien.)

Siehe z. B. DNA oder Fingerabdrücke. Auch dort kann es theoretisch Dubletten geben. Die Wahrscheinlichkeit ist jedoch sehr gering (Ausnahme DNA bei eineiigen Mehrlingen, die unterscheiden sich aber dann immernoch in den Fingerabdrücken.)

himitsu 11. Apr 2021 19:21

AW: Image in Datenbank speichern - nur einmal
 
Wer den Notfall abfangen will, der kann nach einem gefundenen Hash immernoch die beiden Daten byteweise vergleichen und eine Fehlermeldung ausgeben, wenn identisch.

NoGAD 11. Apr 2021 21:35

AW: Image in Datenbank speichern - nur einmal
 
Vielen Dank! :-)

Zitat:

Zitat von Uwe Raabe (Beitrag 1486891)
Du meinst, den Hash zusätzlich zum Bild abzuspeichern um Doubletten zu erkennen, oder?

Ja, das meinte ich :-)

Liebe Grüße
Mathias


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:53 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