Michael: SQL und relationale Algebra

Hallo,

ist es wirklich nötig (mal davon abgesehen, daß es ggf. prüfungsrelevant ist), sich durch die Hieroglyphen der relationalen Algebra und Mengenlehre durch zu kämpfen, um SQL zu erlernen?

Kann mir jemand erklären, wo der genaue Sinn dahinter ist? Ich kenne mich in SQL ganz gut aus, ohne je lineare Algebra gelernt zu haben (außer mal ganz früher in der Schule).

Wenn es wirklich etwas bringt, würde ich "das Versäumte" ja gerne nachholen. Ich habe aber eher den Verdacht, etwas zu lernen, was mich in der DB-Programmierung nicht wirklich weiter bringt? (Fragezeichen!)

Michael

  1. Moin Michael,

    ist es wirklich nötig (mal davon abgesehen, daß es ggf. prüfungsrelevant ist), sich durch die Hieroglyphen der relationalen Algebra und Mengenlehre durch zu kämpfen, um SQL zu erlernen?

    Nein, aber.

    Kann mir jemand erklären, wo der genaue Sinn dahinter ist? Ich kenne mich in SQL ganz gut aus, ohne je lineare Algebra gelernt zu haben (außer mal ganz früher in der Schule).

    Relationale (sic! nicht lineare) ist die Theorie hinter dem Konstrukt relationale Datenbank. Es ist also sinnvoll, relationale Algebra zu beherrschen im gleichen Rahmen, wie theoretischer Hintergrund prinzipiell sinnvoll ist zu erlernen. Man kommt durchaus ohne durchs Leben, aber mit fällt es einem leichter und das Verständnis der Materie ist tiefer. Vor allem in den „edge cases” (was würde man im Deutschen dazu sagen?) wird es dir weiterhelfen, weil du dadurch nachvollziehen kannst, warum etwas so funktioniert wie es das eben tut und ob du etwas bzw. was du tun kannst, um das zu ändern.

    LG,
     CK

    1. Hi Christian,

      Relationale (sic! nicht lineare)

      Schon klar.

      ist die Theorie hinter dem Konstrukt relationale Datenbank. Es ist also sinnvoll, relationale Algebra zu beherrschen im gleichen Rahmen, wie theoretischer Hintergrund prinzipiell sinnvoll ist zu erlernen.

      Ich verstehe schon den Zusammenhang.
      Trotzdem: Es liest sich für mich so, als wäre es auch sinnvoll, die Theorie des Gehens zu lernen, auch wenn man bereits gehen oder gar laufen kann.

      Man kommt durchaus ohne durchs Leben, aber mit fällt es einem leichter und das Verständnis der Materie ist tiefer. Vor allem in den „edge cases” (was würde man im Deutschen dazu sagen?) wird es dir weiterhelfen, weil du dadurch nachvollziehen kannst, warum etwas so funktioniert wie es das eben tut und ob du etwas bzw. was du tun kannst, um das zu ändern.

      Kannst Du mir auch ein ganz konkretes Beispiel nennen, bei dem der Zugang zur Problemlösung (z.b. einer Query) dadurch leichter fällt, relationale Algebra als Grundlagenwissen erlernt zu haben? Ich finde relationale Algebra abstrakter als SQL oder den Aufbau relationaler DBs selber.

      Gruß, Michael

      1. Hi,

        mich würde ein Beispiel interessieren! Z.b. eine einfache Query und die relationale Algebra dahinter.

        grüße
        Lunge

      2. Moin Michael,

        Relationale (sic! nicht lineare)

        Schon klar.

        Naja, du schrubst es, deshalb die Anmerkung :)

        ist die Theorie hinter dem Konstrukt relationale Datenbank. Es ist also sinnvoll, relationale Algebra zu beherrschen im gleichen Rahmen, wie theoretischer Hintergrund prinzipiell sinnvoll ist zu erlernen.

        Ich verstehe schon den Zusammenhang.
        Trotzdem: Es liest sich für mich so, als wäre es auch sinnvoll, die Theorie des Gehens zu lernen, auch wenn man bereits gehen oder gar laufen kann.

        Als Hobby-Läufer reicht einem das Wissen, dass man laufen kann. Als Profi-Läufer will man alles darüber wissen, was es zu wissen gibt. Angefangen beim richtigen abrollen hin zu der richtigen Atemtechnik über Trainingszyklen, Überhangphasen, etc, pp.

        Man kommt durchaus ohne durchs Leben, aber mit fällt es einem leichter und das Verständnis der Materie ist tiefer. Vor allem in den „edge cases” (was würde man im Deutschen dazu sagen?) wird es dir weiterhelfen, weil du dadurch nachvollziehen kannst, warum etwas so funktioniert wie es das eben tut und ob du etwas bzw. was du tun kannst, um das zu ändern.

        Kannst Du mir auch ein ganz konkretes Beispiel nennen, bei dem der Zugang zur Problemlösung (z.b. einer Query) dadurch leichter fällt, relationale Algebra als Grundlagenwissen erlernt zu haben?

        Ich hatte schon mehrfach den Fall, dass mir das Wissen weitergeholfen hat. Aber es wäre, dank Google und StackOverflow, sicher auch anders gegangen. Deshalb meine Zurückhaltung: es ist durchaus möglich ohne das Wissen performantes SQL zu schreiben. Das heißt aber nicht, dass es überflüssig ist. Konkret fällt mir jetzt aber nicht mehr ein, was das für Probleme waren, das letzte mal ist leider schon ein paar Jahre her.

        LG,
         CK

        1. Hi Christian,

          Das heißt aber nicht, dass es überflüssig ist. Konkret fällt mir jetzt aber nicht mehr ein, was das für Probleme waren, das letzte mal ist leider schon ein paar Jahre her.

          Nein, das behaupte ich auch nicht. Aber wenn es doch wirklich so sinnvoll ist, dann müßte doch irgendwer ein paar gute, konkrete Beispiele nennen können, wo "der Umweg" über die relationale Algebra und Mengenlehre besser ist, als gleich das SQL-Statement zu erarbeiten.

          Grüße, Michael

          1. Als ich SQL und andere Datenbankabfragesprachen zu Datenbanken gelernt habe,
            hat mir die in der Schule gelernte Mengenlehre geholfen, bei komplexeren Abfrage nicht Teilmengen auszuschließen die für das Endergebnis gebraucht wurden.

            Kein Syntaxfehler, kein Ergebnis oder ein falsches Ergebnis, das richtige Ergebnis das rauskommen sollte war bekannt. Da kommt Freude auf. Die einfache Umstellung der Abfrage, so das keine benötigten Teilmengen ausgeschlossen wurden, war die Lösung.

    2. Hallo,

      Vor allem in den „edge cases” (was würde man im Deutschen dazu sagen?) ...

      "Grenzfällen".
      Sagt einer, der lieber Englisch als Deutsch spricht/schreibt. :-)

      Ciao,
       Martin

      --
      Life! Don't talk to me about life!
        (Marvin, the paranoid android in Douglas Adams' "The Hitchhiker's Guide To The Galaxy")
      Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
      1. Moin Martin,

        Vor allem in den „edge cases” (was würde man im Deutschen dazu sagen?) ...

        "Grenzfällen".

        Ah, richtig, danke! Ich lese so viel auf Englisch, dass mir manchmal die deutschen Wörter nicht mehr einfallen. Sehr nervig, das.

        LG,
         CK

    3. Hi,

      ich kannte mal einen, der hat behauptet, er hat Mathe studiert und für eine internationale Logistikfirma eine SQL-Abfrage programmiert, die 10 ausgedruckte DIN-A4-Seiten lang war... für die er wochenlang dran saß. Ist sowas realistisch? Ich hatte meine argen Zweifel, allerdings bin ich nur ein kleiner Web-Entwickler der noch nie eine Abfrage geschrieben hat, die länger als 40 Zeilen war. Mas o menos.

      1. Moin iopetos,

        ich kannte mal einen, der hat behauptet, er hat Mathe studiert und für eine internationale Logistikfirma eine SQL-Abfrage programmiert, die 10 ausgedruckte DIN-A4-Seiten lang war... für die er wochenlang dran saß. Ist sowas realistisch?

        Sicherlich nicht alltäglich, hört sich aber nicht unmöglich für mich an. Gerade für große Data-Warehousing-Datenbanken können Queries schon extren lang werden, erst recht wenn es um Statistiken geht. Die laufen dann aber auch nicht „live,“ sondern die werden vielleicht ein, zwei mal täglich ausgeführt. Oder sogar noch seltener, ich weiß z. B. von einer sehr großen schweizerischen Bank, dass sie eine SQL-Query, die irgendwelche Abrechnungen macht, einmal im Quartal laufen lassen. Und die Ergebnisse werden dann in eigenen Tabellen gespeichert.

        LG,
         CK

      2. Ich kann mich noch gut daran erinnert, einer frische Installation eines ERP-System von der Softwareschmiede mit den 3 Buchstaben, hatte ca. 18.000 bis 23.000 Tabellen in der Datenbank.
        Aber so ist das, wenn man ein objektorientiertes Modell in eine zweidimensionale SQL-Datenbank quetschen muss. Die Software im Anlieferungszustand ca. 26 DVD mit etwa 89 GB komprimierter Daten.