Transkript: PostgreSQL und MariaDB

· Zurück zur Episode

Vollständiges Transkript der Episode. Zeitstempel beziehen sich auf die Audiowiedergabe.

Ja, hallo liebe Hörerinnen und Hörer.

Dominik

Herzlich willkommen beim Python-Podcast, Episode 43.

Dominik

Heute reden wir ein bisschen über Mimaria und Max und vielleicht ein bisschen über PostgreSQL.

Dominik

Und haben natürlich wieder den Jochen da.

Hallo Jochen.

Hallo Dominik.

Ich bin der Dominik.

Dominik

Und die Susanne ist heute dabei.

Susanne

Ah, hallo Dominik.

Susanne

Hallo Jochen.

Jochen

Hallo Susanne.

Dominik

Ja, haben wir News?

Jochen

Wir starten immer mit ein bisschen News und ja, es war nicht so wahnsinnig viel.

Jochen

Ich weiß nicht, ich kann ja einfach mal so erzählen, was ich irgendwie für bemerkenswert halte, was in der letzten Zeit so passiert ist.

Dominik

Ja, auch im Hintergrund, Tippy.

Jochen

Ja, ich mache hier auch schon mal die Kapitelmarken, dann spare ich mir ein bisschen Zeit.

Jochen

Das hilft wahrscheinlich auch nicht.

Jochen

Genau.

Jochen

Ja, also was ist alles so irgendwie passiert?

Jochen

Zum Beispiel, es gibt jetzt irgendwie PyTorch für Apple, für M1 optimiert.

Jochen

Also es ist halt noch nicht so schnell, also es ist auch noch nicht wirklich vergleichbar mit Nvidia.

Jochen

Aber tatsächlich geht da so ein bisschen was in die Richtung.

Jochen

Also vorher konnte man schon ein bisschen was machen mit PlateML, aber jetzt gibt es halt auch tatsächlich direkt Unterstützung von PyTorch aus.

Jochen

Und ja, das sah eigentlich schon mal ganz interessant aus und da geht bestimmt noch mehr in Zukunft.

Jochen

Es ist auf jeden Fall jetzt gut zu sehen, dass es mal so ein bisschen in die Gänge kommt.

Jochen

Das war jetzt ganz lange Zeit.

Jochen

Also es ist jetzt auch, ich glaube 2020 oder so, sind die rausgekommen.

Jochen

Das ist jetzt schon zweieinhalb Jahre her.

Ja.

Jochen

Genau.

Dominik

Das ist aber jetzt eher so eine Minor News.

Jochen

Ja, außer man hat fast ausschließlich Apple-Hardware, so wie ich dann.

Das ist natürlich super wichtig, ja.

Jochen

Ja, ansonsten, ich meine, wenn ihr mal dieses ganze Machine Learning-Thema und so interessant findet, letztens kann ich den Robot Brains Podcast empfehlen von Peter Wiel.

Jochen

Und da war, äh, letzte Woche war da irgendwie Jeffrey Hinton zu Gast oder es hat, es gibt jetzt zwei Episoden.

Jochen

Das war sehr interessant.

Jochen

Also irgendwie quasi derjenige, der so die ganzen, oder einer von denen, die diesen Deep Learning Hype irgendwie so mit losgetreten haben.

Jochen

Oder was heißt Hype ist ein bisschen, eigentlich ist er ja schon durchaus was hinter.

Jochen

Und ja, der erzählte so ganz interessante Dinge.

Jochen

Also ja, kann man sich ja mal vielleicht irgendwie anhören.

Jochen

Ja, es gab, das ist jetzt schon ein bisschen länger her, ich habe ja jetzt eigenartigerweise erst davon erfahren, oder vielleicht haben wir das ja auch schon erzählt, das weiß ich nichts genau.

Jochen

Es gab ein Paper in Nature.

Jochen

NumPy ist jetzt tatsächlich als quasi Artikel irgendwie in einem renommierten Magazin erschienen.

Jochen

Damals, äh, Travis Olyphont hat da ja da seine Doktorarbeit für abgebrochen und ihm haben alle gesagt, so bist du verrückt, irgendwie sowas Komisches zu machen.

Jochen

NumPai, das interessiert doch niemanden.

Jochen

Und ja, jetzt hat das doch nochmal auch akademische Weinen irgendwie gezeitigt.

Jochen

Das ist gar nicht so schlecht spät, aber ja.

Jochen

Tja, genau.

Jochen

Sonst habe ich auch eigentlich nichts wirklich was.

Dominik

Wir wollten nochmal vielleicht Büropyten haben wir ja schon ein paar Mal eingeladen.

Dominik

Bist du jetzt eigentlich da?

Dominik

Weiß noch nicht, weißt du.

Dominik

Also ich schon.

Jochen

Ich habe keine Unterkunft gefunden, jedenfalls nicht, sodass wir da alle hinfahren könnten.

Jochen

Daher, wenn, dann bin ich alleine da.

Jochen

Deswegen.

Jochen

Kurzfristig, okay.

Jochen

Ja, und kurzfristig könnte sein, dass das klappt, aber muss es halt nochmal gucken, weil Urlaubsplanungen anderweitige.

Dominik

Also meine Unterkunft ist nicht weit von der Blue Dog-Bahn entfernt.

Das ist schon mal

Jochen

ganz falsch.

Jochen

Ich habe übrigens nachgeguckt, dass da gibt es keine Zimmer mehr.

Jochen

Oh, ausgebucht.

Ja.

Okay, wow.

Dominik

Hat er erst im Mai eröffnet.

Tja.

Okay.

Also, ja.

Tja, so ist das.

Dominik

Na gut, dann sind wir heute mit den News dann relativ schnell durch, würde ich sagen, oder?

Dominik

Ja.

Dominik

Haben wir schnell gemacht.

Dominik

Guck mal, so schnell waren wir nur nie, drei Minuten.

Jochen

Obwohl, wir könnten auch noch irgendwie, es gibt jetzt auch eine Postgres 15-Beta, glaube ich.

Jochen

Da könnten wir eigentlich schon eine Überleitung eigentlich ein Thema gleich vorhaben.

Dominik

Was ist denn in der Postgres 15 Beta drin?

Weißt du das?

Susanne

Weiß ich nicht.

Dominik

Das sind er auch nicht?

Oh, okay.

Susanne

Nee, das weiß ich jetzt auch nicht auswendig.

Susanne

Da müsste ich auch nachgucken, was jetzt wirklich drin ist in der Beta und was nicht.

Susanne

Ich könnte da jetzt zählen, wie das immer so funktioniert bei Postgres mit den Beta und den Releases.

Dann machen wir doch das, dann gehen wir da direkt über.

Dann machen wir doch genauer.

Jochen

Hauptthema zum

Dominik

Hier steht ja bei großartig steht Developer Experience and Performance.

Susanne

Ja, also es gibt immer, bei Postgres musst du einen Patch einreichen, wenn du ihn geschrieben hast.

Susanne

Einschließlich Dokumentation, ganz wichtig.

Susanne

Und dann gibt es halt ein paar Reviewer, die da drüber gucken, das machen dann andere Entwickler.

Susanne

Und dann kriegst du den Patch entweder, ich sag immer, du kriegst ihn zurück, also da kriegst du dann eine E-Mail, was mit dem Patch ist, ob der so in Kick gehst oder nicht okay ist.

Susanne

Wenn du deine Klammer ans Ende gesetzt hast, das sind die neue Zeile, kriegst du den Patch, kriegst du den Patch zurück, weil da wird massivst drauf geachtet, auf solche Sachen.

Susanne

Und wenn dann noch irgendwie eine Ausnahme ist, dass auf dem Maß ein Vulkan ausbricht, dann wird der Patch halt auch nicht angenommen.

Susanne

Also wenn da irgendwas passieren könnte, was du nicht bedacht hast.

Susanne

Und da Postgres ja überhaupt keine Kunden dahinter hat, die jetzt irgendwo Druck machen könnten, weil es ist ja eine kostenfreie Software, können wir natürlich auch recht früh sagen, also wenn wir sagen, okay, wir releasen und da ist jetzt noch irgendein neues Feature drin oder irgendein Patch drin, der noch nicht hundertprozentig ist, können wir den auch einfach zurückstellen.

Susanne

Also wir haben da nicht den Druck, dass da jetzt irgendwelche Kunden sagen, der Patch muss jetzt aber unbedingt in die nächste Version, sondern das passiert auch schon mal, dass die so kurz vor knapp nochmal zurückgestellt werden und dann erst ins nächste Release kommen.

Susanne

Das ist gar nicht so selten.

Susanne

Das passiert ja.

Susanne

Mittlerweile schaffen wir es immerhin, rechtzeitig zu releasen.

Susanne

Das war auch schon mal eine Zeit lang nicht so.

Susanne

Eigentlich wird immer ein neues Release rausgebracht zur Oscon, glaube ich, also zu irgendeiner amerikanischen Konferenz in der Regel im Oktober.

Susanne

Also ich hatte das schon, dass ich im Linux-Hotel gesagt habe, es müsste bald, wir haben Oktober, es müsste bald ein neues Release rauskommen und zwei Tage später, noch während der Schulung, kam das neue Release raus.

Susanne

Aber was genau drin ist, sieht man auch erst immer, also man sieht natürlich, was alles entwickelt wird, aber was da jetzt davon jetzt in das nächste Release kommt und was nicht.

Okay.

Susanne

Das sieht man dann tatsächlich erst am Ende, weil da werden natürlich auch riesige Tests gefahren.

Susanne

Und es gibt auch absichtlich dann, dass es nicht angekündigt wird, was drin ist.

Susanne

Eben damit man nochmal sagen kann, wir stellen das eine oder andere nochmal zurück.

Susanne

Deswegen wird das auch nicht so groß publiziert, was da jetzt.

Susanne

Also wir publizieren jetzt nicht ein halbes Jahr vorher im nächsten Release kommt, das und das.

Susanne

Sondern, das sieht man erst immer mit der neuen Version und den Release-Notes, was da passiert ist und was nicht.

Susanne

Auf alle Fälle ab Version 13 ist PostgresQ nochmal wahnsinnig viel schneller geworden.

Susanne

Also ich kann allen nur empfehlen, zumindest auf 13 abzugraden.

Susanne

Wer noch auf 9.6 ist.

Susanne

9.6 müsste auslaufen.

Susanne

Ich richtig gerechnet habe jetzt gerade.

Jochen

Ah, okay.

Dominik

Ja, also ich würde sagen, aber jetzt haben wir dann die News auf jeden Fall durch.

Ja, ja, ja.

Dominik

Und können wir noch anfangen mit unserem Thema?

Tja.

Dominik

Und das Thema ist ja tatsächlich irgendwie so ein bisschen dann Datenpacken.

Dominik

Im Speziellen, im Allgemeinen oder auch noch ein bisschen im Detail.

Dominik

Du hast ja ganz viel Erfahrung mit Susanne.

Dominik

Du kennst halt die ganzen Unterschiede zwischen Mühe, Maria, oder?

Susanne

Soll ich das erzählen?

Susanne

Also, ich habe, ich erzähle mal kurz die ganze Geschichte.

Susanne

Ich habe mal irgendwann Informatik studiert vor gefühlten 100 Jahren.

Susanne

Und damals an der Uni hatten wir Informix.

Susanne

Und die Rechenzentren waren auch noch nicht so wirklich klimatisiert.

Susanne

Und SSH gab es schon.

Dominik

Erstmal fragen, was ist das Informix?

Susanne

Informix ist ein kommertionelles Datenbanksystem.

Susanne

Das gehört zu IBM.

Susanne

Und ich hatte mir dann überlegt, ich war ja faul, wollte nicht immer ins Rechenzentrum, wie gesagt, SSH gab es schon und habe dann geguckt, wie ich zu Hause programmieren kann.

Susanne

Und wie ich das Datenbanksystem dann nehme und es gab dann damals schon MySQL so ein bisschen und es gab ein bisschen PostgreQL.

Susanne

Und PostgreSQL hatte mehr Ähnlichkeit.

Susanne

Also da gab es schon irgendwelche Features, die gab es bei MySQL noch nicht.

Susanne

Ich weiß nicht mehr genau, was es war.

Susanne

Ich habe dann PostgreQL genommen und es war damals wirklich noch ziemlich identisch.

Susanne

Ich habe später erfahren, PostgreSQL und Informix hatten denselben Urkurt.

Susanne

Das war beides irgendwie an der Universität Barclay entwickelt.

Susanne

Nein, das heißt, es gab einen, der das an der Universität Barclay, dieses Datenbanksystem entwickelt hat.

Jochen

Ich weiß nicht, ob das auch schon Michael Stonebreaker war.

Susanne

Ja, das war Michael Stonebreaker.

Susanne

Ich komme nur nicht drauf.

Susanne

Ingress heißt es.

Susanne

Ich kam jetzt nur gerade so schnell nicht auf den Namen.

Susanne

Also Michael Stonebreaker hatte dieses Projekt mit Ingress.

Susanne

Michael Stonebreaker hat dann die Universität zweimal verlassen.

Susanne

Ich weiß jetzt nicht bei welchem Mal, und mit dem Code zusammen und er hatte dann den Code irgendwie verkauft.

Susanne

Deswegen hieß es dann, ist dann wieder zurück zur Uni.

Susanne

Da er das nicht mehr Ingress nennen konnte, musste es jetzt Postgres heißen, also nach Ingress, Post für nach Ingress.

Susanne

Und aus dem einen Mal, wo er es verlassen hat, samt Code ist dann später in Formix entstanden.

Susanne

Also die basieren wirklich beide auf dem uralten Ingress-Code.

Susanne

Und deswegen war das zu der Zeit noch, so 2099, 2000 war das noch ziemlich identisch.

Susanne

Das heißt, du konntest auch so den Dampf vom einen in den anderen einspielen und so weiter.

Susanne

Das war noch relativ, so unterschiedliche Features hatten sie nicht.

Susanne

Ist heute natürlich nicht mehr so, nach 20 Jahren Weiterentwicklung.

Susanne

Und so bin ich irgendwie da reingekommen in diese Postgres-Geschichte.

Susanne

Dann hatte ich einen Job in PostgreSQL und ich hatte festgestellt, PostgreSQL kann was nicht.

Susanne

Ich hatte im Studium gelernt, das ist irgendeine Update-Syntaxe, eine spezielle wäre Standard, aber Postgres konnte das nicht und dann hieß es, ja, entwickel doch.

Susanne

Und ich hatte dann einen Mentor dazu, einen der großen Entwickler von PostgreSQL, mit dem habe ich mir ein Büro geteilt.

Susanne

War stimmt gar nicht, der war im Nachbarbüro, aber wir haben zusammen in derselben Firma gearbeitet.

Susanne

Und dann habe ich angefangen, an PostgreSQL mitzuentwickeln.

Susanne

Und das fand PostgreSQL ganz toll, weil da hatte eine Susanne einen Patch eingereicht, ein weiblicher Vorname.

Susanne

Und dann haben die also wirklich ganz große E-Mails rumgeschrieben, ob es noch eine zweite Frau gibt oder ob ich die erste wäre.

Susanne

Und dann haben sie festgestellt, ich war die erste Entwicklerin, die ein Patch dann committed bekommen hat und in den PostgreSQL-Code.

Susanne

Und das haben die, da haben die irgendwie so, waren die so stolz, so juhu, wir haben endlich eine Frau.

Susanne

Das hat so ein bisschen Welle geschlagen.

Susanne

Und dann habe ich aber irgendwie diesen Job.

Susanne

Nein, da ist was passiert.

Susanne

Und dann kriegte ich dann, ich brauchte einen neuen Job.

Susanne

Und ich kriegte dann per ICQ, schrieb mich dann jemand an.

Dominik

Wie das nochmal?

Dominik

Oh oh.

Susanne

Ich weiß es nicht mehr, aber es war der CEO von MySQL.

Susanne

Der schrieb mich bei ICQ an.

Susanne

Ich habe gehört, was passiert ist.

Susanne

Du suchst doch bestimmt einen neuen Job, du kannst morgen bei uns anfangen.

Susanne

Und ich stand da, ich habe von MySQL überhaupt, keine Ahnung.

Hallo?

Susanne

Ja, das lernst du.

Susanne

Und dann musste ich dann natürlich ein bisschen durch diesen ganzen, wir wissen noch nicht, in welcher Abteilung, aber wir nehmen dich an und dann, äh, wie kannst du bei uns anfangen?

Susanne

Ich habe mir das dann natürlich erstmal überlegt und musste dann durch diese, so ein bisschen durch diesen Bewerbungsprozess durch mit erstes Interview auf Englisch.

Susanne

Einer Frau aus Maine, die ich überhaupt nicht verstanden habe.

Susanne

Mein späterer Chef sagte, das ist auch schwierig, diesen Dialekt zu verstehen.

Susanne

Weil sie hatte mich nach irgendwas gefragt und ich habe ihr was völlig anderes erklärt, weil ich das Englisch nicht verstanden habe.

Susanne

Naja, und

Dominik

hat sie das gemerkt?

Susanne

Sie hat mich einfach erklären lassen.

Susanne

Natürlich.

Susanne

Ich weiß gar nicht mehr, wonach sie mich gefragt hat.

Susanne

Ich habe, glaube ich, Point-and-Time Recovery erklärt und sie wollte irgendwas anderes wissen, aber sie hat mich einfach erklären lassen.

Dominik

Irgendwann hast du irgendwas Schönes doch gewusst.

Susanne

Und ja, natürlich.

Susanne

Sie wollte, glaube ich, nur so generell so ein bisschen abprüfen.

Susanne

Und ja, dann war ich jahrelang bei MySQL, bis sie dann dun wurden.

Susanne

Da habe ich auch noch mitgemacht und dann wurden sie Oracle.

Susanne

Und dann bin ich mit vielen anderen Kollegen gegangen.

Dominik

Das musst du nochmal genau erinnern.

Dominik

Das war ganz.

Susanne

Ja, also MySQL ist sehr, sehr schnell gewachsen.

Susanne

Wir waren zum Schluss, als wir noch MySQL, also MySQL ist in Schweden gegründet, waren ein schwedisches Unternehmen weltweit, alle im Homeoffice.

Susanne

MySQL ist tatsächlich auch einer der Vorreiter, was Homeoffice angeht, also echtes Homeoffice mit eigenen Büros und was man da alles beachten muss, ist nämlich gar nicht so einfach.

Susanne

Und wir hatten, glaube ich, zum Schluss 400 Mitarbeiter, 200 Techniker, 200 Sales oder irgendwie so, so pi mal Daumen und Auge.

Susanne

Und im Höhepunkt des Erfolges sind die dann für zwei Milliarden an Sun Microsystems verkauft worden.

Susanne

Also da gab es dann auch natürlich, man hat dann wohl Geldgeber gesucht, das war dann so die Überlegung, machen wir jetzt eine IPO, also gehen wir an den Aktienmarkt, ganz offiziell.

Susanne

Machen eine AG drauf im Grunde, würde man in Deutschland sagen.

Susanne

IPO heißt das Ganze.

Susanne

Ich weiß jetzt nicht, was IPO in Langform heißt.

Susanne

Keine Ahnung.

Susanne

Ist ein klassischer Börsendienstwendefirma.

Susanne

Und dann haben sie aber beschlossen, sie verkaufen es die Aktionäre.

Susanne

Es war ja schon irgendwie ein.

Susanne

Haben dann beschlossen, sie verkaufen es an sein Microsystems für zwei Milliarden.

Susanne

Zwei Milliarden, finde ich schon eine ganze Menge.

Dominik

Initial Public Offering, ich habe die ganze Zeit.

Susanne

Ja, Initial Public Offering, genau, genau.

Susanne

Und dann haben sie es verkauft, dann sein Microsystems und ein Jahr später ist sein Microsystems von Oracle gekauft worden.

Susanne

Und das könnt ihr euch vorstellen, dass wir mit Oracle jetzt, das war jetzt der größte Konkurrent eigentlich so.

Susanne

In der Zwischenzeit hatte aber der Montevideius.

Dominik

Hatte er vielleicht noch ganz vorher, also MariaDB war vorher Open Source gekonnt.

Nein, nein, MySQL.

Susanne

Das war alles MySQL noch.

Susanne

MariaDB komme ich jetzt zu.

Susanne

Also der irgendwie in diesem Sun Oracle hatte der Montevideo, der Urentwickler, einer der Gründer, der Urgründer von MySQL.

Dominik

Dessen Töchter dann auch.

Susanne

Das sage ich zwar hier auch noch, genau.

Susanne

Der hatte irgendwie den Code aber geforgt von MySQL, den er verforgen konnte, legal, und hat dann MariaDB gegründet.

Susanne

MariaDB, weil er hat drei Kinder, M, also MY, aus Englisch Mai, Schwedisch eigentlich M.

Susanne

Die jüngste Tochter heißt Maria und er hat noch einen Sohn, der heißt Max.

Susanne

Es gibt auch ein Max.db, ich weiß nicht, ob das noch gibt, aber das war eine Datenbank, die unter SAP oder im SAP-Umfeld mit war.

Susanne

Ich glaube aber, die ist mittlerweile ganz, die war schon fast eingestopft, als ich bei Myers Girl war.

Susanne

Und also hat er gesagt, okay, das nächste System heißt dann Maria nach meiner jüngsten Tochter.

Susanne

So ist das dann mit Maria.db gekommen.

Susanne

Und auch die anderen Chefs, was ja immer häufig so ist, wenn eine Firma aufgekauft wird, wer gehen muss, sind die ganzen Geschäftsführer, hätte ich gesagt, oder die ganz, ganz hohen Chefs, so auch der von den ganzen Services, also Training, Consulting, Support.

Susanne

Und der hatte dann damals eine Consulting-Firma gegründet, Sky SQL, weil sie hatten sich überlegt, sie wollten nicht mehr Entwicklung und die Dienstleistung in einer Firma haben.

Susanne

Mittlerweile ist das wieder alles MariaDB, die haben dann das wieder zusammengelegt, aber sie wollten ja ein bisschen aus Erfahrung lernen.

Susanne

Das ist so, dass so MariaDB, es sind ganz, ganz viele Kollegen damals von den Entwicklern zu MariaDB gegangen.

Susanne

Also, ich weiß nicht, wer da noch bei Oracle heute ist.

Susanne

Ich wüsste jetzt keinen, aber es heißt nicht, dass da keiner mehr ist, aber die

Dominik

komplett einfach alle gekündigt und zum.

Susanne

Ja, das war ganz viel bei diesem Sun Microsystems, Oracle kauft Sun Microsystems.

Susanne

Ich weiß nicht, ob ihr das gehört habt.

Susanne

Java zum Beispiel, die Java-Leute haben auch fast alle gekündigt, die OpenOffice-Leute haben fast alle gekündigt und MySQL halt entsprechend auch.

Dominik

Wo sind die Java-Leute alle hingekommen?

Susanne

Das weiß ich nicht.

Jochen

Keine Ahnung.

Susanne

Keine Ahnung.

Dominik

Also wenn ihr es wisst, schreibt mal an hallo.de.

Susanne

Ja, genau.

Susanne

Und ja, so war das.

Susanne

Und ich bin dann zurück zu meinen Wurzeln.

Susanne

Ich habe mich dann mit einem Franzosen, mit einem Engländer, mit einem noch einem zweiten Deutschen und einem aus den USA und einem Italiener zusammengetan.

Susanne

Und wir haben dann PostgreSQL erstmal.

Susanne

Es war so ein bisschen gemischt.

Susanne

Die Firma heißt Second Quadrant, ist jetzt Enterprise.db.

Susanne

Und ich habe hauptsächlich Consulting gemacht, weltweit, für PostgreSQL.

Susanne

Also ich bin ganz viel um die Gegend gefahren, geflogen mit dem Amerikaner zusammen und irgendwann wurde uns das zu viel.

Susanne

Mir zumindest, weil wenn du ganz viel unterwegs bist, irgendwann machst du das nicht mehr.

Susanne

Und dann habe ich gesagt, okay, ich muss kürzer treten, habe dann erst noch so ein bisschen promoviert und dann am Ende gesagt, eigentlich liebst du das Ganze und mach B ja bis heute im Grunde Postgres Girl und Maria.b als Consultant und Trainer, aber hauptsächlich halt, wo man gut hinkommt.

Susanne

Also keine Langstreckenflüge mehr.

Susanne

Ich brauche das nicht heute, Amerika, morgen Japan.

Susanne

Also so, wo man gut hinkommt.

Susanne

Das ist dann auch zum Beispiel Amsterdam ist näher als Bayern.

Susanne

Oder so.

Susanne

Nein, kann natürlich auch nach Bayern, so ist das nicht, aber es ist halt nicht so.

Susanne

Das ist so das, was ich mache, ich war dann zwischendurch noch so ein Microsystems hatte noch die Idee.

Susanne

Nein, die hatten das Angebot gekriegt von Ansi, von dem American National Standard Institute.

Dominik

Genau, du wolltest mich erzählen, du hattest mich doch mal diese ganze Reisetätigkeit vorher im Zusammenhang da mit dem SQL-Standard gemacht haben.

Susanne

Ja, Ansi, also Ansi ist an San Microsisten herangetreten und hat gefragt, ob sie jetzt nicht jemanden, da sie jetzt ja MySQL aufgekauft haben, ob sie nicht jemanden im Standardgremium haben wollen.

Susanne

Ob wir nicht jemanden ins Standardgremium stellen können.

Susanne

So, und bei Postgres war immer das Problem, das wollte der Standard nicht, weil das ja keine Legal Entity hat.

Susanne

Also macht ja kein Geld.

Susanne

Das ist ja irgendwie Open Source.

Susanne

Da war etwas komisch.

Susanne

Und dann hatte Sun auch noch Java.db und ich weiß nicht was, die hatten noch ein paar mehr Datenbanksysteme.

Susanne

Und dann gab es irgendwo auf einer Konferenz ein Meeting.

Susanne

Ich war nur per Skype zugeschaltet.

Susanne

Und ich wusste auch gar nicht genau, weil wenn man in so einem Meeting per Skype zugeschaltet ist, du kriegst nicht wirklich mit, wenn die alle durcheinander reden, um was es da geht.

Susanne

Und ich hatte dann irgendwie so meinen einen Kollegen Sergey, den hatte ich im IAC und ich hatte Sergei dann gefragt, um was geht es?

Susanne

Und dann erzählte er mir groß, ja, die suchen jetzt jemanden, der uns da im Standardgremium vertreten kann.

Susanne

Und irgendwie so eine Minute steht, hast du Lust?

Susanne

Und ich sagte, ja.

Susanne

Und dann hörte ich, dann hörte ich nur, dass Sergey sagte, ich habe da jemanden.

Susanne

Also es muss so gesehen sein, dass Peter dann wohl von PostgreSQL, den hatten wir mittlerweile zusammengeholt.

Das war auch lustig.

Susanne

Mein alter Kollege Peter Eisentraut, meuralter Mentor, der ist mir mehrfach gefolgt in mehrere Firmen, das ist ganz lustig.

Susanne

Peter muss wohl auf den Monitor, auf alle Fälle hörte ich nur wie Peterstimmer, sondern oh ja, das ist eine coole Idee, da bin ich mit einverstanden.

Susanne

Und dann war wieder Stille und dann hörte ich meinen Chef sagen, auch ohne dass mein Name bis dahin gefallen war.

Susanne

Ja, genau.

Susanne

Das ist perfekt.

Susanne

Und dann hörte ich, wie alle anderen fragen, wie meint ihr denn jetzt?

Susanne

Und dann kam raus, ja, Susanne.

Susanne

Und so bin ich dann erstmal in diesem Ansi-Gremium gelandet.

Susanne

Was sehr lustig ist in Amerika, weil man muss bei ISO sagen, so ein ISO-Standard funktioniert oder so ein Standard funktioniert so, du brauchst immer drei verschiedene Parteien.

Susanne

Also ich sag mal, du brauchst einen Hersteller, du brauchst irgendwie eine Universität und noch was Drittes, also oder zwei Hersteller.

Susanne

Wenn du drei Gruppen hast, kannst du erstmal einen nationalen Standard gründen.

Susanne

Also bei DIEN, die brauchen auch immer drei und das dürfen nicht drei Universitäten sein.

Susanne

Es muss schon irgendwo, irgendwer muss da schon mal Gewinn bringen mit was zu tun haben.

Susanne

Und dann hast du einen nationalen.

Susanne

Und wenn du dann irgendwie drei europäische Nationale hast, kannst du einen EN-Standard gründen und wenn du drei internationale hast, kannst du einen ISO-Standard gründen.

Susanne

Irgendwie so.

Susanne

Und im ISO-Gremium hat jedes Land nur eine Stimme.

Susanne

Egal wie groß das ist.

Susanne

So, jetzt das amerikanische Gremium.

Susanne

In Amerika saßen natürlich sämtliche Datenbankherrscher, das ist eine riesengroße Gruppe gewesen.

Susanne

Da saß auch Microsoft drin, die haben kaum was gesagt.

Susanne

Im Grunde haben sich, sag mal, nur IBM versus Oracle die beiden da ausgemacht.

Susanne

Und Oracle hat natürlich auch Leute, die nichts anderes den ganzen Tag machen, als sich neue Ideen für den Standard ausdenken, so ungefähr.

Susanne

Oder versuchen dann die Features, die Oracle sich ausgedacht hat, in den Standard reinzubringen, so muss ich das mal höflich sagen.

Susanne

Und IBM und Oracle saßen auch fast in jedem Land.

Susanne

Aber wenn du bei Ansi bist, vertrittst du natürlich in dem ISO-Gremium auch die USA.

Susanne

Und dann war ich dann auf diesem ersten internationalen ISO-Gri-Meeting.

Susanne

Dann kam Deutschland auf mich zu und sagte, warum zur Hölle vertrittst du die USA?

Susanne

Und dann haben die mich zu DIN geholt und dann habe ich halt ganz lange bei DIN mitgemacht.

Susanne

Und weil die Länder machen immer die Vorschläge in dem ISO-Gremium, das kommt auch noch dazu.

Susanne

Also, wenn du eine Idee hast, dann macht das Land einen Vorschlag und im ISO-Gremium wird dann abgestimmt, ob das genommen wird oder nicht.

Susanne

Und das ist extremst politisch auch teilweise.

Susanne

Also das ist nicht so einfach.

Susanne

Da kann es dir passieren, dass es uns mal passiert tatsächlich, dass dann ein asiatisches Land gegen den Vorschlag von Deutschland gestimmt hat und dann fragte der Kanadier oder der Engländer, irgendwer fragte nach, warum?

Susanne

Und dann kam ja, weil Deutschland in irgendeiner Schraubennorm gegen Japan gestimmt hat oder gegen das asiatische Land.

Susanne

Ich weiß nicht mehr, welches genau war.

Susanne

Also so, wir standen da, wir kannten diese Schraubennorm nicht mal.

Dominik

Also vielleicht um nochmal genau den Hören zu erklären, worum es eigentlich geht bei so einem Standard.

Dominik

Da geht es halt darum, welche Features so eine Datenbank haben muss, damit sie sich so nennen darf.

Susanne

Nee, es geht darum, so ein bisschen Einigkeit zu haben.

Susanne

Also zum Beispiel, dass die, dass du egal welches Datenbanksystem du hast, das vor dem SQL-Standard hatte jedes Datenbanksystem seine eigene Sprache.

Susanne

Und da hieß dann auch nicht immer alles Select, wenn du jetzt was raussuchst, das konnte auch ein Feind sein, ich habe keine Ahnung, wie es hieß.

Susanne

Und die hatten halt, es gab ja schon Oracle und die IBM und Postgres, das gibt es ja alles schon seit den 70ern.

Susanne

Und dann hat sich Oracle und der Stonebreaker und einer von IBM, wenn ich das richtig weiß, die haben sich dann damals mal Ende der 70er zusammengesetzt und haben gesagt, okay, wir entwickeln dann mal eine gemeinsame Sprache, damit wir nicht auf jedem System wieder das komplett umprogrammieren müssen.

Susanne

Und so ist dann der SQL-Standard entstanden.

Susanne

Und ich sage mal, so ein Select ist ja zum Glück auf allen Datenbankensystemen funktioniert.

Susanne

Ein Insert funktioniert auch meistens noch.

Susanne

Das Grund SQL funktioniert meistens noch auf allen gleich.

Und nur in den Dialekten wird es dann, weil ich das am besten.

Susanne

Ja, genau, in den Dialekten wird es anders und das kommt daher, weil natürlich diese Gremien, da wird dann einen Vorschlag gemacht.

Susanne

Und du machst keinen Vorschlag, wenn du das nicht schon implementiert hast.

Susanne

Also ich kann zum Beispiel sagen, die Limit-Geschichte ist ganz witzig.

Susanne

Myersquell hat Limit erfunden.

Susanne

Also Limit heißt, wenn ich was raussuche und ich mache am Ende Limit 1, dann kriege ich nur den ersten Wert raus.

Susanne

Wenn ich mache 1,3, dann krieg ich, wirft er die ersten drei weg und er gibt mir den vierten Wert.

Susanne

Weil der Offset dann drei ist.

Also, ne?

Susanne

Super Syntax.

Susanne

Postgres fand Limit total cool und hat gesagt, das implementieren wir auch.

Susanne

Aber diese Limit 1,3, also X, Y, das ist jetzt ein bisschen arg kryptisch.

Susanne

Und die haben es dann schon implementiert mit Limit X Offset Y.

Susanne

Und dann hieß es, bringt das mal in den Standard.

Susanne

Dann haben wir dafür einen Vorschlag gemacht.

Susanne

Und das ist auch durchgegangen am Ende.

Susanne

Und allerdings war dann in dem internationalen Gremium kam dann zu bedenken, ja, das wäre aber immer noch nicht die Syntax, wie SQL eigentlich aussehen würde.

Susanne

Und die offizielle Syntax heißt jetzt, glaube ich, Fetch X Rose, X Next Rose Offset Y.

Susanne

Ja, also das ist dann sowas.

Susanne

Ja, ich glaube, MySQL oder MariaDB hat mittlerweile die Limit X, Y gibt es, glaube ich, auch nicht mehr.

Susanne

Die haben das, glaube ich, auch auf Offset geändert, weil das zu kryptisch war.

Susanne

Da bin ich mir aber nicht hundertprozentig sicher.

Susanne

Im Moment müsste ich ausprobieren.

Susanne

Aber so funktioniert halt das Standard.

Susanne

Und was halt, wo man das halt merkt, wo alle schon was hatten, war bei sämtlichen Zeitgeschichten.

Susanne

Wenn man ein Date bei Oracle eingibt, ist das immer mit Urzeit zum Beispiel.

Susanne

Da merkt man schon, okay, das hatten sie vorher schon.

Susanne

Und dann kann man natürlich als Datenbanksystem sagen, wir implementieren das nach.

Susanne

Wir machen dann Alias draus oder ähnliches.

Susanne

Aber zumindest das Uhr, das Grund ist erstmal dasselbe.

Susanne

Ist ja so ein Insolfs-Stat, so ein normales Update-Statement, das funktioniert bei allen ziemlich gleich.

Susanne

Und dann hast du irgendwann die Dialekte, wie du es so schön gesagt hast.

Susanne

Aber Standard ist halt eine politische Geschichte.

Susanne

Die treffen sich dann auch zweimal im Jahr.

Susanne

Immer ein Land lädt ein.

Susanne

Und je nachdem, welches Land einlädt, will sich dann auch hervorheben.

Susanne

Dann hast du dann so Meetings auf Hawaii.

Dominik

Oh nein.

Susanne

Auf Kreta.

Ja, sagst du so.

Welche Insel?

Susanne

Welche Insel?

Susanne

In Deutschland hatten wir mal überlegt, das auf Sylt zu machen.

Susanne

Kommst du natürlich super hin.

Susanne

Wir waren dann am Ende doch in Berlin, weil das DIN-Gebäude in Berlin bot sich an.

Susanne

Wir waren auch in London, weil auch da haben die gesagt, das bietet sich an.

Susanne

Das ist schon ganz schön.

Susanne

Das ist natürlich teuer.

Susanne

Weil die Reisen musst du ja auch irgendwo bezahlen.

Susanne

Und Standardisierung ist ein spannendes Thema, ist halt ja.

Susanne

Wenn man weiß, wie es funktioniert.

Susanne

Und Amerika kam immer mit 15 Leuten auf diese internationalen Meetings, weil es konnte ja passieren, dass bei den Diskussionen irgendwas dann entschieden werden musste, wo das Land eine Stimme abgibt und damit die dann überhaupt eine Mehrheit hatten.

Susanne

Und Deutschland, wir waren da meist zu zweit, es war noch die Uni Aachen damals mit in dem Gremium, als ich da drin war.

Susanne

Die haben mir gesagt, wenn ihr beide euch einig seid, einer von Orekel und ich, dann passt das schon, so ungefähr.

Susanne

Und auch die anderen Länder waren kleiner.

Susanne

Aber wie gesagt, IBM und Orekel, die saßen fast in jedem Land, hatten die.

Susanne

Das war schon sehr spannend.

Susanne

Und Postgres wollten sie immer nicht haben oder nicht annehmen, weil es war ja rein Open Source, da gab es keine Legal Entity und so weiter und so fort.

Susanne

Mittlerweile sitzt der Peter tatsächlich im Standardgremium in Deutschland, glaube ich, auch.

Susanne

Also wir haben dann immer Peter sowieso schon mit dazu geholt von PostgresQL.

Susanne

Der hat eine Zeit in Finnland gelebt und den haben wir aber immer beratend schon mit dazu gehabt, weil wir Deutschen hatten eigentlich nichts dagegen, wenn Postgres mit drin ist.

Susanne

Weil ich habe offiziell ja MySQL vertreten.

Susanne

Oder MariaDB.

Susanne

Nee, MySQL tatsächlich nicht MariaDB, weil es wurde ja von Oracle bezahlt.

Susanne

Und natürlich hat das Gremium aber mich auch eher dann zu PostgresQL befragt.

Susanne

Weil das war hinterher, als es Oracle war, dann ganz lustig, weil eigentlich mussten die von Oracle jetzt MySQL mit vertreten.

Susanne

Und irgendwie kannte ich dann MySQL doch besser als die und war nie immer sehr froh, dass ich da noch mit drin war, aber irgendwann bin ich dann da ausgestiegen, weil ich dann auch nicht mehr, ja, das war auch, wie gesagt, das ist eine teure Angelegenheit.

Susanne

Und mittlerweile ist der Peter Eisentraut da mit drin, dann brauche ich dafür Postgresquelle nicht mal rein.

Susanne

Und wenn MariaDB da jemanden drin haben möchte, dann, da ich nicht bei MariaDB arbeite.

Susanne

Ich weiß nicht, ob einer von MariaDB irgendwo im Gremium sitzt.

Susanne

Weiß ich jetzt nicht.

Susanne

Aber das war eine spannende Geschichte, mal zu sehen, wie so Standardisierung funktioniert.

Susanne

Und ich finde es dann ganz lustig, weil SQL heißt nämlich nur SQL.

Susanne

Das ist auch eine sehr lustige Geschichte, die ist bei Wikipedia ganz spannend.

Susanne

Die hatten, ich hatte vorhin gesagt, vor dem Standard hatten die alle eigene Sprachen.

Susanne

Und die von IBM hieß SQL.

Susanne

Und das Gremium hat dann beschlossen, sie nennen diese neue Sprache, die sie da entwickeln, SQL.

Susanne

War natürlich ein bisschen angelehnt an das IBM SQL, aber war es nicht.

Dominik

Was war das ein Sequence Query Language?

Susanne

Gar nichts, das heißt einfach nur SQL.

Susanne

In dem steht immer bei Wikipedia, weiß ich Standard Query Language, Streckschart-Query Language, irgendwie so war es.

Susanne

Und es wird dann, wir schreiben dann immer schon, im Englischen ist das lustig, wir schreiben dann in die Diskussion immer schon rein und ändern das und schreiben dann rein, passt nicht und so, hier siehe Standard heißt nur SQL.

Susanne

Dann steht es drei Tage auch richtig drin und dann ändert es wieder einer.

Susanne

Im deutschen Wikipedia steht es, glaube ich, mittlerweile richtig drin.

Susanne

Also das ist auch so von wegen, wie funktioniert Wikipedia?

Susanne

Wenn man dann da steht und denkt, so, ich hab's erfunden.

Susanne

Das ist, glaube ich, auch irgendwem anderes mal passiert, irgendeiner berühmten Person, die hat dann irgendwas geändert zu sich selbst.

Susanne

Das hat Wikipedia wieder zurückgeändert, weil sie meinten, sie kennen ihn besser als er selbst.

Jochen

Kniffliges Problem, genau.

Jochen

Wer ist da autorisiert?

Susanne

Deswegen ist Wikipedia auch.

Susanne

Ich erkläre das immer bei Studierenden, deswegen ist Wikipedia auch keine zitierwürdige Quelle, wenn die so wissenschaftliche Arbeiten schreiben müssen, weil das jeder ändern kann und weil du dann auch solche Phänomene hast.

Susanne

Ja, ganz viel dazu.

Jochen

Interessant.

Susanne

Spannend mal die Geschichte vom Datenbanksystem.

Susanne

Ja, wir können natürlich sowohl Postgres als auch Maria, also ich mache überwiegend heute Maria.b und PostgreSQL, selten noch das Original MySQL, weil das Original MySQL gibt es natürlich bei Oracle immer noch.

Susanne

Ich habe aber das Gefühl, irgendwo ist meine Kundenwolke, die die dann in dem Bereich MariaDB einsetzt.

Susanne

Also weniger das echte MySQL.

Susanne

Weil MariaDB ist immer noch, die Lizenz ist Open Source.

Susanne

Du kannst es.

Jochen

Hat sich da in der Lizenz nochmal, aber die hatte MySQL hat ja so ein bisschen früher eine etwas komische Lizenz, ne?

Jochen

Das war, oder im Vergleich zu anderen, also jedenfalls im Vergleich zu Postgres.

Postgres ist ja sehr liberal.

Jochen

Postgres hat eigentlich ja.

Susanne

Die BSD-Lizenz, das heißt, du kannst es einfach nutzen und gut.

Susanne

Deswegen ist ja auch Postgres, findest du ja auch manchmal an ganz lustigen Stellen.

Susanne

Das findest du dann in irgendwelchen Autos, in irgendwelchen Waschmaschinen oder in irgendwelchen Geräten, ich weiß jetzt nicht, auf einer Waschmaschine jetzt wirklich.

Susanne

Aber da ist dann häufig, häufig ist auf solchen Geräten ein abgesprengtes NetBSD drauf, wegen der BSD-Lizenz.

Susanne

Und dann, wenn so ein Datenbanksystem wirklich brauchen, dann eine Postgres auch wegen dem BSD, wegen der Lizenz.

Jochen

Auf der Apple Watch ist SQL Lite wird auch oft gern verwendet.

Jochen

Also wenn die Schritte gezählt werden, das macht auf der Apple Watch macht das eine SQL Lite.

Jochen

Aber ja, Postgres auf einer Uhr ist vielleicht auch ein bisschen übertrieben.

Susanne

Ich darf nicht so unbedingt über Referenzen reden, aber es ist schon spannend, wo Postgres da so überall drin sitzt.

Susanne

Deswegen MySQL MariaDB, die sage ich immer, oder MySQL hat sich damit immer gebrüstet, vor allen Dingen Oracle, MySQL, die weltverbreitetste Datenbank, ich weiß das gar nicht, weil Postgres würde ich, ich würde das nicht unterschätzen, was da so auf den Geräten ist, wo du nicht als Mensch dran bist.

Susanne

Natürlich, MySQL MariaDB ist unter Webseiten nicht wegzudenken.

Susanne

Und du hast ja heute auch in den großen Firmen, du hast ja alles im Einsatz.

Susanne

Also wenn ich mir mal meinen lieben alten Kollegen Christian Köntopf anhöre, was der da an Datenbanken, wie viele Systeme, der bei seiner Firma, wo er heute arbeitet, im Einsatz hat, das ist ja ganz viel auch von den NoSQL-Systemen, das wird ja alles gemischt.

Susanne

Ganz viel auch mit den Adobe, Adobe, Apache, Apache, HBase und wie sie alle heißen und Neo4j und weiß ich nicht.

Susanne

Das wird ja tatsächlich auch sinnvoll eingesetzt.

Susanne

Nimm das Datenbanksystem oder nimm, mach nicht alles im Relationalen, mach das im Relationalen, was du im Relationalen abbilden kannst.

Susanne

Und wenn du was Graf, Graf, was du besser in Grafen abbilden meinst, bildest ein Graphen ab.

Susanne

Sowas wie Kunden, die auch X, die X gekauft haben, haben auch XY gekauft.

Susanne

Das ist eher in so einer grafischen Datenbank aufgehoben als in einer relationalen.

Dominik

Ich würde auf diese beiden Punkte gleich nochmal irgendwie eingehen.

Jochen

Ja, aber genau, also da, ähm, ich finde Postgres ist eigentlich immer ganz schön, oder sagen wir so, ja, weil es halt so ein bisschen ähnlich ist, also ich meine, ich mache ja so einen, wenn ich Webentwicklung mache, meistens ja sowas Django-mäßiges oder halt, ich mag diesen Batteries-Included-Ansatz eigentlich da sehr gerne.

Jochen

Und ich finde, Postgres ist das so ein bisschen für die Datenbankwelt, so was so Django für die Web oder Ruby and Rails für die Webwelt ist, ist halt so, weil, also es ist zwar jetzt vielleicht nicht in allen Sachen Spitze, aber es kann halt, also fast alles, was man so braucht, ist da schon mal drin.

Jochen

Und man kann das einfach so verwenden.

Jochen

Und ja, für viele Sachen ist es halt auch gut genug.

Vorsicht.

Susanne

Tatsächlich, wenn ich so objektiv, ich kann ja objektiv sein, weil mir ist das ja ganz egal, was du einsetzt.

Susanne

Und ich kenne ja jetzt beide, also ob jetzt Maria oder Postgres einsetzt, ich kenne ja beide Systeme sehr, sehr gut.

Susanne

Und ich gucke mir tatsächlich, wenn mich jemand fragt, ich gucke mir an, was wollen die machen, was ist das für ein Kunde?

Susanne

Natürlich erstmal, da gibt es ganz viel, da ist das völlig wurscht, ob du Postgres oder MariaDB nimmst.

Susanne

Es gibt da so Eckpunkte, wo man dann sagt, okay, das ist vielleicht eher da besser und das ist das besser.

Susanne

Aber was ich mir auch angucke, ist dann teilweise die Menschen, die es hinterher bedienen müssen, weil auch das ist etwas, der eine kommt mit Postgres besser zurecht und der andere kommt mit Maria.db besser zurecht.

Dominik

Das finde ich jetzt spannend.

Dominik

Welchen Nasenfaktor gibst du in Maria?

Welchen Postgres?

Susanne

Postgres ist, es kommt darauf an, wo du herkommst.

Susanne

Also von welchem Datensystem, auf welchem Datenbasensystem hast du gelernt?

Susanne

Wenn du jetzt wirklich aus der DB2 in Formex im IBM-Ecke kommst, ist Postgres häufig für dich intuitiver.

Susanne

Wenn du aus der Oracle-Ecke kommst, möchtest du vielleicht auch Postgres, aber nicht, weil es intuitiver ist, sondern weil die Migration einfacher ist.

Susanne

Wobei ich das heutzutage auch mal dahingestellt lasse, du kannst auch zu MariaDB migrieren.

Susanne

Wenn du jetzt wirklich aus der Webentwicklung kommst.

Dominik

Alter LEMP-Stack, oder?

Susanne

So PHP, was weiß ich, ja, LEMP, ne?

Susanne

Ist vielleicht MariaDB für dich intuitiver?

Susanne

Also es kommt ein bisschen darauf an, wie hardcore hast du SQL gelernt?

Auch.

Susanne

Also sage ich jetzt mal ganz trocken.

Susanne

Oder auch, an welcher Uni hast du SQL gelernt, weil die SQL-Kurse sind ja häufig auch schräg.

Susanne

Also wenn ich mal so habe ich das gut ausgedrückt?

Ja, ich habe da wirklich schon, wenn ich so junge Menschen, wenn die so lernen, SQL oder Datenbankvorlesungen, es ist schon sehr spannend.

Susanne

Dann hat man so ein reinen Oracle-Dialekt teilweise.

Dominik

Was würdest du denn empfehlen, um überhaupt SQL zu lernen?

Vielleicht nochmal.

Susanne

Also wenn ich SQL-Kurse gebe, jetzt für Anfänger, also für Grundkurse heißt das ja, ich mache Standard SQL.

Susanne

Also ich erzähle dir auch erstmal nicht, dass es in Postgres ein Datentyp Text gibt oder ähnliches, sondern ich mache wirklich erstmal Standard SQL und mache wirklich die Standardsachen, weil die funktionieren wirklich bei allen.

Dominik

Kennst du irgendwelche besonderen Tools, die man vielleicht noch verlinken könnte?

Susanne

Achso, du meinst jetzt für Leute, die das grafisch machen wollen?

Dominik

Ja, oder nicht unbedingt grafisch, aber einfach so als Kontext drumherum.

Susanne

Wenn du bei mir SQL lernst, dann musst du das natürlich selbst runterschreiben.

Dominik

Ja, das finde ich super.

Dominik

Aber genau das ist ja vielleicht, also ich habe zwei tolle Sachen entdeckt im Netz, die mir da sehr geholfen haben.

Dominik

Und zwar eins, ein Detektivspiel, wo man irgendwie einen Mordfall aufklären musste.

Dominik

Gefühlt mit SQL.

Das war ein SQL-Tourist.

Susanne

Das will ich sehen, genau das finde ich cool, weil ich finde Gamification ganz toll.

Susanne

Wenn du bei mir die Schulung buchst, dann kriegst du dann Bindfaden und darfst dann an der Pinnwand mit Bindfaden und Moderationskarten rumspielen, damit das ein bisschen lustiger wird in der Gruppe oder so.

Susanne

Aber ich erkläre auch Normalisierung.

Susanne

Das ist ja auch so ein Thema, was immer noch ist.

Dominik

Das müssen wir auch gleich nochmal machen, das finde ich nämlich auch interessant.

Dominik

Das machen wir aber auch gleich, glaube ich, nochmal extra Normalisierung.

Susanne

Das ist halt nur, wenn du so teilweise die ganz jungen Menschen, wenn die so SQL in der Uni oder wo auch immer in der Ausbildung bei der IAK oder so, teilweise, wenn du da reinguckst, ich werde ja dann häufiger auch mal nach Hilfe gefragt von jungen Menschen, so ganz unabhängig.

Susanne

Und was ich da teilweise sehe, wo ich dann denke, okay, wir schlucken mal.

Susanne

Das ist jetzt aber ganz stark Ore Kelastik oder ganz stark Mayersko Elastik hast du auch.

Susanne

Häufig, was ich traurig finde in der heutigen Datenbank Ausbildung ist, also ich weiß jetzt nicht, wie es jetzt in der Pandemie kann sich das ja geändert haben.

Susanne

Ich glaube das aber nicht.

Susanne

Also, die letzten Datenbankvorlesungen, die ich gegeben habe, ich habe mich dann tatsächlich mich da mal reingekniet und mir auch die anderen angeguckt, weil die sind seit 2007 auf dem Markt.

Susanne

Und ich kann nicht mehr nur relationale Datenbanken machen, wenn ich es lerne, sondern ich sollte vielleicht auch mal sagen, was ist eine grafenbasierte Datenbank oder eine dokumentenbasierte, dass man das zumindest mal vorstellt und mit reinmacht.

Susanne

Du musst jetzt kein GQL und SQL.

Susanne

Ich glaube, das ist für so ein Informatikstudium, wenn du es hinterher nicht brauchst, das ist halt Datenbank ist ein Pflichtfach.

Susanne

Das ist ja sowas.

Susanne

Nur, dass du es zumindest mal gehört hast, das finde ich halt sehr wichtig, dass man nicht nur immer auf die Relationalen eingeht.

Susanne

In der Ausbildung.

Susanne

Ich mache natürlich hauptsächlich Relationale, weil das ist mein Thema.

Dominik

Zum Anfang, ich habe es rausgefunden, und zwar ist das SQL Mörder Mystery.

Susanne

Ah ja.

Dominik

Das ist das Erste.

Dominik

Da geht es halt darum, den Modfall, also Mörder in SQL City.

Dominik

Die muss man aufklären und dafür lernt man halt die ersten Queries zu machen, wer war denn in welcher Straße, wann wie wo.

Dominik

Und dann du, das ist sehr interessant.

Dominik

Das muss man halt auch schreiben dann, die Querys selber.

Susanne

Ich habe eine Zeit lang auch mal irgendwie sowas gemacht, stell dir vor, du bist in deiner Küche und dann durftest du deine eigene Küche, wo sind die Teller und so weiter.

Susanne

Das habe ich auch schon mal gemacht, ja.

Susanne

Aber das finde ich cool, ja.

Dominik

Und ich habe noch ein zweites Story mal gemacht, das ist ja auch das schlimmer, Select Stars, SQL heißt das, da geht es darum, die, das ist ein bisschen traurigeres Thema, aber die Gefängnisinsassen in Texas, die zum Tode verurteilt waren, auszuwerten, was denn deren letzten Worte waren und warum und so.

Dominik

Ja, aber da gab es dann auch ein.

Susanne

Ich habe gerade bei den Psychologen, die Psychologen-Statistik sollten dann irgendwelche BWL-Statistiken machen, Umsatzstatistiken und so weiter, wo die Psychologen dann da standen, was ist das eigentlich alles?

Susanne

Also weil das so BWL-lastig war.

Susanne

Und dann habe ich auch, ich hatte denen halt im Tutorium geholfen.

Susanne

Und dann habe ich dann aber die eine Aufgabe gegeben, ich glaube, es war eine Umsatzstatistik, habe ich die Sterbestatistik draus gemacht.

Susanne

Es war dann auch zwar Makaba, aber es war für die leichter Nachvoll zu vollziehen, als irgendwas BWL-Lastiges.

Susanne

So, was passiert jetzt, wie viele Menschen sterben da jetzt vorne?

Susanne

Deswegen, also da muss man immer gucken, was man für ein Publikum hat.

Susanne

Und das ist in der Ausbildung halt sehr, sehr schwierig, weil am besten findest du natürlich Beispiele, die auch alle kennen.

Susanne

Deswegen nehme ich immer gerne, ich habe es aufgegeben, das Kochbuch zu nehmen, weil so ein Kochbuch, so eine Kochbuch-Datenbank ist recht komplex.

Susanne

Vor allen Dingen heutzutage, also früher habe ich immer gesagt, es googelt, es sucht niemand in einer Datenbank nach, gebe mir alle Rezepte mit dem Teelöffel oder wo die Menge fünf ist.

Susanne

Brauchst du aber heute doch einzeln, normalisierst du tatsächlich auch aus heutzutage, weil Rezeptdatenbanken hast du natürlich heute auch den Anspruch dran, ich will das mal für zwei Personen kochen, mal für vier Personen, dann wird mit den Mengen gerechnet, dann musst du die Mengen wieder einzeln.

Susanne

