Transcript: PostgreSQL und MariaDB

· Back to episode

Full episode transcript. Timestamps refer to the audio playback.

Dominik

Ja, hallo liebe Hörer und Hörer, herzlich willkommen beim Paisen-Podcast, Episode 43.

Dominik

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

Dominik

Und wir haben natürlich wieder den Jochen da. Hallo Jochen.

Dominik

Hallo Dominik.

Dominik

Ich bin der Dominik.

Dominik

Und die Susanne ist heute dabei.

Dominik

Hallo Dominik, hallo Jochen.

Dominik

Hallo Susanne.

Dominik

Ja, haben wir News?

Dominik

Wir starten immer mit 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 irgendwie.

Jochen

Was in der letzten Zeit so passiert ist.

Jochen

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

Jochen

Das hilft wahrscheinlich auch nicht.

Jochen

Genau, ja, also was ist alles so irgendwie passiert?

Jochen

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

Jochen

optimiert. Also es ist halt noch nicht so schnell,

Jochen

also es ist auch noch nicht wirklich vergleichbar

Jochen

mit Nvidia.

Jochen

Aber

Jochen

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

Jochen

Also vorher konnte man schon ein bisschen was machen mit PlateML,

Jochen

aber jetzt gibt's

Jochen

halt auch tatsächlich direkt Unterstützung von PyTorch

Jochen

aus. Und

Jochen

das sah eigentlich schon mal ganz interessant aus und da geht bestimmt

Jochen

noch mehr in Zukunft.

Jochen

Es ist auf jeden Fall jetzt gut zu sehen, dass das 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

Jochen

rausgekommen, das ist ja jetzt schon zweieinhalb Jahre

Jochen

her. Ja.

Jochen

Genau.

Jochen

Das ist aber jetzt eher so eine

Dominik

Minor-News. Ja,

Dominik

außer man hat

Jochen

fast ausschließlich Apple-Hardware, so wie ich dann.

Jochen

Dann ist das natürlich super wichtig, ja.

Jochen

Ja.

Jochen

Ansonsten, ich meine, wenn ihr mal

Jochen

dieses ganze Machine-Learning-Thema

Jochen

und so interessant findet,

Jochen

ich letztens, kann ich

Jochen

den Robot-Brains-Podcast empfehlen von

Jochen

Peter Abiel und da war

Jochen

letzte Woche war da irgendwie Jeffrey Hinton

Jochen

zu Gast oder es gibt jetzt zwei Episoden.

Jochen

Das war, ja, war sehr interessant.

Jochen

Also irgendwie quasi

Jochen

derjenige, der so die ganzen, oder

Jochen

einer von denen, die diesen Deep Learning

Jochen

Hype irgendwie so mit losgetreten haben.

Jochen

Oder was heißt Hype? Ist ein bisschen, eigentlich ist er ja

Jochen

schon durchaus was hinter.

Jochen

Und, ja,

Jochen

der erzählte so ganz interessante Dinge.

Jochen

Also, ja, kann man sich

Jochen

ja mal vielleicht irgendwie anhören.

Jochen

Ja, es gab, das ist jetzt schon ein bisschen länger her, ich habe jetzt eigenartigerweise erst davon erfahren oder vielleicht haben wir das ja auch schon erzählt, das weiß ich nicht so genau. Es gab ein Paper in Nature, NumPy ist jetzt tatsächlich als quasi Artikel irgendwie in einem renommierten Magazin erschienen.

Jochen

Damals, Travis Oliphant hat da ja

Jochen

seine Doktorarbeit für abgebrochen und ihm haben alle

Jochen

gesagt, bist du verrückt? Irgendwie

Jochen

sowas komisches zu machen, Nampai, das interessiert

Jochen

doch niemanden. Und

Jochen

ja, jetzt hat das doch nochmal auch akademische

Jochen

Weinen irgendwie

Jochen

gezeitigt. Das war gar nicht so

Jochen

schlecht. Spät, aber ja.

Jochen

Tja.

Jochen

Genau.

Jochen

Sonst habe ich auch eigentlich nicht so wirklich was.

Dominik

Wir wollten nochmal, vielleicht Blührepeisen haben wir ja schon ein paar Mal

Dominik

eingeladen. Blührepeisen. Bist du jetzt eigentlich da oder

Dominik

weißt du noch nicht? Also ich schon. Ich habe keine

Jochen

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

Jochen

Daher, wenn, dann bin ich alleine da.

Jochen

Kurzfristig, okay.

Jochen

Ja, kurzfristig könnte sein, dass das klappt.

Jochen

Aber man muss halt nochmal gucken, weil Urlaubsplanungen anderweitig sind.

Jochen

Ansonsten müssen wir alleine ein Bier trinken gehen.

Dominik

Also meine Unterkunft ist nicht weit von der Brewdog-Bade entfernt.

Jochen

Ich habe übrigens nachgeguckt, da gibt es keine Zimmer mehr in dem Hotel.

Jochen

Oh, ausgeworfen?

Jochen

Ja.

Jochen

Okay, wow.

Jochen

Hat erst im Mai eröffnet.

Jochen

Tja. Okay. Also, ja.

Jochen

Tja, so ist das.

Dominik

Na gut, dann sind wir heute mit den News dann relativ schnell durch,

Dominik

würde ich sagen, oder? Ja.

Dominik

Haben wir schnell gemacht.

Dominik

So schnell waren wir nur nie, drei Minuten.

Jochen

Wir könnten auch noch irgendwie, es gibt jetzt auch eine

Jochen

Postgres 15 Beta, glaube ich.

Jochen

Da könnten wir eigentlich schon eine Überleitung machen.

Jochen

Oh.

Jochen

Was ist denn in der Postgres 15 Beta drin?

Jochen

Weißt du das? Das weiß ich nicht.

Jochen

Susanne, 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

Susanne

in der Beta und was nicht.

Susanne

Ich könnte da jetzt zählen, wie das immer so funktioniert

Susanne

bei Postgres mit den Beta und den Releases.

Susanne

Ja, dann machen wir doch das.

Susanne

Dann gehen wir da direkt über.

Susanne

Dann machen wir doch genau das.

Susanne

Hauptthema.

Susanne

Hier steht ja, bei Postgres 50 steht

Susanne

Developer Experience and Performance.

Susanne

Ja, also es gibt immer, bei Postgres musst du einen Patch einreichen,

Susanne

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.

Susanne

Das machen dann andere Entwickler und dann kriegst du den Patch entweder, ich sage immer, du kriegst ihn zurück, also da kriegst du dann eine E-Mail, was mit dem Patch ist, ob der so in Kiki ist oder nicht okay ist.

Susanne

Wenn du da eine Klammer ans Ende gesetzt hast, das sind die neue Zeile, 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 Mars ein Vulkan ausbricht, dann wird der Patch halt auch nicht angenommen, 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 noch 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. Das ist gar nicht so selten, das passiert, ja.

Susanne

Mittlerweile schaffen wir es immerhin, rechtzeitig zu releasen. Das war auch schon mal eine Zeit lang nicht so. 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 in den zwei Tagen später, noch während der Schulung, kommt das neue Release raus. 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, 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 nicht angekündigt wird, was drin ist, eben damit man nochmal sagen kann, wir stellen das eine oder andere nochmal zurück. Deswegen wird das auch nicht so groß publiziert, was da jetzt, also wir publizieren jetzt nicht ein halbes Jahr vorher im nächsten Release kommt das und das, sondern das sieht man erst immer mit der neuen Version, mit den Release Notes, was da passiert ist und was nicht.

Susanne

Auf alle Fälle, ab Version 13 ist Postgres noch mal 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.

Susanne

Ah, okay.

Dominik

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

Dominik

Ja, ja, ja.

Dominik

Und können wir anfangen mit unserem Thema.

Dominik

Ja.

Dominik

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

Dominik

Datenbank, ja. Speziell im Allgemeinen

Dominik

oder auch noch ein bisschen im Detail.

Dominik

Du hast ja ganz viele Erfahrungen mit Susanne.

Dominik

Du kennst halt die ganzen Unterschiede

Dominik

zwischen Mü,

Dominik

Maria. Soll ich das erzählen?

Dominik

Ja. Also ich habe,

Susanne

ich erzähl mal kurz die ganze Geschichte.

Susanne

Ich hab mal irgendwann Informatik studiert, vor gefühlten

Susanne

100 Jahren. Und

Susanne

damals an der Uni hatten wir

Susanne

Informix. Und

Susanne

die Rechenzentren waren auch noch nicht so wirklich

Susanne

klimatisiert. Und SSH gab es

Dominik

schon. Erstmal fragen, was ist Informix?

Susanne

Informix ist ein konventionelles Datenbanksystem.

Susanne

Das gehört zu IBM.

Susanne

Und

Susanne

ich hatte

Susanne

mir dann überlegt, ich war ja

Susanne

faul, wollte nicht immer ins

Susanne

Rechenzentrum, wie gesagt, SSH gab es schon.

Susanne

Und habe dann geguckt, wie ich zu Hause programmieren kann.

Susanne

Und welches Datenbanksystem

Susanne

ich dann nehme. Und es gab dann

Susanne

damals schon MySQL so ein bisschen.

Susanne

Und es gab ein bisschen PostgreSQL.

Susanne

Und PostgreSQL

Susanne

hatte

Susanne

mehr Ähnlichkeit. Also da gab es schon

Susanne

irgendwelche Features, die gab es bei MySQL noch nicht.

Susanne

Ich weiß nicht mehr genau, was es war. Ich habe dann

Susanne

PostgreSQL genommen und

Susanne

es war damals wirklich noch ziemlich

Susanne

identisch. Ich habe später

Susanne

erfahren, PostgreSQL und Informix

Susanne

hatten denselben

Susanne

Urkurs. Das war beides irgendwie

Susanne

an der Universität Barclay entwickelt. Nein, das heißt,

Susanne

es gab einen, der das an der Universität

Susanne

Barclay, dieses Datenbanksystem entwickelt hat.

Jochen

Ich weiß nicht, ob das auch schon

Jochen

Michael Stonebreaker war. Ja, das war Michael Stonebreaker.

Jochen

Ich komme noch nicht drauf. Ingress.

Susanne

Ingress heißt es. Ich kam jetzt nur gerade so schnell

Susanne

nicht auf den Namen. Also Michael Stonebreaker

Susanne

hatte dieses Projekt mit Ingress.

Susanne

Michael Stonebreaker hat dann die Universität

Susanne

zweimal verlassen. Ich weiß jetzt nicht, bei welchem

Susanne

Mal und mit dem

Susanne

Code zusammen. Und er hatte dann den

Susanne

Code irgendwie verkauft.

Susanne

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

Susanne

zur Uni. Da er das nicht mehr Ingress nennen

Susanne

konnte, musste es jetzt Postgres heißen.

Susanne

Also nach Ingress. Post für nach

Susanne

Ingress. Und

Susanne

aus dem einen Mal, wo er es verlassen hat,

Susanne

samt Code ist dann später Informix

Susanne

entstanden. Also die basieren

Susanne

wirklich beide auf dem uralten Ingress-Code

Susanne

und deswegen war das zu der Zeit

Susanne

noch, so 2099,

Susanne

2000 war das noch ziemlich identisch.

Susanne

Das heißt, du konntest auch so den Dampf vom

Susanne

einen in den anderen einspülen und so weiter, das war

Susanne

noch relativ, so unterschiedliche

Susanne

Features hatten sie nicht. Ist heute natürlich

Susanne

nicht mehr so, nach 20 Jahren Weiterentwicklung.

Susanne

Und

Susanne

ja, so bin ich

Susanne

irgendwie da reingekommen

Susanne

in diese Postgres-Geschichte.

Susanne

Dann hatte ich einen Job in PostgresQL

Susanne

und ich hatte

Susanne

festgestellt, PostgresQL kann was

Susanne

nicht. Ich hatte

Susanne

im Studium gelernt, dass irgendeine Update-Syntax

Susanne

eine spezielle wäre Standard,

Susanne

aber Postgres konnte das nicht und

Susanne

dann hieß es,

Susanne

ja, entwickle doch.

Susanne

Und ich hatte dann einen Mentor dazu,

Susanne

einen der großen Entwickler von PostgresQL,

Susanne

mit dem habe ich mir ein Büro geteilt.

Susanne

bestimmt gar nicht, der war im Nachbarbüro, aber wir haben zusammen

Susanne

in derselben Firma gearbeitet

Susanne

und dann habe ich angefangen

Susanne

an PostgreSQL mitzuentwickeln

Susanne

und das fand PostgreSQL

Susanne

ganz toll, weil da hatte

Susanne

eine Susanne einen Patch eingereicht,

Susanne

ein weiblicher Vorname

Susanne

und dann haben die also wirklich ganz große E-Mails

Susanne

geschrieben, ob es noch eine zweite Frau gibt

Susanne

oder ob ich die erste wäre

Susanne

und dann haben sie festgestellt, ich war die erste Entwicklerin,

Susanne

die einen Patch dann committed bekommen hat

Susanne

und in den PostgreSQL-Code

Susanne

und das haben die, da haben die irgendwie so

Susanne

waren die so stolz, so juhu, wir haben endlich

Susanne

eine Frau, das hat so ein bisschen

Susanne

Welle geschlagen und dann

Susanne

habe ich aber irgendwie diesen Job

Susanne

naja, da ist was passiert

Susanne

und dann kriegte ich dann, ich

Susanne

brauchte einen neuen Job und ich kriegte

Susanne

dann per ICQ

Susanne

schrieb mich dann jemand an

Susanne

wie das nochmal, oh oh

Susanne

ich weiß es nicht mehr

Susanne

aber es war der CEO

Susanne

von MySQL

Susanne

Er schrieb mich bei ICQ an, ich habe gehört, was passiert ist, du suchst doch bestimmt einen neuen Job, du kannst morgen bei uns anfangen. Und ich stand da, ich habe von MySQL überhaupt keine Ahnung, ich, hallo, 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, wie kannst du bei uns anfangen, hab mir das dann natürlich erstmal überlegt und musste dann so ein bisschen durch diesen Bewerbungsprozess durch mit erstes Interview auf Englisch einer Frau aus Maine, die ich überhaupt nicht verstanden habe.

Susanne

mein späterer Chef sagte, das ist auch schwierig,

Susanne

diesen Dialekt zu verstehen,

Susanne

weil sie hatte

Susanne

mich nach irgendwas gefragt und ich habe ihr was völlig anderes

Susanne

erklärt, weil ich das Englisch nicht

Susanne

verstanden habe. Naja, und

Susanne

Hat sie das gemerkt?

Susanne

Sie hat mich einfach erklären lassen.

Susanne

Natürlich. Ich weiß gar nicht mehr, wonach

Susanne

sie mich gefragt hat.

Susanne

Ich habe, glaube ich, Point-in-Time-Recovery

Susanne

erklärt und sie wollte

Susanne

irgendwas anderes wissen, aber sie hat mich einfach erklären lassen.

Susanne

Irgendwann hast du irgendwas

Dominik

Schönes doch gewusst.

Susanne

Und ja, natürlich, sie wollte, glaube ich, nur so

Susanne

generell so ein bisschen abprüfen.

Susanne

Und ja, dann war ich jahrelang

Susanne

bei MySQL, bis die dann standen wurden.

Susanne

Da habe ich auch noch mitgemacht und dann wurden sie

Susanne

Oracle.

Susanne

Und dann bin ich mit vielen

Susanne

anderen Kollegen gegangen.

Dominik

Das musst du nochmal genauer erklären, das war ganz...

Dominik

Ja, also MySQL

Dominik

ist

Susanne

sehr, sehr schnell gewachsen. Wir waren

Susanne

zum Schluss, als wir noch

Susanne

MySQL, also MySQL ist in Schweden gegründet,

Susanne

ein schwedisches Unternehmen, weltweit alle

Susanne

im Homeoffice. MySQL ist tatsächlich

Susanne

auch einer der Vorreiter, was Homeoffice

Susanne

angeht, also echtes Homeoffice mit eigenen

Susanne

Büros und was man da alles beachten muss, das ist nämlich

Susanne

gar nicht so einfach.

Susanne

Und

Susanne

wir hatten, glaube ich, zum Schluss 400 Mitarbeiter,

Susanne

200 Techniker, 200 Sales

Susanne

oder irgendwie so, so Pi mal Daumen und Auge.

Susanne

Und im Höhepunkt

Susanne

des Erfolges sind die dann für

Susanne

zwei Milliarden an Fun Microsystems

Susanne

verkauft worden. Also da

Susanne

gab es dann auch natürlich, man hat dann

Susanne

wohl Geldgeber gesucht. Das war dann so

Susanne

die Überlegung, machen wir jetzt eine IPO, also gehen wir

Susanne

an den Aktienmarkt, ganz offiziell.

Susanne

Machen

Susanne

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

Susanne

sagen. IPO heißt das Ganze. Ich weiß

Susanne

jetzt nicht, was IPO in Langkorn heißt.

Susanne

International,

Susanne

keine Ahnung. Ist ein klassischer

Susanne

Börsending, wenn eine Firma

Susanne

und dann haben sie aber

Susanne

beschlossen, sie verkaufen es, die Aktionäre

Susanne

das war ja schon irgendwie

Susanne

haben dann beschlossen,

Susanne

sie verkaufen es an Sun Microsystems für

Susanne

zwei Milliarden. Zwei Milliarden

Susanne

finde ich schon eine ganze Menge.

Susanne

Initial Public Offering.

Susanne

Initial Public Offering, genau.

Susanne

Und dann

Susanne

haben sie es verkauft an Sun Microsystems

Susanne

und ein Jahr später ist Sun Microsystems

Susanne

von Oracle gekauft worden.

Susanne

Und

Susanne

jetzt könnt ihr euch vorstellen, dass wir mit Oracle

Susanne

jetzt, das war jetzt der größte Konkurrent

Susanne

eigentlich so.

Susanne

In der Zwischenzeit hatte aber

Susanne

der Montevideo News.

Dominik

Vielleicht noch ganz vorher, also MariaDB war vorher Open Source?

Dominik

Nein, nein, nein, MySQL.

Susanne

Das war alles MySQL noch, MariaDB komme ich jetzt zu, also da irgendwie in diesem Sun Oracle hatte der Monty Vitenius, der Urentwickler, einer der Gründer, der Urgründer von MySQL.

Dominik

Dessen Tüchter dann auch.

Susanne

Das sage ich gleich auch noch, genau. Der hatte irgendwie den Code aber geforkt von MySQL, den er forken konnte legal und hat dann MariaDB gegründet. MariaDB, weil er hat drei Kinder, My, also M-Y, aus Englisch My, Schwedisch eigentlich My.

Susanne

Die jüngste Tochter heißt Maria und er hat auch einen Sohn, der heißt Max. Es gibt auch einen MaxDB, ich weiß nicht, ob es das noch gibt, aber das war eine Datenbank, die unter SAP oder im SAP-Umfeld mit war. Ich glaube aber, die ist mittlerweile ganz, die war schon fast eingestompft, als ich bei MySQL war.

Susanne

Und also hat er gesagt, okay, das nächste System heißt dann Maria, nach meiner jüngsten Tochter. So ist das dann mit MariaDB gekommen. 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.

Susanne

so auch der von den ganzen Services,

Susanne

also Training, Consulting, Support.

Susanne

Und der hatte dann damals eine Consulting-Firma gegründet,

Susanne

SkySQL, weil sie hatten sich überlegt,

Susanne

sie wollten nicht mehr Entwicklung

Susanne

und die Dienstleistung in einer Firma haben.

Susanne

Mittlerweile ist das wieder alles MariaDB,

Susanne

die haben dann das wieder zusammengelegt,

Susanne

aber sie wollten ja ein bisschen aus Erfahrung lernen.

Susanne

Das ist so MariaDB.

Susanne

Es sind ganz, ganz viele Kollegen

Susanne

damals von den Entwicklern zu MariaDB gegangen.

Susanne

Also ich weiß nicht, wer da noch bei Oracle heute ist, ich wüsste jetzt keinen, aber es heißt nicht, dass da keiner mehr ist, aber die.

Dominik

Also quasi komplett einfach alle gekündigt und zum.

Susanne

Ja, das war ganz viel bei diesem Sun Microsystems, Oracle kauft Sun Microsystems, ich weiß nicht, ob ihr das gehört habt, Java zum Beispiel, die Java-Leute haben auch fast alle gekündigt, die Open Office-Leute haben fast alle gekündigt und MySQL halt entsprechend auch.

Dominik

Wo sind die Java-Leute alle hingekommen?

Dominik

das weiß ich nicht. Keine Ahnung.

Dominik

Keine Ahnung.

Dominik

Also wenn ihr es wisst, schreibt mal an

Dominik

halloatpaisenpodcast.de. Ja, genau.

Susanne

Und ja, so war das. Und ich

Susanne

bin dann zurück zu meinen

Susanne

Urzeln. Ich habe mich dann mit einem

Susanne

Franzosen, mit einem Engländer,

Susanne

mit noch einem zweiten Deutschen

Susanne

und einem aus den USA

Susanne

und einem

Susanne

Italiener zusammengetan.

Susanne

Und wir haben dann PostgreSQL

Susanne

erst mal. Es war

Susanne

so ein bisschen gemischt. Die Firma heißt

Susanne

Second Quadrant ist jetzt

Susanne

Enterprise DB

Susanne

und

Susanne

ich habe hauptsächlich

Susanne

Consulting gemacht, weltweit

Susanne

für PostgreSQL, also ich bin

Susanne

ganz viel um die Gegend gefahren,

Susanne

geflogen mit dem Amerikaner

Susanne

zusammen und irgendwann wurde uns das zu viel,

Susanne

mir zumindest, weil wenn du ganz viel

Susanne

unterwegs bist, irgendwann machst du das nicht mehr

Susanne

und dann habe ich gesagt, okay,

Susanne

ich muss kürzer treten,

Susanne

habe dann erst noch so ein bisschen promoviert

Susanne

Und dann am Ende gesagt, eigentlich liebst du das Ganze und machst bis heute im Grunde PostgreSQL und MariaDB als Consultant und Trainer, aber hauptsächlich halt, wo man gut hinkommt. Also keine Langstreckenflüge mehr. Ich brauche das nicht heute Amerika, morgen Japan.

Susanne

Also so, wo man gut hinkommt. Das ist dann auch zum Beispiel, Amsterdam ist näher als Bayern. Nein, ich fahre natürlich auch nach Bayern, so ist das nicht, aber es ist halt nicht so. Das ist so das, was ich mache. Ich war dann zwischendurch noch, Sun Microsystems hatte noch die Idee, 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.

Susanne

Ja, Ansi, also Ansi ist an Microsystem 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

Und bei Postgres war immer das Problem, das wollte der Standard nicht, weil das ja keine Legal Entity hat, also macht ja kein Geld, ist ja irgendwie Open Source, da war etwas komisch. Und dann hatte Sun auch noch JavaDB und ich weiß nicht was, die hatten noch ein paar mehr Datenbanksysteme.

Susanne

Und dann gab es irgendwo auf einer Konferenz ein Meeting, ich war nur per Skype zugeschaltet 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. Also ich hatte Sergey dann gefragt, um was geht es? Und dann erzählte er mir groß, ja, die suchen jetzt jemanden, der uns da im Standardgremium vertreten kann. Und irgendwie so eine Minute später, hast du Lust? Und ich sagte, ja.

Susanne

Und dann hörte ich nur, dass Sergej sagte, ich habe da jemanden. Also es muss so gesehen sein, dass Peter dann wohl von PostgreSQL, den hatten wir mittlerweile zusammen geholt, das war auch lustig, mein alter Kollege Peter Eisentraut, mein uralter 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 Peters Stimme, oh ja, das ist eine coole Idee, da bin ich mit einverstanden. Und dann war wieder Stille und dann hörte ich meinen Chef sagen, auch ohne, dass mein Name bis dahin gefallen war, ja, genau, das ist perfekt.

Susanne

Und dann hörte ich, wie alle anderen fragten, wen meint ihr denn jetzt? Und dann kam raus, ja Susanne. Und so bin ich dann erstmal in diesem Ansiedgremium 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 oder zwei Hersteller. Wenn du drei Gruppen hast, kannst du erstmal einen nationalen Standard gründen. Also bei DIN, die brauchen auch immer drei und das dürfen nicht drei Universitäten sein. Irgendwer muss da schon mal Gewinn bringen mit was zu tun haben.

Susanne

Und dann hast du nationalen, 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. Irgendwie so. Und im ISO-Gremium hat jedes Land nur eine Stimme. Egal wie groß das ist.

Susanne

So, jetzt das amerikanische Gremium. In Amerika saßen natürlich sämtliche Datenbankhersteller, das ist eine riesengroße Gruppe gewesen. Da saß auch Microsoft drin, die haben kaum was gesagt. Im Grunde haben sich da immer 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 oder versuchen dann die Features, die Oracle sich ausgedacht hat, in den Standard reinzubringen, so muss ich das mal höflich sagen. Und IBM und Oracle saßen auch fast in jedem Land.

Dominik

Wer hat mein Geld, da kann man mir einfach was auf den Stand nehmen.

Dominik

Ja, aber wenn du bei ANSI bist,

Susanne

vertrittst du natürlich in dem ISO-Gremium auch die USA.

Susanne

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

Susanne

Dann kam Deutschland auf mich zu und sagt,

Susanne

warum zur Hölle vertrittst du die USA?

Susanne

Und dann haben die mich zu DIN geholt.

Susanne

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.

Susanne

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. Und das ist extremst politisch auch teilweise. Also das ist nicht so einfach. Da kann es dir passieren, dass es uns mal passiert tatsächlich, dass dann ein asiatisches Land gegen den Vorschlag von Deutschland gestimmt hat.

Susanne

Und dann fragte der Kanadier oder der Engländer, irgendwer fragte nach, warum? Und dann kam, ja, weil Deutschland in irgendeiner Schrauben-Norm gegen Japan gestinkt hat oder gegen das asiatische Land. Ich weiß nicht mehr, welches genau. Also so, wir standen da, wir kannten diese Schrauben-Norm nicht mal.

Dominik

Vielleicht nochmal genau erklären, worum es eigentlich geht bei so einem Standard. 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. Also zum Beispiel, dass du egal, welches Datenbanksystem du hast, dass 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ß. 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 und ich sage mal, so ein Select ist ja zum Glück auf allen Datenbankensystemen funktioniert, so ein Insert funktioniert auch meistens noch, dass das Grund-SQL funktioniert meistens noch auf allen gleich.

Dominik

Aber in den Dialekten weicht das dann von Standard ab, oder?

Susanne

Ja, genau. In den Dialekten wird es anders.

Susanne

Und das kommt daher, weil natürlich,

Susanne

diese Gremien, da wird dann ein Vorschlag gemacht.

Susanne

Und du machst keinen Vorschlag,

Susanne

wenn du das nicht schon implementiert hast.

Susanne

Also ich kann zum Beispiel sagen,

Susanne

die Limit-Geschichte ist ganz witzig.

Susanne

MySQL hat Limit erfunden.

Susanne

Also Limit heißt, wenn ich was raussuche

Susanne

und ich mache am Ende Limit 1,

Susanne

dann kriege ich nur den ersten Wert raus.

