Christian Müller: Daten serialisieren?

Hallo!

Ich will für unseren Verein eine Seite machen, wo sich jeder vorstellen kann. Die Verwendung einer Datenbank scheidet aus. Daher bleiben nur Flatfiles übrig. Jetzt habe ich mir mal die Beispiele von Tom auf seinen Seiten angeschaut. Da werden die Daten immer serialisiert, ansatt im Klartext in die Datei geschrieben zu werden.
Kann mir jemand sagen, welche Vorteile dies hat?

grüße,

Christian

  1. Ich will für unseren Verein eine Seite machen, wo sich jeder vorstellen kann. Die Verwendung einer Datenbank scheidet aus. Daher bleiben nur Flatfiles übrig. Jetzt habe ich mir mal die Beispiele von Tom auf seinen Seiten angeschaut. Da werden die Daten immer serialisiert, ansatt im Klartext in die Datei geschrieben zu werden.
    Kann mir jemand sagen, welche Vorteile dies hat?

    Mit Serialisieren kannst du einfach ein ganzes Objekt abspeichern und wieder einlesen ohne dich näher um das Speichern und wieder Einlesen kümmern zu müssen. Wennst du jetzt ein neues Attribut dem Objekt hinzufügts, wird auch das automatisch mitabgespeichert ohne irgendwas anpassen zu müssen.
    Wie das abgespeichert wird, kann dir dann im Normalfall egal sein.

    mfg
    Horst

    1. Mit Serialisieren kannst du einfach ein ganzes Objekt abspeichern und wieder einlesen ohne dich näher um das Speichern und wieder Einlesen kümmern zu müssen.

      man sollte vielleicht ergänzen, daß das mit jedem Datentyp geht - nicht nur mit Objekten. Der Witz ist halt, daß man sich um die Darstellung z.B. eines mehrdimensionalen Arrays nicht zu kümmern braucht und die wiedereingelesenen Variablen gleich wieder den richtigen Datentyp haben.

      Gruß, Andreas

      --
      SELFFORUM - hier werden Sie geholfen,
      auch in Fragen zu richtiges Deutsch
  2. Hello,

    Ich will für unseren Verein eine Seite machen, wo sich jeder vorstellen kann. Die Verwendung einer Datenbank scheidet aus. Daher bleiben nur Flatfiles übrig. Jetzt habe ich mir mal die Beispiele von Tom auf seinen Seiten angeschaut. Da werden die Daten immer serialisiert, ansatt im Klartext in die Datei geschrieben zu werden.

    siehe bei den Anderen...

    Und dem "immer" möchte ich widersprechen. Im Beispiel für die Adressverwaltung habe ich eine andere, bezüglich des Speicherbedarfs im RAM sehr viel bessere Lösung gezeigt. Ich habe gezeigt, wie man mit PHP ein Random Access File aufbaut. Dieses kann dann üblicherweise bis zu 4GByte Daten (oder mindestens die Hälfte, wegen Vorzeichen) speichern. Viele Systeme können auch schon wesentlich mehr.

    Die Lösung mit den serialisierten Arrays scheitert in der Praxis meistens am gegrenzten Hauptspeicher bei Dateigrößen von typisch maximal 2MByte, also einem 1000stel der Random Access Lösung. Allerdings benötigen die serialisierten Arrays bei intelligentem Aufbau meistens nicht soviel Speicherplatz pro Datensatz, wenn die Felder nicht alle "voll" sind. Die serialisierten Arrays sind auch schneller in der Indexierung, wenn man sie als Spaltenarray und nicht als Zeilenarray aufbaut.

    Mehr dazu, wenn es Dich wirklich für eine Anwendung interessiert.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Hi Tom!

      Ich klinke mich hier mal rein, weil mich das Thema auch interessiert...

      Für kleinere Sachen, also z.B. Gästebuch, etc. würden sich demnach serialisierte Daten eigenen, da eine Dateigröße von mehr als 2MB kaum zu erwarten sind, oder?
      Ich versuche nämlich im Moment eine Art Gästebuch zu schreiben, welches ohne Datenbank auskommt. Mir stellt sich dabei eben die Frage, ob ich hierzu eine csv-Datei verwende, oder die Daten vor dem Schreiben serialisiere. Ich habe mich mit dem ganzen Locking-Zeugs auch nicht so tief auseinander gesetzt, wobei mir dies jedoch ziemlich wichtig erscheint.
      Sehe ich das also an deinen Beispielsskripte richtig, dass zum Lesen einer Datei LOCK_SH und und zum Schreiben LOCK_EX nötig ist, welche dann wieder durch LOCK_UN aufgehoben werden?

      Grüße,
      Fabian St.

      --
      Meine Website: http://fabis-site.net
      --> XHTML, CSS, PHP-Formmailer, Linux
      ---------------------
      fabi@erde ~# whatis spam
      spam: nothing appropriate
      ---------------------
      Selfcode: ie:% fl:|  br:^ va:) ls:& fo:) rl:( n4:° ss:| de:> js:| ch:| mo:) zu:)
      1. Hello,

        Sehe ich das also an deinen Beispielsskripte richtig, dass zum Lesen einer Datei LOCK_SH und und zum Schreiben LOCK_EX nötig ist, welche dann wieder durch LOCK_UN aufgehoben werden?

        Das muss man anders sagen:

        zum reinen Lesen reicht LOCK_SH
          Man kann es beim Lesen auch unbesorgt vergessen, wenn es nicht wichtig ist, ob richtige
          und/oder vollständige Daten angezeigt werden

        zum Lesen zum Zwecke der Veränderung und des anschließenden Schreibens muss man
          zwingend LOCK_EX nehmen.

        zum reinen Schreiben (Beim Hinzufügen) muss auch ein LOCK_EX gesetzt werden

        Entsperren braucht man nur, wenn man nach dem Vorgang die Datei noch offen halten
          will. Wenn man sie schließt, wird automatisch entsprerrt.

        Ich habe dazu einen Artikel geschrieben, der fast fertig ist, aber es fehlen noch ein paar gute grafische Darstellungen und etwa eine Seite Text (von ca. 15). Ich würde den gerne fertig machen, bin aber kein guter Grafiker. Da würde ich also mal Hilfe benötigen.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. Hi Tom!

          Das muss man anders sagen:
          [...]

          Danke für deine Erläuterungen.

          Ich habe dazu einen Artikel geschrieben, der fast fertig ist, aber es fehlen noch ein paar gute grafische Darstellungen und etwa eine Seite Text (von ca. 15). Ich würde den gerne fertig machen, bin aber kein guter Grafiker. Da würde ich also mal Hilfe benötigen.

          Hm, um welche Grafiken würde es sich denn handeln? Leider bin ich auch kein sehr guter Grafiker... Wäre es vielleicht trotzdem möglich, dass du mir deinen Artikel (z.B. per Mail) zukommen lässt? Würde mich wirklich brennend interessieren!

          Grüße,
          Fabian St.

          --
          Meine Website: http://fabis-site.net
          --> XHTML, CSS, PHP-Formmailer, Linux
          ---------------------
          fabi@erde ~# whatis spam
          spam: nothing appropriate
          ---------------------
          Selfcode: ie:% fl:|  br:^ va:) ls:& fo:) rl:( n4:° ss:| de:> js:| ch:| mo:) zu:)
          1. Hello,

            es geht um Zeit-Aktions-Diagramme und Datenzustandsdiagramme.
            Ich könnte die so mit Buntstiften aufs Blatt malen und dann einscanne. Hätte ja auch was, oder?

            Der bisherige Stand des Artikels ist
            http://selfhtml.bitworks.de/artikel_locking/artikel/artikel.htm

            Ich habe aber noch diverse Seiten Text, der noch ins HTML übertragen werden muss und noch eine Seite vollkommen wirren Text... (Locking bei MySQL). Und dann müssen noch alle Fehler raus, alle Entities kontolliert werden, die ganzen Links zu den Querverweisen gelegt werden, die Einverständniserklärungen von Tischer (oder Data Becker), Brown & Kyle (oder Addison Wesley), usw. eingeholt werden und und und. Ich habe keinen Bock auf Ärger. Die Links sind daher auch noch nicht drin.

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            1. Hi Tom!

              es geht um Zeit-Aktions-Diagramme und Datenzustandsdiagramme.
              Ich könnte die so mit Buntstiften aufs Blatt malen und dann einscanne. Hätte ja auch was, oder?

              Mal was anderes, ja *g*

              Der bisherige Stand des Artikels ist
              http://selfhtml.bitworks.de/artikel_locking/artikel/artikel.htm

              Uch, da weiß ich ja, was ich jetzt in den Ferien alles durchzuarbeiten habe...

              [..] Und dann müssen noch alle Fehler raus, alle Entities kontolliert werden, [..]

              Da hätte ich gleich ein paar beim Überfliegen des Dokumentes gefunden:

              1. "Tablle" - Dateien öffnen und schließen - dritter Absatz
              2. 'un in $streamübertragen' - Wichtige Dateifunktionen
              3.'gegeeinander' - Dateien gemeinsam benutzen - vorletzter Absatz
              4. 'flock() wird [von] antiquierten ..' Lockmodi
              5. '.Trat...' - Non Blocking Locks - Sperrfunktion

              Grüße,
              Fabian St.

              --
              Meine Website: http://fabis-site.net
              --> XHTML, CSS, PHP-Formmailer, Linux
              ---------------------
              fabi@erde ~# whatis spam
              spam: nothing appropriate
              ---------------------
              Selfcode: ie:% fl:|  br:^ va:) ls:& fo:) rl:( n4:° ss:| de:> js:| ch:| mo:) zu:)
              1. Hello,

                Da hätte ich gleich ein paar beim Überfliegen des Dokumentes gefunden:

                1. "Tablle" - Dateien öffnen und schließen - dritter Absatz
                2. 'un in $streamübertragen' - Wichtige Dateifunktionen
                  3.'gegeeinander' - Dateien gemeinsam benutzen - vorletzter Absatz
                3. 'flock() wird [von] antiquierten ..' Lockmodi
                4. '.Trat...' - Non Blocking Locks - Sperrfunktion

                Das lohnt so nicht auf Zuruf.
                Das muss dann richtig gegengelesen werden; erst fachlich und dann die Rechtschreibung und Grammatik und erst zum Schluss die HTML-Entities.

                Dazu müssen erst die fehlenden Kapitel, die schon geschrieben sind, in das Dokument eingebaut werden und dann auch noch die Zeichnungen eingehängt werden. Außerdem wollte ich mich noch besonders um die Druckbarkeit kümmern. CSS ist mein Freund ;-))

                Dann fehlen noch Anker, die man auch als Leser sehen kann (Title-Tag der Abschnitte...)

                Vielleicht komme ich über Ostern endlich mal dazu. Da wollte ch aber eingentlich eine größere Datenbank bauen, so mit ca. 80 bis 120 Tabellen.

                Harzliche Grüße aus http://www.annerschbarrich.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau