Froschs Blog

Computer und was das Leben sonst noch so zu bieten hat

Zur Website | Impressum

Foto-Datenbank mit Hindernissen

3. Juli 2009 um 17:07 Uhr von Atari-Frosch

Ich möchte meine Bilder mit einer Datenbank verwalten. Bei geschätzten 15.000 Fotos, Dias und Bilddateien (seit 1982) wird das auch langsam Zeit, wie ich finde. Außerdem möchte ich mir damit fertige Serien bauen, die dann einfach auf die Website gekippt werden können. Der Haken dabei ist, daß ich mich das letzte Mal am Atari ST mit einer relationalen Datenbank befaßt habe -- vor über 15 Jahren.

Das Prinzip ist mir klar, aber die Bedienung von mySQL mit phpmyadmin ist denn doch ein bißchen anders als die von Phoenix ST. Und das liegt nicht daran, daß Phoenix weder Netzwerke noch Multi-User-Systeme noch das Client-Server-Prinzip kennt. Da es immer nur auf einer autarken Maschine laufen kann, ist das alles nicht nötig, und das ganze Ding ist aus einem Guß. Ansonsten war es zumindest für seine Zeit hochmodern: Es konnte Datenbanken in Terabyte-Größe verwalten in einer Zeit, als eine Festplatte maximal 60 MB hatte, es kannte Verknüpfungen zwischen Tabellen, es kannte einige Feldtypen mehr als in Heimcomputer-Datenbanken üblich, zum Beispiel Zeitstempel und sogar den BLOB. Abgefragt wurde in QBE, query by example, also gewünschte Abfragedaten in eine Maske kippen, und dann kam eine Liste raus. Die Reports waren rudimentär, aber brauchbar, man mußte sie halt nachbearbeiten. Sogar eine Schnittstelle zu Turbo-C gab es.

Mit den Kenntnissen von damals sitze ich also jetzt vor einem phpmyadmin und versuche, mich mit meinen Vorkenntnissen da reinzudenken. Meine ersten beiden Tabellen der Datenbank stehen, eventuell werde ich daran noch kleine Änderungen vornehmen, wenn ich bei den ersten Test-Daten feststelle, daß da was nicht so geht, wie ich das dachte, aber mit großen Änderungen an der Struktur rechne ich nicht mehr.

Das erste Problem, auf das ich stieß, bezog sich auf die Indexierung eines Feldes für eine Untertabelle. Das Feld hat den Typ tinytext und sollte eigentlich Primärschlüssel werden. Aber egal, was ich versuchte: Ich bekam grundsätzlich ein „ #1170 - BLOB/TEXT column 'Tabelle' used in key specification without a key length” vorgesetzt. Da gibt es zwar ein Feld für Längen, aber was ich da eintrug, wurde konsequent ignoriert. Ich hab dann einen Index für Volltext-Suche draus gemacht. Den hätte ich dann gern wenigstens noch „unique” gehabt, aber das hat er mir mit der gleichen Fehlermeldung wieder verweigert. Na gut, dann eben erstmal so.

Beim zweiten Problem versuche ich, eine Fähigkeit von Phoenix ST in phpmyadmin nachzumachen. In den Feldtyp BLOB kann man ja beliebige Daten einkippen. Mein Ziel ist es, für jedes Bild (sofern es bereits digital vorliegt), eine Mini-Version von wenigen kB Größe mit in die Datenbank zu setzen. Bei einer Suche oder in einer Liste, so dachte ich mir, sehe ich einfacher, was das für ein Bild ist. Phoenix ST kann das, und zwar ohne irgendwelche Kopfstände. Es könnte auch im BLOB abgelegte Audiodateien abspielen, nach Wunsch automatisch bei Aufruf des einzelnen Datensatzes oder auf Mausklick auf das entsprechende Feld.