Susanne

Wenn ich mache 1,3, dann kriege ich, wirft er die ersten drei weg und er gibt mir den vierten Wert, bei der Offset dann drei ist. Also super so ein Tax. Postgres fand Limit total cool und hat gesagt, das implementieren wir auch, aber diese Limit 1,3, also x,y, das ist jetzt ein bisschen arg kryptisch und die haben es dann schon implementiert mit Limit x Offset y.

Susanne

Und dann hieß es, bring das mal in den Standard, dann haben wir dafür einen Vorschlag gemacht. Und das ist auch durchgegangen am Ende. 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,

Susanne

Fetch X-Rows

Susanne

X-Next-Rows-Offset

Susanne

Y.

Susanne

Ja, also das ist dann sowas.

Susanne

Ja,

Susanne

ich glaube, MySQL oder MariaDB hat

Susanne

mittlerweile die Limit

Susanne

X, Y gibt es, glaube ich, auch nicht mehr.

Susanne

Die haben das, glaube ich, auch auf Offset geändert,

Susanne

weil das zu kryptisch war. Da bin ich mir aber nicht

Susanne

hundertprozentig sicher. Im Moment müsste ich ausprobieren.

Susanne

Aber so funktioniert

Susanne

halt das Standard. Und was halt, wo

Susanne

man das halt merkt, wo alle

Susanne

schon was hatten bei sämtlichen

Susanne

Zeitgeschichten.

Susanne

Wenn man ein Date bei Oracle eingibt, ist das

Susanne

immer mit Uhrzeit zum Beispiel.

Susanne

Da merkt man schon, okay, das hatten sie vorher

Susanne

schon. Und dann kann man natürlich

Susanne

als Datenbanksystem sagen, wir implementieren das

Susanne

nach. Wir machen dann Alias draus

Susanne

oder ähnliches. Aber zumindest das

Susanne

Uhr, das Grund ist erstmal

Susanne

dasselbe. Ich sage ja, so ein Insert Statement, so ein

Susanne

normales Update Statement, das funktioniert bei

Susanne

allen ziemlich gleich. Und dann hast du irgendwann

Susanne

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

Susanne

Aber Standard ist halt

Susanne

politische Geschichte.

Susanne

Die treffen sich dann auch zweimal im Jahr.

Susanne

Immer ein Land lädt ein.

Susanne

Und je nachdem, welches Land

Susanne

einlädt, will sich dann auch

Susanne

hervorheben.

Susanne

Dann hast du dann so Meetings auf Hawaii.

Susanne

Nein. Auf Kreta.

Susanne

Ja, sagst du so.

Susanne

Welche Insel?

Susanne

In Deutschland hatten wir mal überlegt, das auf Sylt

Susanne

zu machen. Kommst du natürlich

Susanne

super hin. Wir waren dann am Ende doch

Susanne

in Berlin, weil das DIN-Gebäude in Berlin

Susanne

bot sich an. Wir waren auch in London.

Susanne

Weil auch da haben die gesagt, das bietet sich an. Das ist schon ganz schön, das ist natürlich teuer, weil die Reisen musst du ja auch irgendwo bezahlen. Und Standardisierung ist ein spannendes Thema, ist halt, ja, 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

Während Deutschland, wir waren damals zu zweit, es war noch die Uni Aachen damals mit in dem Gremium, als ich da drin war. Die haben gesagt, wenn ihr beide euch einig seid, einer von Eureka und ich, dann passt das schon so ungefähr. Und auch die anderen Länder waren kleiner. Aber wie gesagt, IBM und Eureka, die saßen fast in jedem Land, hatten die versucht. 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. Mittlerweile sitzt der Peter tatsächlich im Standardgremium in Deutschland, glaube ich auch.

Susanne

Wir haben den Peter sowieso schon mit dazugeholt von PostgresQL. Der hat eine Zeit lang 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. Weil ich habe offiziell ja MySQL vertreten oder MariaDB. Ne, MySQL tatsächlich, nicht MariaDB, weil es wurde ja von Auric bezahlt.

Susanne

Und natürlich hat das Gremium aber mich auch eher dann zu PostgreSQL befragt, weil das war hinterher, als das Oracle war dann ganz lustig, weil eigentlich mussten die von Oracle jetzt MySQL mit vertreten und irgendwie kannte ich dann MySQL doch besser als die und waren die immer sehr froh, dass ich dann noch mit drin war, aber irgendwann bin ich dann da ausgestiegen, weil ich dann auch nicht mehr, ja, wie gesagt, das ist eine teure Angelegenheit.

Susanne

Und mittlerweile ist der Peter Eisentraut da mit drin, dann brauche ich dafür PostgreSQL nicht mal rein und wenn MariaDB da jemanden drin haben möchte, dann, da ich nicht bei MariaDB arbeite, ich weiß nicht, ob einer von MariaDB irgendwo im Gremium sitzt, weiß ich jetzt nicht.

Susanne

Aber das war eine spannende Geschichte, mal zu sehen, wie so Standardisierung funktioniert. Und ich finde das dann ganz lustig, weil SQL heißt nämlich nur SQL. 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. Und die von IBM hieß SQL. Und das Gremium hat dann beschlossen, sie nennen diese neue Sprache, die sie da entwickeln, SQL. War natürlich ein bisschen angelehnt an das IBM SQL, aber war es nicht.

Susanne

Was heißt Sequence Query Language?

Susanne

Gar nichts, das heißt einfach nur SQL.

Susanne

Das steht immer bei Wikipedia,

Susanne

Standard Query Language,

Susanne

Structured Query Language, irgendwie sowas.

Susanne

Und es wird dann, wir schreiben

Susanne

dann immer schon, im Englischen ist das lustig,

Susanne

wir schreiben dann in die Diskussion immer schon rein und

Susanne

ändern das und schreiben dann rein, passt nicht und so.

Susanne

Hier, siehe Standard, heißt nur SQL.

Susanne

Dann steht es drei Tage auch

Susanne

richtig drin und dann ändert es wieder einer.

Susanne

Im deutschen Wikipedia

Susanne

steht es, glaube ich, mittlerweile richtig drin.

Susanne

Also das ist auch so von wegen

Susanne

wie funktioniert Wikipedia?

Susanne

Wenn man dann da steht

Susanne

und denkt so, ich hab's erfunden.

Susanne

Das glaube ich auch irgendjemand anderes mal passiert,

Susanne

irgendeiner berühmten Person, die hat

Susanne

dann irgendwas geändert

Susanne

zu sich selbst.

Susanne

Das hat Wikipedia wieder zurückgeändert,

Susanne

weil sie meinten, sie kennen ihn besser als er selbst.

Susanne

Das hat mich geändert.

Susanne

Kniffliges Problem, genau.

Jochen

Wer ist da autorisiert?

Susanne

Deswegen ist Wikipedia auch,

Susanne

ich erkläre das immer bei Studierenden,

Susanne

deswegen ist Wikipedia auch keine

Susanne

zitierwürdige Quelle, wenn die so

Susanne

wissenschaftliche Arbeiten schreiben müssen,

Susanne

weil das jeder ändern kann

Susanne

und weil du dann auch solche Phänomene hast.

Susanne

Ja, ganz viel dazu.

Susanne

Spannend mal

Susanne

die Geschichte vom Datenbanksystem.

Susanne

Ja, wir können natürlich sowohl

Susanne

Postgres als auch Maria, also ich mache

Susanne

überwiegend heute MariaDB

Susanne

und PostgresQL, selten noch

Susanne

das Original-MySQL, weil das

Susanne

Original-MySQL gibt es natürlich bei Oracle immer noch.

Susanne

Ich habe aber

Susanne

das Gefühl, irgendwo ist meine

Susanne

Kundenwolke die, die dann in dem

Susanne

Bereich MariaDB einsetzt.

Susanne

Also weniger das echte

Susanne

MySQL.

Susanne

Weil MariaDB ist immer noch

Susanne

die Lizenz des Open Source.

Jochen

Hat sich da in der Lizenz

Jochen

mal, weil MySQL hat ja so ein bisschen

Jochen

früher eine etwas komische Lizenz.

Jochen

Das war, oder im Vergleich

Jochen

zu anderen, also jedenfalls im Vergleich zu Postgres,

Jochen

Postgres ist ja sehr liberal, aber

Jochen

eine super Lizenz.

Susanne

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

Susanne

und gut, deswegen

Susanne

ist ja auch Postgres

Susanne

findest

Susanne

du ja auch manchmal an ganz lustigen Stellen.

Susanne

Das findest du dann

Susanne

in irgendwelchen Autos, in irgendwelchen

Susanne

Waschmaschinen oder in irgendwelchen Geräten.

Susanne

Ich weiß jetzt nicht, auf einer Waschmaschine jetzt wirklich.

Susanne

Aber da ist

Susanne

dann häufig, häufig ist auf solchen Geräten

Susanne

dann abgesprengt, es ist net BSD drauf,

Susanne

wegen der BSD-Lizenz.

Susanne

Und dann, wenn sie ein Datenbanksystem

Susanne

wirklich brauchen, dann eine Postgres auch

Susanne

wegen der Lizenz.

Jochen

Auf der Apple Watch ist SQLite, wird auch

Jochen

gerne verwendet. Also wenn die

Jochen

Schritte gezählt werden, auf der Apple Watch

Jochen

macht das eine SQLite.

Jochen

Aber ja, Postgres auf einer

Jochen

Uhr ist vielleicht auch ein bisschen übertrieben.

Susanne

Ich darf nicht unbedingt über Referenzen reden, aber

Susanne

es ist schon spannend, wo Postgres da so

Susanne

überall drin sitzt.

Susanne

Deswegen MySQL und MariaDB, die sagen ja immer

Susanne

oder MySQL hat sich damit immer gebrüstet,

Susanne

vor allen Dingen Oracle und MySQL,

Susanne

Die weltverbreitetste Datenbank, ich weiß das gar nicht,

Susanne

weil Postgres, ich würde das nicht unterschätzen,

Susanne

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,

Susanne

du hast ja alles im Einsatz.

Susanne

Also wenn ich mir mal meinen lieben alten Kollegen Christian Köntorp anhöre,

Susanne

was der da an Datenbanken, wie viele Systeme der bei seiner Firma,

Susanne

wo er heute arbeitet, im Einsatz hat,

Susanne

Das ist ja ganz viel auch von den

Susanne

NoSQL-Systemen, das wird ja alles gemischt.

Susanne

Ganz viel auch mit den Adobe,

Susanne

Adobe, Apache,

Susanne

HBase und wie sie alle heißen

Susanne

und Neo4j

Susanne

und weiß ich nicht.

Susanne

Das wird ja tatsächlich auch sinnvoll

Susanne

eingesetzt. Nimm das

Susanne

Datenbanksystem oder

Susanne

mach nicht alles

Susanne

im Relationalen, mach das im Relationalen,

Susanne

was du im Relationalen abbilden kannst

Susanne

und wenn du was

Susanne

Graf, was besser in Grafen

Susanne

abbilden, wenn es bildet, ist ein Grafen ab.

Susanne

Sowas wie Kunden, die auch

Susanne

X, die X gekauft haben, haben auch XY

Susanne

gekauft. Das ist eher in so einer grafischen

Susanne

Datenbank aufgehoben, als in

Susanne

einer relationalen.

Dominik

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

Jochen

Ja, aber ich, genau,

Jochen

also da,

Jochen

ich finde Postgres ist eigentlich

Jochen

immer ganz schön, oder sagen wir mal so,

Jochen

weil es halt so ein bisschen ähnlich ist,

Jochen

wenn ich Webentwicklung

Jochen

mache, meistens ja sowas Django,

Jochen

mäßiges oder halt, ich mag diesen

Jochen

Batteries-Included-Ansatz eigentlich

Jochen

da sehr gerne und ich finde, Postgres

Jochen

ist das so ein bisschen für die Datenbankwelt, so was

Jochen

so Django für die Web, oder Ruby on Rails

Jochen

für die Webwelt ist, ist halt so, weil also

Jochen

es ist zwar jetzt vielleicht nicht in allen

Jochen

Sachen spitze, aber

Jochen

es kann halt, also fast alles, was man

Jochen

so braucht, ist da schon mal drin und

Jochen

man kann das einfach so verwenden

Jochen

und ja,

Jochen

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

Jochen

Vorsicht!

Susanne

Tatsächlich, wenn ich so objektiv, ich kann ja objektiv sein, weil mir ist das ja ganz egal, was du einsetzt und ich kenne ja jetzt beide, also ob jetzt Maria oder Poskos einsetzt, ich kenne ja beide Systeme sehr, sehr gut 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

Susanne

ganz viel, da ist das völlig wurscht, ob du Postgres

Susanne

oder MariaDB nimmst. Es gibt da so

Susanne

Eckpunkte, wo man dann

Susanne

sagt, okay, das ist vielleicht eher da

Susanne

besser und das ist das besser. Aber was

Susanne

ich mir auch angucke, ist dann teilweise die Menschen,

Susanne

die es hinterher bedienen müssen, weil

Susanne

auch das ist etwas, der eine kommt mit

Susanne

Postgres besser zurecht und der andere kommt

Susanne

mit MariaDB besser zurecht. Das finde ich jetzt

Dominik

spannend. Welchen Nasenfaktor gibt es

Dominik

zu MariaDB? Welchen Postgres?

Susanne

Postgres ist, es kommt

Susanne

darauf an, wo du herkommst, also

Susanne

von welchem Daten, auf welchem

Susanne

Datenbasis-System hast du gelernt

Susanne

Wenn du jetzt wirklich aus

Susanne

der DB2

Susanne

Informix im IBM-Ecke

Susanne

kommst, ist

Susanne

Postgres häufig für dich intuitiver

Susanne

Wenn du

Susanne

aus der Oracle-Ecke kommst

Susanne

möchtest du vielleicht auch

Susanne

Postgres, aber nicht, weil es intuitiver ist

Susanne

sondern weil die Migration

Susanne

einfacher ist. Wobei ich das

Susanne

heutzutage auch mal dahingestellt lasse,

Susanne

du kannst auch zu MariaDB migrieren.

Susanne

Wenn du jetzt wirklich aus der

Susanne

Webentwicklung kommst,

Susanne

Alter LempStack, oder?

Susanne

So PHP, was weiß ich,

Susanne

ja, Lemp,

Susanne

ist vielleicht MariaDB für dich

Susanne

intuitiver.

Susanne

Also es kommt ein bisschen

Susanne

drauf an, wie Hardcore hast du SQL

Susanne

gelernt? Auch.

Susanne

So sage ich jetzt mal

Susanne

ganz trocken. Oder auch, an welcher

Susanne

Uni hast du SQL gelernt? Weil die

Susanne

SQL-Kurse sind ja häufig

Susanne

auch schräg.

Susanne

Also wenn ich mal so...

Susanne

Habe ich das

Susanne

gut ausgedrückt?

Susanne

Ich habe da wirklich schon,

Susanne

wenn ich so junge Menschen, wenn die so

Susanne

lernen, SQL oder Datenbank

Susanne

Vorlesungen, es ist schon

Susanne

sehr spannend. Dann hat man so ein reines

Susanne

Oracle-Dialekt.

Susanne

Teilweise.

Dominik

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

Dominik

lernen. Also wenn ich

Susanne

SQL-Kurse gebe, jetzt für Anfänger,

Susanne

also für Grundkurse heißt das ja,

Susanne

ich mache Standard-SQL.

Susanne

Also

Susanne

ich erzähle dir auch erstmal nicht, dass

Susanne

es in Postgres einen Datentyp Text gibt oder

Susanne

ähnliches, sondern ich mache wirklich erstmal

Susanne

Standard-SQL und mache wirklich die

Susanne

Standardsachen, weil die funktionieren wirklich bei allen.

Dominik

Kennst du da irgendwelche besonderen Tools, die man vielleicht noch

Dominik

verlinken könnte? Achso, du meinst jetzt

Susanne

für Leute, die das grafisch machen

Dominik

wollen? Ja, oder nicht unbedingt

Dominik

grafisch, aber einfach so als

Dominik

Kontext drumherum.

Susanne

Wenn du bei mir SQL lernst,

Susanne

dann musst du das natürlich selbst runterschreiben.

Dominik

Ja, das finde ich super. Aber genau das ist ja

Dominik

vielleicht, also ich habe zwei tolle Sachen entdeckt

Dominik

im Netz, die mir da sehr geholfen haben. Und zwar eins,

Dominik

ein Detektivspiel,

Dominik

wo man irgendwie einen Mordfall aufklären musste.

Dominik

Geführt mit SQL. Das war ein

Susanne

SQL-Tutorial. Das will ich sehen. Genau, das

Susanne

finde ich cool, weil ich finde Gamification ganz

Susanne

gut. Wenn du bei mir die Schulung buchst, dann kriegst du dann

Susanne

einen Bindfaden und darfst dann an einer

Susanne

Pinnwand mit Bindfaden und Moderationskarten

Susanne

rumspielen, damit

Susanne

das ein bisschen lustiger wird

Susanne

in der Gruppe oder so, aber

Susanne

ich erkläre auch Normalisierung.

Susanne

Das ist ja auch so ein Thema, was

Susanne

immer noch ist. Das müssen wir auch gleich

Dominik

nochmal machen, das finde ich nämlich auch interessant, das machen wir aber auch

Dominik

gleich, glaube ich, nochmal extra, Normalisierung.

Dominik

Das ist halt nur,

Susanne

wenn du so teilweise die ganz

Susanne

jungen Menschen, wenn die so SQL in der

Susanne

Uni oder wo auch immer eine Ausbildung bei

Susanne

der IHK oder so,

Susanne

teilweise, wenn du da reinguckst,

Susanne

Also ich werde ja dann häufiger auch mal nach Hilfe gefragt

Susanne

von jungen Menschen, so ganz unabhängig.

Susanne

Und was ich da teilweise sehe, wo ich dann denke,

Susanne

okay, wir schlucken mal.

Susanne

Das ist jetzt aber ganz stark Eureka-Lastik

Susanne

oder ganz stark MySQL-Lastik hast du auch.

Susanne

Häufig, was ich traurig finde

Susanne

in der heutigen Datenbankausbildung ist,

Susanne

also ich weiß jetzt nicht, wie es jetzt in der Pandemie

Susanne

kann sich das ja geändert haben.

Susanne

Ich glaube das aber nicht.

Susanne

Also die letzten Datenbank-Vorlesungen, die ich gegeben habe,

Susanne

ich habe dann tatsächlich mich da mal reingekniet

Susanne

und mir auch die anderen angeguckt,

Susanne

weil die sind seit 2007 auf dem Markt.

Susanne

Und ich kann nicht mehr nur relationale Datenbanken machen,

Susanne

wenn ich es lerne, sondern ich sollte vielleicht auch mal sagen,

Susanne

was ist eine grafenbasierte Datenbank oder eine dokumentenbasierte,

Susanne

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,

Susanne

wenn du es hinterher nicht brauchst.

Susanne

Datenbank ist ein Pflichtfach. Das ist ja

Susanne

sowas. Nur, dass du es zumindest schon mal

Susanne

gehört hast, das finde ich halt sehr

Susanne

wichtig, dass man nicht nur immer auf die

Susanne

Relationalen eingeht.

Susanne

In der Ausbildung.

Susanne

Ich mache natürlich hauptsächlich Relationale,

Susanne

weil das ist mein Thema. Zum Anfang, ich habe es

Dominik

rausgefunden, und zwar ist das SQL Murder Mystery.

Dominik

Ah ja. Das ist das erste.

Dominik

Da geht es halt darum, den Mordfall, also Murder

Dominik

in SQL City,

Dominik

die muss man aufklären und dafür lernt man halt die ersten

Dominik

Queries zu machen, wer war denn in welcher Straße,

Dominik

wann, wie, wo. Das ist sehr interessant.

Dominik

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

Dominik

Ich habe eine Zeit lang auch mal

Susanne

irgendwie sowas gemacht. Stell dir vor, du bist in deiner Küche

Susanne

und dann duftest du deine eigene Küche.

Susanne

Wo sind die Teller und so weiter.

Susanne

Das habe ich auch schon mal gemacht.

Susanne

Aber das finde ich cool, ja.

Dominik

Und ich habe noch ein zweites Story mal gemacht.

Dominik

Das ist auch sehr schön. Select Star, SQL heißt das.

Dominik

Da geht es darum,

Dominik

das ist ein bisschen ein traurigeres Thema, aber die

Dominik

Gefängnisinsassen in Texas, die zum Tode verurteilt waren,

Dominik

auszuwerten, was denn deren letzten Worte waren

Dominik

und warum und so.

Dominik

Ja, aber da gab es dann auch ein...

Susanne

Ich habe gerade bei den Psychologen,

Susanne

die Psychologen-Statistik,

Susanne

sollten dann irgendwelche BWL-Statistiken machen,

Susanne

Umsatzstatistiken und so weiter,

Susanne

wo die Psychologen dann da standen,

Susanne

was ist das eigentlich alles?

Susanne

Also, weil das so BWL-lastig war.

Susanne

Und dann habe ich auch,

Susanne

ich hatte denen halt im Tutorium geholfen

Susanne

und dann habe ich dann einfach die eine Aufgabe gegeben.

Susanne

Ich glaube, es war eine Umsatzstatistik.

Susanne

Da habe ich die Sterbestatistik draus gemacht.

Susanne

Es war dann auch zwar makaber,

Susanne

Aber es war für die leichter Nachfolge zu vollziehen

Susanne

als irgendwas BWL-lastiges.

Susanne

So, was passiert jetzt?

Susanne

Wie viele Menschen sterben da jetzt von?

Susanne

Deswegen, also da muss man immer gucken,

Susanne

was man für ein Publikum hat.

Susanne

Und das ist in der Ausbildung halt sehr, sehr schwierig,

Susanne

weil am besten findest du natürlich Beispiele,

Susanne

die auch alle kennen.

Susanne

Deswegen nehme ich immer gerne,

Susanne

ich habe es aufgegeben, das Kochbuch zu nehmen,

Susanne

weil so ein Kochbuch, so eine Kochbuch-Datenbank

Susanne

ist recht komplex.

Susanne

Vor allen Dingen heutzutage,

Susanne

also früher habe ich immer gesagt,

Susanne

es googelt, es sucht niemand in einer

Susanne

Datenbank nach, gebe mir alle Rezepte

Susanne

mit einem Teelöffel.

Susanne

Oder wo die Menge fünf ist.

Susanne

Brauchst du aber heute doch.

Susanne

Doch einzeln normalisierst du tatsächlich auch aus heutzutage,

Susanne

weil Rezepte, dann hast du natürlich heute auch den Anspruch dran,

Susanne

ich will das mal für zwei Personen kochen,

Susanne

mal für vier Personen, dann wird mit den Mengen gerechnet.

Susanne

Dann brauchst du die Mengen wieder einzeln.

Susanne

Aber nach wie vor sucht natürlich keiner nach,

Susanne

gib mir alle, wo Teelöffel drin vorkommt oder so,

Susanne

oder Messbecher oder Tasse oder was man immer eine Prise,

Susanne

gib mir alle Rezepte, wo eine Prise drin vorkommt, das Einheit.

Susanne

Ein Quäntchen Glück.

Susanne

Ja, aber Kochbuch ist schon eine recht aufwendige Datenbank, das kannst du dann so als Prüfung mal verkaufen, aber dann willst du meistens auch noch irgendwas, du hast hier noch ein View oder ähnliches, dann ist ein Kochbuch wieder auch zu viel.

Dominik

Ich glaube, wenn du so eine volle Datenbank hast, mit der interessant ist, dann ist zum Lernen vielleicht besser, also wenn das nicht nur so trockene BWL-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 mag.

Susanne

Du nimmst halt irgendwas Kleines als Beispiel und machst dann aber mittlerweile auch schon sowas wie Datensicherheit mit rein oder Datenschutz. 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, das muss ja mit einem Meta.

Susanne

Nö, das kannst du ja mit, wann du die Zeile geendet hast,

Susanne

du on update, da machst du noch eine Spalte mehr dran

Susanne

und dann hältst du das dann fest last update.

Dominik

Genau, aber das muss ja ein Modell mit drin stehen haben.

Susanne

Ja, ja, eben, deswegen, das sind dann aber so Sachen,

Susanne

da gehst du dann vielleicht noch mal drauf ein,

Susanne

wenn du so, also dass du ein bisschen mehr auf Datenschutz eingehst.

Susanne

Du machst immer dieses Beispiel, was sind Transaktionen,

Susanne

stell dir vor, du willst dem jetzt 100 Euro überweisen

Susanne

und das muss natürlich auf beiden Konten sein oder auf gar keinem.

Susanne

Ich kann nicht sagen, bei dir sind 100 abgezogen

Susanne

und bei dir sind sie nicht angekommen,

Susanne

wenn das in der Zwischenzeit, ne, das erklärst du

Susanne

immer noch, aber das weiß auch jeder, dass du das in der Praxis

Dominik

nicht machst. Noch so ein Thema, das müssen wir gleich noch mal kurz

Dominik

Transaktionen, das müssen wir gleich alles noch mal

Dominik

aufmachen, da können wir uns die Reihenfolge überlegen,

Dominik

aber ja, zum

Dominik

Einstieg, ist dir noch was eingefallen, wie man das am besten

Dominik

lernen kann oder was du denkst?

Jochen

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

Jochen

ich hab vielleicht eine pessimistische,

Jochen

etwas pessimistische

Jochen

Ansicht dazu, dass man, ich glaub, ich weiß nicht,

Jochen

ob man das so trocken lernen kann,

Jochen

also, oder vielleicht bin ich einfach nicht der Typ

Jochen

dafür. Ich kann das nur lernen,

Jochen

wenn ich das tatsächlich brauche.

Jochen

Und es dauert auch lange.

Jochen

Ich habe

Jochen

angefangen, mich mit diesem Thema zu beschäftigen.

Jochen

Ich fühle mich einigermaßen sicher.

Jochen

Bei relationalen Daten machen wir das eher so Jahre.

Jochen

Und das waren,

Jochen

wenn man jetzt eine Vorlesung

Jochen

hört oder eine Prüfung schreibt,

Jochen

das ist aus meiner Sicht nicht so richtig gut möglich.

Dominik

Ihr müsst jetzt aber wieder verstehen, dass wenn Jochen meint,

Dominik

dass er so einigermaßen sich wohl fühlt, ist er derjenige,

Dominik

der das richtig aus dem Schlaf dann...

Jochen

Nein, einfach so, dass man halt ungefähr weiß,

Jochen

was man da tut, dann das ist...

Susanne

Dann hatte ich einen guten Prof, also ich

Susanne

habe das relativ schnell, aber

Susanne

tatsächlich merke ich, dass

Susanne

das Spannende an SQL

Susanne

ist,

Susanne

das Spannende an

Susanne

Mengenlehre ist, ich hatte ja in der ersten

Susanne

Klasse noch Mengenlehre.

Susanne

Du musst ja sofort erklären, bitte, was

Susanne

ist Mengenlehre? Mengenlehre

Susanne

war in der ersten

Susanne

Klasse, du hast da so

Susanne

ovale gemalt,

Susanne

einen links, einen rechts, das war deine

Susanne

Menge mit den roten

Susanne

