Gunter Kissel: Perl und Datenbanken

Ja hallo erstmal,

mit Perl eine Access- oder irgendeine andere Datenbank zu lesen und zu bearbeiten ist sehr schwierig und im Netz finde ich nur sehr spärliche Informationen in Deutsch.

Kann mir jemand ein Buch in Deutsch zu diesem Thema empfehlen mit dem ein absolut beginner zurecht und voran kommt?

Für eine Antwort vielen Dank im voraus

  1. Ja ein Buch kenne ich leider nicht, aber ich denke der Schlüssel dürfte in SQL liegen, Du musst wohl in Perl eine SQL Anfrage generieren (das ist eine einfach eine Textzeile) und mit der müsste es dann irgendwie möglich sein aus Access die Daten zu bekommen.
    Vielleicht hilft Dir das ja ein bisschen weiter, vielleicht auch nicht ;-)

    Gruss

    Marko

    1. Ja ein Buch kenne ich leider nicht, aber ich denke der Schlüssel dürfte in SQL liegen, Du musst wohl in Perl eine SQL Anfrage generieren (das ist eine einfach eine Textzeile) und mit der müsste es dann irgendwie möglich sein aus Access die Daten zu bekommen.
      Vielleicht hilft Dir das ja ein bisschen weiter, vielleicht auch nicht ;-)

      Also ich mache zur Zeit alles mit Dateien. Funktioniert eigendlich ganz gut. Ich suche nur noch eine Möglichkeit, zu verhindern, daß 2 Programme gleichzeitig in eine Datei schreiben. Ich könnte ja die Datei blockieren, aber dann wird das andere Programm auch blockiert. So ne Art Warteschlange wäre nicht schlecht. Wenn 2 Programme gleichzeitig eine Datei öffnen wollen, kommt zuerst das 1. dran, und dann, wenn es fertig ist, kann das 2. zugreifen.

      Wäre das mit einer Datenbank einfacher? Was brauche ich alles für eine Datenbank? Muß dazu was auf einem Webserver geändert werden, was ich mit normalen Zugriffsrechten nicht machen könnte?

      1. hi!

        Wäre das mit einer Datenbank einfacher? Was brauche ich alles für eine Datenbank? Muß
        dazu was auf einem Webserver geändert werden, was ich mit normalen Zugriffsrechten nicht
        machen könnte?

        Natürlich wäre es mit einer Datenbank einfacher, da diese sämtliche Probleme bei der Speicherung oder dem Auslesen von Daten verhindert. Man teilt der Datenbank mit, was sie tun soll, und sie tut es.

        Du benötigst dafür zumindest:
        * eine Datenbank und je nach Datenbank zwischen null und mehreren Tausend Mark
        * Administrator-Rechte auf dem Server, auf dem die Datenbank installiert werden soll
        * genügend Kenntnisse auf dem Gebiet der Datenbank-Programmierung in der von dir gewählten Programmiersprache

        bye, Frank!

        1. hi!

          Wäre das mit einer Datenbank einfacher? Was brauche ich alles für eine Datenbank? Muß
          dazu was auf einem Webserver geändert werden, was ich mit normalen Zugriffsrechten nicht
          machen könnte?

          Natürlich wäre es mit einer Datenbank einfacher, da diese sämtliche Probleme bei der Speicherung oder dem Auslesen von Daten verhindert. Man teilt der Datenbank mit, was sie tun soll, und sie tut es.

          Gibt es auch gute Programme, die einem die Datenbank gut darstellen können, damit man nicht die Übersicht verliert? Bei Dateien kann ich sie mir ja einfach anschauen.

          Du benötigst dafür zumindest:
          * eine Datenbank und je nach Datenbank zwischen null und mehreren Tausend Mark

          Da ich das ganze dann unter Linux entwickeln würde, sollte es eine kostenlose Datenbank sein. Was gibt es da für Auswahl? SQL vielleicht?

          * Administrator-Rechte auf dem Server, auf dem die Datenbank installiert werden soll

          Oje, aber es gibt doch sicherlich Angebote, wo man das für mich schon gemacht hat.

          * genügend Kenntnisse auf dem Gebiet der Datenbank-Programmierung in der von dir gewählten Programmiersprache

          Da käme eigendlich nur Perl in Frage. Gibt es da gute Anleitungen im Netz?

          bye, Frank!

          1. hi!

            Gibt es auch gute Programme, die einem die Datenbank gut darstellen können, damit man
            nicht die Übersicht verliert? Bei Dateien kann ich sie mir ja einfach anschauen.

            Du kannst dir ein Skript programmieren, um die Datenbank anzuzeigen. Die Datenbank befindet sich ja auf dem Server, nicht auf deinem PC.

            Du benötigst dafür zumindest:
            * eine Datenbank und je nach Datenbank zwischen null und mehreren Tausend Mark
            Da ich das ganze dann unter Linux entwickeln würde, sollte es eine kostenlose Datenbank
            sein. Was gibt es da für Auswahl? SQL vielleicht?

            SQL ist keine Datenbank, sondern eine Programmiersprache, um eine Datenbank anzusprechen und dieser Befehle zu senden. Mögliche Datenbanken sind mSQL und Mysql, die sind sehr billig oder kostenlos unter bestimmten Bedingungen. Ansonsten musst du mal suchen.

            * Administrator-Rechte auf dem Server, auf dem die Datenbank installiert werden soll
            Oje, aber es gibt doch sicherlich Angebote, wo man das für mich schon gemacht hat.

            Sollte es schon irgendwo geben.

            * genügend Kenntnisse auf dem Gebiet der Datenbank-Programmierung in der von dir
            gewählten Programmiersprache
            Da käme eigendlich nur Perl in Frage. Gibt es da gute Anleitungen im Netz?

            Ich hab hier ein Buch ("Programmieren mit Perl-Modulen"), in dem ein eigenes Kapitel über Datenbankprogrammierung enthalten ist. Auf CD sind außerdem alle Perl-Module enthalten, also auch das DBI- und die DBD-Module.
            Im Internet gibt es bestimmt auch Anleitungen. Wenn du mit der Manpage von DBI anfängst, wirst du evtl. einiges finden: perldoc DBI

            bye, Frank!

            1. hi!

              Gibt es auch gute Programme, die einem die Datenbank gut darstellen können, damit man
              nicht die Übersicht verliert? Bei Dateien kann ich sie mir ja einfach anschauen.

              Du kannst dir ein Skript programmieren, um die Datenbank anzuzeigen. Die Datenbank befindet sich ja auf dem Server, nicht auf deinem PC.

              Aber ich kann sie mir doch per FTP runterladen?

              Du benötigst dafür zumindest:
              * eine Datenbank und je nach Datenbank zwischen null und mehreren Tausend Mark
              Da ich das ganze dann unter Linux entwickeln würde, sollte es eine kostenlose Datenbank
              sein. Was gibt es da für Auswahl? SQL vielleicht?

              SQL ist keine Datenbank, sondern eine Programmiersprache, um eine Datenbank anzusprechen und dieser Befehle zu senden. Mögliche Datenbanken sind mSQL und Mysql, die sind sehr billig oder kostenlos unter bestimmten Bedingungen. Ansonsten musst du mal suchen.

              Wann sind diese Datenbanken auf meinem Rechner zur Entwicklung umsonst? Was ist da der Unterschied?

              * Administrator-Rechte auf dem Server, auf dem die Datenbank installiert werden soll
              Oje, aber es gibt doch sicherlich Angebote, wo man das für mich schon gemacht hat.

              Sollte es schon irgendwo geben.

              * genügend Kenntnisse auf dem Gebiet der Datenbank-Programmierung in der von dir
              gewählten Programmiersprache
              Da käme eigendlich nur Perl in Frage. Gibt es da gute Anleitungen im Netz?

              Ich hab hier ein Buch ("Programmieren mit Perl-Modulen"), in dem ein eigenes Kapitel über Datenbankprogrammierung enthalten ist. Auf CD sind außerdem alle Perl-Module enthalten, also auch das DBI- und die DBD-Module.
              Im Internet gibt es bestimmt auch Anleitungen. Wenn du mit der Manpage von DBI anfängst, wirst du evtl. einiges finden: perldoc DBI

              Kenne ich. Die Manpages gibt es im Internet in deutsch zum runterladen. Was ist der Unterschied zwischen DBD, DBI, und diesen SQL-Datenbanken? Welche würdest du empfehlen?

              1. hi!

                Du kannst dir ein Skript programmieren, um die Datenbank anzuzeigen. Die Datenbank
                befindet sich ja auf dem Server, nicht auf deinem PC.
                Aber ich kann sie mir doch per FTP runterladen?

                Ich glaube nicht, dass du Zugriff auf das Verzeichnis mit der Datenbank erhälst.

                [Mysql, mSQL]

                Wann sind diese Datenbanken auf meinem Rechner zur Entwicklung umsonst? Was ist da
                der Unterschied?

                Der Unterschied ist, dass es zwei verschiedene Datenbank-Systeme von verschiedenen Herstellern sind. Wann sie umsonst sind, weiß ich auch nicht. Warum siehst du nicht auf den entsprechenden Websiten nach und liest dir die dortigen Informationen durch?
                http://www.mysql.org & http://www.Hughes.com.au/

                Was ist der Unterschied zwischen DBD, DBI, und diesen SQL-Datenbanken?

                Es ist alles was anderes. DBD sind mehrere Module. Du brauchst das DBD-Modul, das zu der von dir verwendeten Datenbank passt. Das DBI-Modul verwendest du direkt in deinem Perl-Skript. Dieses Modul greift direkt auf das passende DBD-Modul zu. Dadurch kannst du auf alle Datenbanken, die von DBI per DBD-Modul unterstützt werden, gleichermaßen zugreifen, egal wie die entsprechenden Funktionen im DBD-Modul heißen.
                SQL-Datenbanken sind Datenbanken, die per SQL angesprochen werden.

                Welche würdest du empfehlen?

                Ich habe dir doch weiter oben schon zwei Datenbanken empfohlen. Wieviele brauchst du denn noch?

                bye, Frank!

                1. Welche würdest du empfehlen?

                  Ich habe dir doch weiter oben schon zwei Datenbanken empfohlen. Wieviele brauchst du denn noch?

                  Eigendlich brauche ich nur eine. Ich hab mir mal die Links angeschaut. Aber vielleicht kann mir jemand sagen, welche Datenbank:

                  a.) Oft verwendet wird, also nicht, daß ich dann ein halbes Jahr lang einen Anbieter suchen muß, der die mir auch zur Verfügung stellt.

                  b.) Auch größere Datenbanken gut verkraftet

                  c.) Möglichst einfach gehalten ist, und gut mit Perl zu benutzen ist.

                  Was sie nicht brauch ist:

                  a.) Das ablegen von zig verschiedenen Formaten (Bildern, Worddokumenten...)

                  b.) Riesige Suchabfragen.

                  Wenn du dir das so anschaust, welche würdest du mir da empfehlen?

                  1. hi!

                    a.) Oft verwendet wird, also nicht, daß ich dann ein halbes Jahr lang einen Anbieter suchen
                    muß, der die mir auch zur Verfügung stellt.
                    c.) Möglichst einfach gehalten ist, und gut mit Perl zu benutzen ist.

                    Vielleicht ist es nicht ganz rübergekommen: um ein Perl-Skript auf eine andere Datenbank als die vorher verwendete zu portieren, muss man nur einen einzigen Parameter ändern!

                    b.) Auch größere Datenbanken gut verkraftet

                    Welche Größe stellst du dir vor?

                    bye, Frank!

                    1. hi!

                      a.) Oft verwendet wird, also nicht, daß ich dann ein halbes Jahr lang einen Anbieter suchen
                      muß, der die mir auch zur Verfügung stellt.
                      c.) Möglichst einfach gehalten ist, und gut mit Perl zu benutzen ist.

                      Vielleicht ist es nicht ganz rübergekommen: um ein Perl-Skript auf eine andere Datenbank als die vorher verwendete zu portieren, muss man nur einen einzigen Parameter ändern!

                      Ja, aber es gibt doch z. B. Datenbanksysteme die mit Perl sehr einfach zu Bearbeiten sind, und welche, die für Perl nicht sonderlich geeignet sind.

                      b.) Auch größere Datenbanken gut verkraftet

                      Welche Größe stellst du dir vor?

                      bye, Frank!

                      so 1000 Benutzer soll die Datenbank speichern, wovon jeder so 200 Daten bekommt. Die einzelnen Daten sind dann aber nicht so groß. Nur so eine Zahl bis 100.

                      Dann noch eine, die so 20000 Benutzer hat, vovon jeder so 15 Einträge hat.

                      1. hi!

                        Vielleicht ist es nicht ganz rübergekommen: um ein Perl-Skript auf eine andere
                        Datenbank als die vorher verwendete zu portieren, muss man nur einen einzigen
                        Parameter ändern!
                        Ja, aber es gibt doch z. B. Datenbanksysteme die mit Perl sehr einfach zu Bearbeiten sind,
                        und welche, die für Perl nicht sonderlich geeignet sind.

                        Nein. Wenn sie von DBI unterstützt wird, ist jede Datenbank genau gleich zu bedienen, abgesehen von unterschiedlichen "SQL-Dialekten".

                        b.) Auch größere Datenbanken gut verkraftet
                        Welche Größe stellst du dir vor?
                        so 1000 Benutzer soll die Datenbank speichern, wovon jeder so 200 Daten bekommt. Die
                        einzelnen Daten sind dann aber nicht so groß. Nur so eine Zahl bis 100.
                        Dann noch eine, die so 20000 Benutzer hat, vovon jeder so 15 Einträge hat.

                        Ist ja lächerlich. Große Datenbanken fangen so ab ein paar Hundertausend oder Millionen Einträgen an. Die beiden von mir genannten Datenbanken reichen locker.

                        bye, Frank!

  2. Ja hallo erstmal,

    mit Perl eine Access- oder irgendeine andere Datenbank zu lesen und zu bearbeiten ist sehr schwierig und im Netz finde ich nur sehr spärliche Informationen in Deutsch.

    Kann mir jemand ein Buch in Deutsch zu diesem Thema empfehlen mit dem ein absolut beginner zurecht und voran kommt?

    Also ich hab zwar noch nichts mit Datenbanken gemacht, aber wenn es nur um das ablegen von Daten geht, läßt sich sowas in Perl auch wunderbar mit Dateien machen.

  3. Hallo Gunter,

    mit Perl eine Access- oder irgendeine andere Datenbank zu lesen und zu bearbeiten ist sehr schwierig und im Netz finde ich nur sehr spärliche Informationen in Deutsch.

    Zuerst mal sollte man in sich gehen und ueberlegen, wie gross der Datenbestand ist. Wegen ein paar hundert Datensaetzen brauchst Du keine Datenbank. Die Forumsauchiv-Suche hier durchsucht z.B. eine derzeit 5MB grosse Textdatei. Fuer einen modernen flotten Server-Rechner oberhalb der 400MHZ-Klasse mit viel RAM, schneller Festplatte und einem BS, das oft aufgerufene Dateien cacht, ist so eine Groesse bei normalem User-Betrieb kein Thema mehr. Und in 5MB bekommst Du schon viele tausend Datensaetze rein.
    Der Vorteil: so was kannst Du mit Perl im Handumdrehen programmieren.
    Bei wirklich grossen Datenbestaenden muss eine Datenbankanbindung her, keine Frage. Aber in vielen Faellen scheinen mir komplizierte Loesungen mit Datenbankanbindung doch eher ein mit-Kanonen-auf-Spatzen-Schiessen zu sein. Halt der gleiche Unsinn, wie wegen 100 Adressen ueberhaupt MS-Access anzuschmeissen - frueher gab es wenigstens noch Cardfile fuer alle mit dazu, um solchen Unsinn zu verhindern <g>.

    viele Gruesse
      Stefan Muenz

    1. Hallo Gunter,

      Zuerst mal sollte man in sich gehen und ueberlegen, wie gross der Datenbestand ist. Wegen ein paar hundert Datensaetzen brauchst Du keine Datenbank.

      Hallo Stefan,

      ich lege meine Daten tatsaechlich in Textdateien ab und habe ebenfalls die Erfahrung gemacht, dass das normalerweise voellig ausreicht.

      Nur was mache ich, wenn es heisst:
      Wir haben bereits eine Datenbank angelegt und wollen die mit Perl benutzen oder die Datenbank soll am PC von zu Hause gepflegt werden?
      Ich finde Textdateien für eine manuelle Bearbeitung ziemlich unübersichtlich.

      Ich moechte gegenwaertig ungefaehr 10.000 Datensaetze gut verstauen und moechte auf eine 'richtige' Datenbank zurueck greifen koennen.
      Und jetzt das furchtbare: Ich habe keine Ahnung wie das geht.

      Offenbar brauche ich dafuer, nach dem was ich bisher gelernt habe, z.B. SQL oder ODBC, und dafuer suche ich eben ein fuer Anfaenger geeignetes Buch in deutscher Sprache.

      Viele Gruesse aus dem schoenen Duesseldorf

      GUNTER

      1. Hallo Gunter,

        Nur was mache ich, wenn es heisst:
        Wir haben bereits eine Datenbank angelegt und wollen die mit Perl benutzen oder die Datenbank soll am PC von zu Hause gepflegt werden?
        Ich finde Textdateien für eine manuelle Bearbeitung ziemlich unübersichtlich.

        Das stimmt natuerlich. Aber zum Hinzufuegen, Bearbeiten, Loeschen von Datensaetzen usw. kann man sich ja (wozu hat man HTML gelernt <g>) ein Web-Interface mit Formularen schreiben. Oder man haelt sich im Format der Textdatei an ein Schema, das sich in Datenbanken importieren und wieder exportieren laesst, z.B. CSV (komma-delimited).

        viele Gruesse
          Stefan Muenz