Aber nach wie vor sucht natürlich keiner nach, gib mir alle, wo Teelöffel drin vorkommt oder so, oder Messbecher oder Tasse oder was man immer eine Prise, ich meine, alle Rezepte und eine Prise drin.

Dominik

Ein Quäntchen Glück.

Susanne

Ja, aber deswegen, aber Kochbuch ist schon eine recht aufwendige Datenbank, das kannst du dann so als Prüfung mal verkaufen.

Susanne

Aber dann willst du meistens auch noch irgendwas, was dir noch ein View oder ähnliches, dann ist ein Kochbuch wieder auch zu viel.

Dominik

Ich glaube, dass wenn du so eine volle Datenbank hast, mit dir interessant ist, dann ist du lernen vielleicht besser, also wenn das nicht nur so trockene BBL-Daten sind, weil man dann vielleicht selber Neugier bekommt, auch mal in andere Datensätze reinzuschauen und dadurch, dass man das dann selber eintippen muss, dann halt lernt, wie die Syntax ist, um die Sachen so zu filtern, wie man das macht.

Susanne

Du nimmst halt irgendwas Kleines als Beispiel und machst dann aber mittlerweile auch schon sowas wie Datensicherheit mit rein oder Datenschutz.

Susanne

Du musst ja heute hast du ja auch sowas wie Transparenz und du musst ja, wer hat was, wann, wie geändert und so weiter auch noch mit festhalten.

Dominik

Ja, aber gut, wenn ich SQL schreibe, ist das eigentlich nicht mit drin.

Dominik

Das muss ich ja mit einem Meter.

Susanne

Nö, das kannst du ja mit, wann du die Zeile geendet hast, du on Update, da machst du noch eine Spalte mehr dran und sagst dann, hältst du das dann ein Fest Last Update.

Susanne

Genau, aber

Dominik

das muss ich ja im Modell mit drin stehen haben.

Susanne

Ja, ja eben, deswegen, das sind dann aber so Sachen, da gehst du dann vielleicht nochmal drauf ein, wenn du so, also dass du ein bisschen mehr auf Datenschutz eingehst.

Susanne

Du machst immer dieses Beispiel, was in Transaktionen stell dir vor, du willst dem jetzt 100 Euro überweisen und das muss natürlich auf beiden Konten sein oder auf gar keinem.

Susanne

Ich kann nicht sagen, bei dir sind 100 abgezogen und bei dir sind sie nicht angekommen, wenn das in der Zwischenzeit.

Susanne

Das erklärst du immer noch, aber das weiß auch jeder, dass du das in der Praxis nicht machst.

Dominik

Noch so ein Thema, das müssen wir gleich nochmal kurz.

Dominik

Transaktionen, das müssen wir gleich alles nochmal aufmachen, da können wir uns die Reihenfolge überlegen.

Dominik

Aber ja, zum Einstieg, ist dir noch was eingefallen, wie man das am besten lernen kann oder was du denkst?

Jochen

Tja, ich hab, ich weiß es nicht genau.

Jochen

Ich habe vielleicht eine pessimistische, äh etwas pessimistische Ansicht dazu, dass man, ich glaube, ich weiß nicht, ob man das, ob man das so trocken lernen kann.

Jochen

Also ich bin ich einfach nicht der Typ dafür, ich kann das nur lernen, wenn ich das tatsächlich brauche.

Jochen

Und es dauert auch lange.

Jochen

Es ist nicht so, dass, also von irgendwie, ich habe angefangen, mich mit diesem Thema zu beschäftigen zu, ich fühle mich einigermaßen sicher.

Jochen

Das waren bei relationalen Datenbanken eher so Jahre.

Jochen

Und das waren, das ist, wenn man jetzt eine Semester eine Vorlesung hört und eine Prüfung schreibt, das ist aus meiner Sicht nicht so richtig gut möglich.

Dominik

Jemand ist jetzt aber wieder verstehen, dass wenn Jochen meint, dass er so einigermaßen nicht wohl fühlt, ist ja derjenige, der es richtig aus dem Schlaf dann an.

Jochen

Nein, nee, einfach so, dass man halt ungefähr weiß, was man da tut.

Susanne

Dann hatte ich einen guten Prof.

Susanne

Also ich habe jetzt relativ fest, aber tatsächlich merke ich, dass.

Susanne

Das Spannende an SQL ist das Spannende an Mengenlehre ist.

Susanne

Ich hatte ja in der ersten Klasse noch Mengenlehre.

Dominik

Du musst ja nur so verklären, bitte, was das Mengenlehre ist.

Susanne

Mengenlehre war in der ersten Klasse, du hast da so Ovalen gemalt, einen links, ein rechts, das war deine Menge.

Susanne

Menge mit den roten Plättchen und das war deine Menge mit den blauen Plättchen.

Susanne

So.

Susanne

Und dann wolltest du jetzt wissen, ja, gib mir alle Plättchen, die die drei Ecken haben.

Susanne

Und dann hast du die übereinander gelegt, dann hast du die Schnittmenge.

Susanne

Aus dem roten und dem blauen Plättchen mit der Schnittmenge, die drei Ecken haben.

Die Rotanila.

Nein.

Susanne

Dann hast du da die viereckigen drin und die Fünfeckigen und die Kreise hast du da beides.

Susanne

Die Dreieckigen waren halt die Schnittmenge.

Susanne

Das ist Mengenlehre.

Susanne

Das nennt man auch so, boah, wie heißt das?

Susanne

Kombinatorik heißt das dann im Studium.

Susanne

Oder Butcher Algebra, nee, Kombinatorik ist es.

Susanne

Mit A und B und nicht A oder B und solche Geschichten, genau.

Susanne

Und ich sage immer, SQL besteht ja fast nur aus Mengenlehre.

Susanne

Du hast ja, ne, entweder hast du die Schnittmenge Joinen, ein einfacher Join ist ja ein innerer Join ist ja nichts anderes als die Schnittmenge.

Susanne

Und ein Outer Join ist immer irgendwie eine Menge plus der Schnittmenge.

Susanne

Oder halt irgendwie, je nachdem, wenn du das natürlich negierst, oder gib mir nur das eine oder das andere.

Susanne

Gib mir alle Werte, die aus Tabelle A, die nicht in Tabelle B stehen.

Susanne

Das wäre jetzt auch ein Outer Join mit einem Nicht drin und so weiter.

Susanne

Also es basiert immer irgendwie, kommst du am Ende immer auf Mengenlehre.

Susanne

Also SQL ist ganz viel Mengenlehre.

Susanne

Und jetzt habe ich den Faden verloren, was war deine Frage?

Dominik

Ja, ich wollte kurz, dass du über die Mengenlehre sprichst, weil du gesagt hast, dass die Mengenlehre drinsteht.

Susanne

Aber du hast vorher was gefragt zur SQL.

Also wie man sich das verbunden hat.

Susanne

Achso, ja genau, genau.

Und ich habe halt im Studium und auch später, wenn ich mal junge Menschen ausgebildet habe.

Susanne

Es gab, du hast dieses, entweder du hast dieses logische Verständnis für diese Kombinatorik oder du hast sie nicht.

Susanne

Also ich hatte immer, wenn ich Prüfungen abgenommen habe und bewertet habe, ich hatte nur mal Einsen und Fünfen.

Susanne

Also nur so ungefähr, es gab keine Mitte.

Susanne

Und dann kommen dann so einige Institute auf die Idee, du musst ja jetzt seine Noten nach der Normalverteilung verteilen.

Susanne

Und da ist ja super, du hast nur welche, ich habe es verstanden und nicht.

Susanne

Da kannst du dann auf leider eine Nuance, vielleicht 1,3 oder 1,7 draus machen oder halt, nee, ne?

Susanne

Das ist dann immer sehr schön.

Susanne

Macht man heute zum Glück nicht mehr mit der Normalverteilung, mit den Noten.

Susanne

Wüsste ich jedenfalls nicht, aber ich weiß nicht, ob das angeboren ist oder wie auch immer.

Dominik

Ja, vielleicht wäre es interessant.

Dominik

Vielleicht Leute, die in der ersten Klasse sowas wie Mengenlehre hatten.

Susanne

Das war in meinem Studium, ich habe ja Informatik erst angefangen zu studieren, da war ich schon 28.

Susanne

Und da gab es dann natürlich auch schon Menschen, weil das wurde nur in den 70ern in der Grundschule in der ersten Klasse unterrichtet.

Susanne

Das war eigentlich keine schlechte Idee, muss ich sagen.

Susanne

Aber da haben sich so viele Eltern, also man hat es in Niedersachsen und in NRW unterrichtet, ich weiß nicht wo noch, da haben sich so viele Eltern, da waren die Eltern so massiv dagegen, weil sie das nicht verstanden haben, weil sie ja nicht kannten.

Susanne

Und dann hat man es wieder aufgegeben und jetzt fängt man dann wieder mit Zellen an.

Susanne

Also Zellen kamen erst nach der Mengenlehre so ungefähr.

Susanne

Oder was man heute in der ersten Klasse Mathe macht, ich weiß es nicht.

Susanne

Oder in Rechnen heißt das ja, aber wir hatten halt Mengenlehre.

Susanne

Und im Studium habe ich dann festgestellt, also es gab ja die, die das nicht mehr in der Schule hatten, in der ersten Klasse.

Susanne

Und es gab auch noch einen Teil, der das in der ersten Klasse hatte.

Susanne

Und mir war im Studium aufgefallen, das mit der Kombinatorik, die ist natürlich viel umfangreicher.

Susanne

Mit diesen ganzen A und B und Oder B und so weiter.

Susanne

Die machst du ja in Mathe im Studium.

Susanne

Und brauchst du ja auch dann später zum Beispiel für SQL, Kombinatorik.

Susanne

Und die hatten weniger Schwierigkeiten damit, die standen da.

Susanne

Das ist ja wie Mengenlehre, so ungefähr.

Susanne

Es ist nur ein bisschen, das sind nicht mehr nur Rot und Blaue und bunte Plättchen hast und Dreiecke und Vierecke, sondern du hast dann auch komplexere Sachen da hast.

Susanne

Aber im Grunde, während die anderen, die Jüngeren, hatten damit mehr Probleme, weil sie das halt nicht schon aus der ersten Klasse kannten.

Susanne

Das war mir so aufgefallen in der Mengenlehre.

Dominik

Nein, die Frage deswegen, also weil vielleicht konnte man sich ja vorbereiten zu sowas, indem man nochmal sich so diese Basismengenlehre, wie du sagtest, mit den unterschiedlichen Schnittmengenkreisen vor Augen führt, um dann zu überlegen, wieht das in der SQL aussieht, weil so jemand, der sowas noch nie gesehen hat, der irgendwie einen komplexeren Autodreunten ein bisschen sacheln sieht, der ist vielleicht so ein bisschen.

Susanne

Deswegen mache ich ja auch bei den, ich habe da auch eine Folie für, wo ich wirklich das wie in der Schule mit den Ovalen, ich nenne das immer Aja, mit den Ovalen und Schnittmenge und was ist A und B, A oder B oder A und nicht B und solche Geschichten.

Susanne

Sehr lustig ist immer, dass das funktioniert bei MariaDB nicht so ohne weiteres.

Susanne

Es gibt mir dann alles aus A und B, nur nicht die Schnittmenge.

Susanne

Das ist dann ein lustiges Query.

Susanne

Wenn man das in einer Anwendung braucht, ist dann was anderes, aber nur damit man dann mal die Logik dahinter aufersteht.

Susanne

Aber es gibt halt, meine, ich weiß nicht, ob das eingeboren ist oder woher.

Susanne

Es gibt ja auch beim Programmieren, wenn ihr so Algorithmen habt in einer Programmiersprache.

Susanne

Da ist mir auch schon aufgefallen, dass es da Menschen gibt, die können der Logik nicht folgen.

Susanne

Warum auch immer.

Susanne

Die haben aber dann ganz, ganz tolle andere Fähigkeiten, die ich nicht habe.

Susanne

Aber das ist dann.

Naja.

Susanne

Und nein, aber bei SQL ist es wirklich so, du kannst da nicht so viel falsch machen.

Susanne

Also wenn du es verstanden hast, hast du es verstanden.

Susanne

Und was du dann vielleicht machen kannst, ist diese Normalisierung, was du vorhin schon sagtest, aber auch das, wenn du das einmal verstanden hast, dann ist das nicht das.

Dominik

Vielleicht jetzt richtig Zeit, um nochmal drauf einzugehen, was der Normalisierung überhaupt ist.

Dominik

Da gibt es halt, glaube ich, verschiedene Ebenen von oder Stufen, wie man die machen kann.

Dominik

Also wenn ich das so leihhaft richtig verstanden habe, ist das das Aufbrechen einer ganz komischen Tabelle in die richtige Form, wo halt die einzelnen Tabellen voneinander getrennt werden, wenn Informationen redundant vorhanden sind.

Dominik

Und die verbindet man dann halt über Foreign Keys oder sowas.

Susanne

Also es gibt das jetzt erstmal, ich will es jetzt nicht so ganz mathematisch erklären.

Susanne

Du hast ja es gibt verschiedene Grade von Normalisierung.

Susanne

Es gibt die erste Normalform, die zweite Normalform, es gibt die dritte und noch folgende: Vierte, fünfte, sechste, ich habe keine Ahnung.

Susanne

Normalerweise normalisierst du nach der dritten Normalform.

Susanne

Das ist so das übliche, ich kann dir jetzt auswendig nicht aus, nicht sagen, was die erste und die zweite ist.

Susanne

Ich muss das jedes Mal nachgucken, wenn ich es, wenn ich es schule, weil du brachst immer nur am Ende die dritte.

Susanne

Im Grunde geht es darum, das ist eigentlich ganz simpel, du möchtest zum einen keine doppelten.

Susanne

Also wenn ich jetzt.

Dominik

Also in zwei Spalten irgendwo eine Adresse steht, dann möchte ich die nicht zweimal drin haben, sondern eine eigene Adresse, eine Tabelle mit Adressen.

Susanne

Ich hätte jetzt gesagt, Stadt.

Susanne

Ich hätte jetzt gesagt, ich hätte es noch weiter runtergebrochen, so Postzahl Stadt, das Klassische, was du so in einer Tabelle hast, aber wir nehmen mal nur den Städtennamen.

Susanne

Ich komme jetzt aus Bielefeld und ich habe vorher mal in Osnabrück studiert.

Susanne

Ich habe mittlerweile einen Anschlag von, haben sie erst vor zwei Wochen in China getestet, von 675.

Susanne

Osnabrück schaffe ich nie richtig zu schreiben.

Susanne

Ich schreibe immer Osaanbrücke.

Dominik

675 ist der Rekord, fand ich nicht?

Susanne

Ja, und Bielefeld schreibe ich auch immer falsch.

Susanne

Und wenn ich jetzt aber irgendwie eine Tabelle habe, wo ich jetzt eine Adresse drin habe.

Susanne

Also ich habe dann irgendwo die Adresse und ich will jetzt alle Leute suchen, die in Bielefeld wohnen.

Susanne

Und ich habe da Bielefeld fünfmal falsch geschrieben, dann finde ich die natürlich nicht, die ich falsch geschrieben habe.

Susanne

Und um das zu vermeiden, macht man halt eine Tabelle Städte.

Susanne

Da hat man nun das Wort Bielefeld einmal drin stehen.

Susanne

Und dann hat Bielefeld vielleicht die ID 33615, weil das die Postzahl ist.

Susanne

Und oder wonach man das auch immer nur bei Städten wäre es Postzahl, wäre eine super ID, kann auch eine andere Nummer nehmen, die 67.

Susanne

Und dann steht halt bei der Tabelle mit der Person unter Stadt nur 67.

Susanne

Und dann kann man das verlinken und sieht dann, ah, die 67 ist Bielefeld.

Susanne

Das ist einfach, das ist eine Sache, damit man sich nicht verschreibt, damit man es nicht irgendwo dann nicht wiederfindet, dass man halt immer dasselbe hat.

Susanne

Und wenn man dann in der Städtetabelle nicht Bielefeld, sondern Bieleflat geschrieben hat, dann ist das halt überall Bielefett.

Susanne

Also das ist das.

Einfach zu ändern.

Jochen

Wenn man es löschen, gibt es Bielefeld plötzlich nicht mehr.

Susanne

So ungefähr.

Dominik

Wie kann das denn sein?

Dominik

Ja, okay.

Susanne

Ich hätte auch Düsseldorf nehmen können, aber Düsseldorf tippe ich nicht so häufig.

Susanne

Da vertippe ich mich noch nicht so häufig.

Susanne

Aber Bielefeld und Osnabrück ist noch schlimmer zu tippen.

Susanne

Du trippst immer Osahnbrücke.

Susanne

Das ist tatsächlich irgendwo so der klassische Tippfehler.

Susanne

Und das andere ist die Sache, dass du das zusammenpackst, was zusammengehört und nicht mehr.

Susanne

Dann nehme ich jetzt den Küchenschrank.

Susanne

Du hast in deinem Küchenschrank vielleicht eine Schublade, wo die Teller drin sind.

Dominik

Oh, da drauf ist noch die Küchenwaage und die Küchenwache ist umbegreht und in die Schale von der Küchenwaage war es noch ein Messbecher.

Susanne

Du hast einen Ort, wo deine Teller sind.

Susanne

Du hast einen Ort, wo deine Gläser sind.

Susanne

Ich hatte mal eine Mitarbeiterin, die hat tatsächlich beim Ausräumen der Spümas.

Susanne

Nein, ich hatte meine Mitarbeiterin, die hat beim Ausräumen der Spülmaschine das einfach immer in irgendeinen Schrank gestellt und dann standen dann die Teller und die Tassen irgendwie so alle durcheinander und ich habe nichts mehr wieder gefunden.

Susanne

Und nein.

Susanne

Also du sortierst ja es noch ein bisschen in deinem.

Susanne

Du sortierst in deiner Küche, ich habe jetzt die Küche genommen, ich hätte auch deinen Kleiderschrank nehmen können.

Susanne

Du sortiert das ja ein bisschen.

Susanne

Und du hast vielleicht einen Schrank, wo nur die Gläser drin sind.

Susanne

Da hast du Weingläser drin, Biergläser drin und so weiter.

Susanne

Aber das ist der Schrank, wo nur die Gläser drin sind.

Susanne

Und dann hast du einen Schrank, dann nehmen wir die ganze Wohnung, da sind nur deine Unterhosen drin.

Susanne

Die schmisch du nicht.

Susanne

So, ne?

Susanne

Wenn du das mischen würdest, wäre das ganz lustig.

Susanne

Aber das ist erstmal so, dass du das so weit runterbringst, dass du das, was zusammengehört, diese Einheit, machen wir mal die Einheit-Teller oder was in diesem Küchenschrank ist.

Susanne

Du kannst auch sagen, ich habe die Küche mit den Küchengeräten, wäre jetzt sowas.

Susanne

Und da habe ich das Schlafzimmer, da liegt das, du hast ja auch nicht unbedingt deine Kleidung in der Küche liegen.

Susanne

Also du kannst auch zimmerweise das machen, je nachdem.

Susanne

Aber dass du diese Einheit hast, in die du das runterbrichst.

Dominik

Aber das finde ich jetzt interessant, weil ich glaube, das ist relativ schwierig, weil ich stelle mir das jetzt so vor, dass da relativ viel Validierung nötig ist, das da reinzubekommen, weil beispielsweise habe ich jetzt einen Schrank, wo Gläser reinkommen, aber ich möchte jetzt dann vielleicht doch teilen zwischen Weingläsern und Biergläsern oder was sagen.

Susanne

Ich kann es ja halt weiterbellen.

Dominik

Aber woher weiß ich denn jetzt, ob was ein Weinglas oder ein Bierglas oder ein.

Susanne

Das hast du ja irgendwo definiert.

Dominik

Ja.

Susanne

Also du kannst es auch anders machen.

Susanne

Wir nehmen mal Autos.

Susanne

Autos haben eine Farbe.

Susanne

Autos haben eine Marke, Autos haben einen Typ und so weiter.

Susanne

So.

Susanne

Und die haben einen Preis.

Susanne

Du willst jetzt so eine Autowebseite machen, wo du dein Auto verkaufen kannst.

Susanne

Jetzt stell dir vor, du packst alles alle Informationen des Autos in eine Tabelle.

Susanne

So, und jetzt will ein Käufer danach suchen.

Susanne

Er möchte jetzt nur in meiner Automarke nur Mercedes haben.

Susanne

Ein bestimmten Typen noch ein bestimmtes Baujahr.

Susanne

Und dann überlegt sich der Käufer, okay, also du musst dann alles aus dieser einen Tabelle raussuchen.

Susanne

Dann überlegt sich der Käufer, naja, eigentlich möchte ich nur diesen Typen haben von dem Auto.

Susanne

Jetzt steht der Typ da immer wieder in dieser Tabelle drin.

Susanne

Du hast ja keine zweite Tabelle, wo der Typ drin steht und hast da nur die Nummern drin.

Susanne

Auch noch fünfmal falsch geschrieben, wahrscheinlich.

Susanne

Mercedes vielleicht auch noch dreimal falsch geschrieben.

Susanne

Du hast alles in einer Tabelle.

Susanne

Das wird sehr, sehr schnell.

Susanne

Wird die Tabelle sehr, sehr breit.

Susanne

Auch bei der Farbe gibt mir alle roten Autos.

Susanne

Frauen suchen ja gerne, habe ich mal gehört, nach der Farbe der Autos.

Susanne

Weiß ich jetzt gar nicht, ob das habe ich noch nie ausprobiert bei solchen Sachen.

Susanne

Gib mir alle roten Autos, aber theoretisch geht das wahrscheinlich.

Susanne

Praktisch geht das wahrscheinlich auch.

Susanne

Aber erstmal wird die Tabelle ziemlich breit und du bist da ein Zug.

Dominik

Also breit hast viele Spalten.

Susanne

Also du hast halt viele Informationen zu dem Auto.

Susanne

Es hat vier Reifen, es hat vielleicht noch die Reifentypen und so weiter und die Reifengröße und was weiß ich, was man da Baujahr und wie alt Tachostand und alles Mögliche.

Susanne

Und wenn das alles in eine Tabelle und dann sucht jemand einen Möchtenkäufer haben, der jetzt bestimmte Eigenschaften da raussucht.

Susanne

Ich kann ja sagen, das wird sehr, sehr groß.

Susanne

Es gab in der Vergangenheit eine Plattform, die was ähnliches gemacht hat.

Susanne

Und die hatten wirklich nur eine Tabelle.

Susanne

Und die haben mit Hardware skaliert.

Susanne

Weil sie das nicht mehr anders skaliert haben.

Susanne

Und die sind auch dann ein wenig in finanzielle Not geraten, weil die Hardware dann irgendwann nicht mehr bezahlbar war.

Dominik

Okay.

Dominik

Immer teurer mehr

Susanne

Geld aufgeschrieben.

Susanne

In der Zwischenzeit waren aber ein paar Kollegen von mir da, die hatten erst, glaube ich, eine Oracle-Datenbank.

Susanne

Ich wusste davon nichts.

Susanne

Als ich dazukam, waren sie dann mittlerweile, weil sie keinen Kurs gegangen waren, von einem großen IT-Unternehmen aufgekauft worden, das ganz viele dieser Plattformen aufgekauft hat.

Susanne

Und ich durfte dann nach London zu diesem großen IT-Unternehmen.

Susanne

Und dann wollten sie, sie wollten damals von MySQL nach PostgreSQL migrieren.

Susanne

Und sie hatten immer noch diese eine große Tabelle.

Susanne

Und ich habe dann gesagt, naja, das liegt nicht an dem Datenbanksystem, was ihr da drunter habt.

Susanne

Das liegt an dem Design eurer Datenbank.

Susanne

Das solltet ihr mal ändern.

Susanne

Ihr werdet mit Postgres genau das gleiche Problem kriegen wie mit Maria.db.

Susanne

MySQL war es damals noch.

Susanne

Und ich bin dann nach Hause gefahren und dann kriegte mein britischer Kollege einen Anruf, der sollte die Consultant verschessen.

Susanne

Hat ja nicht das gesagt, was ich hören wollte, so ungefähr.

Susanne

Ja, schick mal einen anderen und mein britischer Kollege hat dann einen ganz Jungen dahingeschickt, weil er meinte, naja, ich werde auch nichts anderes sagen als du.

Susanne

Und ich habe mich dann ohne überhaupt irgendwie einen Namen zu nennen, weil das ist ja auch immer gefährlich so zu Hause, man hat ja auch Geschäftsgeheimnis und so weiter.

Susanne

Ich habe das dann zu Hause, ich habe mich bei meinem Mann darüber aufgeregt, über diesen Kunden, ohne ihn zu benennen.

Susanne

Ich weiß jetzt nicht, ob mein Mann wusste, bei welchem großen Kunden ich war.

Susanne

Also ich, er wusste jedenfalls nichts von dieser Plattform.

Susanne

Und ohne dass ich das jemals erwähnt hatte, sagte mein Mann dann, das war die Plattform.

Susanne

Ich so, woher weißt denn du das?

Susanne

Und dann hat er mir das erzählt, dass zwei sehr bekannte MySQL-Consultants da damals schon mal waren.

Susanne

Da wollten die von Oracle nach MySQL migrieren und die beiden hatten auch.

Susanne

Der erste hatte gesagt, naja, das liegt nicht an Oracle, das liegt an eurem System.

Susanne

Und dann war der, aber hatte dann bei MySQL dann auch Consultant ist scheiße, dann ist der andere hingefahren, auch sehr namhaft und bekannt.

Susanne

Der hat das dann auch nochmal gesagt und ich glaube, ein dritter war dann auch nochmal da.

Dominik

Der hat gesagt, hatte gehört, was sie vorher beraten hat und gesagt, oh ja, ja, im Leben.

Nee, nee,

das brauchst du gar nicht.

Susanne

Das brauchtest du gar nicht, das war so offensichtlich.

Susanne

Und naja, okay.

Susanne

Und dann hatten die nie wieder was davon gehört, bis ich dann da war.

Susanne

Und ich kriegte dann am Ende einen Anruf von dem großen Unternehmen und wurde dann gefragt, nur so irgendwie eine Stufe höher, was denn da los war.

Susanne

Und dann habe ich das erzählt.

Susanne

Und dann haben die wirklich diese Plattform ein halbes Jahr aus dem Netz genommen und komplett neu programmiert.

Susanne

Die Plattform gibt es heute noch, ist aber komplett anders.

Susanne

Aber das passiert, wenn du alles in einer Tabelle hast und wenn du da so viele Informationen drin hast, wenn du dann so Spalten, wenn du dann 250 Spalten hast in einer Tabelle, das macht auch nicht mehr wirklich Spaß, die Informationen daraus zu suchen.

Susanne

Die willst du auch nicht mehr lesen und nicht mehr warten.

Dominik

Ja.

Susanne

Das ist, äh, MariaDB hat irgendwo ein Spaltenlimit bei, ich weiß nicht wo, 256 oder so.

Susanne

Wenn du das erreichst, ich habe so Tabellen gesehen.

Susanne

Wenn das dann nur noch hoch scrollt an Spalten, das ist überhaupt nicht mehr wartbar.

Susanne

Also, mal abgesehen davon, dass da ganz komische Artefakte passieren, aber irgendwann denkst du dir schon von dir aus, okay, es ist vielleicht sinnvoll, diese Tabelle mal mehrere aufzuteilen.

Ja, das vielleicht unter Kategorien zusammenfassen.

Susanne

Ja, genau.

Susanne

Also, und das Normalisieren heißt einfach, du fasst es irgendwo so zu Kategorien zusammen oder das zusammen, was zusammengehört.

Susanne