Plättchen und das war deine Menge mit den

Susanne

blauen Plättchen.

Susanne

Und dann wolltest du jetzt wissen,

Susanne

ja, gebe mir alle Plättchen,

Susanne

die die Dreiecken haben.

Susanne

Und dann hast du die übereinander

Susanne

gelegt und dann hast du die Schnittmenge aus dem

Susanne

roten und dem blauen Plättchen mit der Schnittmenge

Susanne

die Dreiecken haben. Und die wurde dann lila.

Susanne

Nein.

Susanne

Dann hast du da die viereckigen drin und die fünfeckigen

Susanne

und die Kreise hast du da beides und die

Susanne

dreieckigen waren halt die Schnittmenge.

Susanne

Das ist Mengenlehre. Das nennt man auch

Susanne

so, wie heißt das,

Susanne

Kombinatorik heißt das dann im Studium

Susanne

oder

Susanne

Kombinatorik ist es

Susanne

mit A und B

Susanne

und nicht A oder B

Susanne

und solche Geschichten, genau.

Susanne

Und ich sage immer, SQL besteht ja fast

Susanne

nur aus Mengenlehre.

Susanne

Du hast ja, entweder hast du die Schnittmenge

Susanne

Join, ein einfacher Join ist ja

Susanne

ein innerer Join, ist ja nichts anderes als die Schnittmenge.

Susanne

Und ein Outer Join ist immer

Susanne

irgendwie eine Menge plus der Schnittmenge

Susanne

oder halt irgendwie

Susanne

je nachdem, wenn du das natürlich negierst

Susanne

oder gib mir nur das eine

Susanne

oder das andere. Gib mir alle

Susanne

Werte, die aus

Susanne

Tabelle A, die nicht in Tabelle B stehen.

Susanne

Das wäre jetzt auch ein Outer Join mit einem

Susanne

Nicht drin und so weiter. Also

Susanne

es basiert immer

Susanne

irgendwie, kommst du am Ende immer auf

Susanne

Mengenlehre. Also SQL ist ganz viel

Susanne

Mengenlehre und

Susanne

jetzt habe ich den Faden verloren.

Susanne

Was war deine Frage? Ja, ich wollte

Dominik

kurz, dass du über die Mengenlehre sprichst, weil du gesagt hast,

Dominik

dass die Mengenlehre darunter steht.

Susanne

Ja, aber du hast vorher was gefragt

Susanne

zu SQL.

Susanne

Ach so, ja genau.

Susanne

Ich habe halt im Studium

Susanne

und auch später, wenn ich mal

Susanne

junge Menschen ausgebildet habe,

Susanne

es gab, du hast

Susanne

entweder dieses

Susanne

logische Verständnis für

Susanne

diese Kombinatorik

Susanne

oder du hast sie nicht.

Susanne

Also ich hatte immer, wenn ich

Susanne

Prüfungen abgenommen habe

Susanne

und bewertet habe, ich hatte nur immer Einsen und Fünfen.

Susanne

Also nur so ungefähr, es gab

Susanne

keine Mitte. Und dann kommen

Susanne

dann so einige Institute auf die Idee,

Susanne

du musst ja jetzt deine Noten nach der

Susanne

Normalverteilung verteilen.

Susanne

Und ich sage, super, du hast nur welche, die haben es verstanden

Susanne

und nicht, da kannst du ja vielleicht

Susanne

eine Nuance, vielleicht 1,3 oder 1,7

Susanne

draus machen oder halt, nee.

Susanne

Das ist dann immer sehr schön.

Susanne

Macht man heute zum Glück nicht mehr mit der

Susanne

Normalverteilung, mit den Noten.

Susanne

Wüsste ich jedenfalls nicht, aber

Susanne

ich weiß nicht, ob das

Susanne

angeboren ist oder wie auch immer.

Dominik

Vielleicht wäre es interessant, vielleicht Leute, die in der

Dominik

ersten Klasse sowas wie Mengenlehre hatten.

Susanne

Das war in meinem Studium, ich habe ja Informatik

Susanne

erst angefangen zu studieren, da war ich schon 28.

Susanne

Und

Susanne

da gab es dann natürlich

Susanne

auch schon Menschen, weil das wurde nur

Susanne

in den 70ern in der

Susanne

Grundschule in der ersten Klasse unterrichtet.

Susanne

Das war eigentlich keine schlechte Idee,

Susanne

muss ich sagen. Aber da haben sich

Susanne

so viele Eltern, also man hat sie in Niedersachsen

Susanne

und in NRW unterrichtet, ich weiß nicht

Susanne

wo noch, da haben sich so viele

Susanne

Eltern, da waren die Eltern so massiv dagegen,

Susanne

weil sie das nicht verstanden haben, weil sie es ja nicht kannten.

Susanne

Und dann hat man es wieder aufgegeben

Susanne

und jetzt fängt man dann wieder mit Zellen.

Susanne

Also Zellen kam es nach der Mengenlehre so

Susanne

ungefähr, oder was man heute in der ersten

Susanne

Klasse Mathe macht, ich weiß es nicht.

Susanne

Oder in Rechnen heißt das ja, aber

Susanne

wir hatten halt Mengenlehre. Und im Studium

Susanne

habe ich dann festgestellt, also es gab

Susanne

ja die, die das nicht

Susanne

mehr in der Schule hatten, in der ersten Klasse.

Susanne

Und es gab

Susanne

auch noch einen Teil, der das in der ersten Klasse hatte

Susanne

und mir war im Studium aufgefallen,

Susanne

dass mit der Kombinatorik, die ist

Susanne

natürlich viel umfangreicher.

Susanne

Mit diesen ganzen A

Susanne

und B und oder B und so weiter,

Susanne

die machst du ja in Mathe im Studium

Susanne

und brauchst sie auch dann später

Susanne

zum Beispiel für SQL Kombinatorik

Susanne

und die hatten weniger

Susanne

Schwierigkeiten damit. Ich dachte, na,

Susanne

das ist ja wie Mengenlehre, so ungefähr.

Susanne

Da ist nur ein bisschen, dass du nicht mehr

Susanne

nur rote und blaue und bunte Plättchen hast

Susanne

und Dreiecke und Vierecke, sondern

Susanne

komplexere Sachen

Susanne

da hast, aber im Grunde, während

Susanne

die anderen, die Jüngeren, hatten damit mehr

Susanne

Probleme, weil sie das halt nicht schon aus der ersten

Susanne

Klasse kannten. Das war mir so aufgefallen

Susanne

in der Mengenlehre.

Susanne

Und aber...

Dominik

Ich frage deswegen, weil vielleicht konnte man sich ja vorbereiten

Dominik

zu sowas, indem man nochmal sich so

Dominik

diese Basismengenlehre, wie du sagtest,

Dominik

mit den unterschiedlichen Schnittmengen, Kreisen

Dominik

vor Augen führt, um dann

Dominik

zu überlegen, wie das in der SQL ausfällt.

Dominik

So ein, jemand, der sowas noch nie

Dominik

gesehen hat, der irgendwie einen komplexeren Outer-Join

Dominik

ein bisschen zu fassen sieht,

Dominik

der ist vielleicht erstmal befordert.

Susanne

Ich habe da auch eine Folie für, wo ich

Susanne

wirklich das wie in der Schule mit den Ovalen,

Susanne

ich nenne das immer Eier, mit den

Susanne

Ovalen und Schnittmenge und was

Susanne

ist A und B, A oder B

Susanne

oder A und nicht B und solche

Susanne

Geschichten.

Susanne

Es ist sehr lustig,

Susanne

es ist immer, dass das funktioniert bei

Susanne

MariaDB nicht so ohne weiteres.

Susanne

Es gibt mir dann alles aus

Susanne

A und B, nur nicht die Schnittmenge.

Susanne

Das ist dann ein lustiges Query.

Susanne

Wenn man das in der Anwendung braucht, ist dann was anderes.

Susanne

Aber nur, damit man dann mal die Logik dahinter versteht.

Susanne

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

Susanne

Es gibt ja auch beim Programmieren,

Susanne

wenn ihr so Algorithmen habt in der Programmiersprache,

Susanne

da ist mir auch schon aufgefallen, dass es da Menschen gibt,

Susanne

die können der Logik nicht folgen.

Susanne

Warum auch immer.

Susanne

Die haben aber dann ganz, ganz tolle andere Fähigkeiten,

Susanne

die ich nicht habe, aber

Susanne

das ist dann.

Susanne

Naja.

Susanne

Nein, aber bei SQL ist es

Susanne

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

Susanne

vielleicht machen kannst, ist

Susanne

diese Normalisierung, was du vorhin dann sagtest.

Susanne

Aber auch das,

Susanne

wenn du es einmal verstanden hast, dann

Susanne

ist es auch nicht so schwer.

Dominik

Was der Normalisierung überhaupt ist,

Dominik

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

Dominik

Also wenn ich das so laienhaft richtig verstanden habe, ist das das Aufbrechen einer ganz komischen Tabelle in die richtige Form,

Dominik

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, ich kann dir das jetzt erstmal, ich will das 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,

Susanne

es gibt die dritte und noch folgende.

Susanne

Vierte, fünfte, sechste, ich habe keine Ahnung.

Susanne

Normalerweise normalisierst du nach der dritten Normalform.

Susanne

Das ist so das Übliche.

Susanne

Ich kann dir jetzt auswendig nicht sagen, was die erste und die zweite sind.

Susanne

Musst du es jedes Mal nachgucken, wenn ich es schule.

Susanne

Weil du brauchst immer nur am Ende die dritte.

Susanne

Im Grunde geht es darum, das ist eigentlich ganz simpel,

Susanne

du möchtest zum einen keine Doppelten.

Susanne

Also wenn ich jetzt ...

Dominik

Also in zwei Spalten irgendwo eine Adresse steht,

Dominik

dann möchte ich die nicht zweimal drin haben,

Dominik

sondern eine eigene Adresse, eine Tabelle mit Adressen.

Dominik

Ich hätte jetzt gesagt Stadt.

Susanne

Ich hätte jetzt gesagt, ich hätte es noch weiter runtergebrochen,

Susanne

so Postleitzahl Stadt, das Klassische, was du so in der Tabelle hast.

Susanne

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 Osanbrücke.

Dominik

675 ist ja ein Rekord, finde 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. 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, da hat man dann das Wort Bielefeld einmal drin stehen und dann hat Bielefeld vielleicht die ID 33615, weil das die Postleitzahl ist und oder wonach man das auch immer nur bei Städten wäre, Postleitzahl wäre eine super ID, kann auch eine andere Nummer nehmen, die 760 und dann steht halt bei der Tabelle mit der Person unter Stadt nur 760.

Susanne

Und dann kann man das verlinken und sieht dann, ah, die 67 ist Bielefeld. 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. Und wenn man dann in der Städtetabelle nicht Bielefeld, sondern Bieleflät geschrieben hat, dann ist das halt überall Bieleflät.

Susanne

Also das ist das.

Susanne

Einfach zu ändern.

Jochen

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

Jochen

So ungefähr.

Jochen

Wie kann das denn sein?

Susanne

Ich hätte auch Düsseldorf nehmen können,

Susanne

aber bei 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 tippst immer Osanbrück.

Susanne

Das ist tatsächlich der klassische Tippfehler.

Susanne

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

Susanne

Da 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üchenwaage ist umgedreht und in die Schale von der Küchenwaage war es noch ein Messbecher.

Susanne

Du hast einen Ort, wo deine Teller sind, du hast einen Ort, wo deine Gläser sind. Ich hatte mal eine Mitarbeiterin, die hat tatsächlich beim Ausräumen der Spülmaschine, nein, ich hatte mal eine Mitarbeiterin, die hat beim Ausräumen der Spülmaschine das einfach immer in irgendeinen Schrank gestellt.

Susanne

und dann standen dann die Teller und die Tassen

Susanne

irgendwie so alle durcheinander und ich habe nichts mehr wieder

Susanne

gefunden. Und

Susanne

nein.

Susanne

Also du sortierst

Susanne

in einem ordentlichen Schrank.

Susanne

Du sortierst in deiner Küche,

Susanne

ich habe jetzt die Küche genommen, ich hätte auch deinen Kleiderschrank

Susanne

nehmen können. Du sortierst das ja ein bisschen.

Susanne

Und

Susanne

du hast vielleicht

Susanne

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

Susanne

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

Susanne

Und dann hast du einen Schrank, dann nimm mal die ganze Wohnung,

Susanne

da sind nur deine Unterhosen drin.

Susanne

Die mischst du nicht.

Susanne

So.

Susanne

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

Susanne

Aber das ist erst mal so, dass du das so weit runterbringst,

Susanne

dass du das, was zusammengehört, diese Einheit,

Susanne

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.

Susanne

Und da habe ich das Schlafzimmer, da liegt das.

Susanne

Du hast ja auch nicht unbedingt deine Kleidung in der Küche

Susanne

liegen. Also du kannst auch zimmerweise

Susanne

das machen, je nachdem. Aber dass

Susanne

du diese Einheit hast,

Susanne

in die du das runterbrichst.

Dominik

Das finde ich jetzt interessant, weil ich glaube,

Dominik

das ist sehr, sehr schwierig, weil ich stelle mir das jetzt

Dominik

so vor, dass da relativ viel Validierung

Dominik

nötig ist, das da reinzubekommen, weil

Dominik

beispielsweise habe ich jetzt einen Schrank, wo Gläser reinkommen,

Dominik

aber ich müsste jetzt dann vielleicht doch teilen

Dominik

zwischen Weingläsern und Biergläsern und Wassergläsern.

Susanne

Dann machst du halt zwei Tabellen. Aber woher weiß

Dominik

ich denn jetzt, ob Wasser ein Weinglas oder ein Bierglas oder

Susanne

ein... Das hast du ja irgendwo

Susanne

definiert. Ja.

Susanne

Also, du kannst es auch anders

Susanne

machen.

Susanne

Wir nehmen mal Autos.

Susanne

Autos

Susanne

haben eine Farbe.

Susanne

Autos haben eine Marke. Autos haben einen Typ.

Susanne

Und so weiter.

Susanne

So.

Susanne

Und die haben einen Preis. Du willst jetzt

Susanne

so eine Autowebseite machen,

Susanne

wo du dein Auto verkaufen kannst.

Susanne

Jetzt stell dir

Susanne

vor, du packst alles, alle Informationen

Susanne

des Autos in eine

Susanne

Tabelle.

Susanne

So,

Susanne

und jetzt will ein Käufer

Susanne

danach suchen.

Susanne

Er möchte jetzt nur, nennen wir eine

Susanne

Automarke, nur Mercedes haben.

Susanne

Bestimmt ein Typ noch,

Susanne

ein bestimmtes Baujahr.

Susanne

Und dann überlegt sich der

Susanne

Käufer, okay, also du musst dann alles aus dieser

Susanne

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, du hast ja keine zweite Tabelle, wo der Typ drin steht und hast dann nur die Nummern drin, auch noch fünfmal falsch geschrieben wahrscheinlich, ne?

Susanne

Mercedes vielleicht auch noch dreimal falsch geschrieben.

Susanne

Du hast alles in einer Tabelle, das wird sehr, sehr schnell, wird die Tabelle sehr, sehr breit.

Susanne

Auch bei der Farbe, gib mir alle roten Autos, Frauen suchen ja gerne, habe ich mal gehört, nach der Farbe der Autos, weiß ich jetzt gar nicht, ob das, habe ich noch nie ausprobiert bei solchen Sachen, gib mir alle roten Autos, aber theoretisch geht das wahrscheinlich, praktisch geht das wahrscheinlich auch, aber erstmal wird die Tabelle ziemlich breit und du bist da.

Susanne

Also breit hast du viele Spalten.

Susanne

Viele Spalten, also du hast halt viele Informationen zu dem Auto.

Susanne

Es hat vier Reifen, es hat vielleicht noch die Reifentypen und so weiter.

Susanne

Und die Reifengröße und was weiß ich, was man da Baujahr und wie alt, Tachostand und alles mögliche.

Susanne

Aber das ist alles in eine Tabelle und dann sucht jemand,

Susanne

möchtest du einen Käufer haben, der jetzt bestimmte Eigenschaften daraus sucht.

Susanne

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

Susanne

Es gab in der Vergangenheit eine Plattform, die was Ähnliches gemacht hat und die hatten wirklich nur eine Tabelle. Und die haben mit Hardware skaliert, weil sie das nicht mehr anders skaliert haben und die sind auch dann ein wenig in finanzielle Not geraten, weil die Hardware dann irgendwann nicht mehr bezahlbar war.

Dominik

Okay, immer teurer, mehr Geld aufmachen.

Susanne

In der Zwischenzeit waren aber ein paar Kollegen von mir da. Die hatten erst, glaube ich, eine Oracle-Datenbank. Ich wusste davon nichts. Als ich dazu kam, waren sie dann mittlerweile, weil sie Konkurs 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. Und dann wollten sie, sie wollten damals von MySQL nach PostgreSQL migrieren. Und sie hatten immer noch diese eine große Tabelle. Und ich habe dann gesagt, naja, das liegt nicht an dem Datenbanksystem, was ihr da drunter habt, das liegt an dem Design eurer Datenbank. Das solltet ihr mal ändern. Ihr werdet mit PostgreSQL genau das gleiche Problem kriegen wie mit MySQL war es damals noch.

Susanne

Ich bin dann nach Hause gefahren und dann kriegte mein britischer Kollege einen Anruf, der konnte die Consultant verscheißen. Ich habe ja nicht das gesagt, was ich hören wollte so ungefähr. Schick mal einen anderen.

Susanne

Und mein britischer Kollege hat dann einen ganz jungen dahin geschickt, weil er meinte, naja, ich werde auch nichts anderes sagen als du. 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 mit meinem Mann darüber aufgeregt, über diesen Kunden, ohne ihn zu benennen. Ich weiß jetzt nicht, ob mein Mann wusste, bei welchem großen Kunden ich war. 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, ich so, woher weißt du das? Und dann hat er mir das erzählt, dass zwei sehr bekannte MySQL-Consultants, da damals schon mal waren, da wollten die von Oracle nach MySQL migrieren und die beiden hatten auch, 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, der hat das dann auch nochmal gesagt und ich glaube ein dritter war dann auch nochmal da.

Dominik

Der hat dann gesagt, hat er gehört, was die vorher beraten, hat er gesagt, oh ja, ja.

Susanne

Nee, nee, das brauchst du gar nicht, das war so offensichtlich. Und naja, okay. Und dann hatten die nie wieder was davon gehört, bis ich dann da war. 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. Und dann habe ich das erzählt 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, aber das passiert, wenn du alles in einer Tabelle hast und wenn du da so viele Informationen drin hast, wenn du dann 250 Spalten hast in einer Tabelle, das macht auch nicht mehr wirklich Spaß, die Informationen daraus zu suchen, die willst du auch nicht mehr lesen und nicht mehr warten.

Susanne

Ja, das ist, MariaDB hat irgendwo ein Spaltenlimit bei, ich weiß nicht wo, 256 oder so. Wenn du das erreichst, ich habe so Tabellen gesehen, wenn das dann nur noch hochscrollt an Spalten, das ist überhaupt nicht mehr wartbar. Also mal abgesehen davon, dass da ganz komische Artefakte passieren, aber irgendwann denkst du dir schon von dir aus, okay, ist es vielleicht sinnvoll, diese Tabelle mal mehrere aufzuteilen.

Susanne

Ja, das vielleicht unter Kategorien zu fassen.

Susanne

Ja genau, also das Normalisieren heißt einfach, du fasst es irgendwo so zu Kategorien zusammen oder das zusammen, was zusammen gehört. 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. Kann man jetzt den Lieblingsinterpreten draus machen, was auch immer.

Susanne

Wenn du jetzt natürlich eine Tabelle hast,

Susanne

da steht dann fünfmal Helene Fischer,

Susanne

äh, dumm, fünfmal die

Susanne

Ärzte, kenn ich mehr Titel,

Susanne

und da steht

Susanne

dann 127 Mal, oder wer weiß, wie

Susanne

viele Songs die Ärzte gemacht haben, da

Susanne

drin, 127 Mal die

Susanne

Ärzte und daneben steht dann,

Susanne

sag mal, erst mal, wie

Susanne

viele Songs sind auf so einem Album?

Susanne

30 Mal

Susanne

das eine Album, dann das

Susanne

andere Album und dann die Songtitel nochmal.

Susanne

Dann hast du erst schon 127

Susanne

Zeilen, wo du die Ärzte doppelt

Susanne

zigfach drin hast und dann

Susanne

das machst du ja nicht nur mit einem,

Susanne

das machst du dann ja mit deiner ganzen Plattensammlung

Susanne

oder deiner ganzen Song-Sammlung

Susanne

und dann hast du eine riesige Tabelle.

Susanne

Also, was

Susanne

machst du da? Du machst natürlich

Susanne

als erstes mal, du nimmst erst mal die

Susanne

Interpreten raus,

Susanne

machst da von der eigenen Spalte, da hast du

Susanne

eine Interpretenspalte. Kannst du vielleicht noch mal die Adresse

Susanne

oder wo du dann die

Susanne

Autogrammkarten kriegst oder was auch immer,

Susanne

je nachdem, warum du jetzt die Musiktitel sammelst,

Susanne

noch mit dazu packen,

Susanne

Ansprechpartner oder Ähnliches von der Band.

Susanne

Aber die packst du in eine Tabelle,

Susanne

die kriegen eine ID,

Susanne

diese klassische Personen-ID,

Susanne

die lässt du automatisch generieren,

Susanne

haben die halt so, was weiß ich,

Susanne

die Ärzte ist vielleicht Nummer 1

Susanne

und dann steht in deiner Song-Tabelle

Susanne

nur noch die 1 drin für die Ärzte

Susanne

und die 2 für Rammstein

Susanne

und die 3 für irgendwas.

Susanne

Und die 27 für Helene Fischer

Susanne

sowas in der Richtung. Also

Susanne

hast du danach die Nummer und du kannst dann nachgucken,

Susanne

wenn du dann hinter der Tabelle bist, okay, interpretest

Susanne

Nummer, was hatte ich vorhin, drei

Susanne

und dann guckst du in der anderen Tabelle nach, Nummer drei

Susanne

ist,

Susanne

habe ich vergessen.

Susanne

Hatte ich überhaupt eine drei?

Susanne

Weiß ich nicht mehr, aber eine zwei bei Rammstein,

Susanne

das weiß ich noch. Und die drei ist dann

Susanne

Sepultura, irgendeine Metalband. Ja, egal.

Susanne

Nur, dass du dann halt

Susanne

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,

Susanne

wir sind ja bei dem Titel im Grunde,

Susanne

aber 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,

Susanne

Album und Band, so eine Zwischentabelle,

Susanne

dass du das Album und die Band noch zusammenlegst,

Susanne

dann hast du nicht bei dem Album immer noch die Band stehen,

Susanne

sondern du machst eine Zwischentabelle,

Susanne

wo du das Album und die Band reinpackst

Susanne

Und dann hast du dann, ab 18 ist vielleicht bei den Ärzten,

Susanne

das erste Album hat die ID 1, ist von den Ärzten.

Susanne

Und dann steht in dieser Zwischenstabelle 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.

Susanne

Und dann hast du halt nur noch die Tabelle mit dem Titel,

Susanne

wo dann draufsteht, Album 1, Band 1.

Susanne

Ach so, da hättest du es sowieso drin,

Susanne

dann brauchst du es gar nicht.

Susanne

Oder nur Album 1.

Susanne

Und dann kannst du es dann noch mal weiter verlinken,

Susanne

wenn du da jetzt nochmal, jetzt wäre das doppelt,

Susanne

aber das macht man schon dann, das

Susanne

demonymisiert man dann schon mal leicht, aber

Susanne

das wäre so, dass du es ein bisschen

Susanne

sortierst, dass du es halt kleiner

Susanne

machst. Wenn du es aber zu klein

Susanne

machst,

Susanne

es macht keinen Spaß, Kombinationen

Susanne

aus Datenbanken zu suchen, wenn du

Susanne

dabei weißt, wie viele Tabellen hast.

Susanne

Also bei über 8

Susanne

wird das irgendwo spannend.

Susanne

Es macht dann auch nicht mehr wirklich Spaß,

Susanne

die alle zu verjoinen. Dann fängst

Susanne

dann angezielt zu denormalisieren.

Susanne

Ich hatte das jetzt gerade schon gemacht,

Susanne

indem ich dann halt

Susanne

gesagt habe beim Titel, okay, das ist

Susanne

auf Album 1 und auf dem Interpreten

Susanne

1. Es hätte ja gereicht,

Susanne

der Interpret steht ja schon mal beim Album.

Susanne

Den hätte ich gar nicht so doppelt

Susanne

drin gehabt. Aber das wäre so eine leichte

Susanne

Denormalisierung schon. Und das

Susanne

erklärt man auch immer gerne. Beim Kochbuch habe ich das

Susanne

früher erzählt, niemand sucht nach

Susanne

Teelöffel. Das heißt, du kannst bei der

Susanne

Menge auch sagen, 200 Teelöffel,

Susanne

200 Gramm oder so.

Susanne

Da ist es auch egal, ob du Gramm groß, klein oder nur GR schreibst.

Susanne

Oder wie du Teelöffel abkürzt, ist auch völlig egal,

Susanne

weil da sucht keiner nach.

Susanne

Heutzutage ist es aber nicht mehr so,

Susanne

dass du in die Menge beim Kochbuch einschreiben kannst,

Susanne

300 Gramm Mehl, ne?

Susanne

Also du hast Mehl und dann 300 Gramm,

Susanne

wenn du jetzt die Zutaten zusammen mischt,

Susanne

weil du ja diese Funktion hast,

Susanne

ach, gib mal jetzt für zwei Personen oder drei

Susanne

und teil mal, dann brauchst du plötzlich nicht mehr 200 Gramm,

Susanne

sondern 150 oder so.

Susanne

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

Susanne

Du machst aber nicht mehr als die dritte Normalform, alle anderen sind eher universitär und unübersichtlich, also so ein bisschen.

Susanne

Also die ein bisschen tiefer gehen halt.

Susanne

Ja, also die dritte Normalform ist eigentlich das, was du am Ende brauchst und du brauchst immer einen Schlüssel, jeder Datensatz sollte einen Schlüssel haben.

Susanne

Es ist ganz lustig, wenn du Datensätze in einer Datenbank hast,

Susanne

die keinen Schlüssel haben.

Susanne

Und da steht dann in der Datenbank fünfmal drin,

Susanne

Volker-Meyer-Adolf-Straße 27 in Düsseldorf.

Susanne

Jetzt hast du den Datensatz ausgesehen, fünfmal erfasst.

Susanne

Er sieht aber identisch aus, komplett.

Susanne

Fünfmal.

Susanne

Du willst ihn eigentlich nur einmal haben.

Susanne

Du musst ja jetzt die vier da rauskriegen.

Susanne

Wie kriegst du die da raus?

Susanne

Das ist schon eine lustige Aufgabe, passiert manchmal, ich weiß, wie man es rauskriegt, aber alleine schon deswegen ist es sinnvoll, dem Ganzen auch noch eine Kennung zu geben, irgendeine Eindeutigkeit und deswegen hast du meistens dann, meistens heißt die Spalte dann auch ID, in den meisten Datenbanken heißt die dann ID, dass da eine Spalte davor sitzt, wo du dann eine Kennung rein hast.