Eigentlich sollte man ja denken, daß eine heutige Datenbank-Software doch locker in der Lage sein sollte, mir alle Funktionen zu bieten, die mir eine fast 20 Jahre alte Datenbank-Software bietet (Phoenix ST ist von etwa 1990). Aber weder die mySQL-Doku noch Google verraten mir, wie ich dieses Bildchen dann in phpmyadmin wieder angezeigt bekomme. Vielleicht bin ich aber auch nur zu doof zum Lesen, wer weiß. Im Notfall muß ich die Bildchen separat auf die Platte legen und sie dann in einem anderen Browserfenster öffnen. Wäre aber schon traurig, wenn Phoenix ST an dieser Stelle phpmyadmin überlegen wäre.

3 Kommentare zu “Foto-Datenbank mit Hindernissen”

  1. Jürgen Geiß quakte:

    Hi,

    ich habe zusammen mit meinem Bruder Dieter damals Phoenix für Atari ST und Windows entwickelt. Interessant, wie das damals eingesetzt wurde.

    Übrigens sollte man mit Microsoft Access das gleiche machen können, wie mit Phoenix. Dort kann man beliebige OLE Objekte in Datensätzen ablegen, also auch Bilder. Einfach mal testen.

    Gruß
    Jürgen Geiß


  2. frosch quakte:

    Oh, welche Ehre 🙂

    An Microsoft-Produkten bin ich allerdings absolut nicht interessiert. Ich verwende Freie Software, wo immer das möglich ist. Und ich denke, was ich vorhabe, müßte auch mit mySQL möglich sein, immerhin sind die Feldtypen ja vorhanden. Nur ist phpmyadmin vielleicht nicht das richtige Frontend für mein Projekt. Da müßte ich wohl was selbst bauen. Was mich dazu bringt, daß ich schon lange PHP lernen wollte …


  3. Michael Stehmann quakte:

    Hallo Sabine,

    ein paar Worte, die Dir vielleicht helfen.

    1. MySQL basiert, wie Du richtig bemerkt hast, auf den Client-Server-Modell. D.h. es gibt einen Server, der sich um die Speicherung und die Verwaltung der Daten kümmert.

    Und es gibt Clients, mit denen man den Server administrieren, Daten einfügen und Daten abrufen kann. PHPMyAdmin ist ein solcher Client, aber nicht der einzige. Man kann beispielsweise auch OpenOffice.org als Client für MySQL einsetzten (in Düsseldorf gibt es dafür eine Expertin,die Du auch kennst ;-)). Es gibt sogar ein Konsolentool, das meist mitinstalliert wird.

    2. Daneben gibt es APIs für verschiedene Programmiersprachen, z.B. PHP, aber auch Perl etc.. PHPMyAdmin benutzt die PHP-API.

    3. PHPMyAdmin soll vor allem (wie der Name schon sagt 😉 zur Administration von MySQL-Servern dienen. Es ist nur recht bedingt geeignet für die Darstellung oder das Abspielen von Daten. (Es ohnehin keinen besonderen Ruf unter DB-Admins, wenn es dann auch noch Musik machte, würden die erst recht schreiend davonlaufen ;-)).

    4. Da brauchst also einen Client, der Bilder anzeigen und Musik abspielen kann oder zumindest die aus der Datenbank abgerufenen Daten an ein entsprechendes Programm übergibt.

    Hierzu kannst Du Dir (beispielweise in PHP) auch ein eigenes Programm schreiben (und den Browser evt. mit Plugins als Anzeigeprogramm benutzen).

    Wir können darüber ja mal reden.

    5. MySQl hat also den Vorteil, dass die Datenbank und das Frontend zur Datenanzeige getrennt sind. Du kannst mit verschiedenen Clients (auch selbst programmierten) auf dieselbe Datenbank zugreifen. Dies ist aber zugleich der Nachteil: es ist kein Programm aus einem Guss, keine eigenständige Applikation, sondern ein (wichtiger) Stein in einem Baukasten, den Du mit anderen Bausteinen kombinieren kannst aber auch musst.

    Ich hoffe Du findest solche, die für Dich dann eine passende Gesamtheit ergeben!

    Gruß

    Michael


Kommentieren

Bitte beachte die Kommentarregeln!

XHTML: Du kannst diese Tags verwenden: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>