Wenn du jetzt das klassische Wikipedia-Beispiel zur dritten Normalform oder überhaupt zu den Normalformen ist immer Musik, die haben dann immer Interpreten, Alben und Songtitel.

Susanne

Kann man jetzt den Lieblingsinterpreten draus machen, was auch immer.

Susanne

Wenn du jetzt natürlich eine Tabelle hast, da steht dann fünfmal Helene Fischer, dumm, fünfmal die Ärzte, kenne ich mehr Titel.

Susanne

Und da steht dann 127 Mal oder wer weiß, wie viele Songs die Ärzte gemacht haben, da drin.

Susanne

127 Mal die Ärzte und daneben steht dann, sagen wir, erstmal, wie viele Songs sind auf so einem Album?

Susanne

30 mal das eine Album, dann das andere Album und dann die Songtitel nochmal.

Susanne

Dann hast du schon 127 Zeilen, wo du die Ärzte doppelt zigfach drin hast.

Susanne

Das machst du ja nicht nur mit einem, das machst du dann ja mit deiner ganzen Plattensammlung oder deiner ganzen Song-Sammlung und dann hast du eine riesige Tabelle.

Susanne

Also, was machst du da?

Susanne

Du machst natürlich als erstes mal, du nimmst erstmal die Interpreten raus, machst du von der eigene Spalte, hast eine Interpretenspalte.

Susanne

Kannst du leider nochmal die Adresse oder wo du dann die Autogrammkarten kriegst oder was auch immer, je nachdem, warum du jetzt die Musiktitel sammelst, noch mit dazu parken, einen Ansprechpartner oder ähnliches von der Band.

Susanne

Aber die packst du in eine Tabelle, die kriegen eine ID.

Susanne

Diese klassische Personen-ID, die lässt du automatisch generieren, haben die halt so, was weiß ich, die Ärzte ist vielleicht Nummer eins.

Susanne

Und dann steht in deiner Song-Tabelle nur noch die Eins drin für die Ärzte und die 2 für Rammstein und die 3 für irgendwas.

Susanne

Und die 27 für Helene Fischer oder sowas in der Richtung.

Susanne

Also hast du noch die Nummer und du kannst dann nachgucken, wenn du dann in der Tabelle bist, okay, interprete Nummer, was hatte ich vorhin?

Susanne

Drei?

Susanne

Und dann guckst du in der anderen Tabelle nach, Nummer 3 ist, habe ich vergessen.

Susanne

Hatte ich überhaupt eine 3?

Susanne

Weiß ich nicht mehr.

Susanne

Aber eine 2 bei Rammstein, das weiß ich noch nicht.

Dominik

Ja, die 3 ist ein Seputura irgendeine Metalberg.

Susanne

Ja, egal.

Susanne

Nur dass du dann halt nur noch über die Zahlen das machst.

Susanne

Dasselbe machst du mit den Alben.

Susanne

Weil ja auf so einem Album, du willst ja den Titel haben am Ende, ne?

Susanne

Wir sind ja bei dem Titel im Grunde.

Susanne

Aber die Alben, auf so einem Album ist ja immer auch mehr als ein Song drauf.

Susanne

Also lagerst du die Alben auch aus.

Susanne

Da kannst du noch eine Verknüpfung machen, Album und Band, sondern Zwischentabelle.

Susanne

Dass du das Album und die Band noch zusammenlegst, dann hast du auch noch das, hast du nicht bei dem Album immer noch die Band stehen, sondern du machst eine Zwischentabelle, wo du das Album und die Band reinpackst und dann hast du dann ab 18 ist vielleicht bei den Ärzten, das erste Album hat die ID 1, ist von den Ärzten und dann steht dann in dieser Zwischentabelle nur noch 1.1 drin.

Susanne

Album 1, Interpret 1.

Susanne

Und dann kannst du das so zusammenfügen.

Susanne

Ziehst du halt alles ein bisschen auseinander und dann hast du halt nur noch die Tabelle mit dem Titel, wo dann drauf steht Album 1, Band 1.

Susanne

Achso, da hättest du es sowieso drin, dann brauchst du es gar nicht.

Susanne

Oder nur Album 1 und dann kannst du es dann nochmal weiter verlinken.

Susanne

Wenn du da jetzt nochmal das doppelt, aber das macht man schon, dann denormisiert man dann schon mal leicht.

Susanne

Aber das wäre so, dass du es ein bisschen sortierst, dass du es halt kleiner machst.

Susanne

Wenn du es aber zu klein machst, es macht keinen Spaß, Kombinationen aus Datenbanken zu suchen, wenn du dabei weißt, wie viele Tabellen hast.

Susanne

Also bei über 8 wird das irgendwo spannend.

Susanne

Es macht dann auch nicht mehr wirklich Spaß, die alle zu verjoinen.

Susanne

Dann fängst du dann an, gezielt zu denormalisieren.

Susanne

Ich hatte das jetzt gerade schon gemacht, indem ich dann halt gesagt habe beim Titel, okay, das ist auf Album 1 und auf dem Interpreten 1.

Susanne

Es hätte ja gereicht, der Interpret steht ja schon mal beim Album.

Susanne

Den hätte ich gar nicht so doppelt drin gehabt.

Susanne

Aber das wäre so eine leichte Denormalisierung schon.

Susanne

Und das erklärt man auch immer gerne.

Susanne

Beim Kochbuch habe ich das früher erzählt.

Susanne

Niemand sucht nach Teelöffel.

Susanne

Das heißt, du kannst bei der Menge auch sagen, 200 Teelöffel, äh, 200 Teelöffel, 200 Gramm oder so.

Susanne

Da ist es auch egal, ob du Gramm groß, klein oder nur GR schreibst oder wie du Teelöffel abkürzt, ist auch völlig egal, weil da sucht keiner nach.

Susanne

Heutzutage ist es aber nicht mehr so, dass du in die Menge beim Kochbuch einschreiben kannst, 300 Gramm Mehl.

Susanne

Du hast Mehl und dann 300 Gramm, wenn du jetzt die Zutaten zusammenmischt, weil du ja diese Funktion hast, ach, gib mal jetzt für zwei Personen oder drei und teilmann, dann brauchst du plötzlich nicht mehr 200 Gramm, sondern 150 oder so.

Susanne

Da musst du dir schon ein bisschen mehr wieder überlegen, aber vom Prinzip her, wo du da mal gezielt Bottlenecks auch dir angucken kannst und sagen kannst, okay, den normalisiere ich jetzt bewusst.

Susanne

Du machst aber nicht mehr als die dritte Normalform.

Susanne

Alle anderen sind eher universitär und unübersichtlich.

Susanne

Also so ein bisschen.

Dominik

Also die ein bisschen tiefer gehen halt, wo dann alles geht.

Susanne

Ah, also die dritte Normalform ist eigentlich das, was du am Ende brauchst.

Susanne

Und du brauchst immer einen Schlüssel.

Susanne

Jede Datensatz sollte einen Schlüssel haben.

Susanne

Es ist ganz lustig, wenn du Datensätze in einer Datenbank hast, die keinen Schlüssel haben.

Susanne

Und da steht dann in der Datenbank fünfmal drin, Volkermeier, Adolf Straße 27 in Düsseldorf.

Susanne

Jetzt hast du den Datensatz aus Versehen fünfmal erfasst.

Susanne

Er sieht aber identisch aus, komplett.

Susanne

Fünfmal.

Susanne

Du willst, aber du wirst ihn eigentlich nur einmal haben.

Susanne

Du musst ja jetzt die vier da rauskriegen.

Susanne

Wie kriegst du denn die da raus?

Susanne

Das ist schon eine lustige Aufgabe, passiert manchmal.

Susanne

Ich weiß, wie man es rauskriegt.

Susanne

Aber alleine schon deswegen ist es sinnvoll, dem Ganzen auch noch eine Kennung zu geben, irgendeine Eindeutigkeit.

Susanne

Und deswegen hast du meistens dann, meistens heißt die Spalte dann auch ID.

Susanne

In den meisten Datenbanken heißt die dann ID, dass du eine Spalte davor sitzt, wo du dann eine Kennung rein hast.

Susanne

Und dann hast du dann, Nummer 1 ist Klaus Meier, Nummer 2 ist Klaus Meier, 3 ist Klaus Meier, 4 ist 5 ist Klaus Meier, dann kannst du dann sagen, Delete alle, wo Name Klaus Meier ist oder alle mit ID 2 bis 4.

Susanne

Könntest du ja auch so machen.

Susanne

Dann hast du da eine Eindeutigkeit, jede Spalte sollte eine Einligdeutigkeit haben.

Susanne

Jeder Datensatz sollte zumindest in einer Spalte eindeutig identifizierbar sein.

Susanne

Und das ist dann meistens der primäre Schlüssel, über den du die auch finden kannst und über den du diesen Datensatz auch bearbeiten kannst, über diesen alleinigen.

Susanne

Das ist, dass noch was dazukommt.

Susanne

Und dann hast du die dritte Normalform, du brauchst ein Primär-Key und du musst Primary Key, Primär-Key heißt das auf Deutsch, ne?

Susanne

Primärschlüssel heißt das so.

Susanne

Und du solltest es halt so ein bisschen ordentlich sortieren, dass du nicht alles in einer Tabelle hast.

Dominik

Okay, und wenn man dann davon weggeht, dann schreibt man halt alles rein.

Dominik

Was?

Dominik

Ich würde sagen, eine Malisierung haben wir, glaube ich, soweit verstanden, oder?

Jochen

Ja, also, genau, also ich meine, irgendwann, also ich habe dann irgendwie meistens, wenn du dann bei irgendeinem neuen Problem oder so, da oft dann angefangen, so ein Entity-Relationship-Diagramm hinzumalen oder so.

Jochen

Und das, äh, genau, das macht man dann eigentlich meistens irgendwann, hat man das dann so ein Gefühl, wie das dann aussehen kann.

Susanne

Tatsächlich auch.

Susanne

Also dass ich mir das grob auf irgendeinem Schmierzettel aufmale und wenn ich es nicht, wenn es nicht nur drei Tabellen sind, das kriege ich im Kopf und hin.

Susanne

Aber tatsächlich mache ich das auch tatsächlich, dass ich mir das dann teilweise mal auf dem Schmierzettel überlege.

Susanne

Wie ich da eigentlich immer dran gehe, ist, wenn ich eine Datenbank neu aufsetze, ist, ich gucke erstmal nach, was muss ich überhaupt alles an Informationen in dieser Datenbank speichern.

Ja, genau, also.

Susanne

Also wirklich so als reines Sammelsurium, das ist natürlich für andere Firmen programmierst du das so, musst du das erstmal aus den ganzen Besprechungen raus haben, was brauchen die überhaupt alles in der Datenbank.

Susanne

Dann musst du noch gucken, meistens für die Firma mit, was ist überhaupt erlaubt, abzuspeichern.

Susanne

Gibt es ja auch sowas, sowas wie diesen bei der Kreditkarte, diesen, nee, bei der EC-Karte hinten die Nummer, die darfst du, glaube ich, gar nicht mit abspeichern.

Susanne

Oder solchen Sachen.

Susanne

Dass man da nochmal guckt und man muss ja immer versuchen, man hat ja in der Regel nicht mit IT-LAN zu tun oder mit technischen Menschen, sondern mit anderen, aus deren Sprachgebrauch herauszufinden, was davon kann ich denn überhaupt als Daten abspeichern, als Information.

Susanne

Und das sammle ich dann einfach auch immer erstmal ganz wild durcheinander und sortiere das dann.

Susanne

Und dann überlege ich mir, wo könnte ich jetzt was davon hinpacken und was gehört da wie zusammen.

Susanne

Und so baue ich das Ganze auf und dann gucke ich, wie kann ich das dann vernetzen.

Susanne

Und auch ich mache es so, ich mache auch immer erstmal die dritte Normalform und gucke dann, gut, manchmal sieht man dann schon auf Anfang an, okay, da könnt ihr ein Bottleneck haben, da können Sie was reinhaben.

Susanne

Ich kann mal ein Beispiel nennen für ein Bottleneck, eine Spielefirma mit Online-Spielen.

Susanne

Die haben mehrere Online-Spiele.

Susanne

Und natürlich hat der Nutzer nur einen Account.

Susanne

Und dann hat er auch Nick der Nutzer.

Susanne

Aber die sind hinterher dazu übergekommen, weil jetzt von diesen mehreren Millionen Nutzern musste natürlich immer die Account-Tabelle aufgerufen werden, um dann irgendwas über den Nutzer rauszufinden.

Susanne

Bei den Spielen, so darf der das Spiel, wie weit ist der der Spielstand oder so weiter.

Susanne

Und die mussten dann immer den Nutzer, und wenn da auf eine Tabelle immer laufend zwei Millionen Sachen draufkommen oder noch mehr Spieler, ist das natürlich etwas schwierig.

Susanne

Und dann sind die hingegangen und haben die nix der Spieler dann nochmal in den Spielen hinterlegt.

Susanne

Dass die nicht immer auf die eine Tabelle zugreifen konnten.

Susanne

Deswegen ist das ganz häufig so, Passworte ändern ist meistens einfach.

Susanne

Und ganz viele, ich weiß nicht, ob es immer noch so ist, ich spiele so selten, aber den Nick ändern ist immer etwas schwieriger und aufwendiger.

Susanne

Das liegt daran, dass das dann nicht nur in der einen Tabelle, sondern weil die den nochmal denormalisiert haben und zwar aus Absicht, weil das einfach sonst zu viel wird auf einer Tabelle.

Dominik

Okay, da muss man dann tatsächlich zurückgehen auf diese Tabelle gucken.

Susanne

Ja, ja, und dann dann, deswegen ist so ein Nick-Ändern bei so Spielen häufig ein häufiger Mal so ein Problem gewesen, eine Zeit lang.

Susanne

Ich weiß nicht, ob es immer noch so ist.

Susanne

Aber das wäre so ein Beispiel für eine gezielte Denormalisierung.

Susanne

Aber das ist halt das.

Dominik

Ja, also dann, wenn ganz viele Zugriffe auf eine Tabelle sind, dann muss man vielleicht drüber nachdenken, ob man die

vielleicht nicht.

Susanne

Was ich auch mal aus Versehen denormalisiert hatte, war so eine Stempelu Datenbank.

Susanne

Da habe ich einen Start und einen Stopp.

Susanne

Stempeluhr ist ganz einfach.

Susanne

Ich habe eine Startzeit, ich habe eine Stoppzeit.

Susanne

Und ich habe dann noch clevererweise die Differenz mit abgespeichert, weil das war dann einfach okay, wenn ich das dann, wenn ich Stopp sage, kann ich auch gleich nochmal eben schnell die Differenz Stopp minus Start ausrechnen und das auch mit abspeichern.

Susanne

Das war dann auch meine Riesenrettung, weil ich habe dann als Admin tatsächlich mal irgendwo ganz schnell wollte ich, obwohl es da Skripte für gab, noch irgendeine Stoppzeit nachtragen und habe die Werkklausel vergessen.

Jochen

Und dann alle geupdatet.

Genau.

Jochen

Auch komisch, warum dauert das Update dann so lange?

Susanne

Na, das ging relativ schnell, das war ein guter Server.

Susanne

So viele Mitarbeiter waren das nicht, aber dann so, ja, die Stempel lief auch erst irgendwie so zwei Jahre, also das war nicht nur schlimm.

Susanne

Ja, aber zum Glück, weil zum Glück gab es die Differenz noch.

Susanne

Also konnte ich dann ganz schnell mal ein Update fahren, mach mal Stab plus Differenz und dann hatte ich wieder die richtige Stoppzeit drin.

Susanne

Also das kann auch mal passieren.

Susanne

Wobei ich da auch dachte, okay, eigentlich ist das ja, hättest du die Differenz ja gar nicht gebraucht, aber ich fand das damals sinnvoll, sie mit abzusprechen und ich errate das auch beim Stimmblo jeden ist da mitzumachen.

Dominik

Doppelt hätte besser dann dir.

Susanne

Nee, das ist es auch teilweise, wie du es in der Anwendung brauchst.

Susanne

Wenn du immer Differenz brauchst brauchst, dann brauchst du auch nur die Differenzabfragen und musst nicht immer Start und Shop abfragen später in der Anwendung.

Susanne

Ja, genau.

Susanne

Das ist dann auch noch was, das musst du ja auch noch wieder ein bisschen mit dazu tanken.

Susanne

Und du musst natürlich heutzutage auch so ein bisschen Sicherheit, Datenschutz und was weiß ich, was mit berücksichtigen.

Susanne

Deswegen hast du auch ganz viel in den Tabellen, was jede Abteelle noch last updated und so weiter mit in jeder Speicher.

Dominik

Updated.

Susanne

Ja, ja, irgendwie sowas.

Susanne

Oder hast du noch eine History-Tabelle, wo die alten Werte reinkommen oder ähnliches.

Susanne

Das hast du ja auch noch.

Dominik

Ein Model

History Tracker.

Susanne

Ja, das hast du ja auch bei Preisen.

Susanne

Wenn du jetzt ganz normal so eine Verkaufstabelle machst, dann hast du ja auch bei Preisen häufig wie wenn Preis änderst, solltest du ja den alten Preis ja auch nochmal irgendwo sie.

Ja, schon praktisch, dann kann man dann noch in die Entwicklung gucken.

Susanne

Ja, nicht nur das, weil du änderst vielleicht heute den Preis, aber es haben noch nicht alle die Rechnungen bezahlt und dann brauchst du ja noch in einem Jahr solche Geschichte.

Dominik

Das ist lustig, es gibt auch Unternehmen, da wird dann der Preis bezahlt, der jetzt gerade aktuell gilt.

Susanne

Das ist auch lustig, was auch immer mal wieder passiert, ist so ja für die Schlüssel, dass dann die Namen genannt werden.

Susanne

Ich hatte mal eine Firma, die hätte wirklich bei den Mitarbeitern als Schlüssel die Namen.

Susanne

Ich so, was macht ihr denn, wenn ihr Mitarbeiter habt, die gleich heißen?

Dominik

Das ist ja minus zwei.

Susanne

Haben wir nicht, stellen wir nicht ein.

Susanne

Also das sollte man natürlich nicht machen, sondern weil bei Mitarbeitern, also bei sowas nimmt man meistens auch die Kennung.

Susanne

Es gibt natürlich auch natürliche Schlüssel.

Susanne

Ich weiß nicht, ob Autos jetzt das Kfz-Zeichen unbedingt sinnvoll ist, als Kennung zu nehmen, aber es gibt halt so Schlüssel, so ISBN-Nummern oder sowas, die könnte man auch als Schlüssel nehmen.

Susanne

Oder wenn man jetzt die Postleitzahlen hat oder Postleitzahlen sind auch super Schlüssel bei Städten oder ISP.

Was ist das denn von

Jochen

den Daten dann?

Jochen

Das ist schon sehr sinnvoll, wenn das so eine Ganzzahl ist, irgendwie jedenfalls.

Jochen

Je nachdem, was man für einen Index verwenden will, vielleicht da drauf.

Jochen

Aber so im Normalfall denke ich schon, dass es vielleicht nicht so unpraktisch ist.

Jochen

Ja, das ist halt so eine Frage.

Jochen

Das wäre eine interessante Frage.

Jochen

Also irgendwie sehe ich in letzter Zeit sehr häufig, dass Leute UI-IDs verwenden, irgendwie automatisch.

Susanne

Ich nehme gerne auch den Unix-Timestamp für bestimmte Dinge auch.

Jochen

Ja, also irgendwie in der JavaScript-Welt ist das halt so total super, was ich in gewisser Weise verstehen kann, weil da hat man ja oft irgendwie nur das, wenn man jetzt IDs erzeugen möchte, dann will man ja, dass sie eindeutig sind, hat aber keine zentrale Datenbank, möglicherweise.

Es gibt

Susanne

halt diese Sache bei Postgres bei Maria, die wir uns so weit haben.

Susanne

Sogar im Standard gibt es denn da ein Typisch Serial, der soll einfach immer einen hochzählen.

Susanne

Und das kann man natürlich machen.

Susanne

Und wenn das völlig egal ist, dass du eine Nummer hinterher hast, nimmst du den und zählst dann einfach immer.

Susanne

Dann zählt der automatisch beim Einfügen einen hoch und dann hat das Ding eine eindeutige ID.

Auto-Increment dann ja.

Susanne

Ja, Auto-Increment heißt das bei MySQL, bei PostgreSQL, nimmst du den Datentyp Serial oder genau, und dann macht er das automatisch.

Jochen

Ja, also ich weiß nicht, ich habe dann irgendwann mal Benchmarks gesehen.

Jochen

Also ich meine, das macht das halt, weil einfach Yu Yo-ID ist halt so riesig.

Jochen

Das heißt, wenn du, wenn du das dann tatsächlich als Primary Key hast, dann macht das halt Joints bei Postgres.

Jochen

Das letzte, was ich gesehen habe, so viermal langsamer oder sowas.

Jochen

Bei den meisten ist das halt wurscht, weil irgendwie Datenbank ist vielleicht leider eh nicht, das Bottleneck, aber also ich meine, es kostet halt viel mehr Speicher und es macht Dinge langsamer, daher tendiere ich immer dazu zu sagen, hey, lieber eine Zahl nehmen.

Jochen

Und dann, wenn man sowas haben will, wie so eine Eigenschaft will man ja oft haben, dass man nicht sehen kann, wann ein Datensatz eingefügt worden ist, weil bei einer Zahl kann man das natürlich sehen oder welche miteinander zusammenhängen oder so, dann kann man sowas wie Hash-IDs im Frontend verwenden, wo man das dann, wo man die IDs hasht, aber das sozusagen den Hash in der Datenbank zu verwenden, weiß ich nicht.

Susanne

Ich tatsächlich häufiger mal als Kundennummern oder so auch Timestamps gesehen habe.

Susanne

Genommen ab.

Susanne

Das ist natürlich, wenn du dann so ein Support am Telefon, nennen Sie mir mal Ihre Kunden-ID und dann fängt er an, so ein Unix-Timestamp zu lesen nimmst.

Susanne

Gut, du erkennst es als Laie nicht als Timestamp.

Susanne

Da musst du schon Freak zu sein, dass du raffst, dass das ein Timestamp ist, von wegen Eindeutigkeit und schwer zu raten, aber ist halt auch eindeutig, dass du dann irgendwie so in derselben Sekunde mehrere Kunden anliest, ist dann doch schon schwierig.

Susanne

Also so viel.

Susanne

Nee, kommt auf dein Business drauf an.

Susanne

Kann natürlich sein, im Online-Business würde ich das vielleicht jetzt nicht machen, den Timestamp nehmen, aber wenn du jetzt so eine normale Firma hast.

Susanne

Dann John, also das kannst du auch machen oder wie du dir noch immer generierst.

Susanne

Du musst dir halt was überlegen.

Susanne

Und ganz häufig bei den Tabellen ist es einfach automatisch hochgezählt.

Dominik

Macht wahrscheinlich dann Sinn.

Susanne

Und wie gesagt, Postleitzahlen sind recht eindeutig.

Dominik

Oh, aber das ist doch eine interessante Sache, weil was mache ich denn jetzt, wenn ich die Postleitzahlen-Eingabe nicht kontrollieren kann, weil ich die irgendwie herbekomme.

Dominik

Und dann hat irgendjemand dann D-Postleitzahlen angegeben oder sowas.

Dominik

Und dann habe ich ja das Problem, dass ich dann doppelt habe quasi.

Susanne

Naja, das kommt ja darauf an, wie du die Postleitzahlen in der Datenbank abgelegt hast.

Dominik

Ja, du in Waler.

Dominik

Ja, nein, dann geht es halt kaputt an der Stadt.

Susanne

Also ich würde sowas ja prüfen in der Software, bevor ich es an die Datenbank schicke und die Datenbank prüft es und wirft es dir zurück, weil.

Susanne

Das ist einfach.

Susanne

Weil ich muss ja erstmal, also ich nehme die Daten entgegen, also die Software.

Susanne

Jetzt in eurem Fall in Python geschrieben, die nimmt die Daten entgegen.

So.

Susanne

Jetzt nimmt es die Daten so, wie sie sind und schmeißt sie in die Datenbank.

Susanne

Die Datenbank hat, äh, kann ich nicht einfügen, falscher Datentyp oder was auch immer.

Susanne

Gibt dann, erstmal habt ihr eine Verbindung aufgemacht, die sind bei Postgres relativ teuer.

Susanne

Da rein.

Susanne

Die gibt dann zurück, kann ich nicht.

Susanne

Ihr kriegt den Fehler, behandelt den Fehler wieder in Python.

Susanne

Das ist doch dann sinnvoller, bei sowas wie Postszeitzeit, das gleich in Python zu prüfen.

Susanne

Oder auch beim Geschlecht oder sowas.

Dominik

Das Problem ist halt dann die Frage, ob ich jetzt wirklich alle Ausnahmen irgendwie abfangen kann, die sich irgendwie ausdenken kann.

Dominik

Oder das halt alles runterbreche.

Dominik

Oder ob ich sage, ich mache da einfach ein Textfeld draußen, das ist mir egal und dann ist halt dann die Identlichkeit.

Susanne

Aber was ich bei Postseitzeil machen würde, ist, die gibt es ja als CSV, die würde ich ja einmal importieren und dann würde ich mir die Assist, dann kann er die auswählen.

Dominik

Also die skripte, ja, okay, Toy Sweet, ja gut, aber.

Ja.

Ja, aber wenn

Jochen

das Produkt ist, ist halt schon.

Susanne

Oder die Stadt anfangen einzugeben und dann zeichnet der automatisch das.

Dominik

Na gut, aber da muss ich ja das Formular schon in der Hand haben quasi.

Jochen

Ja, aber da gibt es halt unterschiedliche Sichten.

Jochen

Also ich meine, aber ich finde das Problem deswegen schön, weil das halt vielleicht klar macht, dass das alles nicht so ganz einfach ist.

Jochen

Also ich meine, aus einer Datenbanksicht kann ich mir vielleicht eine ideale, ich habe auch, das hat wahrscheinlich jeder schon ein paar Mal gemacht, aber irgendwie so versucht, normalisiert Adressen zu speichern.

Jochen

Und dann, wenn man das aber dann benutzt, dann stellt man fest, so, uh, das gibt aber ganz viele Fälle, die passen dann halt nicht.

Susanne

Mannheit.

Susanne

Mannheit.

Jochen

Irgendwelche halligen Dinge, die halt irgendwie nicht so richtig da reinpassen wollen.

Jochen

Also dann, wenn man dann sich mit Leuten unterteilt, die dann aus dem Web-Dings da drauf gucken, die sagen dann eher so, ja, okay, du kannst das ja vielleicht in der Datenbank so speichern, aber wenn du es zum Beispiel dann hinterher irgendwie Leuten anzeigen oder ausdrucken oder sonst irgendwie, dann nimm halt immer irgendwas, was reiner Text ist, weil alles andere geht eh nicht.

Jochen

Alles andere kannst du eh nicht machen, weil es funktioniert hinten und weiter.

Susanne

Also was ich tatsächlich mache, ist, ich mache einfach mal nur Adresse 1 bis 6.

Susanne

Sechs Felder.

Susanne

Da können die reinschreiben, was sie wollen.

Susanne

Also so.

Susanne

Du kannst es ja dann irgendwie prüfen.

Susanne

Also, ich weiß nicht, wie du es prüfst.

Dominik

Irgendwie Rack-Exsen, wenn es nicht matcht, dann irgendwie Error, oder?

Susanne

Also du kannst die Ländercodes kannst du natürlich, ich würde auch sowas wie Postzahlen nochmal extra vielleicht, die kannst du ja importieren.

Ja.

Susanne

Für Deutschland ja.

Susanne

Hast du natürlich, wenn du international bist, dann auch wieder.

Susanne