Susanne

Und dann hast du dann, Nummer 1 ist Klaus-Meyer, Nummer 2 ist Klaus-Meyer, 3 ist Klaus-Meyer, 4 ist Klaus-Meyer, 5 ist Klaus-Meyer und dann kannst du dann sagen, delete alle, wo Name Klaus-Meyer 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 Eindeutigkeit 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, diesen alleinigen. Das ist das noch, was dazukommt. Und dann hast du die dritte Normalform, du brauchst ein Primärkey und du musst, Primärkey heißt das auf Deutsch, Primärschlüssel heißt das so. 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,

Dominik

dann schreibt man halt alles rein.

Dominik

Was?

Dominik

Ich würde sagen, Normalisierung haben wir, glaube ich,

Dominik

soweit verstanden, oder?

Dominik

Ja, also, genau.

Dominik

Also, ich meine, irgendwann,

Jochen

ich habe dann irgendwie meistens,

Jochen

wenn bei irgendeinem neuen Problem oder so,

Jochen

da oft dann angefangen,

Jochen

so ein Entity-Relationship-Diagramm hinzumalen oder so.

Jochen

Und das, genau, das macht man dann eigentlich meistens.

Jochen

Irgendwann hat man das dann so ein Gefühl,

Jochen

wie das dann aussehen kann.

Jochen

Das mache ich tatsächlich auch.

Susanne

Also, dass ich mir das grob

Susanne

auf irgendeinem Schmierzettel

Susanne

aufmale und

Susanne

wenn ich es nicht, wenn es nicht nur drei Tabellen

Susanne

sind, das kriege ich im Kopf und hin, aber

Susanne

tatsächlich mache ich das auch

Susanne

tatsächlich, dass ich mir das dann teilweise mal auf dem Schmierzettel

Susanne

überlege. Wie ich da eigentlich immer

Susanne

dran gehe, ist, wenn ich eine Datenbank neu aufsetze,

Susanne

ist, ich gucke erstmal nach, was muss ich

Susanne

überhaupt alles an Informationen in dieser Datenbank

Susanne

speichern.

Susanne

Also wirklich so als reines Sammelsurium,

Susanne

das ist natürlich für andere Firmen

Susanne

programmierst du das so, musst du das erstmal

Susanne

aus den ganzen Besprechungen raushaben, was brauchen die

Susanne

überhaupt alles in der Datenbank,

Susanne

dann musst du noch gucken, meistens für die Firmen

Susanne

mit, was ist überhaupt erlaubt, abzuspeichern.

Susanne

Gibt es ja auch sowas

Susanne

wie diesen

Susanne

bei der Kreditkarte,

Susanne

bei der EC-Karte hinten die Nummer, die darfst du

Susanne

glaube ich gar nicht mit abspeichern.

Susanne

Oder solchen Sachen.

Susanne

Dass man da nochmal guckt und

Susanne

man muss ja immer versuchen, man hat ja in der Regel

Susanne

nicht mit IT-Lern zu tun oder mit

Susanne

technischen Menschen, sondern mit anderen.

Susanne

Aus deren

Susanne

Sprachgebrauch rauszufinden, was

Susanne

davon kann ich denn überhaupt als Daten

Susanne

abspeichern, als Information und

Susanne

das sammle ich dann einfach auch immer erstmal ganz

Susanne

wild durcheinander und sortiere das dann

Susanne

und dann überlege ich mir, wo könnte

Susanne

ich jetzt was davon hinpacken und was gehört

Susanne

da wie zusammen und

Susanne

so baue ich das Ganze auf und dann gucke ich, wie

Susanne

kann ich das dann vernetzen und auch ich mache

Susanne

es so, ich mache auch immer erstmal die dritte

Susanne

Normalform und gucke dann,

Susanne

gut, manchmal sieht man dann schon auf Anfang an,

Susanne

okay, da kannst du ein Bottleneck haben, da kannst du was rein haben.

Susanne

Ich kann mal ein Beispiel

Susanne

nennen für ein Bottleneck

Susanne

eine Spielefirma

Susanne

mit Online-Spielen.

Susanne

Die haben mehrere Online-Spiele

Susanne

und natürlich

Susanne

hat der Nutzer nur

Susanne

einen Account.

Susanne

Und dann

Susanne

hat der auch Nick, der Nutzer.

Susanne

Aber die sind hinterher dazu

Susanne

übergekommen, weil jetzt von diesen

Susanne

mehreren Millionen Nutzern

Susanne

musste natürlich

Susanne

immer die Account-Tabelle

Susanne

aufgerufen werden,

Susanne

um dann irgendwas über den Nutzer rauszufinden.

Susanne

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

Susanne

Und die mussten dann immer den Nutzer,

Susanne

und wenn da auf eine Tabelle immer laufen,

Susanne

zwei Millionen Sachen raufkommen oder noch mehr Spieler,

Susanne

ist das natürlich etwas schwierig.

Susanne

Und dann sind die hingegangen und haben die nix,

Susanne

der Spieler dann noch mal in den Spielen hinterlegt.

Susanne

dass die nicht immer auf die eine Tabelle zugreifen konnten.

Susanne

Deswegen ist das ganz häufig so,

Susanne

Passworte ändern ist meistens einfach.

Susanne

Und ganz viele, ich weiß nicht, ob es immer noch so ist,

Susanne

ich spiele so selten,

Susanne

aber den Nick ändern ist immer etwas schwieriger und aufwendiger.

Susanne

Das liegt daran, dass das dann nicht nur in der einen Tabelle,

Susanne

sondern weil die den nochmal denormalisiert haben,

Susanne

und zwar aus Absicht,

Susanne

weil das einfach sonst zu viel wird auf einer Tabelle.

Susanne

Okay, da muss man dann tatsächlich zurückgehen

Susanne

auf diese Tabelle und gucken.

Susanne

Ja, und dann, deswegen ist so ein Nick ändern bei so Spielen

Susanne

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,

Dominik

dann muss man vielleicht drüber nachdenken.

Susanne

Was ich auch mal aus Versehen denormalisiert hatte,

Susanne

war so eine Stempeluhr-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

Susanne

mit abgespeichert, weil das war dann einfach

Susanne

okay, wenn ich das dann, wenn ich Stopp sage, kann ich

Susanne

auch gleich nochmal eben schnell die Differenz

Susanne

Stopp minus Start ausrechnen und das auch mit abspeichern.

Susanne

Das war dann auch meine

Susanne

Riesenrettung, weil ich habe dann als Admin

Susanne

tatsächlich mal irgendwo

Susanne

ganz schnell wollte ich,

Susanne

obwohl es da Skripte für gab,

Susanne

noch irgendeine Stoppzeit

Susanne

nachtragen und habe

Susanne

die Werkklausel vergessen.

Susanne

Und dann alle geupdatet.

Susanne

Genau.

Jochen

komisch, warum dauert das Update denn so lang?

Jochen

Na, das ging relativ schnell,

Jochen

es war ein guter Server, so viele Mitarbeiter

Jochen

waren das nicht, aber dann so, ja,

Jochen

die Stempelur lief auch erst irgendwie so

Jochen

zwei Jahre, also es war nicht so schlimm.

Jochen

Ja, aber zum Glück

Jochen

gab es die Differenz noch,

Susanne

also konnte ich dann ganz schnell mal

Susanne

ein Update fahren, mach mal Start plus

Susanne

Differenz und dann hatte ich wieder die richtige Stoppzeit

Susanne

drin, also das

Susanne

kann auch mal passieren.

Susanne

Wobei ich da auch dachte, okay, eigentlich ist

Susanne

das ist ja eine Hitze, die die Differenz

Susanne

ja gar nicht gebraucht, aber ich fand das

Susanne

damals sinnvoll, sie mit abzuschleichen und ich rate

Susanne

das auch bei einer Stempelung, jeden das gleich

Susanne

mitzumachen. Doppeltet, besser

Susanne

dann, ja? Ne, das ist auch teilweise

Susanne

wie du es in der Anwendung brauchst, wenn du immer

Susanne

diese Differenz brauchst, dann

Susanne

brauchst du auch nur die Differenz abfragen

Susanne

und musst nicht immer Start und Stop abfragen, später

Susanne

in der Anwendung. Ja, genau. Das ist

Susanne

dann auch noch was, das musst du ja auch noch wieder ein bisschen

Susanne

mit dazu tanken und du musst

Susanne

natürlich heutzutage auch so ein bisschen Sicherheit

Susanne

da in Schutz und was weiß ich was mit berücksichtigen,

Susanne

Deswegen hast du auch ganz viel in den Tabellen, fast jede Tabelle noch last updated und so weiter.

Susanne

Update 3 updated.

Susanne

Ja, irgendwie sowas. Oder hast du noch eine History-Tabelle, wo die alten Werte reinkommen oder ähnliches. Das hast du ja auch noch.

Susanne

Ein Model History Tracker.

Susanne

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

Susanne

Ja, schon praktisch, dann kann man das auch 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 Geschichten.

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, für die Schlüssel, dass dann die Namen genannt werden. Ich hatte mal eine Firma, die hatte wirklich bei den Mitarbeitern als Schlüssel die Namen. Ich so, was macht ihr denn, wenn ihr Mitarbeiter habt, die gleich heißen?

Susanne

Das ist ja minus zwei.

Susanne

Haben wir nicht, stellen wir nicht ein.

Susanne

Ja, sehr gut.

Susanne

Also das sollte man natürlich nicht machen, sondern bei Mitarbeitern, also bei sowas nimmt man meistens auch die Kennung. Es gibt natürlich auch natürliche Schlüssel. 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,

Susanne

Postleitzahlen sind auch super Schlüssel bei Städten.

Susanne

Ist das sinnvoll, ein Datensatz?

Jochen

Nee, das ist schon sehr sinnvoll, wenn das so eine ganze Zahl ist.

Jochen

Jedenfalls, je nachdem, was man für einen Index verwenden will,

Jochen

vielleicht auch drauf.

Jochen

Aber zum Normalfall denke ich schon,

Jochen

dass es vielleicht nicht so unpraktisch ist.

Jochen

Ja, das wäre eine interessante Frage.

Jochen

Also irgendwie sehe ich in letzter Zeit sehr häufig,

Jochen

dass Leute UUID-IDs verwenden.

Jochen

Also dann könnten wir den Hash nehmen.

Susanne

bitte? Ich nehme gerne auch den

Susanne

Unix-Timestamp

Susanne

für bestimmte Dinge auch.

Susanne

Ja, also irgendwie

Jochen

in der JavaScript-Welt ist das halt so total super,

Jochen

was ich in gewisser Weise verstehen kann, weil

Jochen

da hat man ja oft irgendwie nur das,

Jochen

wenn man jetzt eigentlich das erzeugen möchte,

Jochen

will man ja, dass sie eindeutig sind, hat aber keine zentrale

Jochen

Datenbank möglicherweise.

Jochen

Es gibt halt

Susanne

diese Sache bei Postgres

Susanne

und bei MariaDB und so weiter,

Susanne

sogar im Standard gibt es den Datentyp Serial,

Susanne

der soll einfach immer einen hochzählen

Susanne

und das kann man

Susanne

natürlich machen und wenn das völlig egal ist,

Susanne

was du für eine Nummer hinterher hast,

Susanne

nimmst du den

Susanne

und zählst dann einfach mal, dann zählt der automatisch

Susanne

beim Einfügen einen hoch und dann hat das

Susanne

Ding eine eindeutige ID.

Susanne

Auto-Increment heißt das

Susanne

bei MySQL, bei PostgreSQL.

Susanne

Nimmst du den Datentyp Serial oder

Susanne

genau und dann macht er das automatisch.

Susanne

Ja, also

Jochen

Ich weiß nicht, ich habe dann irgendwann mal Benchmarks

Jochen

gesehen. Also ich meine, das macht es halt, weil einfach

Jochen

UUID ist halt so riesig. Das heißt,

Jochen

wenn du das dann tatsächlich

Jochen

als Primary Key hast, dann macht das halt Joins

Jochen

bei Postgres, das letzte, was ich gesehen habe, so

Jochen

viermal langsamer oder sowas.

Jochen

Bei den meisten ist das halt wurscht,

Jochen

weil irgendwie Datenbank ist vielleicht

Jochen

da eh nicht das Bottleneck, aber

Jochen

ich meine, es kostet halt viel mehr Speicher und es macht

Jochen

Dinge langsamer. Daher tendiere ich immer

Jochen

dazu zu sagen, hey, lieber eine Zahl

Jochen

nehmen.

Jochen

Und dann, wenn man sowas haben will,

Jochen

so eine Eigenschaft will man ja oft haben, dass man nicht

Jochen

sehen kann, wann

Jochen

ein Datensatz eingefügt worden ist, weil an der Zahl kann man

Jochen

das natürlich sehen, oder welche miteinander

Jochen

zusammenhängen oder so, dann kann man

Jochen

sowas wie Hash-IDs im Frontend verwenden, wo man

Jochen

die IDs hasht. Aber das

Jochen

sozusagen, den Hash in der Datenbank zu verwenden,

Jochen

weiß ich nicht.

Susanne

Ich tatsächlich häufiger mal

Susanne

als Kundennummern oder so auch Timestamps

Susanne

gesehen habe.

Susanne

Genommen auch schon.

Susanne

Das ist natürlich, wenn du dann so einen Support am Telefon

Susanne

nennen sie mir mal ihre Kunden-ID und dann fängt

Susanne

er da an, so ein Unix-Timestamp-Bot zu lesen.

Susanne

Gut,

Susanne

du erkennst es als Laie nicht als

Susanne

Timestamp.

Susanne

Da musst du schon freak zu sein, dass du

Susanne

raffst, dass das ein Timestamp ist,

Susanne

von wegen Eindeutigkeit und schwer

Susanne

zu raten, aber

Susanne

ist halt auch eindeutig,

Susanne

dass du dann irgendwie so in derselben Sekunde

Susanne

mehrere Kunden dann liest, ist dann doch schon schwierig.

Susanne

Also so viel,

Susanne

kommt auf dein Business drauf an, kann natürlich sein,

Susanne

im Online-Business würde ich das vielleicht

Susanne

jetzt nicht machen, den Timestamp nehmen, aber

Susanne

wenn du jetzt so eine normale Firma hast.

Susanne

Dann schon,

Susanne

also das kannst du auch machen oder wie du dir noch immer

Susanne

generierst, du musst dir halt was

Susanne

überlegen und ganz häufig bei den Tabellen ist es

Susanne

einfach automatisch hochgezählt.

Susanne

Macht wahrscheinlich dann Sinn. Und wie gesagt,

Susanne

Postleitzahlen sind recht eindeutig. Oh, aber das ist

Dominik

so eine interessante Sache, weil was mache ich denn jetzt,

Dominik

wenn ich die Postleitzahleneingabe

Dominik

nicht kontrollieren kann, weil ich die irgendwo herbekomme

Dominik

und dann hat irgendjemand dann D-Postleitzahlen

Dominik

eingegeben oder sowas.

Dominik

Und dann habe ich ja das Problem, dass ich dann

Dominik

Doppelte habe, quasi.

Susanne

Naja, es kommt darauf an, wie du die

Susanne

Postsatz an der Datenbank abgelegt hast.

Dominik

Ja, also in Malarbeit, wenn es jetzt sechs Zeichen,

Dominik

ja, nein, dann geht es halt kaputt.

Susanne

Also ich würde sowas ja prüfen

Susanne

in der Software, bevor ich es an die Datenbank schicke

Susanne

und die Datenbank prüft es und wirft es dir zurück,

Susanne

weil,

Susanne

ganz einfach,

Susanne

weil ich muss ja erstmal, also ich

Susanne

nehme die Daten entgegen, also die Software

Susanne

jetzt in eurem Fall

Susanne

in Python geschrieben, die nimmt die Daten

Susanne

entgegen. So.

Susanne

Jetzt nimmt es die Daten so, wie sie sind

Susanne

und schmeißt sie in die

Susanne

Datenbank. Die Datenbank, äh, kann ich

Susanne

nicht einfügen, falscher Datentyp oder was auch immer.

Susanne

Gibt dann, erst mal habt ihr

Susanne

eine Verbindung aufgemacht, die sind bei Postgres

Susanne

relativ teuer. Da rein.

Susanne

Die gibt es dann zurück, kann ich nicht. Ihr kriegt

Susanne

den Fehler, behandelt den Fehler

Susanne

wieder in Python. Das ist doch dann

Susanne

sinnvoller bei sowas, die Postsatz

Susanne

das gleiche in Python zu prüfen. Oder auch beim

Susanne

Geschlecht oder sowas. Das Problem ist halt

Dominik

die Frage, ob ich jetzt wirklich alle Ausnahmen

Dominik

irgendwie abfangen kann, die sich irgendwie ausdenken kann

Dominik

oder es halt alles runterbreche oder ob ich sage,

Dominik

ich mache da einfach ein Textfeld raus, das ist mir egal und dann ist halt

Dominik

dann die Identität weg. Weil was ich bei Postleitzahlen machen würde,

Susanne

ist, die gibt es ja als CSV,

Susanne

die würde ich einmal importieren und dann würde

Susanne

ich mir die als Liste, dann kann er die auswählen.

Dominik

Also es gibt, ja, okay, Tri-Suite, ja, gut, aber

Dominik

ja.

Dominik

Ja, aber

Dominik

wenn die dann halt nicht passt, das ist halt das Problem.

Susanne

Oder die Stadt anfangen

Susanne

einzugeben und dann zeichnet der automatisch

Dominik

Ja gut, aber da muss ich ja das Formular schon

Dominik

in der Hand haben quasi.

Jochen

Ja, aber da gibt es halt unterschiedliche

Jochen

Sichten. Also ich meine, ich finde das Problem deswegen schön,

Jochen

weil das halt vielleicht klar macht,

Jochen

dass das alles nicht so ganz einfach ist.

Jochen

Aus einer Datenbank-Sicht kann ich mir vielleicht eine ideale,

Jochen

ich habe auch, das hat wahrscheinlich jeder schon

Jochen

ein paar Mal gemacht, aber irgendwie so versucht,

Jochen

normalisiert Adressen zu speichern.

Jochen

Und dann, wenn man das aber dann benutzt,

Jochen

dann stellt man fest, so, oh, das gibt aber ganz viele Fälle,

Jochen

die passen dann halt nicht.

Jochen

Mannheim.

Jochen

Irgendwelche heiligen

Jochen

Dinge, die halt irgendwie nicht so

Jochen

richtig da reinpassen wollen.

Jochen

Also dann, wenn man dann sich mit Leuten unterhält,

Jochen

die dann aus dem Web-Dings da drauf gucken,

Jochen

die sagen dann eher so, ja,

Jochen

okay, du kannst das ja vielleicht in der Datenbank so speichern,

Jochen

aber wenn du es zum Beispiel dann hinterher irgendwie

Jochen

Leuten anzeigen oder ausdrucken oder sonst irgendwie, dann nimm

Jochen

halt immer irgendwas, was reiner Text ist,

Jochen

weil alles andere geht eh nicht.

Jochen

Alles andere kannst du eh nicht machen, weil es funktioniert

Susanne

hinten und vorne. Also was ich tatsächlich

Susanne

mache, ist, ich mache einfach mal nur Adresse

Susanne

1 bis 6, 6 Felder

Susanne

und da können die reinschreiben, was sie wollen.

Susanne

Also so ungefähr.

Susanne

Du kannst es ja dann

Susanne

irgendwie prüfen.

Susanne

Also, ich weiß

Susanne

nicht, wie du es prüfst.

Dominik

Irgendein Reckhex, wenn es nicht matcht, dann irgendwie

Dominik

Error, oder?

Susanne

Also, du kannst die Länder kurz, kannst du natürlich,

Susanne

ich würde auch sowas wie Postleitzahlen nochmal

Susanne

extra vielleicht,

Susanne

kannst du ja importieren.

Susanne

Für Deutschland, ja. Hast du natürlich, wenn du

Susanne

international bist, dann auch wieder.

Susanne

Aber ich sag mal so, Straßen, Mannheim

Susanne

hat ja die Quadrate T633,

Susanne

hab 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

kann. Wenn ich halt irgendwas bekomme und das muss

Dominik

halt dann da ins Postleitzahlenfeld rein, dann ist das

Dominik

natürlich schwierig.

Jochen

Wofür willst du das unbedingt in das Postleitzahlen?

Jochen

Warum willst du da unbedingt irgendwas

Jochen

reintun, was keine Postleitzahl ist? Das verstehe ich nicht.

Dominik

Weil ich die Adresse anlegen muss, um eine Bestellung anlegen zu können.

Dominik

Ja, aber dann leg das doch, tu doch die Adresse

Dominik

in das Textfeld. Ja, genau.

Dominik

Und dann kannst du ja versuchen,

Dominik

eine Postleitzahl zu extrahieren oder so.

Dominik

Oder die Postleitzahl kommt direkt ins Textfeld.

Dominik

Die Frage ist ja, wofür

Susanne

brauchst du diese Adresse? Genau.

Susanne

Ja, nein, also

Dominik

was halt noch schwieriger wird hinterher, ist halt Filtern

Dominik

von Adressen. Also wenn du

Dominik

ein Verkäufer bist,

Dominik

der etwas

Dominik

online verkauft

Susanne

und du brauchst jetzt die Lieferadresse, um das

Susanne

dem Kunden zu liefern, da hat der Kunde ja schon

Susanne

ein gewisses Interesse dran, dass richtig

Dominik

Das Textfeld, dann kommt

Dominik

das halt auch an. Aber wenn ich jetzt dann hinterher in der Analyse

Dominik

hingehen will, in welchem Postleitzahlengebiet habe ich

Dominik

denn jetzt wie viel geliefert beispielsweise, dann ist halt

Dominik

dann das Problem, dass die Textwelle halt nicht mehr

Jochen

Ja, aber dann genau ist halt die Frage, wie wichtig ist es,

Jochen

bis auf die letzte Adresse stimmt und dann...

Dominik

Genau, dann muss ich mir halt dann halt die Filter überlegen,

Dominik

wie ich das dann wieder rauskomme.

Susanne

Dann ist auch die Frage, ob du diese Analyse überhaupt fahren darfst

Susanne

oder ob das gegen die Datenschutzrichtlinien für dich stimmt.

Susanne

Na gut, aber das ist ja ein anderes Problem.

Dominik

Also im Zweifel hat man ja berechtigte Interessen

Dominik

und dafür eine jeweilige Datenschutzvereinbarung.

Dominik

Ja, auch nicht.

Dominik

Aber bei Business-to-Business-Kunden meistens schon.

Dominik

Ja, das ja.

Dominik

Aber, ich habe die hier gleich aufgegessen.

Dominik

Nun, das ist ja lecker.

Susanne

Nein, aber das ist so dieses...

Susanne

Nee, aber tatsächlich, ich habe das auch schon mehrfach,

Susanne

die war dann einfach faul.

Susanne

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

Susanne

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

Susanne

Also ein normaler Briefkopf hat immer fünf.

Susanne

Mir heißt die Adresse 1, Adresse 2 oder ADR 1, 2, 3, 4, 5, 6,

Susanne

weil mir ist das doch auch völlig egal,

Susanne

ob der Name der Kunde jetzt ganz oben steht oder in der zweiten Zeile.

Susanne

Der Kunde wird ja wissen, wie seine Rechnung ist

Susanne

beziehungsweise wie seine Adresse ist.

Susanne

Ja.

Susanne

Und wenn der was geliefert haben will,

Susanne

hat der auch ein entsprechend großes Interesse,

Susanne

dass das ankommt, dass er seine Adresse schon richtig

Susanne

da eintippt.

Susanne

Und

Susanne

dann schickst du ihm ja auch nochmal eine E-Mail,

Susanne

bevor du das lieferst und so weiter und so fort.

Susanne

Bei Rechnungsadressen,

Susanne

ja.

Susanne

Ja, ich glaube, ihr redet rein.

Susanne

Das ist wurscht. Also da ist das ja,

Susanne

die schickst du ja auch selten noch mit der Post.

Dominik

Ich glaube, das Normalisierungsthema würde ich

Dominik

dann damit auch abschließen wollen. Und ich würde gerne

Dominik

noch zu was anderem überkommen. Und zwar

Dominik

könnt ihr euch jetzt aussuchen, ob ihr erst Transaktionen sprechen

Dominik

wollt oder Verbindungen oder über

Dominik

NoSQL vs. SQL.

Dominik

Und am Ende wollen wir

Dominik

nochmal Maria gegen ProSquares

Dominik

wissen.

Susanne

Was wolltest du zu Transaktionen

Susanne

wissen?

Susanne

Vielleicht erstmal, was ist das überhaupt?

Susanne

Also eine Transaktion

Susanne

ist, der Dominik

Susanne

möchte dem Jochen

Susanne

100 Euro überweisen.

Susanne

Jetzt zieht die Bank, stell dir vor,

Susanne

du bist eine Bank. Jetzt zieht die Bank

Susanne

die 100 Euro von Dominiks Konto ab

Susanne

und die Datenbank bricht zusammen.

Susanne

Oder das System bricht zusammen.

Susanne

Ja, es ist halt beim

Susanne

Jochen nichts angekommen, aber beim Dominik

Susanne

sind die 100 Euro auch weg.

Susanne

Das wäre nicht gut.

Susanne

Ist in einem schwarzen Loch versunken.

Susanne

So, also

Susanne

macht man das Ganze in

Susanne

einer sogenannten Transaktion, das heißt

Susanne

beim Dominik werden

Susanne

die 100 Euro abgezogen und

Susanne

beim

Susanne

Jochen draufgepackt

Susanne

und erst wenn beides passiert ist,

Susanne

ist der Prozess abgeschlossen.

Susanne

Das macht man mit einem Commit.

Susanne

So heißt der Befehl.

Susanne

Wenn jetzt zwischendurch das Datenbanksystem abfällt,

Susanne

sagen wir mal, die 100 Euro werden abgezogen

Susanne

und das System bricht zusammen,

Susanne

dann ist kein Commit passiert,

Susanne

sondern dann wird das Ganze zurückgerollt

Susanne

und dann hat der Dominik dann,

Susanne

sobald das System wieder da ist,

Susanne

die 100 Euro noch auf dem Konto und es ist einfach gar nichts

Dominik

passiert. Okay, also tatsächlich eine Isolation

Dominik

von mehreren Arbeitsschritten.

Dominik

Ja, nicht nur von mehreren,

Susanne

eigentlich war es früher so,

Susanne

das ist auch heute noch so, das wird noch heute

Susanne

so automatisiert, dass es keiner mehr weiß,

Susanne

sobald du irgendwas auf eine Datenbank

Susanne

schreibst,

Susanne

jedes schreibende Zugriff,

Susanne

also jeder, ne, eine Transaktion

Susanne

ist eigentlich jeder Befehl, aber jede

Susanne

schreibende Transaktion,

Susanne

das heißt, du machst ein Insert oder ein Update,

Susanne

wenn du das mal so früher in C

Susanne

gemacht hast, musstest du immer

Susanne

ein Commit hinten dran werfen.

Susanne

Warum jetzt unbedingt den C, die Programmiersprache

Susanne

war eigentlich egal, aber du musst

Susanne

immer ein Commit hinten dran werfen.

Susanne

Also du musst immer erstmal Insert sagen

Susanne

und dann darunter Commit.

Susanne

Mittlerweile machen die Datenbanksysteme

Susanne

alle Auto-Commit.

Susanne

Das heißt, wenn du ein Insert-Befehl

Susanne

abfeuerst, dann wird er automatisch committet.

Susanne

Aber das Commit ist natürlich intern immer noch

Susanne

da. Aber

Susanne

es wird dann automatisch da hinten

Susanne

dran gefeuert, dass du das nicht mehr machen

Susanne

musst, das ist ja immer noch ein Commit einzeln.

Susanne

Das kann man auch ausstellen. Und das kannst du ausfallen,

Susanne

dafür gibt es den SQL-Befehl.

Susanne

Im Standard-SQL heißt das Start

Susanne

Transaction, damit stellst du das Autocommit

Susanne

aus, dann machst du deine ganzen Schreiben

Susanne

und Transaktionen und sagst am Ende Commit.

Susanne

Das wäre jetzt das

Susanne

mit dem Kontoüberweis. Also das würde man

Dominik

zum Beispiel machen in der Business-Logik

Dominik

von so einer Applikation, wo man zwischendurch noch andere Dinge abfragen

Dominik

muss, wo man Verbindungen aufbauen muss, wo man

Dominik

nicht weiß, ob die klappen oder so.

Dominik

Ja, also bei allem, wo

Jochen

du mehrere Schritte hast und die halt

Jochen

entweder alle funktionieren sollen oder keine Ahnung.

Susanne

Genau, also das mit der Bank ist immer

Susanne

so ein, das macht, die Banken funktionieren

Susanne

natürlich noch viel komplexer, aber das ist immer so ein

Susanne

schönes Beispiel, weil das ist so

Susanne

schön anschaulich.

Susanne

Und Postgres

Susanne

und MariaDB haben aber

Susanne

eine Abkürzung für Start Transaction,

Susanne

das ist Beginn, also da kann man auch Beginn

Susanne

sagen, Start Transaction, das ist

Susanne

weniger Tipparbeit.

Susanne

Und

Susanne

das ist halt so ein schönes Beispiel, aber man hat

Susanne

tatsächlich immer mal wieder solche Fälle.

Susanne

in Anwendungen,

Susanne

wo du das brauchst tatsächlich,

Susanne

dass du das in einem Jahr

Susanne

oder das ist wirklich so

Susanne

entweder alles oder nichts.

Susanne

Das ist im Grunde.

Dominik

Man hat erstmal so ein Letter und dann muss man die einzelnen Transaktionen

Dominik

dann committen und dann gucken.

Susanne

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

Susanne

ich sag mal, ich hätte vorhin schon ein paar Mal gesagt,

Susanne

du willst jetzt aus dem CSV

Susanne

die ganzen Postleitzahlen Deutschlands importieren.

Susanne

Ja, aus dem CSV,

Susanne

okay, das ist eh nur eine Transaktion,

Susanne

aber du würdest das mit einem Insult-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,

Susanne

dann hast du die halben Posterzahlen drin und die andere Hälfte nicht.

Susanne

Du willst da alles ein.

Susanne

Würdest du auch mit einer Transaktion machen.

Susanne

Wie gesagt, wenn du das CSV hochlädst, ist es nur eine.

Susanne

Aber du könntest das auch anders lösen.

Susanne

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

Susanne

Also es gibt da aber durchaus ganz viele,

Susanne

kriegt da wahrscheinlich jetzt ganz viele Zuschriften,

Susanne

was da die Leute als Beispiel schon haben für Transaktionen.

Susanne

Aber das ist so das Transaktion und das wird mitgelockt tatsächlich.

Susanne

Das Transaktions-Log ist ja das Wichtigste überhaupt bei Postgres oder bei Datenbanken.

Susanne

Und das wird halt mitgeloggt, damit du dann, wenn deine Datenbank abstürzt,

Susanne

hast du immer noch das Transaktions-Log und aus dem Bestand,

Susanne

den du auf der Festplatte in deinem Datenverzeichnis hast

Susanne

und den Transaktions-Logs kann die Datenbank wieder hergestellt werden.

Susanne

Die Backup ist ja wichtig.

Jochen

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

Susanne

Ja, das Transaktions-Log schreibt halt immer auf die Platte.

Susanne

Das ist das Wichtige daran.

Susanne

Es sei denn, da muss man immer aufpassen.

Susanne

Aber man kann es auch abschalten.

Susanne

Macht Tests unter Umständen schon selber.

Susanne

Man kann das abschalten, ja.

Susanne

Das kann man machen. Ganz viel fieser

Susanne

ist aber, dass Festplatten nicht unbedingt permanent

Susanne

speichern. Dass auch

Susanne

Festplatten mittlerweile irgendwelche Caches

Susanne

haben und wenn dann wirklich mal so richtig

Susanne

heftig was ausfällt,

Susanne

ist in Deutschland seltener. Also in Amerika

Susanne

mit Stromausfällen haben wir jetzt nicht ganz

Susanne

so viel hier zu tun. In Amerika fällt ja ganz häufig

Susanne

der Strom aus und so weiter. Dass dann

Susanne

das nur in dem Cache der Festplatte war

Susanne

und noch gar nicht richtig auf der Festplatte

Susanne

und dann weg ist. Da wird dann immer geraten,

Susanne

man soll den Plattencache ausstellen und solche

Susanne

Geschichten, damit das dann...

Jochen

Ja gut, ich weiß es nicht genau.

Jochen

Ich glaube, man kann...

Susanne

Ist auch bei VMs, dann sagt die

Susanne

VM, es ist fest auf der Platte, es ist aber

Susanne

erst im Cache des Hoses oder so.

Susanne

Das ist auch was, da habe ich

Susanne

bei VMs dann keinen Einfluss drauf.

Jochen

Also bei den Datenbanken,

Jochen

so Hardware-Datenbanken, die ich mal so irgendwie

Jochen

in Racks gesehen habe, die hatten meistens dann halt

Jochen

so RAID-Controller mit Batterien drauf.

Jochen

Ja, wenn du wieder wegkommst.

Jochen

Ansonsten, ich glaube, Postgres verwendet irgendwie F-Sync.

Jochen

Und F-Sync kann man auch irgendwie sagen,

Jochen

sag mir, werd erst fertig,

Jochen

wenn du es wirklich, wirklich auf der Platte geschrieben hast.

Jochen

Das ist das, was...

Jochen

Das macht es auch langsamer, aber ja.

Susanne

Nein, F-Sync ist das, was wir immer den OpenStreetMap-Mann sagen,

Susanne

stell das aus, wenn sie wieder ganz NRW

Susanne

oder die halbe Welt hochladen wollen, weil das geht schnell.

Susanne

Und da kannst du auch mal sagen,

Susanne

entweder du hast alles oder gar nichts,

Susanne

du willst ja die ganze Welt hochladen.

Susanne

F-Sync sollte man nie abschalten.

Susanne

Es gibt Synchronus Commit bei Postgresql

Susanne

und bei MariaDB heißt das

Susanne

Ganze, ein Kollege von mir

Susanne

sagte mal, es ist die längste Variable, die es

Susanne

gibt.

Susanne

Es gibt die Variable

Susanne

mit selber, also die heißt nur anders.

Susanne

Das kannst du ausstellen,

Susanne

dann würde es

Susanne

schon das OK zurückgeben,

Susanne

wenn

Susanne

es im Cache, wenn die Transaktion im Cache

Susanne

liegt und nicht auf der Platte.

Susanne

Ansonsten kriegst du immer erst das,

Susanne

wenn du ein Statement abfeuerst,

Susanne

kriegst du erst das ACK,

Susanne

das Acknowledgement oder das OK, zurück.

Susanne

Wenn wirklich das von der Transaktion,

Susanne

wenn das System sagt, ja, das Transaktionslog,

Susanne

also dieser Schnipsel, den du da geändert hast,

Susanne

der ist jetzt wirklich auf der Festplatte

Susanne

im Transaktionslog.

Susanne

Und du kannst halt, das Transaktionslog hat nochmal

Susanne

ein Cache da drüber und du kannst halt auch schon

Susanne

sagen, okay, gib mir das schon zurück, wenn das in dem Cache

Susanne

angekommen ist. Da verlierst du

Susanne

bei PostgreSQL

Susanne

maximal 600

Susanne

Millisekunden an Transaktionen, also deine

Susanne

letzten 600 Millisekunden an Transaktionen

Susanne

kannst du verlieren. Ist bei MariaDB

Susanne

nicht anders.

Susanne

InnoDB

Susanne

Transaction Commit

Susanne

irgendwie so ähnlich. Ist eine ganz lange

Susanne

Variable bei

Susanne

MariaDB. Ich weiß immer nicht, wie sie

Susanne

heißt. Dann gab mir

Susanne

ein ehemaliger Kollege einen Tipp.

Susanne

Er sagte, ich weiß auch nicht, wie sie heißt, aber es ist

Susanne

die längste Variable, die es gibt.

Susanne

Maria, die hat wahnsinnig viele

Susanne

Server-Variablen. Das war wirklich die längste,

Susanne

aber ich glaube, es gibt mittlerweile eine längere.

Susanne

Aber sie ist relativ

Susanne

sprechend auch.

Susanne

Flash

Susanne

Transaction Commit, irgendwie so

Susanne

ähnlich heißt sie.

Susanne

Und das ist das.

Susanne

Aber F-Sync sollte man eigentlich nicht abstellen.

Susanne

Wie gesagt, die OpenStreetMappler, wenn die

Susanne

dann wirklich anfangen und wir laden jetzt

Susanne

mal auf einen frischen Server irgendwie die halbe Welt,

Susanne

dann ist F-Sync abstellen,

Susanne

dann sind die wesentlich schneller fertig

Susanne

und da kann man auch sagen,

Susanne

okay, wenn jetzt nach zwei Tagen die halbe Welt

Susanne

nicht da ist, dann fängt es von vorne an.

Susanne

Wenn dann wirklich mal der Server

Susanne

abgeraucht ist.

Susanne

Da sollte man wirklich wissen, was man tut.

Susanne

Ja, ja.

Susanne

Ja, genau,

Jochen

aber ich glaube, also Isolation und so,

Jochen

das gibt es ja auch noch, aber es gibt halt eigentlich,

Jochen

Transaktionen ist ja nicht das einzige Ding.

Jochen

Also eigentlich will man ja diese

Jochen

Asset-Bedingungen

Jochen

halt sozusagen gewährleistet haben.

Jochen

je nachdem, für manche Sachen reicht

Jochen

auch Eventual. Also Datenbanken sollten

Susanne

Asset-konform sein, das heißt Atoma,

Susanne

das wäre mit der Normalisierung zu lösen,

Susanne

Konsistent, auch das

Susanne

macht man über die Normalisierung.

Susanne

Die Isolation,

Susanne

die

Susanne

macht man über

Susanne

Isolationslevel, das wird aber automatisch

Susanne

gemacht und wir haben den

Susanne

Isolationsmittel

Susanne

Repeat Committed oder Repeater,

Susanne

ist sowieso Standard, da muss man eigentlich nicht nochmal dran.

Susanne

Es sei denn, man

Susanne

ist irgendwo im tiefen universitären

Susanne

Bereich und will das auf serializable

Susanne

stellen. Da kann ich aber auch sagen,

Susanne

die meisten Bugs haben, alle Datenbanksysteme haben

Susanne

ein Riesenproblem mit diesem

Susanne

Isolationslevel. Können wir noch mal

Susanne

drüber machen, was das bedeutet.

Susanne

Und dann haben wir noch die Durability

Susanne

oder in Deutsch heißt das so schön dauerhaft.

Susanne

Und

Susanne

das ist heute ein Riesenproblem,

Susanne

weil Datenbanken sollten natürlich dauerhaft

Susanne

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.

Susanne

Und viele virtuelle Maschinen sagen, ja, das ist auf der Festplatte,

Susanne

obwohl es erst im Rahmen des Hostes liegt.

Susanne

Und noch gar nicht wirklich auf der Festplatte.

Susanne

Und da habe ich zumindest als Datenbanksystem

Susanne

erst mal 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 dann den Kunden frage, ist das eine virtuelle Maschine? Also ich hatte auch schon Kunden, die dann nein gesagt haben, dreimal und am Ende kam raus, es war doch eine.

Susanne

Weil du kannst auch diese Übergabe je nach virtuelle Maschine, also je nach System, da gibt es ja KVM und was auch immer, kannst du das nicht wirklich monitoren, was da der Host eigentlich noch macht. Also diese Übergabe, virtuelle Maschine, Host, 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 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.

Susanne

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

Susanne

Isolation heißt, wenn...

Jochen

Ja, also wenn man jetzt zum Beispiel die geänderten Daten

Jochen

begonnener Transaktionen schon sehen kann in der anderen

Jochen

oder halt erst, wenn die Transaktion durch ist zum Beispiel

Jochen

oder so solche Sachen halt.

Jochen

Also wer wann welche Sachen sehen kann.

Susanne

Fällt mir ein nettes Beispiel zu ein.

Susanne

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 draufschreiben will.

Susanne

Jochen geht schon einkaufen.

Susanne

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

Susanne

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

Susanne

Das heißt, Jochen hat sie schon unterwegs.

Susanne

Also es ist im Grunde, also jeder, der was ändert, ändert das erstmal für sich, ohne dass es ein anderer sieht. Und der andere sieht das erst, wenn auch wirklich das Commit gekommen ist.

Susanne

Dann sieht der andere es erst, das ist das Read Committed, also ich kann erst das vom anderen lesen, wenn er das auch wirklich Committed hat. Es gibt in der Theorie noch Dirty Read und Phantom Read und so weiter, 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,

Susanne

die hatten ganz viel dieses Dirty Read benutzt.

Susanne

Und dann habe ich dann die Entwickler gefragt,

Susanne

warum braucht ihr das?

Susanne

Dann mussten die erst mal ganz tief forschen.

Susanne

Ja, weil das hat mal ein Kollege, der längst in Rente ist, gesagt,

Susanne

dann ist das irgendwie schneller oder so.

Susanne

Und dann mussten die noch länger forschen.

Susanne

Und dann haben sie festgestellt, eigentlich brauchen wir es gar nicht.

Susanne

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,

Susanne

das alles da drunter geht nicht.

Susanne

Bei MariaDB geht es, glaube ich, so ein bisschen.

Susanne

Habe ich aber auch noch nie wirklich eingestellt.

Susanne

Und das Repeatable Read ist,

Susanne

wenn jetzt einer anfängt, ein Select zu machen

Susanne

und er braucht jetzt den Wert aus Spalte 5

Susanne

und der Wert, sagen wir mal, ist 7.

Susanne

Und der Select läuft länger

Susanne

und er braucht diesen Wert mehrfach in diesem Select Query.

Susanne

Also er greift mehrfach auf diese Spalte 5 drauf zu,

Susanne

um den Wert sieben nochmal, weil er da irgendwie

Susanne

Berechnungen macht. Und währenddessen ändert

Susanne

ein anderer den Wert auf neun.

Susanne

Ist natürlich doof, weil dann hat

Susanne

das Query, das Select-Query mal sieben mal neun,

Susanne

das will man nicht und dann kriegt halt

Susanne

repeatable read, das heißt, wenn er das

Susanne

einmal gekriegt hat, kriegt er dieses Ergebnis auch

Susanne

bis zum Ende. Das heißt, du bekommst dann immer

Susanne

die sieben, die neun wird ja erst,

Susanne

wenn du das Select dann nochmal ausführen würdest,

Susanne

wird das komplett mit neun machen.

Susanne

Das ist repeatable read. Das kann PostgresQL,

Susanne

auch wenn da irgendwie,

Susanne

Ich glaube, wir nennen das nur Read Committed,

Susanne

weil es kann ja mal passieren, dass auf dem Mars

Susanne

ein Vulkan ausbricht und den Islandkreis

Susanne

gerade schneit und der Jupiter

Susanne

mit dem Saturn auf einer Linie steht,

Susanne

da gibt es irgendeine Ausnahme.

Susanne

Keine Ahnung.

Susanne

Aber Maria HDW macht es auch.

Susanne

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

Susanne

Und dann gibt es noch den Serializable.

Susanne

Da kriegst du immer dasselbe Ergebnis,

Susanne

solange wie die Session offen ist.

Susanne

Und das ist

Susanne

natürlich sehr, sehr schwierig.

Susanne

wenn du da drei Tage eine Session offen hast.

Susanne

Das kann lange sein, ja.

Susanne

Du willst dann immer noch das Ergebnis von

Susanne

vor drei Tagen, das ist 30 Mal geändert worden.

Susanne

Das ist sehr, sehr schwierig

Susanne

zu implementieren und deswegen, wenn man

Susanne

mal so in die Buglisten guckt,

Susanne

für die Datenbanksysteme, egal ob ich

Susanne

einen Oracle nehme oder eins der IBMs

Susanne

oder MariaDB oder PostgreSQL,

Susanne

es gibt da Bugs

Susanne

im Bereich serializable.

Susanne

Also wenn man

Susanne

da so SQL-Bugs, das ist ganz

Susanne

häufig, dass es nur den

Susanne

Serializable

Susanne

betrifft, weil das auch

Susanne

unwahrscheinlich schwierig ist zu implementieren.

Susanne

Ich habe immer noch nicht rausgefallen, in all diesen

Susanne

20 Jahren, wann überhaupt das

Susanne

Serializable mal sinnvoll ist und wann er

Susanne

eingesetzt wird. Meine Information

Susanne

ist im universitären Bereich, aber auch da

Susanne

ist er mir persönlich noch nicht begegnet.

Susanne

ja, keine Ahnung.

Susanne

Macht man nicht so ohne weiteres.

Susanne

Aber ich weiß halt, heutzutage,

Susanne

wo man immer ein bisschen dran denken muss, ist an dieses

Susanne

dauerhaft.

Susanne

Als Admin muss man da so ein bisschen dran denken,

Susanne

dass man Datenbanken auch dauerhaft hat.

Dominik

Hat das mit der Session vielleicht was mit Verbindungen

Dominik

zu tun?

Susanne

Eine Verbindung in der Session ist ein und dasselbe.

Dominik

Okay, da können wir jetzt vielleicht direkt

Dominik

drauf einsteigen, weil das noch ein Punkt auf der Liste war.

Susanne

Also, wenn ich natürlich,

Susanne

das ist eine Client-Server-Anwendung,

Susanne

du hast halt die Datenbank

Susanne

Server oder auch Dienst

Susanne

oder auch Demon genannt

Susanne

und du hast dann Client.

Susanne

Der Client

Susanne

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

Susanne

zugreift, so kann ich das am einfachsten sagen.

Susanne

Am einfachsten erklärt das immer

Susanne

bei dem

Susanne

Webservice. Das ist auch

Susanne

Client-Server. Du hast einen Webserver irgendwo stehen

Susanne

im Rechenzentrum und das ist die Browser, die darauf zugreifen

Susanne

und das sind die Clients.

Susanne

Das hast du

Susanne

bei Datenbanken genauso, nur dass

Susanne

da die Clients halt in der Regel Software sind.

Susanne

Und

Susanne

Und ja, diese Software macht dann eine Verbindung zur Datenbank auf und schickt dann das Query, was sie anfragen will, die Datenbankanfrage, 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 Handmachsystemen so.

Susanne

Also es geht nicht, dass du in derselben Verbindung zeitgleich zwei Queries abschießt.

Susanne

Das geht nicht ab vorerst.

Susanne

Also du brauchst halt, wenn für jedes zeitgleiche Query, was du abscheuig schicken willst, brauchst du eine extra Verbindung.

Susanne

Ja.

Susanne

Also wenn es wirklich richtig zeitgleich ist.

Susanne

Nacheinander kannst du natürlich, aber pro Verbindung kannst du es nicht.

Dominik

Das heißt, du musst entweder immer warten oder tatsächlich

Dominik

mehrere Verbindungen aufrufen. Ja, das

Jochen

wird jetzt auch mit Async und so

Jochen

sehr interessant dann noch, ja.

Susanne

Ja, du musst halt mehrere Verbindungen aufmachen, das ist aber

Susanne

auch nicht tragisch. Na, ist halt die Frage, wenn

Dominik

die auf was Gleiches zugreifen, auf die gleiche

Dominik

Zeile oder sowas? Nee, damit hat das

Dominik

nichts zu tun.

Susanne

Eine einzelne Verbindung

Susanne

hat damit nichts zu tun.

Susanne

Du kannst natürlich, wenn du zwei Verbindungen

Susanne

hast und die greifen auf dieselbe Zeile zu,

Susanne

dann muss der eine auf den anderen warten.

Dominik

Aber von der Datenbankseite her dann? Von der Datenbankseite.

Dominik

Das macht die Datenbank. Aber

Susanne

du musst halt immer bedenken,

Susanne

du hast eine Verbindung. Und bei Postgres,

Susanne

bei Postgres ist eine Verbindung ein echter

Susanne

Prozess. Und deswegen sind die Verbindungen

Susanne

so teuer. Bei MariaDB ist es

Susanne

ein Thread. Da hast

Susanne

du irgendwann Probleme bei,

Susanne

ja, wenn deine TCP-Ports

Susanne

ausgehen.

Susanne

Weil wenn du da, das hatte ich

Susanne

schon ein paar Mal, dass ich Web-Server hatte,

Susanne

dass die dann mit 5, 6, 7 oder mit 30 Web-Servern

Susanne

auf eine Datenbank, dann hast du irgendwann

Susanne

keine TCP-Boards mehr.

Susanne

Dann fängst du mal an

Susanne

und da gibt es dann ein Pooling

Susanne

von InnoDB, für das du dann noch mit

Susanne

100.000 Verbindungen zeitgleich und so weiter

Susanne

auch noch spielen kannst.

Susanne

Bei Postgres und bei denen, die prozessbasiert sind,

Susanne

also fast alle anderen

Susanne

großen,

Susanne

bist du da viel früher dran,

Susanne

dass du da Probleme kriegst, weil jede Verbindung

Susanne

ist ein echter Prozess.

Susanne

Und jeder

Susanne

Prozess

Susanne

braucht vom Betriebssystem her

Susanne

erst mal einen Core, einen Kern,

Susanne

einen Core. Ich kann

Susanne

pro Core zeitgleich nur

Susanne

einen Prozess abbilden.

Susanne

Das heißt,

Susanne

wenn ich acht Verbindungen aufhabe

Susanne

und ich habe acht Cores, dann läuft

Susanne

auf jedem Core eine Datenbankverbindung

Susanne

zeitgleich.

Susanne

Wenn ich da mehr

Susanne

Verbindungen zeitgleich aufhabe, sagen wir mal, ich habe jetzt

Susanne

vier pro Core auf, dann

Susanne

gibt es den Betriebssystem-Scheduler,

Susanne

der das schedult.

Susanne

Und ja, dann gab es mal vom Postgres diese nette Empfehlung von meinem lieben Kollegen aus den USA. Ja, so vier Verbindungen pro Core zu einer Zeit, wo Cores auch noch nicht so gut verbreitet waren. Also generell, auch bei MySQL ist das übrigens nicht anders. Datenbanken sind immer sehr, sehr Core-lastig. Je mehr Cores, umso besser, gerade bei Web-Anwendungen und so weiter. Du kannst da nie genug voran haben.

Susanne

Und du musst dir halt überlegen, wie viele Verbindungen habe ich zeitgleich und weil das echte Prozesse sind, ist da auch irgendwo mal eine Grenze. So man sagt so vom Bauch her irgendwie so 200, 400, das ist je nachdem, wenn du fragst, ist das ein bisschen anders, aber es gibt ein Connection Pooling.

Susanne

Das heißt, du packst zwischen deiner Datenbank und deiner Anwendung einen Pooler. Ist sehr lustig. 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

Susanne

der Datenbankhersteller

Susanne

die Idee, wir verkaufen mal

Susanne

Datenbanklizenzen pro

Susanne

Verbindung. Richtig

Susanne

teuer. Und die Firma

Susanne

hatte dann fünf Verbindungen zu dieser Datenbank

Susanne

gekauft und ich durfte

Susanne

dann einen Pooler schreiben, der dann dafür sorgte,

Susanne

dass immer nur fünf Verbindungen zu dieser Datenbank

Susanne

kamen und alle anderen wurden dann

Susanne

geschedult, ähnlich wie das Betriebssystem das

Susanne

schedult. Da gibt es dann, häufig wird der

Susanne

Ron-Robin-Scheduler genommen, der das dann

Susanne

Und sowas gibt es halt auch für die Datenbanksysteme. Der von Postgres heißt PG-Bouncer, den wir immer empfehlen, wenn es keinen anderen gibt. Den setzt du meistens in die Nähe der Datenbank. 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. Das ist auch sowas, das sehe ich immer. Ich sehe manchmal Datenbanken, die haben dann drei Pooler, wo ich mich frage, warum einer reicht.

Susanne

Wie ist das bei

Susanne

Python? Weiß ich jetzt nicht.

Jochen

Ne, da ist es also zum Beispiel Django macht das jetzt

Jochen

ab 4.1, kommt jetzt irgendwann im Sommer

Jochen

gibt es einen

Jochen

internen Pool sozusagen

Jochen

also für die

Jochen

aber normalerweise

Jochen

kannst du die Anzahl der Verbindungen, die jetzt dein

Jochen

Applikationsserver sozusagen zur Datenbank macht, kannst du normalerweise

Jochen

einstellen, aber das ist jetzt halt schwierig

Jochen

geworden mit Async,

Jochen

weil wenn du jetzt sagen wir mal so

Jochen

fünf Queries machst und die können alle

Jochen

gleichzeitig laufen und

Jochen

ab Django 4.1 hast du halt auch schon

Jochen

zumindest ein Async-Interface für

Jochen

dein ORM. Also der ORM ist noch nicht

Jochen

Async-fähig, aber es gibt

Jochen

zumindest das Interface.

Jochen

Dann könnte sozusagen

Jochen

dann der ORM

Jochen

fünf Verbindungen aufmachen, die alle gleichzeitig rausschicken.

Jochen

Weil es geht halt nicht auf eine Verbindung, sondern fünf Verbindungen aufmachen.

Jochen

So, wenn du jetzt aber eingestellt hast

Jochen

in deiner Django-Config,

Jochen

soll aber nur zwei

Jochen

Verbindungen zur Datenbank aufmachen, dann ist das natürlich

Jochen

ein Problem. Also

Jochen

das muss man dann halt irgendwie handeln und dafür gibt es halt

Jochen

eine Pool-Implementierung direkt

Jochen

in Django, jetzt ab der nächsten Version, aber

Jochen

genau,

Jochen

ja. Also wie gesagt, das

Susanne

kommt ein bisschen auf deine Hardware drunter an.

Susanne

Ich sehe, du findest da so etwa 200, 400

Susanne

Verbindungen. Musst du auch mal gucken,

Susanne

zeitgleich.

Susanne

Das ist auch sowas, wenn man das mal

Susanne

monitort, das ist bei MariaDB einfach zu monitoren