Aber ist ja mal so Straßen.

Susanne

Mannheim hat ja die Quadrate T633, habe ich mal drin gewohnt, glaube ich, und so.

Dominik

Aber das geht halt auch nur dann, wenn ich halt den Input wirklich kontrollieren kann.

Dominik

Wenn ich halt irgendwas bekomme und das muss halt dann da ins Postleitzahlenfeld rein, dann ist das natürlich schwierig.

Susanne

Die Frage ist,

wofür brauchst du.

Jochen

Wofür willst du das unbedingt in das Postleitzahlen?

Jochen

Warum willst du da unbedingt irgendwas reintun, was keine Postleitzahl ist?

Dominik

Weil ich die Adresse anlegen muss, um eine Bestellung anlegen zu machen.

Ja, aber dann

Jochen

tu doch die Adresse in ein Textfeld.

Ja, genau.

Dominik

Ja, ja.

Jochen

Dann meine ich ja.

Jochen

Und dann kannst du ja versuchen, eine Postleitzahl zu extrahieren oder so.

Dominik

Ja, oder die Postleitzahl kommt direkt ins Textfeld.

Susanne

Die Frage ist ja, wofür brauchst du diese Adresse?

Jochen

Genau.

Dominik

Ja, nein, also halt nur schwierige wird, hinterher ist halt Filtern von Adressen zu sein.

Susanne

Wenn du ein Verkäufer bist, der etwas online verkauft und du brauchst jetzt die Lieferadresse, um das dem Kunden zu liefern, da hat der Kunde ja schon ein gewisses Interesse dran, das richtig zu verändern.

Dominik

Dann liegt halt das Textfeld, dann kommt das halt auch an.

Dominik

Aber wenn ich jetzt dann hinter an der Analyse hingehen will, in welchem Postarzahlengebiet habe ich denn jetzt wie viel geliefert beispielsweise, dann ist halt dann das Problem, dass die Textwelte halt nicht mehr halt.

Jochen

Ja, aber dann ist halt die Frage, wie wichtig ist es, bis auf die letzte Adresse stimmt und dann.

Dominik

Genau, da muss ich hier dann halt ein Filter überlegen, wie ich das dann wieder rausgehe.

Susanne

Dann ist auch die Frage, ob du diese Analyse überhaupt fahren darfst oder ob das gegen die Datenschutzrichten für dich ist.

Dominik

Ja gut, aber das ist ja ein anderes Problem.

Dominik

Im Zweifel hat man ja berechtigte Interessen und dafür eine jeweilige Datenschutzvereinbarung.

Dominik

Hatte bei Business to Business-Kunden am meisten schon.

Susanne

Ja, das ja.

Susanne

Aber ich habe die hier gleich aufgegessen.

Dominik

Das ist halt lecker.

Susanne

Nein, aber das ist so dieses, ähm, nee, aber tatsächlich, ich habe das auch jetzt schon mehr erfahren.

Susanne

Ich habe dann mal angeguckt, was passt denn auf dem Briefkopf?

Susanne

Ich glaube, du hast sechs Zeilen, du hast fünf.

Susanne

Also ein normaler Briefkopf hat immer fünf oder da habe ich immer, mir heißt die Adresse 1, Adresse 2 oder ADR 1, 2, 3, 4, 5, 6, weil mir ist es doch auch völlig egal, ob der Name der Kunde jetzt ganz oben steht oder in der zweiten Zeile.

Susanne

Der Kunde wird ja wissen, wie seine Rechnung ist, beziehungsweise wie seine Adresse ist.

Susanne

Und wenn der was geliefert haben will, hat der auch ein entsprechend großes Interesse, dass das ankommt, dass er seine Adresse schon richtig da eintippt.

Susanne

Und dann schickst du ihm ja auch nochmal eine E-Mail, bevor du das lieferst und so weiter und so fort.

Susanne

Bei Rechnungsadressen.

Dominik

Ja, ich glaube,

das ist wurscht.

Susanne

Also da ist das ja, die schickst du ja auch selten noch mit der Post.

Dominik

Ich glaube, das Normalisierungsthema würde ich dann damit auch abschließen wohl.

Dominik

Und ich würde gerne noch zu was anderem überkommen.

Dominik

Und zwar könnt ihr euch jetzt aussuchen, ob ihr erst Transaktionen sprechen wollt oder Verbindung oder über No SQL wie es SQL.

Dominik

Am Ende wollte ich mir nochmal Maria gegen Postgres.

Susanne

Das finde ich auch schon schon.

Susanne

Was wolltest du zu Transaktionen wissen?

Dominik

Vielleicht erstmal, was ist das überhaupt?

Dominik

Also ich müsste ja davon ausgehen.

Susanne

Also eine Transaktion ist, der Dominik möchte dem Jochen 100 Euro überweisen.

Susanne

Jetzt zieht die Bank, stell dir vor, du bist eine Bank.

Susanne

Jetzt zieht die Bank die 100 Euro von Dominiks Konto ab und die Datenbank bricht zusammen.

Susanne

Oder das System bricht zusammen.

Susanne

Ja, das ist halt beim Jochen nichts angekommen, aber beim Dominik sind die 100 Euro auch weg.

Susanne

Das wäre nicht gut.

Dominik

Das ist in einem schwarzen Loch versunken.

Susanne

So.

Susanne

Also macht man das Ganze in einer sogenannten Transaktion.

Susanne

Das heißt, beim Dominik werden die 100 Euro abgezogen und beim Jochen draufgepackt und erst wenn beides passiert ist, ist der Prozess abgeschlossen.

Susanne

Das macht man mit dem Commit.

Susanne

So heißt der Befehl.

Susanne

Wenn jetzt zwischendurch das Datenbanksystem abfällt.

Susanne

Sagen wir mal, die 100 Euro werden abgezogen und das System bricht zusammen.

Susanne

Dann ist kein Commit passiert, sondern dann wird das Ganze zurückgerollt und dann hat der Dominik dann, sobald das System wieder da ist, die 100 Euro noch auf dem Konto und es ist einfach gar nichts passiert.

Dominik

Okay, also tatsächlich eine Isolation von mehreren Arbeitsschritten.

Susanne

Ja, nicht nur von mehreren, eigentlich war es früher so, das ist auch heute noch so, das wird heute so automatisiert, dass es keiner mehr weiß.

Susanne

Sobald du irgendwas auf eine Datenbank schreibst, jedes schreibende Zugriff, also jeder, nein, eine Transaktion ist eigentlich jeder Befehl, aber jede schreibende Transaktion, das heißt, du machst ein Insert oder ein Update.

Susanne

Wenn du das mal so früher in C gemacht hast, musstest du immer ein Commit hinten dran werfen.

Susanne

Warum jetzt unbedingt den C?

Susanne

Die Programmiersprache war eigentlich egal.

Susanne

Aber du musstest immer einen Commit hinten dran werfen.

Susanne

Also du musstest immer erstmal Insert sagen und dann darunter Commit.

Danach.

Susanne

Mittlerweile machen die Datenbanksysteme alle Autocommit.

Susanne

Das heißt, wenn du einen Insert-Befehl abfeuerst, dann wird er automatisch committed.

Susanne

Aber das Commit ist natürlich intern immer noch da.

Susanne

Aber es wird halt automatisch da hinten dran gefeuert, dass du das nicht mehr machen musst, dass es da immer noch ein Commit-1 hinterher ist.

Das kann man auch ausstellen.

Susanne

Und das kannst du ausfallen, dafür gibt es den SQL-Befehl.

Susanne

Im Standard-SQL heißt das Start-Transaction, damit stellst du das Autocommit aus.

Susanne

Dann machst du deine ganzen schreiben und Transaktionen und sagst am Ende Commit.

Susanne

Das wäre jetzt das mit dem Kontoüberweis.

Dominik

Das würde man zum Beispiel machen in der Business-Logik von so einer Applikation, wo er inzwischendurch noch andere Dinge abfragen musst, wo man Verbindungen aufbauen muss, wo man nicht weiß, ob die klappen oder so, ja.

Jochen

Ja, also bei allem, wo du mehrere Schritte hast und die halt entweder alle funktionieren sollen oder keine Ahnung.

Susanne

Ja, genau.

Susanne

Also das mit der Bank ist immer so ein, das macht die Banken, die funktionieren natürlich noch viel komplexer, aber das ist immer so ein schönes Beispiel, weil das ist so schön anschaulich.

Susanne

Und genau, und Postgres und Maria.db haben aber eine Abkürzung für Start Transaction, das ist Beginn, also da kann man auch Beginn sagen, statt Start Transaction, das ist weniger Tipparbeit.

Susanne

Und das ist halt so ein schönes Beispiel, aber man hat tatsächlich immer mal wieder solche Fälle in Anwendungen, wo du das brauchst, tatsächlich, dass du das in einem, ja.

Susanne

Oder, ne, das ist wirklich so, entweder alles oder nichts.

Susanne

Ist das im Grunde.

Dominik

Also man hat erstmal so ein Netter und dann muss man die einzelnen Transaktionen dann committen und dann gucken.

Susanne

Sehr schön, auch wenn du jetzt mal ganz große Sachen.

Susanne

Ich sag mal, ich hatte vorhin schon ein paar Mal gesagt, du willst jetzt aus dem CSV die ganzen Postzeilen Deutschlands importieren.

Susanne

Ja, aus dem CSV, okay, das ist eh nur eine Transaktion, aber du würdest das mit dem Insort-Statement machen.

Susanne

Da möchtest du auch entweder alle drin haben oder keine.

Susanne

Du willst nicht irgendwo, dass der dir nach der Hälfte irgendwie, dann hast die halben Postatzeilen drin und die andere Hälfte nicht.

Susanne

Du würdest entweder alles eins, würdest du auch mit einer Transaktion machen, wie gesagt, wenn du das CSV hochlädst, ist es nur eine, aber könntest du es auch anders lösen.

Susanne

Das war jetzt zum Beispiel, was mir einfällt.

Susanne

Also es gibt da aber durchaus ganz viele, kriegt er wahrscheinlich jetzt ganz viele Zuschriften, was da die Leute als Beispiel schon haben für Transaktionen.

Susanne

Aber das ist so, dass Transaktionen und das wird mitgelockt tatsächlich.

Susanne

Das Transaktionslog ist ja das Wichtigste überhaupt bei Postgres oder bei Datenbanken.

Susanne

Und das wird halt mitgelockt, damit du dann, wenn deine Datenbank abstürzt, hast du immer noch das Transaktionslogs und aus dem Bestand, den du auf der Festplatte in deinem Datenverzeichnis hast und den Transaktionslogs kann die Datenbank wieder hergestellt werden.

Dominik

Die Backups ja wichtig.

Jochen

Naja, aber die Datenbank muss es halt schon irgendwann mal geschrieben haben auf die Platte.

Susanne

Die Transaktionslogg schreibt halt immer auf die Platte, das ist das Wichtige daran.

Susanne

Es sei denn, man hat, da muss man immer aufpassen.

Jochen

Aber man kann es auch abschalten, macht Tests unter Umständen schon darauf.

Susanne

Man kann das abschalten, ja.

Susanne

Das kann man machen.

Susanne

Ganz viel fieser ist, aber dass Festplatten nicht unbedingt permanent speichern.

Susanne

Dass auch Festplatten mittlerweile irgendwelche Caches haben und wenn dann wirklich mal so richtig heftig was ausfällt, ist in Deutschland seltener, ist in Amerika, mit Stromausfällen haben wir jetzt nicht ganz so viel hier zu tun.

Susanne

In Amerika fällt ja ganz häufig der Strom aus und so weiter.

Susanne

Dass dann das nur in dem Cache der Festplatte war und noch gar nicht richtig auf der Festplatte und dann weg ist.

Susanne

Da wird dann immer geraten, man soll den Plattencache ausstellen und solche Geschichten, damit das dann.

Jochen

Ah, okay, ja gut, ich weiß es nicht genau.

Jochen

Ich glaube, man kann.

Susanne

Auch bei VMs, dann sagt die VM, es ist fest auf der Platte, es ist aber erst im Cache des Hauses oder so.

Susanne

Das ist auch was, da habe ich bei VMs dann keinen Einfluss drauf.

Jochen

Also bei den Datenbanken, so Hardware-Datenbanken, die ich mal so irgendwie in Rex gesehen habe, die hatten meistens dann halt so Red Controller mit Batterien drauf.

Susanne

Ja, Battery Wax.

Jochen

Ansonsten, ich glaube, also Postgres verwendet irgendwie F-Sync und F-Sync kann man auch irgendwie sagen, so sag mir, sag, werd erst fertig, wenn du es wirklich, wirklich auf der Platte geschrieben hast.

Susanne

Das ist das,

Jochen

das macht es auch langsamer, aber ja.

Susanne

Nein, F-Sync ist das, was wir immer den OpenStreetMap sagen, stell das aus, wenn sie wieder ganz NRW oder die halbe Welt hochladen wollen, weil das geht schnell.

Susanne

Und da kannst du auch mal sagen, entweder du hast alles oder gar nichts, du willst ja die ganze Welt hoch.

Susanne

F-Sync sollte man nie abschalten.

Susanne

Es gibt so ein chronus Commit bei PostgresQL und bei MariaDB heißt das Ganze.

Susanne

Ein Kollege von mir sagte mal, es ist die längste Variable, die es gibt.

Susanne

Es gibt die Variable mit selber, also die heißt nur anders.

Susanne

Das kannst du ausstellen, dann würde es schon das Agg, das OK, zurückgeben, wenn es im Cache, wenn die Transaktion im Cache liegt und nicht auf der Platte.

Susanne

Ansonsten kriegst du immer erst das, wenn du ein Statement abfeuerst, kriegst du erst das Agg, das Acknowledgement oder das OK zurück.

Susanne

Wenn wirklich das von der Transaktions, wenn das System sagt, ja, das Transaktionslog, also dieser Schnipsel, den du da geendet hast, der ist jetzt wirklich auf der Festplatte, im Transaktionslog.

Susanne

Und du kannst halt das Transaktionslock haben nochmal ein Cache da drüber und du kannst halt auch schon sagen, okay, gib mir das schon zurück, wenn das in dem Cache angekommen ist.

Susanne

Da verlierst du bei PostgreSQL maximal 600 Millisekunden an Transaktionen.

Susanne

Also deine letzten 600 Millisekunden an Transaktionen kannst du verlieren.

Susanne

Ist bei MariaDB nicht anders.

Susanne

InnoDB Transaction Commit irgendwie so ähnlich.

Susanne

Ist eine ganz lange Variable bei MariaDB, ich weiß immer nicht, wie sie hieß, wie sie heißt.

Susanne

Dann gab mir mein Kollege, ein ehemaliger Kollege, meinen Tipp, sagt er, ich weiß auch nicht, wie sie heißt, aber es ist die längste Variable, die es gibt.

Susanne

Und ich habe dann wirklich, Maria DB hat wahnsinnig viele Server Variablen.

Susanne

Es war wirklich die längste, aber ich glaube, es gibt mittlerweile eine längere.

Susanne

Aber sie ist relativ sprechend auch.

Susanne

Also Flush Transaction Commit irgendwie so ähnlich heißt sie.

Susanne

Genau.

Susanne

Und das ist das, aber F-Swing sollte man eigentlich nicht abstellen.

Susanne

Wie gesagt, die OpenStreetMapler, wenn die dann wirklich anfangen und wir laden jetzt mal auf dem frischen Server irgendwie die halbe Welt, dann ist F-Sync abstellen, dann sind die wesentlich schneller fertig.

Susanne

Und da kann man auch sagen, okay, wenn jetzt nach zwei Tagen die halbe Welt nicht da ist, dann fangt man von vorne an.

Susanne

Wenn dann wirklich mal der Server abgeraucht ist.

Susanne

Nur da sollte man wirklich wissen, was man tut.

Ja, ja.

Jochen

Ja, genau, aber ich glaube, also Isolation und so, das gibt es ja auch noch, aber es gibt halt eigentlich, Transaktionen ist ja nicht das einzige Ding.

Jochen

Also eigentlich will man ja diese Asset-Bedingungen halt sozusagen gewährleistet hat.

Jochen

Also je nachdem, manche Sachen reicht auch eventuell.

Susanne

Also Datenbanken sollten Asset-konform sein, das heißt Atomar, das wäre mit der Normalisierung zu lösen.

Susanne

Konsistent, auch das macht man über die Normalisierung.

Susanne

Die Isolation, die macht man über Isolationslevel, das wird aber automatisch gemacht und wir haben den Isolationsmittel-Committed oder Repeater Beweed ist sowieso Standard.

Susanne

Da muss man eigentlich nicht nochmal dran.

Susanne

Es sei denn, man ist irgendwo im tiefen und diversitären Bereich und will das auf Serialiser bestellen.

Susanne

Da kann ich aber auch sagen, die meisten Bugs haben alle Datenbanksysteme, haben Riesenprobleme mit diesem Isolationsmittel.

Susanne

Können wir nochmal drüber machen, was das bedeutet.

Susanne

Und dann haben wir noch die Duability oder in Deutsch heißt das so schön dauerhaft.

Susanne

Und das ist heute ein Riesenproblem, weil Datenbanken sollten natürlich dauerhaft speichern.

Susanne

Und das hatte ich vorhin schon angedeutet.

Susanne

Das ist so eine schöne Theorie, warte, bis es auf der Festplatte ist.

Susanne

Aber ganz, ganz viele Datenbanken laufen heute auf virtuellen Maschinen.

Susanne

Und Festplatte heißt dann die Festplatte vom Host und viele virtuelle Maschinen sagen, ja, das ist auf der Festplatte, obwohl es erst im Rahmen des Hostes liegt und noch gar nicht wirklich auf der Festplatte.

Susanne

Und da habe ich zumindest als Datenbanksystem erstmal keinen Einfluss drauf.

Susanne

Das ist dann eine Administratorsache, das dauerhaft hinzukriegen.

Susanne

Und jetzt guckst du mich fragend an, ich weiß auch nicht wie.

Susanne

Also ich weiß nur, dass wir ganz häufig, wenn ich ganz komische Artefakte habe und in den Kunden frage, ist das eine virtuelle Maschine?

Susanne

Also ich hatte auch schon Kunden, die dann Nein gesagt haben, dreimal und am Ende kam raus, das war doch einer.

Susanne

Weil du kannst auch diese Übergabe, je nach virtueller Maschine, also je nach System, da gibt es ja KVM und was auch immer, ne?

Susanne

Kannst du das nicht wirklich monitoren oder was da der Host eigentlich noch macht, also diese Übergabe virtuelle Maschine Host.

Susanne

Dann verschwinden die Daten, die virtuelle Maschine sagt, ich bin fertig, aber es ist vom Host noch gar nicht da abgelegt, wo es sein soll.

Susanne

Oder du hast nicht genug RAM gekriegt vom Host oder was auch immer.

Susanne

Also es gibt da ganz lustige Artefakte mit den virtuellen Maschinen.

Womb, kabum.

Susanne

Ja, nur das ist halt so, dass mit der Dauerhaftigkeit.

Susanne

Isolation heißt, ähm, wenn.

Jochen

Ja, also wenn, ob man jetzt zum Beispiel begonnene, die Daten, die geänderten Daten begonnene, Transaktionen schon sehen kann in einer anderen oder halt erst, wenn die Transaktion durch ist, zum Beispiel, oder so solche Sachen halt.

Jochen

So wer wann welche Sachen sehen kann.

Susanne

Fällt mir ein nettes Beispiel zu ein, Jochens Frau möchte Jochen einkaufen schicken.

Susanne

Und Jochens Frau hat da so ein paar Sachen irgendwie an die Wand geschrieben, die eingekauft werden sollen.

Susanne

Hat aber noch fünf weitere Sachen im Kopf, die sie da drauf schreiben will.

Dominik

Jochen geht schon einkaufen

Susanne

hat die Liste gemacht.

Susanne

Nein, Jochen hat jetzt schon mal ein Foto gemacht von der Liste und ist einkaufen gegangen.

Susanne

Und die Frau schreibt dann erst, ne, und erst danach schreibt die Frau die Sachen auf die Liste.

Susanne

Das heißt, Jochen hat sich schon noch nicht gekriegt.

Susanne

Also es ist im Grunde, also jeder, der was ändert, ändert das erstmal für sich, ohne dass es ein anderer sieht.

Susanne

Und der andere sieht das erst, wenn auch wirklich das Commit gekommen ist.

Susanne

Dann sieht der andere erst erst, das ist das Read committed.

Susanne

Also ich kann erst das vom anderen lesen, wenn er das auch wirklich committed hat.

Susanne

Es gibt in der Theorie noch Dirty Read und Phantom Read und so weiter.

Susanne

Das wären Sachen, dass der andere das schon lesen kann, bevor ich das committed habe.

Susanne

Das hat Postgres gar nicht implementiert.

Susanne

Das ist sehr einfach, das haben wir gar nicht implementiert.

Susanne

Ich hatte letztens eine Migration, die hatten ganz viel Read, dieses Dirty Read benutzt.

Susanne

Und dann habe ich dann die Entwickler gefragt, warum braucht ihr das?

Susanne

Dann mussten die erstmal ganz tief forschen.

Susanne

Ja, weil das hat mal ein Kollege, der längst in Rente ist, gesagt, dann ist das irgendwie schneller oder so und dann mussten die noch länger forschen und dann haben sie festgestellt, eigentlich brauchen wir es gar nicht, das können wir auch komplett anders machen.

Susanne

Nur weil Postgres das ja einfach nicht kann.

Susanne

Also wir fangen erst mit Read Committed an, das alles darunter geht nicht.

Susanne

Bei MariaDB geht es, glaube ich, so ein bisschen, habe ich aber auch noch nie wirklich eingestellt.

Susanne

Und das Repeatable Read ist, wenn jetzt einer anfängt, ein Select zu machen und er braucht jetzt den Wert aus Spalte 5 und der Wert, sagen wir es 7.

Susanne

Und der Select läuft länger und er braucht diesen Wert mehrfach in diesem Select Query.

Susanne

Also er greift mehrfach auf diese Spalte 5 drauf zu, um den Wert 7 nochmal, weil er da irgendwie Berechnungen macht.

Susanne

So, und währenddessen ändert ein anderer den Wert auf 9.

Susanne

Ist natürlich doof, weil dann hat das Query, das Select Query mal 7 mal 9, das will man nicht.

Susanne

Und dann kriegt halt Repeatable Read, heißt, wenn er das einmal gekriegt hat, kriegt er dieses Ergebnis auch bis zum Ende.

Susanne

Das heißt, du bekommst dann immer die 7.

Susanne

Die 9 wird ja erst, wenn du das Selector nochmal ausführen würdest, würde es komplett mit 9 machen.

Susanne

Das ist Repeatable Read.

Susanne

Das kann PostgreSQL.

Susanne

Auch wenn da irgendwie, ich glaube, wir nennen das nur Read Committed, weil es kann ja mal passieren, dass auf dem Mars ein Vulkan ausbricht und den Islandkreis gerade schneit und der Jupiter mit dem Saturn auf einer Linie steht, da gibt es irgendeine Ausnahme.

Keine Ahnung.

Susanne

Aber Maria HDW macht es auch.

Susanne

Also das ist eigentlich das auch, was standardmäßig heute passiert.

Susanne

Und dann gibt es noch den Ziele.

Susanne

Da kriegst du immer dasselbe Ergebnis, solange wie die Session offen ist.

Susanne

Okay.

Susanne

Und das ist natürlich sehr, sehr schwierig.

Susanne

Also wenn du da drei Tage eine Session offen hast und das wird dann immer noch das Ergebnis von vor drei Tagen.

Susanne

Das ist 30 Mal geändert worden.

Susanne

Das ist sehr, sehr schwierig zu implementieren.

Susanne

Und deswegen, wenn man mal so in die Buglisten guckt für die Datenbanksysteme, egal ob ich einen Oracle nehme oder eins der IBMs oder Maria.b oder PostgreSQL, es gibt da Bugs im Bereich Serializable.

Susanne

Also wenn man da so SQL-Bugs ist, es ist ganz häufig, dass es nur den Serializable betrifft.

Susanne

Weil das auch unwahrscheinlich schwierig ist zu implementieren.

Susanne

Ich habe immer noch nicht rausgefallen in all diesen 20 Jahren, wann überhaupt das Serializable mal sinnvoll ist und wann er eingesetzt wird.

Susanne

Meine Information ist im universitären Bereich, aber auch da ist er mir persönlich noch nicht begegnet.

Also, keine Ahnung.

Susanne

Das macht man nicht so ohne weiteres.

Susanne

Aber was halt heutzutage, wo man immer ein bisschen dran denken muss, ist an dieses Dauerhaft.

Susanne

Als Admin muss man da so ein bisschen dran denken, dass man Datenbanken auch dauerhaft hat.

Dominik

Da hat das mit der Session vielleicht was mit Verbindungen zu tun?

Susanne

Eine Verbindung in eine Session ist ein und dasselbe.

Dominik

Okay.

Dominik

Da können wir jetzt vielleicht direkt drauf einsteigen, weil das nur noch ein Punkt auf der Liste war.

Susanne

Also, wenn ich natürlich, das ist eine Client-Server-Anwendung, du hast halt den Datenbank-Server oder auch Dienst oder auch Daemon genannt und du hast deinen Client.

Susanne

Der Client kann alles Mögliche sein.

Susanne

Das kann die Software sein.

Susanne

Das ist in der Regel ein Stück Software, was auf die Datenbank zugreift.

Susanne

So kann ich das am einfachsten sagen.

Susanne

Am einfachsten erklärt es immer bei dem Web-Service gibt es auch Client-Server.

Susanne

Du hast einen Web-Server irgendwo stehen im Rechenzentrum und es ist die Browser, die drauf zugreifen und das sind die Clients.

Susanne

Das heißt bei Datenbanken genauso, nur dass da die Clients halt in der Regel Software sind.

Susanne

Und ja, diese Software macht dann eine Verbindung zur Datenbank auf.

Susanne

Und die macht für und schickt dann das Query, was sie anfragen will, die Datenbank Anfrage, das kann jetzt das sein, was sie schreiben will oder was sie lesen will, schickt sie zu der Datenbank, die Datenbank führt das Ganze aus und schickt das dann über diese Verbindung zurück.

Susanne

Man kann pro Verbindung zeitgleich pro Verbindung und zeitgleich immer nur ein Query abschießen.

Susanne

Das ist auch bei allen Datenbanksystemen so.

Susanne

Also es geht nicht, dass du in derselben Verbindung zeitgleich zwei Querys abschießen.

Susanne

Das geht nicht ab, Feuerst.

Susanne

Also du brauchst halt, wenn für jedes zeitgleiche Query, was du abschicken willst, brauchst du eine extra Verbindung.

Ja.

Susanne

Also wenn es wirklich richtig zeitgleich ist.

Susanne

Nacheinander kannst du natürlich, aber pro Verbindung kannst du.

Dominik

Das heißt, du musst entweder mal warten oder tatsächlich mehrere Verbindungen auf.

Jochen

Ja, das wird jetzt auch mit Async und so sehr interessanter noch, ja.

Susanne

Ja, du musst halt mehrere Verbindungen aufmachen, das ist aber auch nicht tragisch.

Dominik

Da ist halt die Frage, wenn die was auf was Gleiches zugreifen, auf die gleiche Zeile oder sowas.

Susanne

Nee, damit hat das nichts zu tun.

Damit hat das nichts zu tun.

Susanne

Damit hat es, also eine einzelne Verbindung hat damit nichts zu tun.

Susanne

Du kannst natürlich, wenn du zwei Verbindungen hast und die greifen auf dieselbe Zeile zu, da muss der eine auf den anderen warten.

Dominik

Aber von der Datenbankseite her dann.

Susanne