Susanne

und bei Postgres,

Susanne

da habe ich da 10.000 Verbindungen

Susanne

und gucke ich, habe ich

Susanne

zeitgleich vielleicht maximal 64 gehabt.

Susanne

Exakt zeitgleich.

Susanne

Also das muss man ja auch

Susanne

gucken, wie viel sind das denn wirklich

Susanne

exakt zeitgleich, das ist so das

Susanne

mit den Verbindungen.

Susanne

Ja, also

Jochen

ich meine, das ist halt, würde ich sagen, das ist eine der Haupt

Jochen

Vorteile von

Jochen

oder war früher auf jeden Fall

Jochen

von MySQL, dass man da nichts machen musste.

Jochen

Das halt so quasi

Jochen

jedes Statement, das man abgefeuert hat von PHP aus,

Jochen

hat halt einfach eine einwöhnliche Verbindung aufgemacht und

Jochen

nach dem Statement war sie wieder zu.

Susanne

Ja, nichts machen. Also ich hatte jetzt tatsächlich mal in der Pandemie einen Kunden, der durfte ich dann mit Servern spielen mit 128 Cores, das war schon sehr lustig, 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

Susanne

anzupoolen und dann wird's lustig.

Susanne

Ja. Dann macht's Spaß.

Susanne

Weil dir dann auch irgendwann

Susanne

die, wie gesagt, du, da hampelst du ja

Susanne

plötzlich, da rechnest du dann auf einmal, wie viele

Susanne

Ports hab ich denn überhaupt und

Susanne

ja, und liebe

Susanne

Web-Server, könnt ihr da vielleicht auch noch mal was

Susanne

vorschalten oder so, aber das ist dann

Susanne

schon, das macht dann Spaß,

Jochen

aber. Ja gut, man kommt da wahrscheinlich

Jochen

auch irgendwann ein, aber so für die

Jochen

Feld und Wiesen. Nein.

Susanne

Das ist auch das, was viele halt falsch machen,

Susanne

wenn sie von der MariaDB MySQL-Schiene zu Postgres kommen,

Susanne

dass sie dann die Verbindung so wahnsinnig hochsetzen

Susanne

und dann macht das Betriebssystem auf einmal die Grätsche.

Susanne

Das ist auch so eine Sache, genau.

Jochen

Naja, also das war irgendwie, das war jedenfalls früher,

Jochen

war das immer so ein, fand ich, so Haupt-Selling-Point für MySQL,

Jochen

dass man sagen kann, okay, das kostet vielleicht eine Latenz,

Jochen

30 Prozent oder so, aber dafür muss man sich keine Gedanken

Jochen

um diese ganzen Sachen machen. Und die Infrastruktur

Jochen

ist einfacher und so und

Jochen

ja.

Susanne

Lizenz hatten wir noch gar nicht drüber geredet.

Susanne

Also wir hatten angefangen, also Postgres ist halt BSD

Susanne

und BSD ist

Susanne

sehr, sehr einfach zu handeln.

Susanne

Deswegen hat man das auch viel in Maschinen, auch beim

Susanne

Betriebssystem ist das viel BSD.

Susanne

Maria, die bis GPL

Susanne

und die haben dann noch

Susanne

die,

Susanne

erstmal muss man bei der GPL ja mal gucken,

Susanne

GPL und welche

Susanne

Version und die Verträge sind

Susanne

ein bisschen länger und

Susanne

man muss dann

Susanne

gucken, MariaDB hat

Susanne

so dieses, ich denke mal, das haben sie immer

Susanne

noch, du kannst

Susanne

es nutzen für deine eigene Zwecke,

Susanne

aber wenn du Software hast, die du

Susanne

verkaufst, und da, Maria,

Susanne

dann musst du nämlich eine Lizenz bei MariaDB

Susanne

kaufen, was ja auch eine faire

Susanne

Geschichte ist. Wenn du das dann

Susanne

nutzt in deiner Software, die du verkaufst,

Susanne

dann musst du Lizenzen

Susanne

kaufen. Genau, und dann

Susanne

gibt es bei Postgres noch,

Susanne

es gibt dann immer, das nennen wir immer das

Susanne

Contrib-Verzeichnis, es gibt dann

Susanne

auch so Tools. Bei einigen

Susanne

dieser Tools fragt man

Susanne

sich, warum

Susanne

zur Hölle ist das nicht im Hauptpaket mit drin?

Susanne

Das hat man

Susanne

ganz häufig. Also es gibt da zwei Gründe.

Susanne

Das eine ist, weil das Tool so groß ist. Früher

Susanne

musste der Code ja noch auf eine Diskette passen.

Susanne

Ganz lange. Nein, nein.

Susanne

Eine Diskette hatte 3,

Susanne

5 ein Viertel.

Susanne

Nein, wie viel

Susanne

1,44 Megabyte, genau.

Susanne

Und ihr wisst noch, was eine Diskette ist.

Susanne

Ja, ich kenne die, die biegsam.

Jochen

Den Fünfeinviertelstoll angefangen,

Jochen

nur 360 Kilometer drauf.

Susanne

Ich bin noch mit Datasette angefangen.

Susanne

Aber, ja.

Susanne

Und dann gibt es dann so ganz große

Susanne

Projekte wie das PostGIS mit den ganzen

Susanne

Geodaten oder

Susanne

der JDBC für Java.

Susanne

Das sind so große Projekte, wo man gesagt hat,

Susanne

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,

Susanne

wo man sich fragt, warum zur Hölle ist das nicht mit drin.

Susanne

In 99%

Susanne

oder in 98% der Fälle,

Susanne

kann auch 100 sein,

Susanne

also in 99, sage ich mal,

Susanne

liegt das an der Lizenz, weil

Susanne

diese Tools irgendwas nutzen, was

Susanne

GPL mitbringt, was

Susanne

nicht mehr mit der BSD-Lizenz

Susanne

kompatibel ist und wo man

Susanne

dann ansonsten das, also

Susanne

die irgendwas nutzen, was dann aus

Susanne

der GPL-Welt kommt

Susanne

und das dann... Also um da nochmal

Dominik

vielleicht zusammenzufassen, GPL

Dominik

tendiert dazu, dass die Lizenzen halt nicht

Dominik

kommerziell freien nutzbar sind für alle Zwecke, sondern

Dominik

nur privat und BSD

Dominik

hat halt für alle Zwecke auch für kommerzielle

Dominik

komplett frei verwendet. Hast du schön gesagt.

Susanne

Deswegen findest du auch immer Postcards in deinem Auto.

Susanne

Nein. Was ist der Unterschied zwischen

Dominik

BSD und MIT-Lizenz? Gibt es da überhaupt einen?

Dominik

Nein. Ist das quasi dasselbe? Nee, MIT nicht.

Dominik

BSD ist Barclay.

Dominik

Barclay University.

Dominik

Und MIT-Lizenz? Das ist eine andere.

Jochen

East Coast versus West Coast,

Jochen

ich weiß nicht, aber

Jochen

die sind tatsächlich relativ ähnlich, also

Jochen

die sind beide sehr liberal.

Jochen

Genau wie Apache auch, ist auch sehr liberal.

Susanne

Ja, Apache ist auch genau, das ist so das.

Jochen

Da gibt es noch so Patentgeschichten, aber das ist auch normal.

Susanne

Offiziell heißt die von Postgres auch Postgres-Lizenz,

Susanne

aber die BSD-Lizenz.

Susanne

Das ist alles von der Universität von Barclay,

Susanne

die BSD-Lizenz.

Susanne

Und MIT,

Susanne

ja, ist halt,

Susanne

ja, MIT, ich finde das immer so lustig,

Susanne

Harvard und MIT sitzen in der

Susanne

Ort, wenn du mal dir überlegst,

Susanne

wo liegt das MIT? Jeder weiß, was die

Susanne

Harvard-Universität ist und die MIT-Universität

Susanne

hat man eigentlich schon mal gehört.

Susanne

Die Städte, die sind,

Susanne

die liegen tatsächlich nebeneinander und die Stadt

Susanne

heißt Cambridge.

Susanne

Und da muss man immer aufpassen, wenn man so im

Susanne

universitären Unterwegs ist.

Susanne

Hat man jetzt

Susanne

die echte Cambridge-Universität,

Susanne

also die in England, die ja auch nicht ohne ist,

Susanne

die will man ja manchmal auch wirklich haben.

Susanne

Oder hat man da wirklich wieder MIT und

Susanne

Harvard, weil die auch gerne unter

Susanne

Cambridge dann irgendwas veröffentlichen.

Susanne

Das liegt im Übrigen

Susanne

in der Nähe von Boston, falls es noch einer fragt.

Susanne

Genau.

Susanne

Und, ne, aber das ist,

Susanne

die kenne ich jetzt gar nicht, die Lizenz.

Susanne

Ich glaube, das ist für mich, also

Dominik

MRT sind fast identisch, also du sagst es irgendwie

Dominik

Patent. Ja, ja, das ist. Ne, das

Jochen

Apache macht noch diese expliziten Geschichten mit den

Jochen

Patenten, aber also

Jochen

MSD weiß ich jetzt gar nicht genau.

Jochen

ist aber auch, vielleicht die liberalste

Jochen

ist wahrscheinlich MIT, da ist es eigentlich quasi nur

Jochen

Copyleft, da steht nur drin, du musst halt sagen,

Jochen

du darfst es nicht entfernen, aber sonst...

Jochen

Nicht mal das, glaube ich.

Susanne

Die BSD ist, glaube ich, nur, lass meinen Namen

Susanne

in Zeitung.

Dominik

BSD, es muss Namen drin bleiben, bei MIT ist es völlig egal.

Dominik

Ja, ist beim Python übrigens auch so,

Jochen

Python hat auch die Python-Lizenz,

Jochen

aber es ist auch einfach nur BSD.

Susanne

Wir haben irgendwann vor etlichen

Susanne

Jahren mal, auf einmal war das alles

Susanne

nicht mehr BSD-Lizenz, sondern jedes Projekt hatte

Susanne

seine eigene Lizenz, was aber eigentlich die BSD-Lizenz

Susanne

Das war, ich nehme an, da gab es irgendwelche Namensgedöns-Geschichten.

Susanne

Keine Ahnung.

Dominik

Sag auf jeden Fall, von wem es gewesen ist, wenn du das sagst.

Dominik

Mach mal so was.

Dominik

Ja, irgendwie so.

Dominik

Ja, interessant.

Dominik

Ja, ist doch schon relevant, wenn man das als Unternehmensgründe 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,

Susanne

wurde das ja weiter automatisiert und so weiter.

Susanne

Und die haben dann damals echt diese Diskussion geführt,

Susanne

was nehmen wir für Platinen oder was

Susanne

machen wir für ein Betriebssystem auf

Susanne

unsere Platinen oder auf unsere Hardware

Susanne

drauf und da war eine Diskussion Linux

Susanne

versus BSD

Susanne

und die haben sich dann für BSD entschieden,

Susanne

weil ein abgespecktes Linux

Susanne

kriegst du ja auch hin und es war damals

Susanne

ja auch noch nicht so groß,

Susanne

eben wegen der Lizenz, weil die das

Susanne

auch ohne Probleme dann in jedes

Susanne

der Geräte, die du heute in jedem

Susanne

Handel kaufen kannst, auch einfach drunter

Susanne

legen kannst und ich meine, viele

Susanne

Autos nutzen auch BSD Lizenz, also

Susanne

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 uns ja immer noch den Spaß gemacht,

Susanne

die Geräte auseinanderzubauen und zu gucken, was da drauf ist.

Susanne

Das stellen die Hersteller ja heute,

Susanne

kommst du da nicht mehr so ohne weiteres dran.

Susanne

Oder du hast eine Rest-API denn irgendwo.

Susanne

Ja, du hast halt ganz viel da, BSD.

Susanne

Und wenn die dann eine Datenbank brauchen, eine etwas größere,

Susanne

dann hast du auch ganz häufig Postgres.

Susanne

Das ist interessant.

Dominik

wir haben jetzt noch zwei Sachen auf der Liste,

Dominik

die da vielleicht ganz gut reinfallen. Also Maria

Dominik

wäre das Postgres, wäre vielleicht das. Also da hatten wir

Dominik

schon mal kurz. Und das andere war NoSQL.

Dominik

Achso, ja, also

Susanne

da gibt es jetzt nicht ganz

Susanne

viel zu sagen. Es gibt halt neben den

Susanne

Relationalen, die sich, also

Susanne

diese, ja erstmal ist ja NoSQL

Susanne

ist ja Not Only SQL.

Susanne

Und da fanden die

Susanne

hierarchischen Datenbanksysteme,

Susanne

wer das mal gelernt hat,

Susanne

hierarchische Datenbanksysteme, sowas wie

Susanne

oder auch das Detailsystem.

Susanne

Das ist auch ein Datenbanksystem.

Susanne

Die waren dann plötzlich NoSQL. Das fanden

Susanne

die sich überhaupt nicht mehr mit zurecht,

Susanne

weil, ja, not only SQL.

Susanne

Und nein, es gibt halt

Susanne

tatsächlich sind dann so

Susanne

2007 hat das so ein bisschen

Susanne

begonnen oder

Susanne

seit 2007 hat sich das angefangen

Susanne

zu etablieren.

Susanne

Meines Wissens sind das

Susanne

Dokumentenbasierte,

Susanne

von der Technik her Dokumentenbasierte

Susanne

Datenbanksysteme und Graf-Datenbanksysteme,

Susanne

die grafenbasiert sind.

Susanne

Und das grafenbasiert

Susanne

habe ich vorhin schon mal so versucht, das sind dann

Susanne

so die Klassiker, Kunden,

Susanne

die das gekauft haben, haben auch das und das gekauft.

Susanne

Das ist

Susanne

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

Dominik

in einer normalen SQL. Weil die Trails dann zu groß werden

Dominik

oder die Joints zu groß werden. Ja, du spielst dann ja

Susanne

mit Matrizen am Ende und weißt ja, guck, guck,

Susanne

du brauchst ja unendlich viele Tabellen.

Susanne

Also da wird es echt,

Susanne

Das ist das Grafen-Dingen. Und wenn du dann mal so heute in größere Firmen guckst, ich nenne jetzt keine Namen, das darf ich jetzt ja wahrscheinlich nicht, die haben immer Kombinationen. Also ich sag mal so ein Web-Anbieter, der hat ganz, ganz häufig Kombinationen.

Susanne

Also für solche Sachen hat er dann eine Graf-Datenbank

Susanne

und ansonsten hat er eine Relationale

Susanne

für das ganze Kunden- und Verkaufsabwicklungs-Git,

Susanne

dann hat er 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, meine Erfahrung ist,

Susanne

was sie da ganz viel nutzen, ist von Apache,

Susanne

das ganze Hadoop mit HBase, HGraph und wie sie alle heißen.

Susanne

Also die meisten Firmen nutzen sowieso Maria und Postgres.

Susanne

Also du hast nicht mehr nur ein Datenbanksystem,

Susanne

dem, du hast halt ganz viele. Und

Susanne

dokumentenbasiert ist von daher interessant,

Susanne

wir bei Postgres empfehlen ja immer

Susanne

Elasticsearch.

Susanne

Das ist nicht, dass

Susanne

du Dokumente ablegst.

Susanne

Also Dokumente könnten jetzt, ich

Susanne

nehme immer ganz gerne auch Bilder als

Susanne

Beispiel jetzt. Bilder oder

Susanne

auch irgendwelche langen Textdokumente.

Susanne

PDFs oder so.

Susanne

Aber das

Susanne

Gute an dokumentenbasierten Baden-Baden

Susanne

ist, dass du in den Dokumenten suchen kannst.

Susanne

Das heißt, du kannst mir sagen, gib mir alle Bilder,

Susanne

die den Farbcode rot haben.

Susanne

Oder wo rote Pixel drin sind.

Susanne

Das kannst du natürlich nicht.

Susanne

In einer relationalen Datenbank

Susanne

liest du das Dokument so als Blob ab.

Susanne

Und du kannst nur das Dokument,

Susanne

du kannst aber nicht reingucken in das Dokument.

Dominik

Ich müsste halt vorher beim Speichern reingucken,

Dominik

müsste quasi den Link zu dem Dokument

Dominik

in die Datenbank schreiben.

Dominik

Ja, aber dann weiß man immer noch nicht,

Susanne

wo die Farbpixels raus oder ähnliches.

Susanne

Ja, die müsste ich ja einfach speichern.

Susanne

Nein, aber bei der Dokumentenbasierten

Susanne

oder wenn du PDFs,

Susanne

dann kannst du in den PDFs auch suchen,

Susanne

wenn du da Text hast.

Susanne

Wobei das bei PDFs heutzutage wieder schwierig ist,

Susanne

weil ganz viele PDFs aus Kopierschutz als Bilder sind.

Susanne

Das ist dann auch, ist ätzend, wenn du die kopieren willst.

Susanne

Aber das ist so was, wo du dokumentenbasiert

Susanne

natürlich super für gebrauchen kannst,

Susanne

wenn du in den Dokumenten selber suchen willst.

Susanne

Gib mir jetzt Gesichtserkennung, ganz klassisch.

Susanne

Das ist so was, wo du dann Dokumenten basiert hast

Susanne

mit Farbcode und mit was auch immer.

Susanne

Gesichtserkennung wäre jetzt so was.

Susanne

wobei ich da nicht weiß.

Dominik

Sie speichert ja bestimmte Punkte wahrscheinlich und dann die Winkel

Susanne

dazu. Ja, aber das ist jetzt was, was mir einfällt,

Susanne

wo du so bei Bildern ganz

Susanne

viel machst, das ist das.

Susanne

Es gibt natürlich Dokumenten, MongoDB

Susanne

ist dokumentenbasiert, MongoDB

Susanne

ist natürlich sehr extremst umstritten.

Susanne

Wie gesagt, die Firmen, die ich kenne, die haben

Susanne

dann da aus der Apache-Geschichte

Susanne

Hadoop und so weiter.

Susanne

Warum ist MongoDB umstritten?

Susanne

Und meine Erfahrung mit MongoDB ist, dass es extrem rammlastig ist und auch sehr rammaggressiv ist.

Susanne

Aber es gibt da tatsächlich Tests von großen Firmen, die mit F anfangen oder mit B anfangen.

Susanne

Oder ähnlich ist die MongoDB auch wirklich auf die kleinsten Niere auseinandergenommen.

Susanne

oder mit G anfangen,

Susanne

wo es dann auch mal

Susanne

Dokumente dazu gab,

Susanne

warum sie das dann jetzt nicht einsetzen.

Susanne

was ich halt hatte,

Susanne

es gab auch eine Zeit lang Hoster, die gesagt haben,

Susanne

du darfst keinen

Susanne

Tor-Server auf deinem

Susanne

Server machen und keine MongoDB.

Susanne

Gerade in VMs,

Susanne

weil sie dir den Ramp vom ganzen Host

Susanne

mit wegbringen oder ähnliches.

Jochen

Auch weil MongoDB am Anfang

Jochen

halt keine, defaultmäßig keine Authentifizierung

Jochen

hatte, du konntest dich einfach drauf verbinden.

Jochen

Ja, irgendwas war da, ja.

Jochen

Das war so ähnlich wie bei MySQL auch,

Jochen

weil da war es am Anfang auch so,

Susanne

naja. Aber wie gesagt, die meisten

Susanne

greifen dann aber tatsächlich im professionellen

Susanne

Bereich auf diese ganze Apache

Susanne

H-Dub, H-Base, 11-Grad-Graf

Susanne

und was weiß ich was zurück.

Susanne

Neo4j ist, glaube ich, auch H-Graf.

Susanne

Das hängt irgendwie

Susanne

zusammen. Bei den grafenbasierten

Susanne

Elasticsearch

Susanne

ist so ein klassisches

Susanne

Dokumentendingen zum Suchen in Dokumenten.

Susanne

Also da gibt es

Susanne

verschiedene. Da müssten wir jetzt auch nochmal eigentlich

Dominik

im Einzelnen nochmal, wie man das denn macht.

Dominik

Ja, da bin ich aber auch nicht wirklich so.

Susanne

Da ist halt das Problem, dass es da ganz viel Software gibt

Susanne

und dass du da, deswegen

Susanne

sage ich immer, man muss das dann auch heutzutage

Susanne

den jungen Menschen beibringen. Es gibt halt

Susanne

nicht nur Relationale. Es gibt halt diese

Susanne

anderen und wenn ihr die wirklich braucht,

Susanne

du kannst die nicht alle im Studium

Susanne

lernen. Also da gibt es dann GQL und so weiter.

Susanne

Ich weiß nicht, ob das auch sinnvoll ist, die alle

Susanne

im Studium zu lernen oder hinterher Kurse dafür

Susanne

anzubieten, wie du es programmierst. Gut, wenn du

Susanne

jetzt Programmierer wirst, ist das natürlich

Susanne

vielleicht sinnvoll, dass du es noch lernst. Ich weiß es nicht.

Susanne

Aber wenn man es braucht vielleicht.

Susanne

Ja, wenn man es braucht, dann muss man sich

Susanne

da mal reinfuchsen. Ich weiß auch nicht, wie viele

Susanne

Schulungen es da schon gibt. Also ich weiß, dass

Susanne

CouchDB da mal eine ganze Menge gemacht hat im

Susanne

Schulungsbereich. Und bei den

Susanne

CouchDB ist, glaube ich, auch Dokumenten basiert.

Susanne

Für mich jetzt nicht alles täuschen.

Susanne

Das ist

Susanne

so ein Misch, glaube ich,

Susanne

aus beiden. Ja, das glaube ich,

Jochen

das ist halt so ein sehr, das kann man

Jochen

sehr gut verteilen. Das ist auch mehr, aber

Jochen

eigentlich eher so ein Key-Value-Store.

Jochen

Aber ja, also es gibt

Jochen

ja ganz viele unterschiedliche Dinge. Ich weiß

Jochen

nicht. Ich glaube, das ist gar nicht so

Jochen

einfach, sich zu überlegen, was man da jetzt

Jochen

braucht, wenn man sich damit nicht so auskennt. Ich glaube,

Jochen

wenn man sozusagen weiß,

Jochen

was man daneben, also wenn man das

Jochen

Problem hat, dann weiß man das.

Jochen

Wenn man das nicht weiß, sollte man lieber Postkarten sehen.

Susanne

Ich habe tatsächlich an der Uni dann so ein bisschen

Susanne

die Studierenden mit Nois,

Susanne

Quatsch, mit Neo4j spielen lassen.

Susanne

Ich habe aber auch eher so einen Zugang

Susanne

zu den Grafen als es zu den anderen.

Susanne

Weil bei die anderen

Susanne

kann man sich auch besser vorstellen.

Susanne

Die sind dann auch wahrscheinlich leichter im Selbststuhl.

Susanne

Ich habe die also echt mit Neo4j,

Susanne

die hatten es mal ein bisschen rumspielen lassen,

Susanne

dass sie das mal gesehen haben.

Susanne

Und das ist ja auch schon mal was.

Susanne

Damit du überhaupt weißt,

Susanne

dass du es mal gesehen hast.

Dominik

Was würde man denn jetzt nehmen, wenn keiner ein GrafQL mit ein bisschen

Dominik

rumspielen will? Was würde man jetzt da drunter schicken?

Susanne

Neo4j. Das hat auch eine Oberfläche

Susanne

tatsächlich auch.

Susanne

Das ist das, womit ich rumgespielt habe.

Susanne

jetzt.

Susanne

Du meinst GraphQL, das von Facebook?

Susanne

Zum Beispiel, ja.

Susanne

Das kenne ich gar nicht.

Jochen

Ja, das ist irgendwie so eine neue Geschichte,

Jochen

so quasi als Alternative zu

Jochen

JSON über

Jochen

so JSON-API.

Jochen

Aber das weiß ich nicht,

Jochen

das gibt keine Datenbank, die sowas direkt

Jochen

glaube ich. Außer Neo4j?

Jochen

Vielleicht kann die das, ich weiß es nicht, vielleicht gibt es

Jochen

irgendeinen Adapter oder so, aber ich glaube dieses,

Jochen

die Sprache, die die verwenden, irgendwas mit

Jochen

Cycle oder weiß ich nicht.

Susanne

Es gibt tatsächlich standardisiert das GQL

Susanne

mittlerweile, da hat Katana auch ganz viel

Susanne

mitgemacht.

Susanne

Nein, aber das ist, es ist ja

Susanne

erstmal auch wichtig, guck mal,

Susanne

ich muss auch nicht jede Programmiersprache kennen,

Susanne

aber es ist schon mal schön zu wissen, wie sie heißen

Susanne

oder nicht jede Programmiersprache

Susanne

programmieren können.

Susanne

Ich kann jetzt auch kein Python,

Susanne

Und bin ich ganz ehrlich, doch, ich habe mal was mit Python gemacht

Susanne

vor gefühlten 100 Jahren.

Susanne

Irgendwo ist mir Python mal wirklich ...

Susanne

Wahrscheinlich, wenn es länger hält.

Susanne

Nee, früher musste man auch schon mal an so Software noch rumspielen,

Susanne

damit man irgendwelche Features hatte, die man nicht hatte.

Susanne

Ich weiß aber gar nicht mehr, wie das Tool ist,

Susanne

wo man das brauchte in Python, was in Python geschrieben war.

Susanne

Aber so ähnlich, wie man bei AutoCAD auch erst mal Lisp lernen musste,

Susanne

um da irgendwelche Funktionen zum Zeichnen zu machen,

Susanne

weil es gab nur eine Linie und kein Kopieren

Susanne

oder kein Spiegeln oder so. Das muss man sich selbst

Susanne

probieren in Lisp. Und irgendwie war das

Susanne

auch, da gab es irgendein Tool.

Jochen

Blender ist eins, was Python schon ganz lange

Jochen

gemacht hat.

Susanne

Also wenn du C kannst, kannst

Susanne

du die meisten anderen auch wenigstens halbwegs

Susanne

lesen.

Susanne

Und es ist nicht so schwer, da irgendwo reinzukommen.

Susanne

Postgres ist im Übrigen

Susanne

komplett in C geschrieben.

Susanne

MariaDB ist so ein Misch

Susanne

aus C und C++.

Susanne

Ich meine, ich habe da jetzt nicht so viel

Jochen

Erfahrung. Ich habe einmal versucht, in MySQL

Jochen

einen Bug, den ich gefunden habe, irgendwie zu

Jochen

debunken. Das war eher schwierig.

Jochen

Also ich fand das so, war so, auch gerade

Jochen

diese Swearing-Geschichte war, fand ich

Jochen

war, war,

Jochen

hat, ich,

Jochen

hat jetzt nicht so viel Joy

Jochen

bei mir gesparkt, muss ich sagen. Wohin gegen Postgres?

Jochen

Sehr gut, kann ich empfehlen. Kann man sich sehr gut

Susanne

angucken. Ja, das ist das. Postgres hat da auch

Susanne

immer Lob für gekriegt, dass die einen sehr, sehr

Susanne

guten Quellcode haben. Sehr gut lesbar

Susanne

auch. Aber das liegt natürlich

Susanne

auch daran, dass da wirklich einer drüber

Susanne

guckt und dir jeden Code, jedes Mal

Susanne

den Patch zurückführt, wenn du die Klammer auch nur

Susanne

in der falschen Zeile hast.

Susanne

Und wenn du dir den Postkastcode

Susanne

anguckst, also nur alleine,

Susanne

du machst ihn auf in irgendeinem Editor

Susanne

und du guckst dir den Postkastcode an

Susanne

und du guckst dir irgendeinen anderen Code an.

Susanne

Du siehst diesen Unterschied.

Susanne

So ein sauberer Code.

Dominik

Das ist was wert, ne Jochen?

Dominik

Ja, finde ich auch.

Susanne

Also früher war immer der Horror, OpenOffice

Susanne

zu kompilieren.

Susanne

Das war immer ganz schrecklich und MariaDB brauchte einfach immer lange, es kompilierte immerhin durch, aber es brauchte halt auch wahnsinnig lange Postgres-Kompilieren, war auch früher mit alter Hardware schon relativ schnell.

Susanne

Und das ist halt der Unterschied zwischen C und C++, dass C++ auch länger zum Kompilieren braucht. 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. Das ist so, ja. Du hattest noch eine Frage?

Dominik

Ich habe noch ein News vergessen, fällt mir da gerade ein. Und zwar wurde von C89 auf C11 geändert in dem Linux-Kernel vom Standard.

Jochen

Achso, wow, also richtig moderne Geschichten.

Dominik

Ja, das war halt, ja, modern. Aber das war das erste Mal, dass es da irgendwie Diskussionen gab, wo Linus irgendwann eingesetzt ist.

Susanne

Also, Unterschiede Postgres MariaDB, wann würde ich was einsetzen? Es gibt ganz viele Bereiche, wo das völlig wurscht ist.

Susanne

Wenn ich im GIS-Bereich

Susanne

unterwegs bin, würde ich immer

Susanne

Postgres nehmen, weil Postgres ist irgendwie

Susanne

mit dem PostGIS doch führend.

Susanne

Ja, genau. Gibt es auch bei kommerziellen

Jochen

Orgel kann das auch nicht.

Susanne

Wenn ich im Hochverfügbarkeitsbereich

Susanne

bin,

Susanne

da ist irgendwie

Susanne

majestuell allen anderen schon vor

Susanne

Jahrzehnten sowas von dran vorbeigelaufen.

Susanne

Und

Susanne

also ich kann bei

Susanne

MariaDB

Susanne

Hochverfügbarkeit, wir reden jetzt

Susanne

von Replikation.

Susanne

Man darf heute nicht mehr

Susanne

Master und Slave sagen aus

Susanne

politischen Gründen.

Susanne

Man spricht dann heute von

Susanne

Primary und Secondary oder

Susanne

Primary und Standby.

Dominik

Technisch ist es wahrscheinlich dann trotzdem genau nicht.

Susanne

Was ich erstmal machen kann

Susanne

bei MariaDB, weil es Thread-basiert ist

Susanne

in den Verbindungen und nicht Prozess-basiert

Susanne

ist, ich kann da einen Master machen

Susanne

oder Primary und dann

Susanne

10.000 Slaves dahinter hängen.

Susanne

10.000. Ihr wisst was.

Susanne

Standbys dahinter hängen. Gar kein Problem.

Susanne

Oder ich kann natürlich

Susanne

auch dann immer einen Standby

Susanne

also ich kann immer replizieren

Susanne

Standby von Standby von Standby.

Susanne

Also kann man so eine Kette aufbauen.

Susanne

Aber es ist überhaupt

Susanne

kein Problem und das wird auch häufig genug

Susanne

gemacht. Ein Master und dann

Susanne

mehrere tausend Standbys.

Susanne

Machen die Großen alle.

Susanne

Und wenn du mal guckst, die meisten Großen,

Susanne

meisten ganz Großen haben auch da in diesem

Susanne

Bereich immer MariaDB oder

Susanne

MySQL halt entsprechend von Oracle,

Susanne

aber nichts anderes.

Susanne

Bei

Susanne

Postgres ist es prozessbasiert

Susanne

und da hatten wir ja das, Verbindungen

Susanne

sind halt Prozesse, also

Susanne

da kriegen dann die Postgres, da kriegen Schnappatmungen

Susanne

und du sagst, du willst einen Master

Susanne

haben und 1000 Standby.

Susanne

Das ist schon mal eine Sache,

Susanne

da muss ich mir das überlegen.

Susanne

Die Streaming Replication von

Susanne

Postgres funktioniert super. Ich habe

Susanne

mal

Susanne

einen Wettaufsetzen gemacht

Susanne

mit einem von

Susanne

MariaDB, mit einem der Chefs von

Susanne

MariaDB, mit dem Chef von MariaDB

Susanne

mit reichlich

Susanne

Alkohol dabei

Susanne

und wer

Susanne

mehr Key Hits braucht zum Aufsetzen

Susanne

eines Standbys, und ich hatte

Susanne

zwei weniger als er, obwohl das Wort

Susanne

Postgres länger ist als

Susanne

MariaDB, aber

Susanne

das ist relativ simpel.

Susanne

Man will eigentlich bei Postgres die

Susanne

Streaming-Replication haben.

Susanne

Was ich bei,

Susanne

ja, man will sie eigentlich haben.

Susanne

Dann kann ich bei MariaDB

Susanne

auch sowas machen, wie

Susanne

ich habe zwei Master.

Susanne

Die kann ich theoretisch auch als Master

Susanne

Master-Replikation nutzen.

Susanne

Das will man aber nicht. Da hat man andere

Susanne

Affe-Fakte. Aber ich kann schon mal

Susanne

zwei Master aufsetzen und da jeweils ein paar

Susanne

tausend Slaves hinterhängen.

Susanne

Ich setze die

Susanne

als Master-Master auf, das heißt, die replizieren

Susanne

gegenseitig.

Susanne

Ich nutze die tatsächlich als Master-Slave.

Susanne

Das heißt, ich spiele alles,

Susanne

was ich schreibe, nur auf den einen Master

Susanne

und der repliziert.

Susanne

Wenn ich jetzt aber den Wartungsfall habe,

Susanne

kann ich den einen

Susanne

Master, dann brauche ich nur die IP

Susanne

schwenken auf den anderen Master

Susanne

und dann kann ich den einen warten.

Susanne

Und der zieht sich alles nach, was er

Susanne

verpasst hat.

Susanne

Und ich muss nichts weiter konfigurieren.

Susanne

Das ist das, wie dann auch, das machen auch gewisse weiterführende Tools, das ist jetzt das einfachste Clustering mit Hochverfügbarkeit und Master, Master und, nee, wie heißt das, Failover oder sowas, 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, der Anwender merkt da nichts von, das macht Pacemaker, CoroSync,

Susanne

Das machen die innerhalb vom Augenblick, die IP schwenken und dann geht das auf dem anderen Master weiter. Dafür ist das sehr, sehr sinnvoll. Das kann ich mit der Streaming-Replication von Postgres nicht. Das gibt die Streaming-Replication nicht her.

Susanne

Dann hat man ja erfunden, PostgreSQL, 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, das heißt, ich kann damit keine Tabellen erzeugen oder ähnliches.

Susanne

Das wird nicht repliziert, nur repliziert, was ich einmal aufgesetzt habe. Wenn ich danach irgendwie eine Tabelle ändere oder mein Datenbankschema ändere, das wird nicht repliziert. Ist natürlich blöd, weil ja jede Software auch mal irgendwie in ihren Updates auch Schemaänderungen mitbringt und müsste ich meine Replikation neu aufsetzen oder da irgendwie rum vorstellen, dass sich die Tabellen, die sich geändert haben, da wieder rein, ist natürlich etwas, das will man eigentlich heutzutage nicht mehr, man will, dass das automatisch geht.

Susanne

Ist was geplant?

Susanne

Nicht, dass ich wüsste.

Susanne

Man will diese Streaming-Replication,

Susanne

die ist auch super.

Susanne

Aber wie gesagt, die will immer

Susanne

ganz zwingend, dass das

Susanne

Stand-by-Read-Only ist. Das heißt,

Susanne

dieses Master-Master-Setup kann man nicht machen.

Susanne

Man kann es, weiß das Gen schon,

Susanne

konfigurieren, aber nicht so schön

Susanne

einfach nur IP schwenken.

Susanne

Man muss da im

Susanne

Chorosync oder im Pacemaker

Susanne

ein bisschen mehr konfigurieren. Der Pacemaker

Susanne

muss ein bisschen mehr machen, um den zweiten

Susanne

dann zum Laufen zu kriegen.

Susanne

Wenn der Master wird.

Susanne

Soweit, so gut. Manchmal braucht man ja auch

Susanne

nur zwei Standbys oder so.

Susanne

Dann ist das nicht so schlimm.

Susanne

Mit den vielen Standbys könnte man ja Postgres

Susanne

nehmen. Jetzt hat man aber das nächste

Susanne

Problem, dass die Postgres

Susanne

Replikation oder das

Susanne

Transaktionslog, was das alles irgendwie

Susanne

steuert, ist

Susanne

von drei Sachen abhängig.

Susanne

Fangen wir mit dem an, was

Susanne

was heutzutage fast am irrelevantesten

Susanne

ist und wo mich die meisten mal fragen, was ist

Susanne

es? Es ist Endian-abhängig.

Susanne

Und was ist

Susanne

das?

Susanne

Genau, das war die Sache mit

Susanne

diesen Zahlen von rechts nach links oder links

Susanne

nach rechts lesen.

Susanne

Es gibt Big Endian und Little Endian,

Susanne

die meisten heutige Hardware ist Little Endian.

Susanne

Du hast kaum noch Big

Susanne

Endian. Die alten

Susanne

Sunsparks waren Big Endian.

Susanne

Die haben einfach da

Susanne

die Sachen andersrum drin.

Susanne

und ich sage ja, das ist nicht

Susanne

mehr ganz so. Dann ist sie,

Susanne

auch das ist meistens was, was keinen

Susanne

stört, betriebssystemabhängig.

Susanne

Wobei

Susanne

Betriebssystem heißt Linux

Susanne

und nicht SUSE oder Debian,

Susanne

sondern Linux versus

Susanne

Microsoft oder

Susanne

versus

Susanne

was auch immer Microsoft da für Betriebssysteme

Susanne

hat, BSD.

Susanne

Also ich kann nicht replizieren von

Susanne

einem Linux-Server auf Microsoft

Susanne

oder andersrum.

Susanne

das stört die meisten

Susanne

auch noch nicht, weil meistens hat man

Susanne

sowieso nur...

Susanne

Und

Susanne

das dritte ist, es ist

Susanne

massivst versionsabhängig.

Susanne

Und da

Susanne

sind wir jetzt an dem Punkt, wenn ich eine

Susanne

MariaDB habe, die kann ich hot

Susanne

upgraden. Sagen wir, ich

Susanne

habe da einen Master

Susanne

oder ich habe da zwei Master, ich habe das

Susanne

aufgesetzt als Master-Master-System

Susanne

und habe da jeweils hinter den Master noch

Susanne

fünf, ich habe dann vielleicht noch mal

Susanne

drei Slaves hinter den Mastern direkt und die

Susanne

haben nochmal zwei Slaves, jeder dahinter

Susanne

und so weiter. Ich habe da nur so ein Kettensystem hinter

Susanne

mit etlichen Slaves.

Susanne

So, dann gehen dann große Firmen hin und die

Susanne

sagen dann, es kommt eine neue Version raus,

Susanne

die upgraden dann erstmal

Susanne

den hintersten Slave bei MariaDB.

Susanne

Weil MariaDB

Susanne

kann ja problemlos von einer

Susanne

niedrigeren, von einer älteren Version in eine

Susanne

neuere Version replizieren.

Susanne

Das heißt, die gucken erstmal

Susanne

beim hintersten Slave oder beim hintersten

Susanne

Standby nach, funktioniert alles.

Susanne

Wenn da alles funktioniert, dann machen sie

Susanne

die nächste Ebene und so weiter.

Susanne

Es kann sein, dass dann mittlerweile schon noch eine neue

Susanne

Version draußen ist, bis sie den

Susanne

Master überhaupt mal upgraden.

Susanne

Irgendwann kommen sie dann, schwenken die IP und

Susanne

upgraden die Master. Ich kann das komplett

Susanne

hot upgraden. Das heißt, ich habe

Susanne

ja immer nur eine Maschine, die ich da rausnehme

Susanne

aus dem Cluster.

Susanne

Und das geht bei Postgres nicht, weil

Susanne

ich kann nicht von der niedrigeren Version

Susanne

von der älteren in die neuere.

Susanne

Das heißt, wenn ich ein Upgrade habe,

Susanne

habe ich immer eine Downtime.

Susanne

Die kann ich irgendwie natürlich klein halten, wenn ich da noch mit irgendwie, ich baue noch nebenher noch eine logische Replikation oder so weiter, aber ich habe eine Downtime.

Susanne

Irgendwann habe ich den Punkt, wo ich mal eine Downtime habe von dem ganzen System.

Susanne

Und das ist tatsächlich etwas, was gerade so große Firmen.

Susanne

Ja, kann teuer werden dann.

Susanne

Ja, nicht nur das. Ja, teuer

Susanne

auch. Lass mal die

Susanne

Amazon-Seite nur 10 Sekunden

Susanne

nicht verfügbar sein.

Susanne

Bei Amazon hat das

Susanne

auch noch, oder Facebook, 10 Sekunden

Susanne

nicht verfügbar.

Susanne

Das ist so ähnlich wie gute Zeiten, schlechte Zeiten,

Susanne

wenn das Kabelfernsehen ausfällt, kann ich mir

Susanne

vorstellen oder so. Habe ich nie

Susanne

geguckt, weiß ich nicht, aber ich weiß, ich habe

Susanne

mal von Monteuren

Susanne

gehört, dass das, also gerade bei

Susanne

Kabelfernsehen, dass die Leute da verrückt spielen.

Susanne

Also ich kenne das aus Spielefirmen.

Susanne

wie bescheuert da Spieler

Susanne

werden, wenn da Angriffe nicht gefahren

Susanne

werden können. Und du stehst da, das ist doch nur ein Spiel.

Susanne

ja, aber lass mal so ganz große Sachen

Susanne

da irgendwie,

Susanne

das ist, also irgendwann bist du am Punkt,

Susanne

da kannst du nicht sagen, okay,

Susanne

mit der Downtime kann ich leben.

Susanne

Es gibt natürlich andere

Susanne

Anwendungen,

Susanne

wo du sagst, ja Gott, dann haben wir mal einen Tag

Susanne

Downtime, das schaffen wir schon, oder dann haben wir mal

Susanne

zwei Stunden Downtime, das kriegen wir hin,

Susanne

das kriegen. Wir haben genug Wartungsfenster

Susanne

drin, zwei Stunden ist überhaupt gar nicht das Problem.

Dominik

Ja, wenn man sich das aussuchen kann, dann kann man irgendwie wirklich

Dominik

was nehmen. Du, es gibt ja

Susanne

so Business, das passiert nur Montags bis

Susanne

Freitags. Da kannst du am Wochenende

Susanne

auch mal so Upgrades fahren.

Susanne

Durchaus.

Susanne

Jetzt nicht gerade in

Susanne

einer Einzelhandelsindustrie.

Dominik

Da sind ja auch genug Services, einfach Hauptgeschäftszeit

Jochen

aus. Du hast ja auch tatsächlich

Jochen

so natürliche solche

Jochen

Schwankungen, auch nachts

Jochen

kann man oft Backups machen, weil

Jochen

Das ging ja zur Tagszeit gar nicht.

Jochen

Ja, aber das ist lustig,

Dominik

was zum Beispiel Auftragsprobleme sein kann,

Dominik

dass du nachts die Backups gar nicht mehr machen kannst,

Dominik

weil nachts so viele andere Services laufen,

Dominik

die halt sonst im Betrieb nicht funktionieren.

Susanne

Das habe ich mal gedacht.

Susanne

Ich habe einen Kunden,

Susanne

der machte Kassensysteme für einen Einzelhandel.

Susanne

Und der hatte eine ganz große Kette Einzelhandel.

Susanne

So 70.000 Bonds pro Minute.

Susanne

Da könnt ihr euch vorstellen,

Susanne

Kassenbonds pro Minute.

Susanne

Da könnt ihr euch vorstellen, wie groß die Kette war.

Susanne

die hatten kaum Wartungsfenster.

Susanne

Jetzt denkst du, okay, so ein Geschäft macht ja

Susanne

irgendwann abends um 10 zu.

Susanne

Ich glaube, das war sogar eins, was um 8 zu

Susanne

macht, so generell. Hat sonntags nie auf.

Susanne

Samstags vielleicht

Susanne

schon um 16. Also du hast da ja

Susanne

durchaus nachts nichts laufen. Du kannst

Susanne

da ja Wartungen machen oder sonntags. Die hatten

Susanne

tatsächlich nur noch einen Tag im Jahr,

Susanne

wo die Wartungen machen konnten. Ich glaube, das war

Susanne

Ostermontag oder so.

Susanne

Und Pfingstmontag oder irgendwie sowas.

Susanne

Oder wenn Donnerstag

Susanne

dass ein Feiertag war. Das ging glaube ich

Susanne

auch nicht um mich, weil

Susanne

nämlich diese Einzelhandelskette

Susanne

dann immer, wenn die

Susanne

Geschäfte geschlossen waren,

Susanne

haben die Preisupdates und was weiß

Susanne

ich, Warenwirtschaftsupdates gemacht.

Susanne

Ohne Ende, aber auf der Datenbank, wenn die

Susanne

geschlossen waren, hatten die Geschäfte viel mehr los,

Susanne

als wenn die Geschäfte offen hatten und die ganzen Kassen liefen.

Susanne

Aber weil die ja die ganzen Ware

Susanne

aktualisieren mussten und weiß der

Susanne

Kuckuck, das lief dann durch.

Susanne

Und so kam das dann wirklich so

Susanne

für administrative Dinge, dass das wirklich mal

Susanne

down sein konnte, das System,

Susanne

da mussten schon mehrere Feiertage hintereinander

Susanne

folgen, damit das dann überhaupt noch mal einen Tag

Susanne

blieb, so, dass die dann zu hatten.

Susanne

Also, deswegen,

Susanne

das ist so was, man muss das

Susanne

vielleicht auch dokumentieren als Admin,

Susanne

dass man da eine Downtime hat.

Susanne

Man kann die natürlich,

Susanne

man kann das geschickt machen, dass man

Susanne

nicht ganz so viel Downtime hat.

Susanne

Aber man hat eine Downtime, da kommt man nicht

Susanne

drum rum. Und so

Susanne

ohne Downtime, ganz ohne Downtime, dieses

Susanne

Hot-Upgrade, wie es so wunderschön bei

Jochen

Oder es ist halt nicht eingebaut, man muss es dann halt selber machen.

Jochen

Was?

Jochen

Man muss das dann ja vielleicht einfach selber machen.

Jochen

Ich meine, ich kann ja schon zwei Datenbanken laufen haben

Jochen

und switche dann halt am Loadbalancer um,

Jochen

aber dann machen wir halt einen Loadbalancer an,

Jochen

den man da switchen kann.

Jochen

Was?

Jochen

Das hat ja wahrscheinlich auch nicht jeder.

Jochen

Naja, ich kann ja sozusagen eine Postgres,

Jochen

nehmen wir an, ich habe eine Postgres-Datenbank

Jochen

oder ich möchte die upgraden ohne Downtime,

Jochen

ja, dann habe ich halt eine zweite.

Jochen

Dann muss ich auf der, die ich upgraden möchte,

Jochen

halt muss ich dann irgendwann sagen,

Jochen

okay, jetzt darf nicht mehr geschrieben werden,

Jochen

switche ich und muss die andere

Jochen

sozusagen so lange repliziert haben, bis es

Jochen

wieder da ist. Okay, ich habe eine kleine Downtime bestimmt

Jochen

und dann switche ich das Ganze um.

Susanne

Und du hast halt das Problem,

Susanne

dass du, echte

Susanne

Hochverfügbarkeit fängt ja bei drei

Susanne

Maschinen an, damit du, wenn eine ausfällt,

Susanne

immer noch zwei hast und nie eine alleine.

Susanne

Du musst ja, wenn du jetzt

Susanne

einen, egal, du hast einen Master

Susanne

und zehn Standbys, du kannst die nur

Susanne

alle zeitgleich upgraden.

Susanne

Was in der Regel dazu führt, dass du

Susanne

den Master upgradest und die Standbys neu aufsetzt

Susanne

auf der neuen Version, aber du kannst

Susanne

nicht, du kannst ja nicht, weil die sind ja

Susanne

noch auf der alten Version, du kannst nicht in einer

Susanne

anderen Version replizieren. Das heißt, du musst

Susanne

deinen ganzen Cluster zeitgleich irgendwie,

Susanne

das heißt, ganz häufig

Susanne

fängst du dann an,

Susanne

also meine Erfahrung ist, du fängst dann an,

Susanne

du machst dann einfach nur die eine, die Mastermaschine, die

Susanne

gradest du ab und die ganzen Standbys setzt

Susanne

du neu auf, weil das ist schneller,

Susanne

es ist ganz häufig schneller

Susanne

als, nicht immer, manchmal

Susanne

will sie sie auch einzeln upgraden, aber

Susanne

ganz häufig ist es schneller, sie neu

Susanne

aufzusetzen. Aber kann man das

Susanne

nicht, ja gut.

Susanne

Siehst du das Problem? So ein bisschen

Susanne

ja, ja. Ich meine gut, muss man

Susanne

also wie gesagt, du kannst mit einer,

Susanne

wenn du wirklich keinen DDL hast und du

Susanne

weißt, diese Nacht kommt auch kein DDL rein.

Susanne

Ganz kurz auf Cache-Only stellen?

Susanne

Nein, auf logische, kannst du noch

Susanne

einen logischen Replikations-Server daneben

Susanne

stellen. Da kannst du auch von einer niedrigeren

Susanne

in eine höhere replizieren und andersrum,

Susanne

dass du dann erstmal logisch

Susanne

replizierst, das braucht natürlich ein bisschen das aufzusetzen,

Susanne

das kannst du ja im laufenden Betrieb machen.

Susanne

Und dann fängst du an

Susanne

mit dem

Susanne

Upgrade. Dann hast du dann erstmal die

Susanne

logische Replikation, die dann weitermacht.

Susanne

Da schreibst du rein.

Susanne

Und weil du ja logisch

Susanne

replizierst und damit kriegst du es dann ein wenig

Susanne

niedriger, die Downtime.

Susanne

Da musst du aber aufpassen, dass nicht

Susanne

zeitgleich deine Software ein Upgrade macht oder ähnliches.

Susanne

Wenn deine Software

Susanne

so im normalen Tagesgebrauch

Susanne

kein DDL braucht, also ganz häufig

Susanne

DDL heißt Data Definition Language, das heißt

Susanne

alles, was mit Create, Alter und

Susanne

Drop zu tun hat oder Grant und Revoke

Susanne

zählt da auch noch rein. Also

Susanne

wirklich nur Insert, Update, Delete

Susanne

und Select machen, mehr nicht.

Susanne

Wenn du keine Creates hast

Susanne

im Tagesgebrauch, dann könntest

Susanne

du sowas machen, weil dann

Susanne

hast du ja diese DDLs hast du dann

Susanne

ja nur, wenn deine Software, die du dahinter

Susanne

hast, ein Upgrade machst. Dann hast du ja

Susanne

meistens, wenn du eine Software Upgrade hast, hat

Susanne

die auch ein Upgrade in der Änderung

Susanne

in der Datenbank. Irgendwie.

Susanne

eine Schema-Änderung in der Datenbank, das ist ganz häufig.

Susanne

Aber so kriegst du es dann hin.

Susanne

Also, dass du die Downtime

Susanne

geringer hältst.

Susanne

Du kriegst sie nicht ganz weg.

Susanne

Du hast immer, irgendwo hast du

Susanne

eine Downtime und du musst ja

Susanne

danach die Standbys wieder aufsetzen und das

Susanne

dauert ja auch und je nachdem, wie viele Leute und

Jochen

Manpower du hast. Ja, das kann ich ja vorher machen.

Jochen

Ich muss da leben, dass der Repetitions-Lag halt

Jochen

ein bisschen größer ist, eventuell.

Susanne

Du ziehst das aus dem selben Backup, genau.

Susanne

Genau. Ja, du kannst auch einfach

Susanne

die Datenbank-Server neu aufsetzen und

Susanne

dann aus dem Backup das ziehen und dann

Susanne

die Standby ist dahinter. Dann hast du aber auch

Susanne

eine Downtime.

Susanne

Ohne Downtime kommst du da nicht aus.

Susanne

Du kannst dich einfach wegcachen in der Zwischenzeit,

Dominik

einfach sagen, okay, Datenbank ab, alles in Cache und dann

Dominik

wird der Cache dann zurückgeschrieben.

Dominik

Also das ist halt, wie gesagt,

Susanne

das ist was, da musst du dir wirklich Gedanken drum machen

Susanne

und das ist auch das große

Susanne

Aus, wenn ich

Susanne

so ein Business habe, ist das

Susanne

meiner Erfahrung nach das Aus für PostgreSQL,

Susanne

dann wird MariaDB genommen.

Susanne

Und das ist dann auch was, wo ich sage, wenn ihr wirklich da so auf 24-7 online verfügbar, das sagt nicht nur ich, das sagen auch die großen Firmen, die haben alle in diesem Bereich MariaDB. Und das ist ja auch, weil es gab, Ericsson hat MySQL Cluster entwickelt. Das ist ein eigenes Produkt, das basiert auf MySQL. Das ist noch immer bei Oracle.

Susanne

Das war ursprünglich von Ericsson. Ericsson ist ja nun mal, ihr kennt die Firma Ericsson. Und der ganze Telefonie-Bereich hat das eingesetzt. Und dann kam dieser, wir werden jetzt Oracle. Und dann brauchten die Kunden ja plötzlich auch irgendwie was von Cluster.

Susanne

Und MySQL Cluster war sowieso schon Closed Source, glaube ich. Aber jetzt nochmal, ich weiß es nicht mehr genau. Auf alle Fälle brauchten die was Neues und dann ist Galera entwickelt worden dafür. Und da sitzen die großen Telefonfirmen alle mit dahinter oder saßen anfangs. Weiß ich nicht, ob immer noch so tief stecke ich jetzt bei MariaDB nicht mehr drin.

Susanne

Und natürlich die großen anderen Firmen, die da auch alle mit drinstecken in dieser Entwicklung von MariaDB. Und die nutzen fast alle MariaDB eben halt wegen dieser Hochverfügbarkeit. Und die haben die auch teilweise mitentwickelt.

Susanne

Also da hat Google mit dran rum, beziehungsweise Google hat es eingesetzt, Facebook hat es eingesetzt, wobei das derselbe, teilweise derselbe, 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 und das wurde dafür entwickelt und da haben einfach alle anderen nicht aufgepasst.

Susanne

da ist MySQL schon vor

Susanne

zehn Jahren und noch früher

Susanne

einfach an allen anderen sowas von

Susanne

vorbeigezogen. Und was

Susanne

bei Postgres passiert ist, Postgres kann

Susanne