Von der Datenbankseite, das macht die Datenbank.

Susanne

Aber du musst halt immer bedenken, du hast eine Verbindung.

Susanne

Und bei Postgres, bei Postgres ist eine Verbindung ein echter Prozess.

Susanne

Und deswegen sind die Verbindungen so teuer.

Susanne

Bei MariaDB ist es ein Thread.

Susanne

Da hast du irgendwann Probleme bei, ja, wenn de TCP-Ports ausgehen.

Susanne

Weil, wenn du da, das hatte ich schon ein paar Mal, dass ich Webserver hatte, dass die dann mit 5, 6, 7 oder mit 30 Web-Servern auf eine Datenbank und hast irgendwann keine TCP-Ports mehr, dann hast du, fängst du mal an und das macht, da gibt es dann ein Pooling von InnoDB für, dass du da noch mit 100.000 Verbindungen zeitgleich und so weiter auch noch spielen kannst.

Susanne

Bei Postgres und bei denen, die prozessbasiert sind, also fast alle anderen großen, bist du da viel früher dran, dass du da Probleme kriegst, weil jede Verbindung ist ein echter Prozess.

Susanne

So, und jeder Prozess braucht vom Betriebssystem her erstmal einen Chor, einen Kern, einen Chor.

Susanne

Ich kann pro Core zeitgleich nur einen Prozess abbilden.

Susanne

Das heißt, wenn ich acht Verbindungen auf habe und ich habe acht Cores, dann läuft auf jedem Core eine Datenbankverbindung.

Susanne

Zeitgleich.

Susanne

Wenn ich da mehr Verbindungen zeitgleich auf habe, sagen wir mal, ich habe jetzt vier pro Core auf, dann gibt es einen Betriebssystem Scheduler, der das scheduled.

Susanne

Und ja, dann gab es mal vom Postgres diese nette Empfehlung von meinem lieben Kollegen aus den USA.

Susanne

Ja, so vier Verbindungen pro Core, zu einer Zeit, wo Cores auch noch nicht so gut verbreitet waren.

Susanne

Also generell, auch bei MySQL ist das übrigens nicht anders.

Susanne

Datenbanken sind immer sehr, sehr chorlastig.

Susanne

Je mehr Cores, umso besser, gerade bei Webanwendungen und so weiter.

Susanne

Du kannst da nie genug vonhaben.

Susanne

Und du musst dir halt überlegen, wie viele Verbindungen habe ich zeitgleich.

Susanne

Und weil das echte Prozesse sind, ist da auch irgendwo mal eine Grenze.

Susanne

Man sagt so, vom Bauch her irgendwie so 200, 400.

Susanne

Das ist, je nachdem, wen du fragst, ist das ein bisschen anders.

Susanne

Aber es gibt ein Connection-Pooling.

Susanne

Das heißt, du packst zwischen deiner Datenbank und deiner Anwendung einen Pooler.

Susanne

Ist sehr lustig.

Susanne

Ich habe mal in meiner Studentenzeit im letzten Jahrhundert, Anfang dieses Jahrhunderts, hatte ich einen Job bei einer großen deutschen namhaften Firma.

Susanne

Und damals hatte der Datenbankhersteller die Idee, wir verkaufen mal Datenbanklizenzen pro Verbindung.

Susanne

Richtig teuer.

Susanne

Und die Firma hatte dann fünf Verbindungen zu dieser Datenbank gekauft.

Susanne

Und ich durfte dann einen Pooler schreiben, der dann dafür sorgte, dass immer nur fünf Verbindungen zu dieser Datenbank kamen und alle anderen wurden dann gescheduled, ähnlich wie das Betriebssystem das Scheduled.

Susanne

Da gibt es dann häufig wird der Round-Robbins-Scheduler genommen, der das dann poolt.

Susanne

Und sowas gibt es halt auch für die Datenbanksysteme.

Susanne

Der von Postgres heißt PG Bouncer, den wir immer empfehlen, wenn es keinen anderen gibt.

Susanne

Den setzt du meistens in die Nähe der Datenbank.

Susanne

Auch das ist eine Sache, die kannst du bis zum Umfallen diskutieren, setze ich den Pooler in die Nähe der Datenbank oder setze ich den in die Nähe der Anwendung.

Susanne

Wenn ich eine Java-Anwendung habe, irgendwas mit Tomcat und weiß der Kuckuck was, die bringen meistens einen Pooler schon mit, da brauche ich keinen zweiten.

Susanne

Das ist auch sowas, das sehe ich immer.

Susanne

Ich sehe manchmal Datenbanken, die haben dann drei Pooler, wo ich mich frage, warum einer reicht.

Dominik

Wie ist das bei Python?

Jochen

Weiß ich jetzt nicht.

Jochen

Nee, da ist es also zum Beispiel Django macht das jetzt auf der Nick Up 4.1, kommt jetzt irgendwann im Sommer, da gibt es einen internen Pool sozusagen, also für die, äh, für, aber normalerweise kannst du die Anzahl der Verbindungen, die jetzt deinen Applikationsserver sozusagen zur Datenbank macht, kannst du normalerweise einstellen.

Jochen

Aber das ist jetzt halt schwierig geworden mit Async, weil wenn du jetzt sagen wir mal so fünf Querys machst und die können alle gleichzeitig laufen und ab Django 4.1 hast du halt auch schon zumindest ein Async-Interface für deinen ORM.

Jochen

Also der ORM ist noch nicht async-fähig, aber es gibt zumindest das Interface.

Jochen

Dann ist halt natürlich der, dann könnte sozusagen dann der ORM fünf Verbindungen aufmachen, die alle gleichzeitig rausschicken.

Jochen

Weil geht halt nicht auf einer Verbindung, du sollst fünf Verbindungen aufmachen.

Jochen

So, wenn du jetzt aber eingestellt hast in deiner Datenbank, äh, in deiner Django-Config, soll aber nur zwei Verbindungen zur Datenbank aufmachen, dann ist das natürlich ein Problem.

Jochen

Also das muss man dann halt irgendwie handeln und dafür gibt es halt dann eine Pool-Implementierung direkt in Django, jetzt ab der nächsten Version.

Jochen

Aber genau.

Ja.

Susanne

Also wie gesagt, das kann ein bisschen auf deiner Hardware drunter an.

Susanne

Ich sehe, du findest da so etwa 200, 400 Verbindungen.

Susanne

Muss auch mal gucken, zeitgleich.

Susanne

Das ist auch sowas, wenn man das mal monitort, das ist bei MariaDB einfach zu monitoren als bei Postgres, da habe ich da 10.000 Verbindungen.

Susanne

Dann gucke ich, habe ich zeitgleich vielleicht maximal 64 gehabt.

Susanne

Exakt zeitgleich.

Susanne

Also das muss man ja auch gucken, wie viel sind das denn wirklich exakt zeitgleich.

Susanne

Das ist so das mit den Verbindungen.

Aber die

Dominik

so schnell halt so wieder zu sind, ne?

Jochen

Ja, also ich meine, das ist halt, würde ich sagen, das ist einer der Hauptvorteile von früher auf jeden Fall von MySQL, dass man da nichts machen musste.

Jochen

Dass halt so quasi jedes Statement, das man abgefordert hat von VHP aus, hat halt einfach eine eine oder Verbindung aufgemacht, dann nach dem Statement war sie wieder zu.

Susanne

Nein, nichts machen.

Susanne

Also ich hatte jetzt tatsächlich mal während der Pandemie einen Kunden, der durfte ich dann mit Servern spielen mit 128 Kores.

Susanne

Das war schon sehr lustig.

Susanne

Aber die Verbindungen waren dann auch, da hatte ich auch zeitgleich mehr, aber da hatte ich dann so irgendwie in die 200.000 Verbindungen und noch mehr.

Susanne

Und da fängst du dann auch bei MariaDB an zu poolen und dann wird es lustig.

Susanne

Das macht's Spaß.

Susanne

Weil dir dann auch irgendwie, wie gesagt, du da hampelst ja, rechnest du dann auf einmal, wie viele Ports habe ich denn überhaupt.

Susanne

Und ja, und liebe Webserver, könnt ihr da vielleicht auch nochmal was vorschalten oder so?

Susanne

Aber das ist dann schon Spaß.

Jochen

Ja gut, man kommt da wahrscheinlich auch irgendwann ein, aber so viel Feld und Wiesen LabStack war das halt, da ging das eigentlich immer.

Susanne

Das ist auch das, was viele halt falsch machen, wenn sie von der Maria die MySQL-Massine zu Postgres kommen, dass sie dann die Verbindung so wahnsinnig hochsetzen und dann macht das Betriebssystem auf einmal die Gretsche.

Susanne

Das ist auch so eine Sache.

Susanne

Genau.

Jochen

Naja, also das war irgendwie, das war jedenfalls früher war das immer so ein, fand ich, so Hauptsellingpoint für MySQL, dass man sagen kann, okay, das kostet vielleicht eine Latenz 30 Prozent oder so, aber dafür muss man sich keine Gedanken um diese ganzen Sachen machen.

Jochen

Und die Infrastruktur ist einfacher und so und ja.

Susanne

Lizenz hatten wir noch gar nicht drüber geredet.

Susanne

Also wir hatten angefangen, also Postgres ist halt BSD und BSD ist sehr, sehr einfach zu handeln, deswegen hat man das auch viel in Maschinen, auch beim Betriebssystem ist das viel BSD.

Susanne

MariaDB ist GPL und die haben dann noch die erstmal muss man bei der GPL ja mal gucken, Light GPL und welche Version und Verträge sind ein bisschen länger und man muss dann gucken, MariaDB hat so dieses, ich denke mal, das haben sie immer noch, du kannst es nutzen für deine eigenen Zwecke, aber wenn du Software hast, die du verkaufst, dann musst du nämlich eine Lizenz bei MariaDB kaufen, was ja auch

Susanne

irgendwo eine faire Geschichte ist.

Susanne

Wenn du das dann nutzt in deiner Software, die du verkaufst, dann musst du Lizenzen kaufen.

Susanne

Genau.

Susanne

Und dann gibt es bei Postgres noch, es gibt dann immer, das nennen wir immer das Contrib-Verzeichnis, es gibt dann auch so Tools.

Susanne

Bei einigen dieser Tools fragt man sich, warum zur Hölle ist das nicht im Hauptpaket mit drin.

Susanne

Das hat man ganz auf.

Susanne

Also es gibt da zwei Gründe.

Susanne

Das eine ist, weil das Tool so groß ist.

Susanne

Früher musste der Code ja noch auf eine Diskette passen, ganz lange.

Susanne

Nein, nein.

Susanne

Eine Diskette hatte 3,5.

Dominik

5,5.

Das sind die großen.

Susanne

Nein, wie viel, wie viel, wie viel,

Jochen

wie viel MB, 1,44 MB.

Susanne

1,44 Megabyte, genau.

Susanne

Ja, so.

Susanne

Und ihr wisst noch, was eine Diskette ist.

Susanne

Ja, ja, ich kenne das nicht.

Jochen

Die Meeks sind 5,25 Zoll angefangen.

Susanne

Ich bin noch mit Datasette angefangen.

Ah, Dataset, ja.

Susanne

Aber, ja.

Susanne

Und dann gibt es dann so ganz große Projekte wie das PostGIS mit den ganzen Geodaten oder der JDBC für Java.

Susanne

Das sind so große Projekte, wo man gesagt hat, okay, die macht man einfach einzeln, weil die braucht nicht jeder.

Susanne

Die kann man nachladen.

Susanne

Erstmal das, das ist das eine.

Susanne

Das andere ist, es gibt auch kleine Projekte, wo man sich vorum zur Hölle ist das nicht mit drin.

Susanne

In 99% oder in 98% der Fälle, können auch 100 sein.

Susanne

Nein, also in 99, sage ich mal, liegt das an der Lizenz, weil diese Tools irgendwas nutzen, was GPL mitbringt.

Susanne

Was nicht mehr mit der BSD hier Lizenz kompatibel ist und wo man dann ansonsten das, also die irgendwas nutzen, was dann aus der GPL-Welt kommt.

Und das dann.

Also um

Dominik

da nochmal vielleicht zusammenzufassen, GPL tendiert dazu, dass die Lizenzen halt nicht kommerziell frei nutzbar sind für alle Zwecke, sondern nur privat.

Dominik

Und BSD hat halt für alle Zwecke auch für kommerzielle komplett freie Verwendung.

Susanne

Achso, hast du schön gesagt, deswegen findest du auch immer Postgres in deinem Auto?

Susanne

Nein.

Dominik

Was ist das der Unterschied zwischen BSD und MIT-Lizenz?

Dominik

Gibt es da überhaupt einen?

Dominik

Ist das quasi dasselbe?

Susanne

Nee, MIT nicht.

Susanne

BSD ist Barclay.

Dominik

Und MIT-Lizenz?

Susanne

Das ist eine andere, das weiß ich nicht.

Jochen

East Coast versus West Coast, ich weiß nicht.

Ich weiß auch nicht.

Jochen

Aber die sind tatsächlich relativ ähnlich.

Jochen

Also die sind sehr liberal.

Jochen

Genau wie Apache auch, ist auch sehr liberal.

Susanne

Ja, Apache ist auch, genau, ne, das ist so, dass.

Jochen

Da gibt es auch Patentgeschichten, aber es ist auch.

Susanne

Offiziell heißt die von Postgres auch Postgres-Lizenz, das ist aber die BSD-Lizenz.

Susanne

Das ist alles von der Universität von Barclay, die BSD-Lizenz.

Susanne

Und MIT, ja, ist halt, ja, MIT, ich finde das ja immer sehr lustig.

Susanne

Harvard und MIT sitzen in der Ort, wenn du mal dir überlegst, wo liegt das MIT?

Susanne

Jeder weiß, was die Harvard-Universität ist und die MIT University hat man eigentlich schon mal gehört.

Susanne

Die Stadt, die sind, die liegen tatsächlich nebeneinander und die Stadt heißt Cambridge.

Susanne

Und da muss man immer aufpassen, wenn man so einem Universitären unterwegs ist, hat man jetzt eine echte Cambridge-Universität, also die in England, die ja auch nicht ohne ist, die will man ja manchmal auch wirklich haben.

Susanne

Oder hat man da wirklich wieder MIT und Harvard, weil die auch gerne unter Cambridge dann irgendwas veröffentlichen.

Susanne

Das ist auch immer liegt im Übrigen in der Nähe von Boston, falls es noch einer fragt.

Genau.

Susanne

Und nee, aber das ist, die kenne ich jetzt gar nicht, die Lizenz.

Dominik

Ich glaube, das ist für mich, also BSD und MIT sind fast die denn, also das ist irgendwie Patent oder ja,

das ist.

Jochen

Nee, das Apache macht noch diese expliziten Geschichten mit den Patenten.

Jochen

Aber also MIT, äh, BSD weiß ich jetzt gar nicht genau, ist aber auch, vielleicht die liberalste ist wahrscheinlich MIT, das ist eigentlich quasi nur Copyleft, da steht nur drin, du musst halt sagen, darfst du es nicht entfernen, aber ansonsten

Dominik

willst, glaube ich.

Oder nicht

mal das hineinfallen.

Susanne

Die BSD ist, glaube ich, nur lass meinen Namen in Zeichen.

Das ist ja unterschiedlich.

Dominik

BSD muss Namen drin bleiben, bei MIT ist es völlig egal.

Jochen

Ja, ist bei Python übrigens auch so, Python hat auch die Python-Lizenz, aber es ist auch einfach nur BSD.

Susanne

Ja, ja.

Susanne

Wir haben irgendwann vor etlichen Jahren mal auf einmal war das alles nicht mehr BSD-Lizenz, sondern jedes Projekt hatte seine eigene Lizenz, was aber eigentlich die BSD-Lizenz war.

Susanne

Ich nehme mal an, da gab es irgendwelche Namensgedönsgeschichten.

Susanne

Keine Ahnung.

Dominik

Und ich sag auf jeden Fall, von wem es gewesen ist, wenn du das sagst, was du machst, was du bist.

Ja, irgendwie so.

Dominik

Ja, interessant.

Dominik

Ja, es war schon relevant, wenn man das als Unternehmenskunde nutzen möchte.

Susanne

Also ich war mal in einem Unternehmen als Diplomant damals.

Susanne

Die hatten wirklich überlegt, aus dem Maschinenbau dann irgendwann das mal, wurde das ja weiter automatisiert und so weiter.

Susanne

Und die haben dann damals echt diese Diskussion geführt, was nehmen wir für Platinen oder was machen wir für ein Betriebssystem auf unsere Platinen oder auf unsere Hardware drauf.

Susanne

Und da war eine Diskussion Linux versus BSD.

Susanne

Und die haben sich dann für BSD entschieden, weil ein abgespecktes Linux kriegst du ja auch hin.

Susanne

Und es war damals ja auch noch nicht so groß.

Susanne

Eben wegen der Lizenz, weil die das auch ohne Probleme dann in jedes der Geräte, die du heute in jedem Handel kaufen kannst, auch einfach drunter legen kannst.

Susanne

Und ich meine, viele Autos nutzen auch BSD-Lizenzen.

Susanne

Also das ist ganz, ganz spannend, wo du überall BSD drauf hast.

Susanne

Das ist sehr, sehr interessant.

Susanne

Du kommst ja heute gar nicht mehr dran.

Susanne

Früher haben wir ja uns ja immer noch den Spaß gemacht, die Geräte auseinanderzubauen und zu gucken, was da drauf ist.

Susanne

Das stellen die Hersteller ja heute, kommst du da nicht mehr so ohne weiteres dran.

Dominik

Ja, oder dass du einen Rest Api dann irgendwo.

Susanne

Du hast ja du hast halt ganz viel BSD.

Susanne

Und wenn du ja eine Datenbank brauchst, eine etwas größere, dann hast du auch ganz häufig Postgres.

Dominik

Das ist interessant.

Dominik

Und wir haben jetzt noch zwei Sachen auf der Liste, die da vielleicht ganz gut reinfallen.

Dominik

Also Maria, wäre das Postgres, wer vielleicht hast.

Dominik

Also da hatten wir schon mal kurz was anderes NoSQL.

Susanne

Achso, ja, also da gibt es jetzt nicht ganz viel zu sagen.

Susanne

Es gibt halt neben den relationalen, die sich, also diese, ja erstmal ist ja NoSQL ist ja not only SQL.

Susanne

Und da fanden die hierarchischen Datenbanksysteme, wer das mal gelernt hat, hierarchische Datenbanksysteme, sowas wie LDAP oder auch das Dateisystem, das ist auch ein Datenbanksystem, die waren dann plötzlich NoSQL.

Susanne

Das fanden die sich überhaupt nicht mehr mit zurecht, weil, ja, not only SQL.

Susanne

Und nein, es gibt halt tatsächlich sind dann so 2007 hat das so ein bisschen begonnen oder seit 2007 hat sich das angefangen zu etablieren.

Susanne

Meines Wissens sind das dokumentenbasierte, von der Technik her dokumentenbasierte Datenbanksysteme und Graf-Datenbanksysteme, die grafenbasiert sind.

Susanne

Und das Grafenbasiert habe ich vorhin schon mal so versucht.

Susanne

Das sind dann so die Klassikerkunde, Kunden, die das gekauft haben, haben auch das und das gekauft.

Susanne

Das ist so das klassische Beispiel dafür.

Dominik

Das könnte man wahrscheinlich auch in einer normalen SQL abbilden.

Susanne

Ja, da kriegst du aber die Krise bei, wenn du das abbildest, in einer normalen SQL.

Dominik

Die Brabys dann zu groß werden oder die Joints zu groß werden?

Susanne

Ja, ja, du spielst dann ja mit Matrizen am Ende und weißt der Kuckuck was, du brauchst ja unendlich viele Tabellen.

Susanne

Also da wird es echt, das ist das Grafendingen.

Susanne

Und wenn du dann mal so heute in größere Firmen guckst, ich nenne jetzt keine Namen, das darf ich jetzt ja wahrscheinlich nicht.

Susanne

Die haben immer Kombinationen.

Susanne

Also ich sag mal, so ein so ein Webanbieter, der hat ganz, ganz häufig Kombinationen.

Susanne

Also für solche Sachen hat er dann eine Grafdatenbank und ansonsten eine relationale.

Susanne

Für das ganze Kunden- und Verkaufsabwicklungskips hat das Relationale.

Susanne

Und was dann immer noch Material vielleicht auch.

Susanne

Und das kann man dann auch verknüpfen.

Susanne

Die nutzen ganz viel.

Susanne

Meine Erfahrung ist, was sie da ganz viel nutzen, ist von Apache.

Susanne

Das ganze Hadoop mit H-Base, HGraph und wie sie alle heißen.

Susanne

Also die nutzen sowohl, die meisten Firmen nutzen sowieso Maria und Postgres.

Susanne

Also du hast sowieso da, also du hast nicht mehr nur ein Datenbanksystem, du hast halt ganz viele.

Susanne

Und dokumentenbasiert ist von daher interessant.

Susanne

Wir bei Postgres empfehlen ja immer Elasticsearch.

Susanne

Das ist nicht, dass du Dokumente ablegst.

Susanne

Also Dokumente könnten jetzt, ich nehme immer ganz gerne auch Bilder als Beispiel jetzt.

Susanne

Bilder oder auch irgendwelche langen Textdokumente, PDFs oder so.

Susanne

Aber das Gute an dokumentenbasierten Datenbanken ist, dass du in den Dokumenten suchen kannst.

Susanne

Das heißt, du kannst mir sagen, gib mir alle Bilder, die den Farbcode rot haben.

Susanne

Oder wo rote Pixel drin sind.

Susanne

Das kannst du natürlich nicht in der relationalen Datenbank legst du das Dokument so als Blob ab.

Susanne

Und du kannst nur das Dokument, du kannst aber nicht reingucken in das Dokument.

Dominik

Du musst halt vorher beim Speichern reingucken, müsstest du quasi den Link zu dem Dokument in die Datenbank schreiben.

Susanne

Ja, aber dann weißt du, du sind immer noch nicht alle Farbpixels raus oder ähnliches.

Dominik

Ja, die muss ich ja mit einem anderen Speicher bedanken.

Susanne

Ja, aber bei der Dokumentenbasierten oder wenn du PDFs, dann kannst du in den PDFs auch suchen.

Susanne

Wenn du da Text hast.

Susanne

Wobei das bei PDFs heutzutage wieder schwierig ist, weil ganz viele PDFs aus Kopierschutz als Bilder sind.

Susanne

Das ist dann auch, wenn du die kopieren willst.

Susanne

Aber das ist sowas, wo du dokumentenbasiert natürlich super für gebrauchen kannst, wenn du in den Dokumenten selber suchen willst.

Susanne

Gib mir jetzt Gesichtserkennung, ganz klassisch.

Susanne

Das ist sowas, wo du dann dokumentenbasiert hast mit Farbcode und mit was auch immer.

Susanne

Gesichtserkennung wäre jetzt sowas.

Susanne

Wobei ich dann nicht weiß, wie ich glaube,

Dominik

speicherte bestimmte Punkte wahrscheinlich und dann die Winkel dazu kommen.

Susanne

Ja, aber das ist jetzt was, was mir einfällt, wo du so bei Bildern ganz viel machst, das ist das.

Susanne

Es gibt natürlich Dokumenten, MongoDB ist MongoDB ist dokumentenbasiert.

Susanne

MongoDB ist natürlich sehr extremst umstritten.

Susanne

Wie gesagt, die Firmen, die ich kenne, die haben dann da aus der Apache-Geschichte Hadoop und so weiter.

Susanne

Da gibt es auch mal so.

Dominik

MongoDB umstritten?

Susanne

Meine Erfahrung mit MongoDB ist, dass es extrem RAM-lastig ist und auch sehr RAM-aggressiv ist.

Susanne

Aber es gibt da tatsächlich Tests von großen Firmen, die mit F anfangen oder mit B anfangen oder ähnliches, die MongoDB auch wirklich auf die kleinsten Niere auseinandergenommen haben oder mit G anfangen, wo es dann auch mal Dokumente zu gab, warum sie das dann jetzt nicht einsetzen.

Susanne

Und also was ich halt hatte, ist, es gab auch eine Zeit lang Hoster, die gesagt haben, du darfst keinen Tor-Server auf deinem Server machen und keine MongoDB.

Susanne

Gerade in VMs, weil sie dir den RAM vom ganzen Host mit wegziehen oder ähnliches.

Jochen

Auch weil MongoDB am Anfang halt keine, default-mäßig keine Authentifizierung hatte.

Du konntest sie einfach drauf verbinden.

Irgendwas war da ja.

Jochen

Das war so ähnlich wie bei MySQL auch, weil da war es am Anfang auch so.

Jochen

Naja.

Susanne

Aber wie gesagt, die meisten greifen dann aber tatsächlich im professionellen Bereich auf dieses ganze Apache Age-Stoop, Age-Base, A Gratch, Graph und was weiß ich was zurück.

Susanne

Neo4j ist, glaube ich, auch Age Graph.

Susanne

Das hängt irgendwie zusammen bei den Grafenbasierten Elasticsearch, ist so ein klassisches Dokument, ein Ding zum Suchen in Dokumenten.

Susanne

Also da gibt es verschiedene.

Dominik

Da müssten wir jetzt auch nochmal eigentlich im Einzelnen nochmal, wie man das dann mit dem Begriff ist.

Susanne

Ah, da bin ich aber auch nicht wirklich so.

Susanne

Da ist halt das Problem, dass es da ganz viel Software gibt und dass du da, deswegen sage ich immer, man muss das dann auch heutzutage den jungen Menschen beibringen.

Susanne

Es gibt halt nicht nur relationale.

Susanne

Es gibt halt diese anderen und wenn ihr die wirklich braucht, du kannst die nicht alle im Studium lernen.

Susanne

Also da gibt es dann GQL und so weiter.

Susanne

Ich weiß nicht, ob das auch sinnvoll ist, die alle im Studium zu lernen oder hinterher Kurse dafür anzubieten, wie du es programmierst.

Susanne

Gut, wenn du jetzt Programmierer wirst, ist es natürlich sinnvoll, dass du es noch lernst.

Susanne

Ich weiß es nicht.

Dominik

Ja, und wenn man es braucht, vielleicht, ne?

Susanne

Ja, wenn man es braucht, dann muss man sich da mal reinfuchsen.

Susanne

Ich weiß auch nicht, wie viele Schulungen es da schon gibt.

Susanne

Also ich weiß, dass Couch.dB da mal eine ganze Menge gemacht hat im Schulungsbereich.

Susanne

Bei den CouchDB ist, glaube ich, auch dokumentenbasiert, für mich jetzt nicht alles täuscht.

Dominik

Das Cassandra?

Susanne

Das ist, das ist so ein Misch, glaube ich, aus beiden.

Jochen

Ja, das ist, glaube ich, so ein sehr, das kann man halt sehr gut verteilen.

Jochen

Das ist halt auch mehr, aber eigentlich eher so ein Key-Value-Store.

Jochen

Aber ja, also es gibt ja ganz viele unterschiedliche Dinge.

Jochen

Ich weiß nicht.

Jochen

Ich glaube, das ist gar nicht so einfach, sich zu überlegen, was man da jetzt braucht, wenn man sich damit nicht so auskennt.

Jochen

Ich glaube, wenn man sozusagen weiß, was man daneben hat, also wenn man das Problem hat, dann weiß man das.

Jochen

Und wenn man das nicht weiß, hat man diese Post.

Susanne

Das hat tatsächlich an der Uni dann so ein bisschen die Studierenden mit Noah, Quatsch, mit Neo4J spielen lassen.

Susanne

Ich habe aber auch eher so einen Zugang zu den Grafen, als es zu den anderen.

Susanne

Weil bei den anderen kann man sich auch besser vorstellen.

Susanne

Die sind dann auch wahrscheinlich leichter im Selbststühlen.

Susanne

Ich habe die also echt mit Neo4j da, die hatten es mal ein bisschen rumspielen lassen, dass wir es mal gesehen haben.

Susanne

Und das ist ja auch schon mal was, weil damit du überhaupt weißt, das mal gesehen hast.

Dominik

Was würde man denn jetzt nehmen?

Dominik

Wenn man kann GraphQL mit ein bisschen rumspielen will, was würde man jetzt da drunter schicken?

Susanne

Neo4J.

Susanne

Das hat auch eine Oberfläche tatsächlich auch.

Susanne

Also das ist das, womit ich rumgespielt habe bis jetzt.

Jochen

Du meinst GraphQL-Dest von Facebook oder.

Dominik

Zum Beispiel, ja.

Also als eine Sprache.

Das kenne ich gar nicht.

Jochen

Ja, ja, das ist irgendwie so eine neue Geschichte, so quasi als Alternative zu JSON über so JSON-API.

Jochen

Aber das weiß ich nicht, ob das gibt keine Datenbank, die sowas direkt, glaube ich,

Susanne

außer NeoProJ?

Jochen

Vielleicht kann die das, ich weiß es nicht, vielleicht gibt es da irgendeinen Adapter oder so.

Jochen

Ich glaube dieses, dass die Sprache, die die verwenden, irgendwas mit Zeike oder weiß ich nicht mehr.

Susanne

Ah, nee, es gibt tatsächlich standardisiert das GQL mittlerweile, da hat Katimar auch ganz viel nichts mitgemacht.

Susanne

Also, nein, aber das ist, es ist ja erstmal auch wichtig.

Susanne

Guck mal, ich muss auch nicht jede Programmiersprache kennen, aber es ist schon mal schön zu wissen, wie sie heißen.

Susanne

Oder nicht jede Programmiersprache programmieren können.

Susanne

Ich kann jetzt auch kein Python, bin ich ganz ehrlich.

Susanne

Doch, ich habe mal was mit Python gemacht vor gefühlten 100 Jahren.

Susanne

Irgendwo ist mir Python mal wichtig.

Jochen

Wahrscheinlich, wenn es länger hältst, dann ja.

Susanne

Nee, da musste man früher musste man auch schon mal an so Software noch rumspielen, damit man irgendwelche Features hatte, die man nicht hatte.

Susanne

Ich weiß aber gar nicht mehr, wie das Tool hieß, wo man das brauchte in Python, was in Python geschrieben war.

Susanne

Aber so ähnlich wie man bei Autocut auch erstmal Lisp lernen musste, um da irgendwelche Funktionen zum Zeichnen zu machen, weil es gab nur eine Linie und kein Kopieren oder kein Spiegeln oder so.

Susanne

Das musste man sich selbst programmieren in den Lisp.

Susanne

Und irgendwie war das auch, da gab es irgendein Tool.

Jochen

Blender ist eins, was Python schon jetzt lange macht oder ein Platz.

Ah, ja, ja.

Susanne

Also wenn du C kannst, kannst du die meisten anderen auch wenigstens halbwegs lesen.

Susanne

Ja, genau.

Susanne

Und es ist nicht so schwer, da irgendwo reinzukommen.

Susanne

Postgres ist im Übrigen komplett in C geschrieben.

Susanne

Maria.db ist so ein Misch aus C und C.

Ja.

Jochen

Ich meine, ich habe jetzt nicht so viel mehr Erfahrung.

Jochen

Ich habe einmal versucht, in MySQL einen Bug, den ich gefunden habe, irgendwie zu debuggen.

Jochen

Das war eher schwierig.

Jochen

Also ich fand das war so, auch gerade diese Swedding Geschichte war, fand ich jetzt nicht so viel Joy bei mir gesparkt, muss ich sagen, wohingegen Postgres.

Jochen

Sehr gut, kann ich empfehlen, kann man sich sehr gut angucken.

Susanne

Ja, das ist das.

Susanne

Postgres hat er auch immer Lob für gekriegt, dass die einen sehr, sehr guten Quellcode haben.

Susanne

Sehr gut lesbar auch.

Susanne

Aber das liegt natürlich auch daran, dass da wirklich einer drüber guckt und dir hier jeden Codes jedes Mal den Patch zurückstellt, wenn du die Klammer auch nur in der falschen Zeile hast.

Susanne

Ja, das ist ja nicht so.

Was ja fetch.

Susanne

Ja, ne, und wenn du dir den Postcast-Code anguckst, also nur alleine, du machst ihn auf in irgendeinem Editor und du guckst dir den Postcast-Code an und du guckst irgendeinen anderen Code an.

Susanne

Du siehst diesen Unterschied.

Susanne

So ein sauberer Code.

Dominik

Das ist was wert, ne, Jochen?

Doch, finde ich auch.

Susanne

Also früher war immer der Horror Open Office zu kompilieren.

Susanne

Das war immer ganz schrecklich.

Susanne

Und MariaDB brauchte einfach immer lange.

Susanne

Es kompilierte immerhin durch.

Susanne

Aber es brauchte halt auch wahnsinnig lange.

Susanne

Postgres kompilieren war auch früher mit alter Hardware da schon relativ schnell.

Susanne

Und das ist halt der Unterschied zwischen C und C, dass C Plus auch länger zum Kompilieren braucht.

Susanne

Und also es gab da, wenn du mal die Gentoo-Leute fragst, die können dir genau sagen, welche Software da besseren Code hat und welche nicht und welche der Horror ist zum Kompilieren.

Susanne

Das ist so, ja.

Susanne

Du hast noch eine Frage.

Dominik

Ja, ich habe noch einen News vergessen, fällt mir da gerade ein.

Dominik

Und zwar wurde in C von C89 auf C11 geändert in dem Linux-Kernel vom Standard, vom P2.

Jochen

Oh, wow.

Jochen

Richtig moderne Geschichten.

Dominik

Ja, das war halt, ja, modern.

Dominik

Aber das war das erste Mal, dass es da irgendwie Diskussionen gab, wo Linux immer einsetzt.

Susanne

Also Unterschiede Postgres MariaDB, wann würde ich was einsetzen?

Susanne

Es gibt ganz viele Bereiche, wo das völlig wurscht ist.

Susanne

Wenn ich im GIS-Bereich unterwegs bin, würde ich immer Postgres nehmen.

Susanne

Bei Postgres ist es irgendwie mit dem PostGIS doch führend.

Jochen

Ja, ja, genau.

Jochen

Gibt es auch über kommerziellen.

Jochen

Oracle kann das auch nicht.

Susanne

Im Hochverfügbarkeitsbereich bin.

Susanne

Da ist irgendwie MySQL, allen anderen schon vor Jahrzehnten sowas von dran vorbeigelaufen.

Susanne

Und also ich kann bei Maria.db Hochverfügbarkeit, wir reden jetzt von Replikation.

Susanne

Man darf heute nicht mehr Master und Slave sagen aus politischen Gründen.

Susanne

Man spricht dann heute von Primary und Secondary oder Primary und Standby.

Dominik

Der technisch ist wahrscheinlich dann trotzdem genau nicht.

Susanne

Was ich erstmal machen kann bei MariaDB, weil es threadbasiert ist in den Verbindungen und nicht prozessbasiert ist, ich kann da einen Master machen oder Primary und dann 10.000 Slaves dahinter hängen.

Susanne

Äh, 10.000 gewisst was, Standby dahinter hängen.

Susanne

Gar kein Problem.

Susanne

Oder ich kann natürlich auch dann immer einen Standby zum, also ich kann immer replizieren, ein Standby von Standby von Standby.

Susanne

Also kann das so etwas Kette aufbauen.

Susanne

Aber es ist überhaupt kein Problem und das wird auch häufig genug gemacht.

Susanne

Ein Master und dann mehrere tausend Standbys.

Susanne

Machen die großen alle.

Susanne

Und wenn du mal guckst, die meisten großen, die meisten ganz großen haben auch da in diesem Bereich immer Maria dB oder MySQL halt entsprechend von Oracle, aber nichts anderes.

Susanne

Bei Postgres ist prozessbasiert und da hat man ja Lastverbindungen, das sind halt Prozesse.

Susanne

Also da kriegen dann die Postgres Schnapperatnungen, wenn du sagst, du willst einen Master haben und 1000 Cent-Biss.

Susanne

Das ist schon mal eine Sache, da muss ich mir das überlegen.

Susanne

Die Streaming-Replication von Postgres funktioniert super.

Susanne

Ich habe mal einen Wettafsetzen gemacht mit einem von Maria db, mit einem der Chefs von Maria B, mit dem Chef von Maria db, mit reichlich Alkohol dabei.

Susanne

Und wer mehr Keyhits braucht zum Aufsetzen eines Standbys.

Susanne

Und ich hatte zwei weniger als er, obwohl das Wort Postgres länger ist als MyScritia.

Susanne

Aber das war also, das ist relativ simpel.

Susanne

Man will eigentlich bei Postgres die Streaming-Replication haben.

Susanne

Was ich bei.

Susanne

Ja, man will sie eigentlich haben.

Susanne

Dann kann ich bei MariaDB auch sowas machen wie, ich habe zwei Master.

Susanne

Die kann ich theoretisch auch als Master-Master-Replikation nutzen.

Susanne

Das will man aber nicht.

Susanne

Da hat man andere Affefakte.

Susanne

Aber ich kann schon mal zwei Master aufsetzen und da jeweils ein paar tausend Slaves hinterhängen.

Susanne

Ich setze die als Master, Master auf, das heißt, die replizieren gegenseitig.

Susanne

Ich nutze die tatsächlich als Master Slave.

Susanne

Das heißt, ich spiele alles, was ich schreibe, nur auf den einen Master und der repliziert.

Susanne

Wenn ich jetzt aber den Wartungsfall habe, kann ich den einen Master, dann brauche ich nur die IP schwenken auf den anderen Master und dann kann ich den einen warten.

Susanne

Und er zieht sich alles nach, was er verpasst hat.

Susanne

Und ich muss nichts weiter konfigurieren.

Susanne

Das ist das, wie dann auch, das machen auch gewisse weiterführende Tools.

Susanne

Das ist jetzt das einfachste Clustering mit Hochverfügbarkeit und Master Master.

Susanne

Und nee, wie heißt das?

Susanne

Failover oder sowas.

Susanne

Also, dass ich dann einen Master rausnehme, den kann ich dann warten und dann schwenke ich die IP, also ich schwenke die IP auf den anderen Master, dann wird da einfach weiter.

Susanne

Der Anwender merkt da nichts von, das macht Pacemaker, Choro Sync.

Susanne

Das machen die innerhalb vom Augenblick die IP schwenken und dann geht das auf dem anderen Master weiter.

Susanne

Dafür ist das sehr, sehr sinnvoll.

Susanne

Das kann ich mit der Streaming-Replication von Postgres nicht.

Susanne

Das gibt die Streaming-Replication nicht her.

Susanne

Dann hat man ja erfunden, Postgres logische Replikation, die kann aber kein DDL, die kann Master Master und die kann alles Mögliche, was man immer so kritisiert, die kann aber kein DDL.

Susanne

Das heißt, ich kann damit keine Tabellen erzeugen oder ähnliches.

Susanne

Das wird nicht repliziert.

Susanne

Es wird nur repliziert, was ich einmal aufgesetzt habe.

Susanne

Wenn ich danach irgendwie eine Tabelle ändere oder mein Datenbankschema ändere, das wird nicht repliziert.

Susanne

Ist natürlich blöd, weil ja jede Software auch mal irgendwie in ihren Updates auch Schemaänderungen mitbringt.

Susanne

Und müsste ich meine Replikation neu aufsetzen oder da irgendwie rumfursteln, dass sich die Tabellen, die sich geändert haben, da wieder rein.

Susanne

Ist natürlich etwas, das will man eigentlich heutzutage nicht mehr.

Susanne

Man will, dass es automatisch geht.

Dominik

Ist was geplant?

Susanne

Nicht, dass ich wüsste.

Susanne

Man will diese Streaming-Replikation, die ist auch super.

Susanne

So.

Susanne

Aber wie gesagt, die will immer ganz zwingend, dass das anders der Stand bei Read-only ist.

Susanne

Das heißt, dieses Master-Master-Setup kann man nicht machen.

Susanne

Man kann es weiß das Gen schon konfigurieren, aber nicht so schön einfach, einfach nur IP schwenken.

Susanne

Man muss da im Coro-Sync oder im Pacemaker ein bisschen mehr konfigurieren.

Susanne

Der Pacemaker muss ein bisschen mehr machen, um den zweiten dann zum Laufen zu kriegen, wenn der Master wird.

Susanne

So.

Susanne

So weit, so gut.

Susanne

Manchmal braucht man ja auch nur zwei Standbys oder so.

Susanne

Dann ist das nicht so schlimm.

Susanne

Mit den vielen Standbys könnte man ja Postgres nehmen.

Susanne

Jetzt hat man aber das nächste Problem, dass die Postgres-Replikation oder das Transaktionslog, was das alles irgendwie steuert, ist von drei Sachen abhängig.

Susanne

Fangen wir mit dem an, was heute fast am irrelevantesten ist und wo mich die meisten mal fragen, was ist es?

Susanne

Es ist Enion abhängig.

Was ist das?

Susanne

Genau.

Susanne

Das war die Sache mit diesen Zahlen von rechts nach links oder links nach rechts lesen.

Susanne

Also es gibt Big Enion und Little Enion, die meisten heutige Hardware ist Little Enion.

Susanne

Du hast kaum noch Big Enion.

Susanne

Die alten Sun Sparks waren Big Enion.

Susanne

Die haben einfach da die Sachen andersrum drin.

Susanne

Und ich sage ja, das ist nicht mehr ganz so.

Susanne

Dann ist sie, auch das ist meistens was, was keinen stört, betriebssystemabhängig.

Susanne

Wobei, Betriebssystem heißt Linux und nicht SUSE oder Debian, sondern Linux versus Microsoft oder versus, was auch immer Microsoft dafür Betriebssysteme hat.

Susanne

Also ich kann nicht replizieren von einem Linux-Server auf Microsoft oder andersrum.

Susanne

Das stört die meisten anderen nicht, weil meistens hat man sowieso nur in Linux.

Susanne

Und das dritte ist, es ist massivst versionsabhängig.

Susanne

Und da sind wir jetzt an dem Punkt, wenn ich eine Maria DB habe, die kann ich hot upgraden.

Susanne

Sagen wir, ich habe da einen Master oder ich habe da zwei Masters.

Susanne

Ich habe das aufgesetzt, das Master Master System, und habe da jeweils hinter den Mastern noch fünf, ich habe dann vielleicht nochmal drei Slaves hinter den Mastern direkt und die haben nochmal zwei Slaves jeder dahinter und so weiter.

Susanne

Ich habe da noch so ein Kettensystem hinter mit etlichen Slaves.

Susanne

So, dann gehen dann große Firmen hin und die sagen dann, es kommt eine neue Version raus, die upgraden dann erstmal den hintersten Slave bei Maria DB.

Susanne

Weil MariaDB kann ja problemlos von einer niedrigeren, von einer älteren Version in eine neuere Version replizieren.

Susanne

Das heißt, die gucken erstmal beim hintersten Slave oder beim hintersten Stand bei nach, funktioniert alles.

Susanne

Wenn da alles funktioniert, dann machen sie die nächste Ebene.

Susanne

Und so weiter.

Susanne

Es kann sein, dass dann mittlerweile schon noch eine neue Version draußen ist, bis sie den Master überhaupt mal upgraden.

Susanne

Irgendwann kommen sie dann, schwenken die IP und upgraden die Master.

Susanne

Ich kann das komplett hot upgraden.

Susanne

Das heißt, ich habe ja immer nur eine Maschine, die ich da rausnehme aus dem Cluster.

Susanne

Und das geht bei Postgres nicht, weil ich kann nicht von der niedrigeren Version, von der älteren in die neuere.

Susanne

Das heißt, wenn ich ein Upgrade habe, habe ich immer eine Downtime.

Susanne

Die kann ich irgendwie natürlich klein halten.

Susanne

Wenn ich da noch mit irgendwie, ich baue noch nebenher noch eine logische Replikation oder so weiter.

Susanne

Aber ich habe eine Downtime.

Susanne

Irgendwann habe ich den Punkt, wo ich mal eine Downtime habe von dem ganzen System.

Dominik

Diese Seite leider total momentan nicht verfügbar ist.

Susanne

Das ist tatsächlich etwas, was gerade so große Firmen.

Dominik

Der kann teuer werden dann.

Susanne

Ja, nicht nur das.

Susanne

Ja, teuer auch.

Susanne

Lass mal die Amazon-Seite nur 10 Sekunden nicht verfügbar sein.

Susanne

Bei Amazon hat das auch noch.

Susanne

Oder Facebook, 10 Sekunden nicht verfügbar.

Susanne

Das ist so ähnlich wie gute Zeiten, schlechte Zeiten, wenn das Kabelfernsehen ausfällt, kann ich mir vorstellen oder so.

Susanne

Habe ich nie geguckt, weiß ich nicht, aber ich weiß, ich habe mal von Monteuren gehört, dass das, also gerade bei Kabelfernsehen, dass die Leute da verrückt spielen.

Susanne

Also ich kenne das aus Spielefirmen, wie bescheuert da Spieler werden, wenn da Angriffe nicht gefahren werden können.

Susanne

Und du stehst da, das ist doch nur ein Spiel.

Susanne

Aber ja, aber lass mal so ganz große Sachen da irgendwie, das ist, also irgendwann bist du am Punkt, da kannst du nicht sagen, okay, mit der Downtime kann ich leben.

Susanne

Es gibt natürlich andere Anwendungen, wo du sagst, ja Gott, dann haben wir mal einen Tag Downtime.

Das schaffen wir schon.

Susanne

Oder haben wir mal zwei Stunden Downtime.

Susanne

Das kriegen wir hin.

Susanne

Wir haben genug Wartungsfenster drin, zwei Stunden ist überhaupt gar nicht das Problem.

Dominik

Naja, wenn man sich das aussuchen kann, dann kann er irgendwie wirklich was nehmen.

Susanne

Du, es gibt ja so Business, das passiert nur montags bis freitags.

Susanne

Da kannst du am Wochenende auch mal so Upgrades fahren.

Susanne

Durchaus.

Susanne

Jetzt nicht gerade in einer Einzelhandelswahl.

Dominik

Es seien ja auch genug Services, das ist einfach Hauptgeschäfts halt aus.

Jochen

Du hast ja oft auch tatsächlich so natürliche solche Schwankungen auch nachts, kann man oft Backups machen, weil das ging ja zur Tagszeit gar nicht.

Dominik

Ja, aber das ist lustig.

Dominik

Also was zum Beispiel auf dem Backst du nachts die Backups gar nicht mehr machen kannst, weil nachts so viele andere Services laufen, die halt sonst den Betrieb nicht so klären.

Susanne

Das habe ich mal gedacht.

Susanne

Ich habe einen Kunden, der machte Kassensysteme für einen Einzelhandel.

Susanne

Und der hatte eine ganz große Kette Einzelhandel.

Susanne

So 70.000 Bonks pro Minute.

Susanne

Da könnt ihr euch vorstellen, Kassenbons pro Minute, da könnt ihr euch vorstellen, wie groß die Kette war.

Susanne

Und die hatten kaum Wartungsfenster.

Susanne

Jetzt denkst du, okay, so ein Geschäft macht ja irgendwann abends um 10 Uhr zu.

Susanne

Ich glaube, das war sogar eins, was um 8 zu macht, so generell.

Susanne

Hat sonntags nie auf.

Susanne

Samstags vielleicht schon um 16 Uhr zu.

Susanne

Also du hast da ja durchaus nachts nichts laufen.

Susanne

Du könntest da ja Wartungen machen oder Sonntags.

Susanne

Die hatten tatsächlich nur noch einen Tag im Jahr, wo die Wartungen machen konnten.

Susanne

Ich glaube, das war Ostermontag oder so.

Susanne

Und Pfingstenmontag oder irgendwie sowas.

Susanne

Oder wenn donnerstags ein Feiertag war, das ging, glaube ich, ging auch nicht um mich.

Susanne

Weil nämlich diese Einzelhandelskette, dann immer, wenn die Geschäfte geschlossen waren, haben die Preisupdates und was weiß ich, Warenwirtschaftsupdates gemacht.

Susanne

Ohne Ende.

Susanne

Aber auf der Datenbank, wenn die geschlossen waren, die Geschäfte, viel mehr los, als wenn die Geschäfte offen hatten und die ganzen Kassen liefen.

Susanne

Aber weil die ja die ganzen Ware aktualisieren mussten und weiß der Kuckuck was weiß, das lief dann durch.

Susanne

Und so kam das dann, dass die wirklich so für administrative Dinge, dass das wirklich mal down sein konnte, das System.

Susanne

Da mussten schon mehrere Feiertage hintereinander folgen, damit das dann überhaupt nochmal ein Tag blieb, so dass die dann zu hatten.

Susanne

Also deswegen, das ist so was, man muss das vielleicht auch dokumentieren als Admin, dass man dann eine Downtime hat.

Susanne

Man kann die natürlich, man kann das geschickt machen, dass man nicht ganz so viel Downtime hat.

Susanne

Aber man hat eine Downtime und da kommt man nicht rum.

Susanne

Und so ganz ohne Downtime, dieses Hot-Upgrade, wie es so wunderschön bei Maria geht.

Jochen

Das ist halt nicht eingebaut, man muss es dann halt selber machen.

Jochen

Was?

Jochen

Man muss das dann ja vielleicht auch selber machen.

Jochen

Ich meine, ich kann ja schon zwei Datenbanken laufen haben und switche ich dann halt am Lotbalanzer oben, aber dann machen wir halt einen Lotbalancer an, wenn man das switchen kann.

Jochen

Das hat ja wahrscheinlich auch nicht die da.

Jochen

Naja, ich kann ja sozusagen eine Postgres, nehmen wir an, ich habe eine Postgres-Datenbank oder ich möchte die upgraden ohne Downtime, ja, dann habe ich halt eine zweite.

Jochen

Dann muss ich auf der, die ich upgraden möchte, halt, muss ich dann irgendwann sagen, okay, jetzt darf nicht mehr geschrieben werden, dann switche ich, dann muss die andere sozusagen so lange repliziert haben, bis es wieder da ist.

Jochen

Okay, ich habe eine kleine Downtime, stimmt.

Jochen

Und dann switchen wir auch anders auf.

Susanne

Das ist ja genau.

Susanne

Und du hast halt das Problem, dass du echte Hochverfügbarkeit fängt ja bei drei Maschinen an, damit du, wenn einer ausfällt, immer noch zwei hast und nie einer alleine.

Susanne

Du musst ja, wenn du jetzt, wenn du jetzt einen, egal du hast einen Master und zehn Standbys, du kannst sie nur alle zeitgleich upgraden.

Susanne

Was in der Regel dazu führt, dass du den Master upgradest und die Standbys neu aufsetzt auf der neuen Version.

Susanne

Aber du kannst nicht, du kannst ja nicht, weil die sind ja noch auf der alten Version, du kannst nicht in eine andere Version replizieren.

Das heißt, du musst deinen ganzen Cluster zeitgleich irgendwie, das heißt, ganz häufig fängst du dann an, also meine Erfahrung ist, du fängst dann an, du machst dann einfach nur die eine, die Mastermaschine, die greateste ab und die ganzen Standbys setzt sie neu auf.

Susanne

Weil das ist schneller, es ist ganz häufig schneller.

Susanne

Nicht immer, manchmal willst du sie auch einzeln upgraden, aber ganz häufig ist es schneller, sie neu aufzusetzen, weil.

Jochen

Aber kann man das nicht, ja gut.

Susanne

Siehst du das Problem?

So ein bisschen ja, ja.

Jochen

Ich meine, gut, muss man so ein bisschen.

Susanne

Also wie gesagt, du kannst mit einer, wenn du wirklich keinen DDL hast und du weißt, diese Nacht kommt auch kein DDL rein.

Ganz Juli stellen.

Susanne

Nein, auf logische kannst du noch einen logischen Replikationsserver daneben stellen.

Susanne

Da kannst du auch von einer niedrigeren in eine höhere replizieren und andersrum, dass du dann erstmal logisch replizierst.

Susanne

Das braucht natürlich ein bisschen das aufzusetzen, das kannst du ja im laufenden Betrieb machen.

Susanne

Und dann fängst du an mit dem Upgrade.

Susanne

Dann hast du dann erstmal die logische Replikation, die dann weitermacht.

Susanne

Da schreibst du rein, weil du ja logisch replizierst und damit kriegst du es dann ein wenig niedriger, die Downtime.

Susanne

Da musst du aber aufpassen, dass nicht zeitgleich deine Software ein Upgrade macht oder ähnliches.

Susanne

Wenn deine Software so im normalen Tagesgebrauch kein DDL braucht.

Susanne

Also ganz häufig DDL heißt Data Definition Language.

Susanne

Das heißt alles, was mit Create-Alter und Drop zu tun hat oder Grant und Revoke, zählt ja auch noch rein.

Susanne

Also sie dar wirklich nur Insert-Update, Delete und Select machen, mehr nicht.

Susanne

Wenn du keine Creates hast im Tagesgebrauch, dann könntest du sowas machen.

Susanne

Weil dann hast du ja diese DDLs, hast du dann ja nur, wenn deine Software, die du dahinter hast, ein Upgrade machst.

Susanne

Dann hast du ja, meistens, wenn du eine Software-Upgrade hast, hat die auch ein Upgrade in der Änderung in der Datenbank.

Susanne

Irgendwie eine Schemaänderung in der Datenbank, das ist ganz häufig.

Susanne

Aber so kriegt es es dann hin.

Susanne

Also, dass du die Downtime geringer hältst.

Susanne

Es ist nicht so, du kriegst sie nicht ganz weg.

Susanne

Du hast immer, irgendwo hast du eine Downtime und du musst ja dann auch die Standbys wieder aufsetzen.

Susanne

Und das dauert ja auch.

Susanne

Und je nachdem, wie viele Leute und Manpower du hast.

Jochen

Ja, das kann ich ja vorher machen.

Jochen

Ich muss dort leben, dass der Replikationslack halt ein bisschen größer ist.

Susanne

Du ziehst das aus dem selben Backup, genau.

Susanne

Genau.

Susanne

Ja, du kannst auch einfach den Datmank-Surfer neu aufsetzen und dann aus dem Backup das ziehen.

Susanne

Und dann die Standbys dahinter.

Susanne

Und dann hast du aber auch eine Downtime.

Jochen

Ja, so ein bisschen kommt man schon.

Susanne

Ohne Downtime kommst du da nicht aus.

Dominik

Okay, die Datenbank ab und alles in Cache und dann wird der Cache dann.

Susanne

Auch nicht so, ohne weiteres.

Jochen

Also das ist

Susanne

halt, wie gesagt, das ist was, da musst du dir wirklich Gedanken machen.

Susanne

Und das ist auch das große aus.

Susanne

Wenn ich so ein Business habe, ist das meiner Erfahrung nach das Aus für PostgreSQL, dann wird Maria.db genommen.

Susanne

Und das ist dann auch was, wo ich sage, wenn ihr wirklich da so auf 24.7 online verfügbar, das sage nicht nur ich, das sagen auch die großen Firmen, die haben alle in diesem Bereich Maria db.

Susanne

Und das ist ja auch bei, weil es gab, Ericsson hat MySQL Cluster entwickelt.

Susanne

Das ist ein eigenes Produkt, das basiert auf MySQL, das ist noch immer bei Oracle.

Susanne

Das war ursprünglich von Ericsson.