jetzt in der Replikation genau das gleiche wie Oracle.

Susanne

Mittlerweile kann Oracle mehr. Weil Oracle

Susanne

hat ja mittlerweile auch kapiert, dass MySQL

Susanne

da mehr kann. Und das ist ja

Susanne

ein und dasselbe. Und das echte MySQL liegt

Susanne

ja bei Oracle. Das gehört ja Oracle.

Susanne

Also meines Wissens, meine Info

Susanne

ist, dass Oracle da mittlerweile auch ein bisschen weiter ist.

Susanne

Aber Postgres hat mit dieser logischen Replikation

Susanne

einfach das entwickelt, was

Susanne

Oracle zu dem Zeitpunkt konnte.

Susanne

Und das war damals aber schon

Susanne

nicht das, was da draußen die Welt

Susanne

braucht. Und

Susanne

wenn du wirklich so ein 24-7-Business

Susanne

hast,

Susanne

in der Form würde ich dir immer

Susanne

sagen, ne Maria Debi.

Dominik

Ja gut, da muss man aber auch

Dominik

relativ groß geworden sein.

Susanne

Ja, du musst es halt dokumentieren.

Susanne

Ich kenne viele Firmen, die Postgres einsetzen

Susanne

und die das Problem nicht

Susanne

haben. Also das ist nur

Susanne

du musst halt gucken. Ich sage ja,

Susanne

ansonsten ist mir das immer völlig egal,

Susanne

was du einsetzt.

Susanne

Ich setze tatsächlich selber auch mal das oder das

Susanne

ein. Ich bin da

Susanne

einfach faul.

Susanne

Ich habe jetzt

Susanne

irgendeinen Grund, das Bedürfnis

Susanne

PHP mit Postgres einzusetzen.

Susanne

Das wäre noch

Susanne

spannend. Nochmal, wenn ich

Susanne

PHP nutze, weil ich ja auch nicht so

Susanne

der Programmierer bin in PHP.

Susanne

Warum? Was für ein Grund gibt es für PHP?

Susanne

Keine Ahnung, aber

Susanne

Dann würde ich dann auch eher, einfach weil, ja, machen wir mal eben mit Maria.

Dominik

Du musst auch mal die nächste Majango einsetzen oder einen Python.

Susanne

Ich habe mich mal irgendwie letztens wieder mit HTML rumgequält.

Susanne

War auch spannend, hatte ich auch ewig nicht gemacht.

Susanne

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 Web-Tool, was alle nutzen und keiner es mag, das McDonald's der Web-Tools. Keiner geht hin, aber alle setzen es ein. 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 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 ja beides sehr gut

Susanne

kenne und mir das dann im Endeffekt

Susanne

egal ist, welches eingesetzt wird, gucke

Susanne

ich dann meistens, okay, auf was wurde das Tool

Susanne

denn als erstes entwickelt und nehme das.

Susanne

Ich weiß gar nicht, bei Django ist es glaube ich

Susanne

auch MariaDB.

Jochen

Nee, das war von Anfang an Postgres.

Susanne

Nee, es war irgendein anderes Tool.

Susanne

Bei Ruby und Rails war es

Susanne

am Anfang MySQL.

Susanne

Das würde ich tatsächlich auch

Susanne

mit Postgres nutzen.

Susanne

Heutzutage macht das kaum noch jemand.

Susanne

Was?

Susanne

Rubio und Rails mit

Jochen

MariaDB benutzt. Also es geht zwar

Jochen

wohl auch, bei Django

Jochen

geht es auch, aber das machen halt wenige Leute.

Jochen

Ich habe gehört, dass

Jochen

der Grund für den Schwenk bei

Jochen

vielen war Heroku. Heroku hat

Jochen

von Anfang an eigentlich dann auf Postgres gesetzt

Jochen

und dann war das halt so

Jochen

der Default und die meisten haben ihre

Jochen

Rubio und Rails-Geschichten bei Heroku laufen lassen und dann

Jochen

ist das halt sich da so eingebürgert. Aber

Jochen

da gab es halt so einen Schwenk quasi von

Jochen

MariaDB oder MySQL, also damals

Jochen

war es MySQL, auf Postgres bei

Jochen

Django war es schon immer Postgres.

Susanne

Ich vertue mich auch, irgendein anderes Tool war

Susanne

Maria. WordPress war immer schon

Susanne

Maria. Das ist klassisch.

Susanne

Und da gucke ich

Susanne

nach. Wobei ich auch manchmal danach gucke,

Susanne

auf welcher Maschine setze ich das

Susanne

auf. Und wenn das die Maschine

Susanne

ist, wo ich Postgres zum Schulungsdatenbanken

Susanne

drauf habe, dann nehme ich grundsätzlich eine Maria

Susanne

und andersrum, weil sonst erschieße ich mir meine

Susanne

Produktiven. Aber mittlerweile gibt es ja

Susanne

VMs genug, dass das nicht mehr passiert.

Susanne

Oder ist das mit den

Susanne

VMs ja auch einfacher geworden, die aufzusetzen?

Susanne

dass dir das nicht mehr passiert, aber da bin ich

Susanne

Meister drin, dass ich mir in Schulungen dann irgendwelche

Susanne

produktiven Datenbanken zerschossen habe oder so.

Susanne

Deswegen nehme ich immer das andere System

Susanne

dann, weil dann komme ich nicht auf die Idee, das

Susanne

zu zerschießen.

Susanne

Nein, also mir ist das relativ egal

Susanne

und ich bin da ganz pragmatisch und gucke

Susanne

einfach, okay, womit kann das Tool

Susanne

besser umgehen, weil

Susanne

der Rest ist mir egal. Was ich natürlich

Susanne

mache, wenn du mir ein Tool gibst

Susanne

und das braucht einer dieser Datenbanken und da gibt es

Susanne

eine Tuning-Empfehlung, da kannst du dir

Susanne

sicher sein, ich tune das ganz anders,

Susanne

so wie ich denke.

Susanne

Teilweise mache ich es dann

Susanne

noch dichter, also wenn dann

Susanne

irgendein User gebraucht wird, also ganz

Susanne

schlimm ist, wenn ein Super-User gebraucht wird,

Susanne

grundsätzlich erstmal ohne Super-User,

Susanne

weil Super-User sollte man ja jetzt

Susanne

nicht unbedingt für so ein Tool nutzen.

Susanne

Und, ja.

Susanne

Nee, aber

Susanne

das sind so die ganz großen Unterschiede,

Susanne

wo ich jetzt wirklich diese zwei unterschieden

Susanne

meine, also wenn ich wirklich in dem ganz tiefen

Susanne

Hochverfügbarheitsbereich bin, würde ich

Susanne

MariaDB nehmen, auch wenn ich im GIST-Bereich

Susanne

unterwegs bin, immer Postgres.

Susanne

Und im mittleren Bereich

Susanne

tun die sich beide nichts. Also da

Susanne

ist das völlig egal.

Susanne

Da sehe ich weder vor noch

Susanne

Nachteile bei dem einen oder dem anderen.

Susanne

Das ist halt ein bisschen,

Susanne

das funktioniert halt,

Susanne

das SQL ist leicht

Susanne

anders, der Dialekt und

Susanne

bei den Variablen, bei der

Susanne

Konfiguration heißen natürlich

Susanne

die Variablen zum Teil anders.

Dominik

aber. Gut, und dann halt Lizenzen

Dominik

und so und dann, ja. Ah ja, Lizenzen

Susanne

kommen natürlich auch noch und wenn du natürlich sagst, du willst

Susanne

das weiterverkaufen, da frage ich dich,

Susanne

was willst du für ein Betriebssystem haben?

Susanne

Da bin ich dann sowieso

Susanne

diejenige, die das gar nicht mehr entscheiden muss,

Susanne

weil dann sind die schon am Betriebssystem vorher

Susanne

normalerweise.

Susanne

Ja, stimmt, ja.

Susanne

Das habe ich gar nicht mehr.

Susanne

Ich würde beide niemals

Susanne

auf irgendwie Windows laufen lassen.

Susanne

Das ist auch noch

Susanne

sowas, da hat man mal vor vielen

Susanne

ihren Tests gemacht. Nicht ich,

Susanne

sondern viele große Firmen.

Susanne

Die haben dieselbe

Susanne

wohlgemerkt Hardware genommen

Susanne

und haben dann geguckt, weil da

Susanne

kommt es immer darauf an, wie viel in fünf Minuten auf die

Susanne

Festplatte gespeichert werden kann. Also wie viel

Susanne

RAM auf die Festplatte ausgespült

Susanne

werden kann. Also wie viel aus dem

Susanne

Cache auf die Platte kommt. Und da gibt es

Susanne

dann immer noch diese Fünf-Minuten-Regel.

Susanne

Und die haben dann also mit

Susanne

ganz, ganz vielen Tests festgestellt,

Susanne

bei Linux war das im Schnitt

Susanne

damals bei 8 Gigabyte.

Susanne

Und bei Windows 512 Megabyte. Das Problem ist das Journaling, was Windows mitbringt, was das wohl so langsam macht. Und es ist auch tatsächlich so, das ist mir mal aufgefallen, du dachtest irgendwann, du hast nur Apple-Hardware, darf ich das sagen?

Jochen

Ja, nicht ausschließlich, aber überwiegend.

Susanne

Aber, wie gesagt, die Chinesen haben beim WTCF jetzt festgestellt, ich habe 675 Anschläge, das ist ein Wahnsinn.

Susanne

Wenn du das mit Mac und dem LibreOffice machst, dann kann das noch zeitgleich mitschreiben.

Susanne

Beim Windows und Word kann ich dann warten, bis mein Text angezeigt wird.

Susanne

Tja.

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, weil sie ja nichts anderes kennen.

Susanne

Wenn du den dann wirklich mal so intensiv im LibreOffice gibst, erst danach merken sie, dass das langsam ist. Und das liegt in diesem Journaling von Microsoft. Und bei Datenbanken ist das dann natürlich massiv. Und das kannst du nicht abstellen. Ich kenne Microsoft jetzt nicht so gut. Du kannst es abstellen, aber irgendein Dienst stellt das immer wieder an. Aber ein Sechzehntel langsamer. Das Sechzehntel langsamer finde ich schon schwierig.

Jochen

auf Microsoft

Jochen

kann man auch Datenmarken

Jochen

schnell betreiben. Also zum Beispiel,

Jochen

das finde ich immer beeindruckend, gibt es auch lange Artikel drüber,

Jochen

der Stack von Stack Overflow.

Jochen

Stack Overflow war,

Jochen

ich weiß nicht, ob es jetzt immer noch sind, aber

Jochen

lange auch unter den Top 10 Seiten der Welt und das

Jochen

läuft in einem halben Rack.

Jochen

Und das zentrale

Jochen

Stück Infrastruktur ist dann MS SQL Server.

Jochen

Und das geht wohl auch sehr schnell,

Jochen

wenn man das richtig macht. Aber das ist halt auch nicht so einfach.

Susanne

Da musst du halt entsprechend administrieren

Susanne

und da musst du halt gucken.

Susanne

Nur das ist halt immer das, was so

Susanne

meine Information dazu ist und

Susanne

jetzt habe ich aber auch

Susanne

die Kunden, die ich betreue, die haben meistens noch

Susanne

Linux-Server. Sogar

Susanne

meistens, entweder haben sie ein CentOS oder sie haben

Susanne

ein Debian oder ein Ubuntu. Das kann ich

Susanne

auch meistens nur einschränken. So sehe ich

Susanne

ganz, ganz selten und irgendwas

Susanne

anderes Linux-mäßiges auch nicht.

Susanne

Also das tut sich so, das

Susanne

echte Debian, das Ubuntu und dann

Susanne

ein CentOS. Das hast du so. Oder ein Reel vielleicht noch.

Susanne

Was? Ein Red Hat Enterprise.

Susanne

Ja, selten. Selten. Tatsächlich selten. Da hast du ja auch das Problem mit Pakete nachladen. Ich weiß es nicht so genau. Ich hatte mal einmal einen Kunden mit Red Hat Enterprise, da mussten wir es nachinstallieren. Die CD lag 300 Kilometer entfernt. Das war auch sehr lustig.

Susanne

also und so, mal eben

Susanne

wir ziehen uns das von irgendeinem FDP, gab's

Susanne

nicht und

Susanne

das war auch sehr lustig

Susanne

aber ja, das

Susanne

kann halt ja natürlich auch noch passieren, Red Hat

Susanne

Enterprise, aber du hast halt selten

Susanne

Suse und alles andere, Gentoo und was es da

Susanne

alles gibt, hast du auch

Susanne

so gut wie gar nicht

Susanne

was ich jetzt gehört habe

Susanne

was wohl wieder im Kommen ist, ist

Susanne

BSD

Susanne

ich glaube das war auch schon

Jochen

es gab immer Leute, die das lieber gemocht haben, gerade für

Jochen

irgendwie wegen ZFS und so.

Jochen

Ja, wobei das

Susanne

ZFS, das bringt nichts. Das hat man auch

Susanne

getestet. Also es ist immer noch XFS

Susanne

oder du kannst auch X4 nehmen.

Susanne

ZFS bringt gar nichts

Susanne

bei Datenbanken, das hat man gedacht.

Susanne

Bei Datenbanken, ja, ja. Reiser-FS

Susanne

finde ich auch nicht.

Susanne

BTRF,

Susanne

das Butter-FS, auch nicht.

Susanne

Was du da immer...

Dominik

War das nicht jemand, der jemand

Dominik

umgebracht hat? Was?

Jochen

Ja, Hans Reiser hatte

Jochen

Ja, der ist tatsächlich

Jochen

im Gefängnis gelandet, weil er seine Frau umgebracht hat.

Jochen

Aber, ja,

Jochen

das sagt jetzt ja noch nichts über die Qualität

Jochen

von Matthias' System.

Susanne

Nein, also tatsächlich ist meine,

Susanne

ich weiß, es gibt

Susanne

ganz viele Microsofts, aber da draußen,

Susanne

aber tatsächlich bin ich eher in der Linux-Welt

Susanne

unterwegs und

Susanne

mich buchen auch komischerweise meistens

Susanne

die Leute, die einen Linux-Server haben.

Susanne

Auch Migrationen, da habe ich

Susanne

auch mit Linux, aber natürlich

Susanne

musst du das Betriebssystem auch noch ein bisschen

Susanne

tunen, das machen wir dann ja auch

Susanne

und das ist bei Linux ja,

Susanne

das ist auch völlig egal, welches Betriebssystem,

Susanne

also ob du da welche Distributionen da hast,

Susanne

das ist ein Linux und gut.

Susanne

Das ist nur, was ich

Susanne

immer, ich kenne mich natürlich,

Susanne

weil ich aus der Debian-Ecke

Susanne

komme, natürlich mit Debian und Ubuntu

Susanne

am besten aus.

Susanne

Das heißt, da weiß ich,

Susanne

wo ich das Dateisystem finde, auf Anhieb.

Susanne

Bei einem SUSE müsste

Susanne

ich suchen.

Susanne

jetzt nicht, dass es anders funktioniert.

Susanne

Es ist nur woanders

Susanne

abgelegt oder die

Susanne

Konfigurationen liegen woanders oder

Susanne

solche feinen Sachen, die Lockfights sind woanders.

Susanne

Und man sollte auch immer aus den

Susanne

Paketen, die das Betriebssystem mitbringt,

Susanne

weiß ich gar nicht,

Susanne

soll man das noch?

Susanne

Jedenfalls nicht selber kompilieren.

Susanne

Was ich

Susanne

in der Regel mache, damit ich die neuesten Versionen

Susanne

habe und das rate ich auch,

Susanne

bei MariaDB gibt es

Susanne

ganz cool

Susanne

auf

Susanne

der Download-Seite, da gibt es

Susanne

ein Tool, das ist nur ganz klein verlinkt.

Susanne

Da kann man dann angeben, was für ein Betriebssystem man

Susanne

hat und welche Version von MariaDB

Susanne

und dann kriegt man eine Anleitung.

Susanne

Dann kann man auch angeben, von welchem Mirror man das

Susanne

ziehen will und dann kriegt man eine Anleitung, wie man das

Susanne

dann mal eben installieren kann.

Susanne

Sodass es dann auch, wenn man das Betriebssystem

Susanne

upgradet oder updatet,

Susanne

auch upgedatet wird, also die Minor-Updates

Susanne

mitfährt. Und bei Postgres gibt es das

Susanne

ähnlich. Und wenn man jetzt

Susanne

sagt, okay, das Betriebssystem, ich habe jetzt ein

Susanne

LTS und das hat jetzt doch ein sehr altes Datenbanksystem,

Susanne

ich will da ein neueres draufnehmen, dann

Susanne

nehme ich halt diese Pakete und die

Susanne

werden dann passend mit bei Debian

Susanne

in die Sourceslisten eingefügt und dann

Susanne

kommt dann bei jedem Update, was ich auf dem

Susanne

Betriebssystem mache,

Susanne

wenn ich da Security Fixes

Susanne

oder so habe bei den beiden, dann werden

Susanne

die gleich automatisch mit geupdatet. Also

Susanne

man soll das nicht mehr selbst

Susanne

kompilieren. So wie früher

Susanne

machen wir auch in den Schulungen nicht mehr.

Susanne

Schön auf Nixos. Was?

Susanne

Schön auf Nixos.

Susanne

Also ja, du kannst bei mir auch noch,

Susanne

ich erkläre dir auch gerne, wie du es kompilierst

Susanne

oder wie du da auch noch diverse Sachen,

Susanne

die du beim Kompilieren ändern kannst, einstellen kannst.

Susanne

Wenn du sowas machst auf ganz kleiner Hardware,

Susanne

das passiert so alle Jubiläare mal,

Susanne

dass ich mal angefragt werde für PostgreSQL

Susanne

aus extrem kleiner Hardware auf irgendwelchen Geräten,

Susanne

die dann doch sehr klein sind,

Susanne

wo du dann irgendwelche Variablen in C noch ändern musst.

Susanne

Auf Nixos sehe ich gerade,

Dominik

ist das Service MySQL Enable True,

Dominik

damit man mir hier die wie laufen lassen kann?

Dominik

Ah, ja.

Dominik

Interessant, ja.

Jochen

Ja, Python, es hat

Jochen

da so ein Problem, Python zu installieren, das ist immer nach wie vor

Jochen

schwierig oder wüsste ich jetzt keinen Standardweg,

Jochen

wie das geht. Auch wenn ich Python installiere

Jochen

oder halt, sagen wir mal, so produktiv,

Jochen

also Desktop gibt es vielleicht noch andere Möglichkeiten,

Jochen

aber wenn ich es irgendwo auf dem Server veröffentliche,

Jochen

ist es tatsächlich momentan auch noch selbbar, weil

Jochen

es gibt keine gute Alternative.

Jochen

Ja, das ist ja noch total

Jochen

abhängig davon, was so eine Umgebung hat.

Jochen

Reicht es nicht, was das

Jochen

Betriebssystem mitbringt?

Jochen

Naja, Debian macht es kaputt.

Jochen

Debian macht es leider völlig kaputt.

Jochen

Echt?

Jochen

Ja.

Jochen

Ja, ja, das ist...

Dominik

Das ist eines der ungelösteren Probleme,

Dominik

in dem man gucken muss, ob da was passiert.

Dominik

Ja, weil eigentlich will man das halt

Dominik

virtualisiert auch haben, das Python,

Dominik

weil man quasi immer nur sein eigenes nutzt und nicht das System Python.

Dominik

Weil da sonst komische Sachen passieren

Dominik

und dann muss man das eigentlich immer neu

Dominik

irgendwo herbekommen.

Dominik

Auch bei Django und Co.?

Dominik

Ja, ja, klar, natürlich.

Jochen

Genau, das ist halt dann...

Susanne

Das ist dann aber aufwendig.

Jochen

Ja, die Pollen-Story ist da so ein bisschen

Jochen

ungelöst, noch ein ungelöstes Problem.

Jochen

Das ist ein bisschen schwierig, ja.

Dominik

Ja, es gibt da so Tools für, wie PyEnv oder sowas,

Dominik

dann sagst du einfach, was du hast, aber du musst halt wieder ein extra

Dominik

Tool installieren, was dann halt dir dafür sorgt, dass du dann

Dominik

die jeweilige Version hast und so.

Dominik

Ja.

Susanne

Wir sagen einfach immer, also da sind die wirklich

Susanne

beide sehr, sehr gut, was das angeht.

Susanne

Gerade auch so den Support für die

Susanne

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 war sehr auswendig, aber du kannst dann auch in dem Weg, was habe ich für ein, was habe ich für ein, du kannst auch Red Hat Enterprise angucken oder Center, du kriegst es genau erklärt, du kannst es per Copy und Paste einfach in deine Shell packen.

Susanne

Hast du die URL gerade im Kopf?

Susanne

Was? Für MariaDB?

Susanne

Ja.

Susanne

Geh mal auf

Susanne

downloads.mariadb.com

Susanne

oder org.

Susanne

MariaDB.com

Susanne

Server Download? Nein.

Susanne

MariaDB.com Downloads.

Susanne

Ja, zeig mal dann die Ansicht.

Susanne

Und da gibt es irgendwo

Susanne

Configuration Tool. Nee, das ist es nicht.

Susanne

Haben die jetzt die Webseite geändert?

Susanne

Möglicherweise, aber ist ja,

Susanne

dann gucken wir erst mal.

Susanne

Nee, du brauchst doch den Org.

Susanne

Download.

Susanne

Punkt.

Susanne

MariaDB, ich meine

Susanne

Maria.

Susanne

Gucken wir jetzt einmal live nach.

Susanne

Downloads MariaDB.org.

Susanne

So, genau da.

Susanne

Und da hast du,

Susanne

wo ist denn das? Hier auf der Handy-Version

Susanne

ist natürlich auch super, ne? Ja, natürlich.

Susanne

I'm sorry.

Susanne

Wie heißt denn dieses Tool?

Susanne

Ich gucke es uns einfach später nach.

Jochen

Genau, das kann ich euch noch.

Susanne

In der Desktop, also in der

Susanne

normalen hätte ich das jetzt, aber es kann auch sein,

Susanne

dass sie die Webseite geändert haben.

Susanne

Da gibt es jedenfalls ein Configuration-Tool.

Susanne

Das heißt auch irgendwie

Susanne

Download-Configuration-Tool oder so ähnlich.

Susanne

Und dann kannst du das

Susanne

so anklicken. Das ist total cool eigentlich.

Susanne

Und genau.

Susanne

Ja, auf Mac

Susanne

habe ich tatsächlich noch nie.

Susanne

Ich habe das mal

Susanne

installiert.

Susanne

Ich weiß nicht mehr, welches schlimmer war als

Susanne

das andere. Eins wollte, glaube ich, gar nicht.

Susanne

Also das war bei

Susanne

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...

Susanne

Ja, ja, ja.

Susanne

Quasi produktiv sowieso

Jochen

nicht, aber zum Entwickeln geht es eigentlich

Jochen

beides ganz gut. Ich habe nicht so viel Erfahrung

Jochen

mit MariaDB, aber ja.

Jochen

hab's mal probiert, hat's schon funktioniert.

Jochen

Aber, ja. Du kannst es

Susanne

beides irgendwie hin, das zu installieren.

Susanne

Ja, genau, ne, aber

Susanne

Ich mach das dann tatsächlich, dass ich das

Susanne

irgendwo auf den Server packe und

Susanne

aber ich auch tatsächlich

Susanne

mit dem Mac nicht entwickle.

Susanne

Also da hab ich tatsächlich noch ein ThinkPad

Susanne

und ein Linux und eine Shell und

Susanne

das ist von der Tastatur

Susanne

auch etwas gruselig, programmieren auf dem Mac.

Jochen

Ja, da gibt's Leute, die, ja, oder

Jochen

sagen wir mal, das war eine ganze Zeit lang total kaputt.

Jochen

Ich bin in dieses Problem auch eingelaufen,

Jochen

das war furchtbar.

Jochen

Mit dieser schönen F-Bar, die dann irgendwie ausgeblendet

Jochen

zum Scrollen, naja.

Jochen

Ja, es gab da diverse Probleme.

Jochen

Die Touchbar hatte das Problem, es gab keine

Jochen

S-Tab-Taste mehr, das war hoher.

Jochen

Und gerade als

Jochen

wie Ayusa, muss ich sagen, fand ich nicht so gut.

Jochen

Genau.

Jochen

Ja, so mittel.

Jochen

Und eine andere Geschichte, die halt auch total nervig war,

Jochen

ist halt, dass von

Jochen

2015, also von

Jochen

2016 bis

Jochen

2021 oder 2020,

Jochen

auf jeden Fall Ende 2020,

Jochen

waren die Tastaturen alle kaputt und

Jochen

da sind die Tasten oft nicht mehr gegangen.

Jochen

Und wenn halt irgendeine Tasse nicht mehr geht, ist das auch eher

Jochen

nervtötend. Und das Problem ist, man

Jochen

kann halt auch nicht, also das war halt,

Jochen

ja, um das zu lösen,

Jochen

muss das Mainboard getauscht werden. Das heißt, man muss damit

Jochen

irgendwie irgendwo hin, dann muss das eingeschickt werden,

Jochen

dauert das eine Woche. Und wer mal

Jochen

darauf angewiesen ist, dass Rechner funktionieren, ist das natürlich

Jochen

eher auch gut.

Dominik

Aber wisst ihr was, ich glaube, über Mac-Hardware

Dominik

reden wir gleich bei einem Getränk weiter.

Dominik

Wir haben heute richtig viel

Dominik

gelernt über Datenbank. Vielen Dank.

Dominik

Das war echt super.

Dominik

Ja, ich würde

Dominik

sagen, wir haben alles besprochen.

Dominik

Die Picks der Woche lassen wir heute weg, Jochen,

Dominik

oder was sagst du?

Jochen

Eine Geschichte würde ich vielleicht noch

Jochen

ganz nett, wenn man

Jochen

so ein bisschen grafischer

Jochen

das mag, irgendwie zu sehen, wo man

Jochen

eventuell Performance-Probleme hat. Da gibt es für Postgres

Jochen

ein schönes Tool, ein kommerzielles Tool,

Jochen

PG Mustard. Kann sich mal

Jochen

angucken. Ansonsten, ja,

Dominik

was ich nicht... Also ja, ich hätte irgendwie noch,

Dominik

ich mache ja gerne dann Modelle irgendwie mit

Dominik

Pydentic, die man irgendwie wegschreibt und weil das

Dominik

zwischendurch ein bisschen langsam war, weil so pur Python

Dominik

dann schon manchmal Probleme haben kann, gibt es

Dominik

Pydentic Core, das ist in Rust gecodet,

Dominik

das macht das Ganze deutlich schneller.

Dominik

Ja, das vielleicht noch.

Dominik

Ja, dann vielen Dank fürs Zuhören,

Dominik

dass ihr eingeschaltet habt. Vielen Dank, dass du da warst nochmal,

Dominik

Sanne. Ja, vielen Dank. Wir bleiben uns bewogen,

Dominik

schalten uns mal wieder ein und alle

Dominik

Feedback, Kritik, Anregungen an hallo-at-python-podcast.de

Dominik

Tschüss, bis zum nächsten Mal.