Susanne

Ericsson ist ja nun mal, ihr kennt die Firma Ericsson.

Susanne

Und der ganze Telefoniebereich hat das eingesetzt.

Susanne

Und dann kam dieser, wir werden jetzt Oracle.

Susanne

Und dann brauchten die Kunden ja plötzlich auch irgendwie was von Cluster und MySQL Cluster.

Susanne

War sowieso schon Closed Source, glaube ich.

Susanne

Aber war jetzt nochmal, ich weiß es nicht mehr genau, auf alle Fälle brauchten die was Neues, sondern ist galera entwickelt worden dafür.

Susanne

Und da sitzen die großen Telefonfirmen alle mit dahinter oder saßen anfangs.

Susanne

Weiß ich nicht, ob immer noch so tief steckig jetzt bei MariaDB nicht mehr drin, aber und natürlich die großen anderen Firmen, die da auch alle mit drin stecken in dieser Entwicklung von Maria dB und die nutzen alle fast alle Maria db eben halt wegen dieser Hochverfügbarkeit.

Susanne

Und die haben die auch teilweise mit entwickelt.

Susanne

Also da hat Google mit dran rum entwickelt, beziehungsweise Google hat es eingesetzt, Facebook hat es eingesetzt, wobei das derselbe, teilweise dieselbe Person war, aber die haben ja auch teilweise Code zurückgegeben, wenn die irgendwas hatten, ein Feature oder so, haben die das auch an MySQL, also an uns damals zurückgegeben.

Susanne

Und das wurde dafür entwickelt.

Susanne

Und da haben einfach alle anderen nicht aufgepasst.

Susanne

Da ist MySQL schon vor zehn Jahren und noch früher einfach an allen anderen sowas von vorbeigezogen.

Susanne

Und was bei Postgres passiert, ist, Postgres kann wohl jetzt in einer Replikation, genau das gleiche wie Oracle.

Susanne

Mittlerweile kann Oracle mehr.

Susanne

Weil Oracle hat ja mittlerweile auch kapiert, dass MySQL da mehr kann.

Susanne

Und das ist ja ein und dasselbe.

Susanne

Und das echte MySquare liegt ja bei Oracle, das gehört ja Oracle.

Susanne

Also meines Wissens, meine Info ist, dass Oracle da mittlerweile auch ein bisschen weiter ist, aber Postgres hat halt mit dieser logischen Replikation einfach das entwickelt, was Oracle zu dem Zeitpunkt konnte.

Susanne

Und das war damals aber schon nicht das, was da draußen die Welt braucht.

Susanne

Und wenn du wirklich so ein 24-7-Business hast, in der Form würde ich dir immer sagen, die Maria DB.

Dominik

Ja gut, da muss man aber auch relativ groß schon geworden sein.

Susanne

Ja, du musst es halt dokumentieren.

Susanne

Ich kenne viele Firmen, die Postgres einsetzen und die das Problem nicht haben.

Susanne

Also, ne, das ist nur, du musst halt gucken, ich sage ja.

Susanne

Ansonsten ist mir das immer völlig egal, was du einsetzt.

Susanne

Ich setze tatsächlich selber auch mal das oder das ein.

Susanne

Ich bin da einfach faul.

Susanne

Ich habe jetzt aus irgendeinem Grund, das Bedürfnis PHP mit Postgres einzusetzen.

Susanne

Das wäre noch spannend.

Susanne

Nochmal, wenn ich PHP nutze, weil ich ja auch nicht so der Programmierer bin in PHP.

Dominik

Ich habe gesagt, warum?

Dominik

Was für ein Grund gibt es für PHP?

Susanne

Keine Ahnung, aber dann würde ich dann auch eher einfach weil, ja, machen wir mal eben mit.

Dominik

Du musst nochmal die nächsten Mal Django einsetzen oder an Python.

Susanne

Ich habe mich mal irgendwie letztendlich wieder mit HTML rumgequält.

Susanne

War auch spannend, hatte ich auch ewig nicht gemacht, aber nein, war jetzt ein Beispiel.

Susanne

Also es ist so, genau wenn ich ein Tool habe, was ein Datenbanksystem braucht.

Susanne

Ich nenne das große Webtool, was alle nutzen und keiner es mag, das McDonalds der Webtools.

Susanne

Keiner geht in, aber alle setzen es ein.

Susanne

Ich meine, du kannst das sogar mit beiden benutzen, aber das ist halt für MariaDB oder für MySQL entwickelt als erstes, dann würde ich auch auf dem MySQL aufsetzen, wenn ich es nutzen würde.

Susanne

Also das ist natürlich auch was, auf welchem System ist das Tool als erstes entwickelt, das ist meistens auch das, womit es einfach nur optimaler läuft.

Susanne

Das liegt einfach auch daran, dass du als Entwickler natürlich auch nicht so tief reinguckst und du musst da halt, die sind halt in bestimmten Dingen auch komplett anders und du müsstest das komplette SQL teilweise auch umschreiben und dann, ja, also es ist natürlich schön, dass die Tools sagen, wir können mehrere Datenbanksysteme, dass du es dir aussuchen kannst.

Susanne

Aber da ich beides sehr gut kenne und mir das dann im Endeffekt egal ist, welches eingesetzt wird, gucke ich dann meistens, okay, auf was wurde das Tool denn als erstes entwickelt und nehme das.

Susanne

Ich weiß gar nicht, bei Django ist es, glaube ich, auch MariaDB.

Jochen

Nee, das war von Anfang an Postgres.

Susanne

Nee, es war irgendein anderes Tool, was, ne?

Jochen

Bei Ruby und Rails war es am Anfang MySQL.

Susanne

Das würde ich tatsächlich auch mit Postgres nutzen.

Jochen

Heutzutage macht das kaum noch jemand.

Jochen

Ruby und Rails mit MariaDB benutzt.

Jochen

Also es geht zwar wohl auch, aber bei Django geht es auch, aber das machen halt wenige Leute.

Jochen

Und ich glaube, der, also ich habe gehört, dass der Grund für den Schwenk bei vielen war Heroku.

Jochen

Heroku hat von Anfang an eigentlich dann auf Postgres gesetzt.

Jochen

Und dann war das halt so der Default.

Jochen

Und die meisten haben ihre Ruby und Rails-Geschichten bei Heroku laufen lassen und dann ist das halt sich das da so eingebürgert.

Jochen

Aber da gab es halt so einen Schwenk quasi von MariaDB oder MySQL, also damals war es MySQL, auf Postgres.

Jochen

Bei Django war es schon immer Postgres.

Susanne

Ich vertun mich ja auch irgendein anderes Tool war, war Maria.

Susanne

WordPress war immer schon Maria, ne?

Das ist klassisch.

Susanne

Und da gucke ich nach.

Susanne

Wobei ich auch manchmal danach gucke, auf welchem, welcher Maschine setze ich das auf.

Susanne

Und wenn das die Maschine ist, wo ich Postgres zum Schulungsdatenbanken drauf habe, dann nehme ich grundsätzlich eine Mariahorn andersrum, weil sonst zerschieße ich mir meine Produktiven.

Susanne

Aber mittlerweile gibt es ja VMs genug, dass das nicht mehr passiert, dass du nicht mehr so ohne, oder ist das mit den VMs ja auch einfacher geworden, die aufzusetzen, dass dir das nicht mehr passiert.

Susanne

Aber da bin ich Meister drin, dass ich mir in Schulungen dann irgendwelche produktiven Datenbanken zerschossen habe oder so.

Susanne

Deswegen nehme ich immer das andere System dann, weil dann komme ich nicht auf die Idee, das zu zerschießen.

Susanne

Nein, also mir ist das relativ egal und ich bin da ganz pragmatisch und gucke einfach, okay, womit kann das Tool besser umgehen?

Susanne

Weil der Rest ist mir egal.

Susanne

Was ich natürlich mache, wenn du mir ein Tool gibst und das braucht einer dieser Datenbanken und da gibt es eine Tuning-Empfehlung, dann kannst du dir sicher sein, ich tune das ganz anders, so wie ich denke.

Susanne

Teilweise mache ich es dann noch dichter.

Susanne

Also wenn dann irgendein User gebraucht wird, also ganz schlimm ist, wenn ein Super User gebraucht wird, versuche ich grundsätzlich erstmal ohne Super User, weil ein Super User sollte man ja jetzt nicht unbedingt für so ein Tool nutzen.

Susanne

Und ja, nee, aber das sind so die ganz großen Unterschiede, wo ich jetzt wirklich diese zwei Unterschiede mache.

Susanne

Also wenn ich wirklich in dem ganz tiefen Hochverfügbarkeitsbereich bin, würde ich Maria DB nehmen.

Susanne

Und wenn ich im GIS-Bereich unterwegs bin, immer Postgres.

Susanne

Also, und im mittleren Bereich tun diese ich beide nichts.

Susanne

Also da ist das völlig egal.

Susanne

Da sehe ich weder Vor- noch Nachteile bei dem einen oder dem anderen.

Susanne

Das ist halt ein bisschen, das funktioniert halt.

Susanne

Es ist, das SQL ist leicht anders, der Dialekt.

Susanne

Und ja, bei den Variablen bei der Konfiguration heißen natürlich die Variablen zum Teil anders.

Dominik

Gut, dann halt mit Lizenzen und so und dann, ja.

Susanne

Ah ja, Lizenzen kommen natürlich auch noch.

Susanne

Und wenn du natürlich sagst, du willst das weiterverkaufen, da frage ich dich, was willst du für ein Betriebssystem machen.

Susanne

Da bin ich dann sowieso diejenige, die das gar nicht mehr entscheiden muss, weil dann sind die schon am Betriebssystem vorher normalerweise.

Susanne

Das habe ich gar nicht mehr.

Susanne

Ich würde beide niemals auf irgendwie Windows laufen lassen.

Susanne

Das ist auch noch sowas.

Susanne

Da hat man mal vor vielen Jahren Tests gemacht.

Susanne

Nicht ich, sondern viele große Firmen.

Susanne

Die haben dieselbe dieselbe, wohlbemerkt, Hardware genommen und haben dann geguckt, weil da kommt es immer drauf an, wie viel in fünf Minuten auf die Festplatte gespeichert werden kann.

Susanne

Also wie viel RAM auf die Festplatte ausgespült werden kann.

Susanne

Also wie viel aus dem Cache auf die Platte kommt.

Susanne

Und da gibt es dann immer noch diese 5-Minuten-Regel.

Susanne

Und die haben dann also mit ganz, ganz vielen Tests festgestellt, bei Linux war das im Schnitt damals bei 8 GB und bei Windows 512 Migabyte.

Susanne

Das Problem ist das Journalink, was Windows mitbringt, was das wohl so langsam macht.

Susanne

Und es ist auch tatsächlich so, das ist mir mal aufgefallen.

Susanne

Du dachtest, irgendwann, du hast nur Apple-Hardware, darf ich das sagen?

Jochen

Ja, nicht ausschüssig, aber über den Pflanzen.

Susanne

Wie gesagt, die Chinesen haben beim WTCF jetzt festgestellt, ich habe 675 Anschläge.

Susanne

Das ist ein Wahnsinn.

Susanne

Wenn du das mit Mac und im LibreOffice machst, dann kann das noch zeitgleich mitschreiben.

Susanne

Beim Windows und Word kann ich dann warten, bis mein Text angezeigt wird.

Susanne

Das ist tatsächlich so, das habe ich jetzt gerade ausprobiert, aber man merkt es halt nicht, weil die ganzen Leute, die Microsoft nutzen, die merken gar nicht, wie langsam Office ist.

Susanne

Weil sie ja nichts anderes kennen.

Susanne

Wenn du denen dann wirklich mal so intensiv im LibreOffice gibst, erst danach merken sie, dass das langsam ist.

Susanne

Und das liegt in diesem Journal-Link von Microsoft.

Susanne

Und bei Datenbanken ist das dann natürlich massiv.

Susanne

Und das kannst du nicht abstellen oder du kannst das nur, ich kenne Microsoft jetzt nicht so gut, du kannst das abstellen, aber irgendeinen Dienst stellt das immer wieder an.

Susanne

Aber ein 16.

Susanne

langsamer, das 16-Wache langsamer, finde ich schon schwierig.

Susanne

Und wir haben jetzt mehrere Ziel.

Jochen

Also man kann auch auf Microsoft kann man auch Datenbanken schnell betreiben.

Jochen

Also zum Beispiel, das ist voll, finde ich mal beeindruckend, gibt es auch lange Artikel drüber.

Jochen

Der Stack von Stack Overflow.

Jochen

Stack Overflow war, ich weiß nicht, ob es jetzt immer noch sind, aber lange auch unter den Top 10 Seiten der Welt und das läuft in einem halben Rack.

Jochen

Und das zentrale Stück Infrastruktur ist dann MSSQL-Server.

Jochen

Und das geht wohl auch sehr schnell, wenn man das richtig macht.

Jochen

Aber das ist halt auch nicht so einfach.

Susanne

Der musst du halt nicht administrieren und da musst du halt gucken.

Susanne

Nur das ist halt immer das, was so meine Information dazu ist.

Susanne

Und jetzt habe ich aber auch die Kunden, die ich betreue, die haben meistens auch Linux-Server.

Susanne

Sogar meistens entweder haben sie einen Cent-OS oder sie haben einen DBAN oder Ubuntu.

Susanne

Das kann ich auch meistens nur einschränken.

Susanne

SUSE sich ganz, ganz selten.

Susanne

Und irgendwas anderes Linux-mäßiges auch nicht.

Susanne

Also das tut sich so das echte Debian, das Ubuntu und dann CentOS.

Susanne

Das hast du so.

Susanne

Selten.

Okay.

Susanne

Selten.

Susanne

Tatsächlich selten.

Susanne

Da hast du ja auch das Problem mit Paketen nachladen.

Susanne

Ich weiß es nicht so genau.

Susanne

Ich hatte mal einmal einen Kunden mit Red Hat Enterprise, da mussten wir es nachinstallieren.

Susanne

Die CD lag 300 Kilometer entfernt.

Susanne

Das war auch sehr lustig.

Susanne

Also, und so mal eben, wir ziehen uns das von irgendeinem FDP, gab es nicht.

Susanne

Das war auch sehr lustig.

Susanne

Aber ja, das kann halt ja natürlich auch noch passieren, Red Hat Enterprise, aber du hast halt selten SUSE und alles andere, Gentoo und was es da alles gibt, hast du auch.

Susanne

So gut wie gar nicht.

Dominik

Du hast ja so privat an Binderkarte.

Susanne

Was ich jetzt gehört habe, was wohl wieder im Kommen ist, ist BSD.

Jochen

Ja, ich glaube, das war auch schon immer, es gab immer Leute, die das lieber gemacht haben, gerade für irgendwie wegen ZFS und so.

Susanne

Ja, wobei das ZFS, es bringt nichts.

Susanne

Das hat man auch getestet.

Susanne

Also es ist immer noch XFS oder du kannst auch X4 nehmen.

Susanne

Das ist ZFS bringt gar nichts bei Datenbanken.

Susanne

Das hat man gedacht.

Jochen

Bei Datenbanken, ja, ja, das kann ich nicht.

Susanne

Raiser FS nehme ich auch nicht.

Susanne

BTRF, das Butter FS auch nicht, was SUSA da immer macht.

Dominik

Der Reiser FS nicht irgendwie so ein, war das nicht jemand, der jemand umgebracht hat?

Was?

Ja, das ist ja nicht.

Jochen

Nee, der hat, ja, der ist tatsächlich im Gefängnis gelandet, weil er seine Frau umgebracht hat.

Jochen

Aber ja, das sagt jetzt ja doch nichts über die Kleidheit vom Tissystem.

Susanne

Nein, also tatsächlich ist meine, ich weiß, es gibt ganz viele Microsoft-Server da draußen, aber tatsächlich bin ich eher in der Linux-Welt unterwegs und mich buchen auch komischerweise meistens die Leute, die Linux-Server haben.

Susanne

Auch Migrationen, da habe ich auch mit Linux, aber natürlich musst du das Betriebssystem auch noch ein bisschen tunen.

Susanne

Das machen wir dann ja auch.

Susanne

Und das ist bei Linux ja, das ist auch völlig egal, welches Betriebssystem ist.

Susanne

Also ob du da welche Distribution du da hast, das ist ein Linux und gut.

Susanne

Das ist nur, was ich immer.

Susanne

Ich kenne mich natürlich, weil ich aus der Debian-Ecke komme, natürlich mit Debian und Ubuntu am besten aus.

Susanne

Das heißt, da weiß ich, wo ich das Dateisystem finde, auf Anhieb.

Susanne

Weil bei einem SUSE müsste ich suchen.

Susanne

Das ist jetzt nicht, dass es anders funktioniert.

Susanne

Es ist nur woanders abgelegt.

Susanne

Oder die Konfigurationen liegen woanders oder solche Fein sein, die Logfiles sind woanders.

Susanne

Und man sollte auch immer aus den Paketen, die das Betriebssystem mitbringt, weiß ich gar nicht, was soll man das noch?

Susanne

Jedenfalls nicht selber kompilieren.

Susanne

Was ich in der Regel mache, damit ich die neuesten Versionen habe und das rate ich auch.

Susanne

Bei MariaDB gibt es ganz cool.

Susanne

Auf der Download-Seite, da gibt es ein Tool, das ist nur ganz klein verlinkt.

Susanne

Da kann man dann angeben, was für ein Betriebssystem man hat und welche Version von MariaDB und dann kriegt man eine Anleitung.

Susanne

Dann kann man auch angeben, von welchem Miro man das ziehen will und dann kriegt man eine Anleitung, wie man das dann mal eben installieren kann.

Susanne

So dass es dann auch, wenn man das Betriebssystem upgradet oder updatet, auch abgedatet wird, also die Minor-Updates mitfährt.

Susanne

Und bei Postgres gibt es das ähnlich.

Susanne

Und wenn man jetzt sagt, okay, das Betriebssystem, ich habe jetzt ein LTS und das hat jetzt doch ein sehr altes Datenbanksystem, ich will da ein neueres draufnehmen, dann nehme ich halt diese Pakete und die werden dann passend mit bei Debian in die Sources Listen eingefügt und dann kommt dann bei jedem Update, was ich auf dem Betriebssystem mache, wenn ich da Security Fixes oder so habe bei den beiden, dann werden die gleich automatisch mit geupdatet.

Susanne

Also man soll das nicht mehr selbst kompilieren.

Susanne

So wie früher machen wir auch in den Schulungen nicht mehr.

Schön auf Nixos.

Was?

Schön auf Nixos.

Susanne

Also ja, du kannst bei mir auch noch, ich erkläre dir auch gerne, wie du es kompilierst oder wie du da auch noch diverse Sachen, die du beim Kompilieren ändern kannst, einstellen kannst.

Susanne

Wenn du sowas machst auf ganz kleiner Hardware, das passiert so alle Jubiliare mal, dass ich mal angefragt werde für Postgre aus extrem kleiner Hardware auf irgendwelchen Geräten, die doch sehr klein sind, wo du dann irgendwelche Variablen in C noch ändern musst.

Dominik

Auf nichts, was das, er sehe ich gerade, ist das Service MySQL Enabled True, damit man MiraDB laufen lassen kann.

Interessant, ja.

Jochen

Ja, Python hat da so ein Problem, Python zu installieren, ist immer nach wie vor schwierig oder wüsste ich jetzt keinen Standardweg, wie das geht.

Jochen

Auch wenn ich Python installiere oder halt sagen, so produktiv.

Jochen

Also Desktop gibt es vielleicht noch andere Möglichkeiten, aber wenn ich es irgendwo auf dem Server fand, kompiere ich es tatsächlich momentan auch noch selber, weil es gibt keine gute Alternative.

Dominik

Ja, es ist ja noch total abhängig davon, was für eine Umgebung hat.

Susanne

Reicht es nicht, was das Betriebssystem mitbringt?

Jochen

Naja, Debian macht es kaputt.

Jochen

Debian macht es leider völlig kaputt.

Echt?

Ja.

Jochen

Ja, ja.

Das ist

Dominik

eins der ungelösteren Probleme, denen man irgendwie gucken muss, ob da was passiert.

Dominik

Ja, weil eigentlich will man das halt virtualisiert auch haben, das Preis.

Dominik

Man will ja quasi immer nur sein eigenes nutzen und nicht das System preis.

Dominik

Weil da sonst komische Sachen passieren.

Dominik

Und dann muss man das eigentlich immer neu irgendwo herbekommen.

Uff.

Ja, ja.

Susanne

Auch bei Django und Co.

Jochen

Ja, ja, klar, natürlich.

Jochen

Genau.

Jochen

Das ist halt dann.

Susanne

Das ist dann aber aufwendig.

Jochen

Ja, die tollen Story ist da so ein bisschen ein ungelöst, noch ein ungelöstes Problem.

Jochen

Das ist ein bisschen schwierig, ja.

Dominik

Es gibt ja so Tool-Türen wie PiEnv oder sowas, dann sagst du einfach, was du hast.

Dominik

Aber du musst halt wieder ein extra Tool installieren, was dann halt dir dafür sorgt, dass du dann die weilige Version hast und so.

Ja.

Susanne

Wir sagen ja einfach immer, also da sind die wirklich beide sehr, sehr gut, was das angeht, gerade auch so den Support für die ganzen Linux-Systeme und Distributionen.

Susanne

Du kriegst das natürlich jetzt, ich habe das jetzt vorhin mal eben schnell für Debian erklärt, eben halt, weil das weiß ich auswendig, aber du kannst dann auch, na dann in dem Weg, was habe ich für ein Linux?

Susanne

Du kannst auch Ret Enterprise angucken oder Centor aus und eine Gegner.

Susanne

Du kriegst es genau erklärt, du kannst es per Copy und Paste einfach in deine Shell packen.

Dominik

Hast du die URL gerade im Kopf?

Susanne

Was?

Susanne

Für Maria.db?

Ja.

Susanne

Geh mal auf downloads.mariaDB.com oder org.

Dominik

Gromrede.com Server Download.

Nein.

Dominik

Mared.com Downloads.

Susanne

Ja, zeig mal dann die Ansicht.

Susanne

Und da gibt es irgendwo Configuration Tool.

Susanne

Nee, das ist es nicht.

Susanne

Haben die jetzt die Webseite geändert?

Möglicherweise, aber ist ja anders.

Susanne

Dann gucken wir es.org.

Download.

Download.

Susanne

Maria.db, ich meine Maria.org.

Wir gucken jetzt einmal live an.

Susanne

Downloadsmaria db.org.

Susanne

So.

Susanne

Genau da.

Susanne

Und da hast du.

Susanne

Wo ist denn das?

Susanne

Hier auf der Handy-Version.

Susanne

Das ist natürlich auch super.

Dominik

Ja, natürlich.

Dominik

I'm sorry.

Susanne

Wie heißt denn dieses Tool?

Dominik

Ich gucke es uns einfach später nach, ich glaube.

Genau, das kann ich euch noch.

Susanne

Also in der Desktop-Version, also in der normalen hätte ich das jetzt.

Susanne

Aber es kann auch sein, dass sie die Webseite geändert haben.

Susanne

Da gibt es jedenfalls ein Configuration-Tool.

Susanne

Das heißt auch irgendwie Download Configuration Tool oder so ähnlich.

Susanne

Und dann kannst du das so anklicken.

Susanne

Das ist total cool eigentlich.

Susanne

Und genau.

Susanne

Ja, auf Mac habe ich tatsächlich noch nie.

Susanne

Ich habe das mal installiert.

Susanne

Ich weiß nicht mehr, welches schlimmer war als das andere.

Susanne

Eins wollte, glaube ich, gar nicht.

Susanne

Also das war bei beiden nicht so das Gelbe vom Ei.

Susanne

Würde ich jetzt auf Mac nicht betreiben.

Susanne

Weder das eine noch das andere.

Susanne

Also ich bin.

Jochen

Ja, quasi produktiv sowieso nicht, aber so zum Entwickeln geht beides ganz gut.

Jochen

Ich habe nicht so viel Erfahrung mit MariaDB, aber ja, ist mal probiert, hat es schon funktioniert.

Jochen

Aber ja.

Susanne

Du kannst es beides, irgendwie hin, das zu installieren.

Jochen

Ja, genau, nee, aber.

Susanne

Ich mache das dann tatsächlich, dass ich da es irgendwo auf den Server packe und.

Jochen

Ja, ja.

Susanne

Ob ich auch tatsächlich mit dem Mac nicht entwickle.

Susanne

Also da habe ich tatsächlich noch ein Sinkbad und ein Linux und eine Shell und ist von der Tastatur auch etwas gruselig programmieren auf dem Mac.

Jochen

Ja, da gibt es Leute, die.

Jochen

Ja, oder waren die ganze Zeit lang total kaputt?

Jochen

Ich bin in dieses Problem auch reingelaufen.

Jochen

Das war furchtbar.

Mit dieser schönen F-Bar, die dann irgendwie ausgeblendet zum Scrollen.

Jochen

Ja, es gab ja diverse Probleme.

Jochen

Touchspike eigentlich.

Jochen

Es gab keine S-Hip-Taste mehr, das war hoher.

Jochen

Und gerade als VI-User muss ich sagen, fand ich nicht so gut.

Jochen

War eher so Mittel.

Jochen

Und eine andere Geschichte, die halt auch total nervig war, ist halt, dass das von 2000, also nach 2015, also von 2016 bis 2021 oder 2020, auf jeden Fall Ende 2020, waren die Tastaturen alle kaputt und da sind die Tasten oft nicht mehr gegangen.

Jochen

Und wenn halt irgendeine Tasse nicht mehr geht, ist das auch eher nervtötend.

Jochen

Und das Problem ist, man kann halt auch nicht, also das war halt, ja, um das zu lösen, muss das Mainboard getauscht werden.

Jochen

Das heißt, man muss damit irgendwie irgendwo hin, dann muss das eingeschickt werden, dann laut das eine Woche.

Jochen

Und wer mal darauf angewiesen ist, das Rechner funktioniert, ist das natürlich eher auch gut.

Dominik

Aber wisst ihr was, ich glaube, über Mac-Hardware reden wir gleich bei einem Getränk weiter.

Dominik

Und ich glaube, wir haben ja heute richtig viel gelernt über Datenbank.

Danke für das Daniel.

Dominik

Ja.

Dominik

Das ist ja echt super.

Dominik

Ja, ich würde sagen, wir haben alles so besprochen.

Dominik

Die Picks der Woche lassen wir heute weg, Jochen, oder was sagst du?

Jochen

Ja, ich, also eine Geschichte würde ich vielleicht noch ganz nett irgendwie, wenn man so ein bisschen grafischer das mag, irgendwie zu sehen, wo man eventuell Performanceprobleme hatte, gibt es für Postgres ein schönes Tool, ist also ein kommerzielles Tool, PG Mustard.

Jochen

Kann man sich mal angucken.

Jochen

Ansonsten, ja, weiß ich nicht.

Dominik

Also ja, ich hätte irgendwie noch, ich mache ja gerne dann Modelle irgendwie mit Pydentic, der jemand irgendwie wegschreibt.

Dominik

Und weil das zwischendurch ein bisschen langsam war, weil so pur Python dann schon manchmal Probleme haben kann, gibt es Pydentic Core, das ist in der Rust gecodet, das macht das Ganze deutlich schneller.

Ja, das vielleicht noch.

Dominik

Ja, dann vielen Dank fürs Zuhören, dass ihr eingeschaltet habt.

Dominik

Vielen Dank, dass du da warst nochmal, Sonne.

Ihr habt dadurch befogen.

Dominik

Schalt das mal wieder ein und alle Feedback, Kritik, Anregungen an hallo at pythonpodcast.de.

Tschüss, bis zum nächsten Mal.