Moin, zu einfach komplex, dem Podcast für Software It Line von
heisenware Ich bin Gerrit und heute spreche ich mal wieder mit
Burkhard, unserem Experten. Moin Moin aus Hamburg, wir haben
mal in Folge 6 das Thema Datenbanken auseinandergenommen,
die Folge läuft ziemlich gut, es ist tatsächlich unsere
erfolgreichste Folge am beliebtesten und da jetzt
wiederholt auch die Nachfrage kam, wie wählt man denn
eigentlich eine gute Datenbank aus, was ist denn eigentlich das
Besondere an Post Dress, die öfter mal genannt wurde von
Burkhard? Ja, soll das heute auch unser
Thema sein? Burkhard, Was haben wir uns
vorgenommen. Ja, Gerrit, Wir wollten heute
mal über Postgeist SQL sprechen oder Postgrests, so hieß das
initiale Projekt und gar nicht so einfach, wenn man sich jetzt
so eine Datenbank Implementierung, sage ich mal
rauspickt, muss man erstmal überlegen, wie geht man dann so
eine Folge an und der Plan für die Folge wäre, dass wir einfach
mal besprechen, was wäre denn die ideale theoretische
Datenbank, was müsste sie denn eigentlich können um alle
glücklich zu machen. Und das wollen wir mal kurz so n
bisschen durchexerzieren. Und wenn wir das verstanden
haben, dann können wir ja mal gucken, wie weit Post Kress
dabei ist, diesen idealen Standard zu erfüllen.
Das wär die Idee und gleichzeitig besprechen wir dann
n bisschen die Technik, das machen wir ja immer, also
versuchen zu verstehen, warum ist das dann auch gut gelöst
oder nicht, dann können wir natürlich noch ein bisschen auf
die Historie gucken, wie ist das soweit gekommen und zum Schluss
gucken wir natürlich noch einmal ein bisschen, machen wir das
Fenster auf, denn wir wollen ja nicht sagen Post resistiert die
ultimative. Number One Waffe für
Datenbanken, sondern es gibt ja noch andere und dann machen wir
noch mal einen kleinen Vergleich das wir eine gute Übersicht
haben, das ist der Plan für die Folge denke ich mal.
Kann man das dann überhaupt so generell sagen?
Die Datenbank ist gut und die ist schlecht oder kann man das
eigentlich nur sagen, also relativ für meinen
Anwendungsfall ist eine bestimmte Datenbank gut oder
schlecht? Ich bin sowieso ein Freund von
differenzierter Betrachtung. Also insofern muss man immer
Anwendungsfälle mit in Betracht ziehen.
Man kann aber schon. Man kann aber schon schon n paar
Kriterien raus packen, die idealer wenn sie dann gehen
würden. Was ich technisch bezweifle,
dass du halt alle Anwendungsfälle gleich gut
abdecken kannst. Oft halt einfach technisch nicht
möglich, ne, weil du entweder optimierst, weil die eine
Richtung oder die andere. Aber man kann es schon
formulieren, was ne richtig coole Datenbank wäre, das glaub
ich schon. Ja die Anwendungsfälle sind, ich
sag es mal gleich, also der krasseste Unterschied der
Anwendungsfälle ist halt, ob ich nun viele relationale Daten hab.
Und Relational heißt. Ich sag es jetzt mal in ganz
einfachen Worten, wenn man, wenn man das Gefühl hat, seinen seine
Daten, die man im Kopf hat oder die man verwalten will, in Excel
abzubilden. Ja, das hat man ja oft, ne, du
hast irgendwie, willst irgendwie was was weiß ich, du hast zum
Beispiel ne Liste oder irgendwie was mit mit mit Leuten die zur
Party kommen oder irgendsowas und dann willst du irgendwie
noch das Essen dazu organisieren oder sowas, da hat man, da hätte
ich jetzt von mir aus wirklich so ein Tool nehmen wie Excel,
ich fange an strukturierte Daten zu haben und so weiter.
Und es gibt aber ganz andere Probleme, wo du sagst, aber ich
nehme mal ein Word Dokument her, weil ich habe da noch ein Bild
und hier noch einen Link und irgendwie wuseliges gemischtes
Zeus. Ja das ist halt unstrukturiert.
Ja das sind so die 2 unterschiedlichen, vielleicht
noch einen dritten, ich habe irgendwas was wo die Zeit, das
hatten wir auch schon mal gesagt, eine Time Series ja wo
ich irgendwas aufzeichnen will über die Zeit ja Datenpunkte
sind so 3 ganz krass unterschiedliche
Kategorisierungen von Daten die ich.
Behandeln möchte, sind relationale, strukturierte und
dann sehr unstrukturierte, nicht relationale Daten oder Daten,
die Halt einer Zeit, die einer Zeit einer Zeitfolge folgen.
Und für diese 3 sehr unterschiedlichen
Anwendungsfälle gibt es natürlich auch unterschiedliche
Datenbanklösungen. Host Res QL das SQL steht für
Relation ne das wir, wir gucken heute so n bisschen mehr diese
relationalen. Button an, aber ob strukturiert
oder nicht, das will ich sogar noch mal offen lassen, ne?
Dann eine Frage vorweg SQL, wofür steht das?
Structured Curie language. OK.
NSQL das kann man ja vielleicht noch mal als Recap sagen.
SQL ist im Prinzip ein. Mehr Sprache kann man fast
sagen, aber nicht so wirklich. Es ist eigentlich ne
Abfragesprache und das ist ganz krass das also wenn man
Informatik studiert, lernt man das, dahinter liegt die
sogenannte relationale Algebra, dass ein Bereich der Mathematik
ja, denn wenn man, wenn man Relationen verwaltet, dann kann
man das sehr stark mathematisch ausdrücken.
Ja, das ist Mengenlehre und Relationslehre, es gibt eine
richtige mathematische Abhandlung, und das hat dann mit
SQL noch nichts zu tun und. Wenn man das quasi dieses
mathematische Konstrukt aber jetzt in die Hand geben möchte,
um es nutzen zu können, um relationale Daten einzufügen,
abzufragen, zu bearbeiten in der Datenbank, dann brauche ich ein
bisschen was hochsprachigeres als die pure Matte.
Und daraus ist SQL entstanden. Sql ist ein ISO Standard sogar
auch das ist eine Art und Weise wie ich quasi relationale Daten
managen kann um mal kurz zu verstehen, was SQL ist.
Ja, hat aber englische Worte, sie sieht so aus wie Select.
Stern from und dann kommt der Tabellen Name Where The Beding
Bedingung zum Beispiel ID größer als 4 oder irgend sowas so
ungefähr. Kann man sich vorstellen, sieht
SQL aus? Ja, ist schon sehr alt, gibt
schon sehr lange, ist schon sehr viel standardisiert worden, ich
glaub der zweitausendsechzehner Standard ist der aktuelle ist
Halt die.de facto Abfragesprache für Datenbanken.
Ja, OK, für alle Datenbanken dann, oder?
Also für die SQL Datenbanken ganz genau.
Ja ganz. Genau, ja prima, jetzt hast du
gesagt, wollen wir erstmal gucken, wie sieht dann
eigentlich so eine ideale Datenbank aus, was sind da
Kriterien die du anlegst? Genau.
Jetzt musst du dann einmal auch kurz verstehen, warum.
Überhaupt Datenbanken. Warum brauchen Sie, warum
brauchen wir sie und also, was machen sie klar, also sie
speichern halt Daten und zwar und das vielleicht gar nicht so
klar, sie speichern Sie halt einfach, ohne dass eine
Anwendung dabei laufen muss. Ich habe ja 2 Sachen, ich habe
meine Daten und ich habe meine Anwendungslogik oder mehrere
Anwendungslogiken, ist ja ganz egal.
Also ich habe einfach einen Haufen von Daten und dann habe
ich zum Beispiel eine Anwendung, die die Daten liest.
Anzeigt. Ja, wir hatten jetzt letztens in
der letzten Folge mal so einen blogspot, da könnten
Blogeinträge sein oder ein Order Management System oder oder e
Commerce. Und so weiter.
Da hab ich ja ganz viele Daten von meinen Warehouse, von meinen
Produkten, von den Kunden und so weiter und dann hab ich ne
Anwendung die damit arbeiten muss.
So ja das sind die 2 Dinger und während die Anwendung
abgeschaltet werden kann und auch umgebaut werden kann,
müssen die Daten ja aber. Gehalten werden auf einer
Festplatte ja, und zwar im besten Falle sehr strukturiert.
Es wird halt nicht einfach auf die Festplatte irgendwie
geschrieben, sondern halt in Form einer Datenbank, ja.
Und, und jetzt kommt die Schwierigkeit, die man als
Entwickler hat. Das will ich auch einmal noch
mal kurz sagen, denn ich habe die Perspektive der Datenbank,
ist halt eine Art und Weise diese Daten quasi zu halten, zu
strukturieren und hinzulegen. Während ich in der Anwendung
ganz andere Konstrukte habe. Ich hab in der Anwendung
programmiere ich normalerweise keine Tabellen hin und Relation,
sondern ich hab da Objekte, wir sprechen ja die meisten
Sprachen, sind objektorientiert, OOP, Object oriented.
Programming machen wir und dann haben halt Objekte quasi selber
Daten in in drin, die haben Vererbung, die beziehen sich
aufeinander und jetzt muss ich schaffen quasi die Daten die in
der Datenbank in Tabellen abgebildet sind.
So rauszuziehen, dass sie meine Objekte, die in der Runtime
entstehen, in der Businesslogik füllen und dass die sinnvoll
arbeiten können. Das das ist ne Schwierigkeit und
das hat was mit Datenstrukturen und Datentypen zu tun.
Und das ist der erste Punkt, der eine ideale Datenbank macht,
aus, dass sie im Prinzip keine Einschränkung dem Entwickler
bietet. Auch die wildesten Datentypen
und Strukturierungen, die ich quasi in der Business Logik
brauche, abzubilden und auf die Festplatte zu schreiben, ja.
Also ich brauche die ganze Breite aller Datentypen und die
ganze Kombinatorik aller Datentypen und auch komplexer
Datenstrukturen. Ne, wenn ich dazu grad limitiert
bin, dann muss ich halt, wenn ich aus der Datenbank meine
Daten auslese, erstmal ganz viel Umformung machen.
Datenmanagement um überhaupt die Daten in meine Anwendungslogik
zu haben, das will ich nicht, ich will halt im Prinzip das was
ich im Code habe abbilden können.
Ein Beispiel also, wo ich immer auch durcheinander komme.
Bei den Datentypen ist ja, man kann ja auch eine Zahl.
Laienhaft ausgedrückt in verschiedenen Arten, als
integer, als als was gibt es da noch?
Ja, float float, genau integer in verschiedenen Auflösungen.
Es gibt integer, 8 bit 16 Bit 32 Bit, dann gibt es die Gesignt
und Ungesigned, also ob ich ob brauche, ich brauche ich jeden
Vorzeichen quasi ne kann ich eine Minuszahl haben oder nicht
und so weiter und sofort habe ich eine Glide kommazahl also
hier 4,321 ja und wie krass muss sie aufgelöst werden und so
weiter hat ihn hat die Floating Practitioner Double Position und
so weiter das sind alles Sachen. Ja, die sind im Code, sage ich
mal, heutzutage gar nicht mehr ganz so relevant.
Aber natürlich, das hat alles auch was mit Größe und Speicher
zu tun. Ja, also ich sag mal jetzt KI
zum Beispiel ja, wird das wieder total relevant, da hab ich halt
so viele zahlen, ja das wissen wir ja, wir haben ja Billionen
von Parametern noch mehr an Gewichten und so weiter das
macht schon einen Unterschied ob ich jetzt jedes einzelne Gewicht
als Double Precision Speicher, das dann irgendwie 64 bit nimmt.
Oder als Single Precision. Also das muss halt dann die
Datenbank auch abkönnen, das muss halt quasi in der Lage sein
genau diese Sachen sauber hinzu Hinzudefinieren genau deswegen
gibt es dann eine relativ große Menge an Datentypen.
Verstanden. Zum ersten Punkt kapiert, da mit
dem Erster. Punkt kapiert, zweiter Punkt,
ganz klar, wir wollen natürlich auch wenn die Datenbank sehr
voll wird, ja und ganz viele Einträge hat, also Analogie, du
hast eine Excel Tabelle, die hat halt irgendwie 10 000 100 000.
Fast 1000000 Rose Einträge kann ja mal passieren, wollen wir
immer noch sehr sehr schnell lesen können.
Also wir müssen etwas besser werden als bei jeder Anfrage,
quasi alle alle Reihen durchzugehen und zu gucken.
Ist es das, was ich brauche, so, ja, das wäre ein bisschen
langsam. Ja, das wäre quasi dieser
Vorloop, da ist das Stichwort Indexing und so weiter kommen
wir später drauf, also ich will unglaublich schnell lesen
können. Das ist vor allen Dingen für
diese ganzen Webanwendungen, die ja wo du wo du Daten rausziehst
ja so Spotify und youtube und so weiter das ist total wichtig, ja
wo nicht so viel rein, also wo du nicht dass das reinschreiben
die Geschwindigkeit gar nicht so wichtig, aber im besten Falle
will ich auch das schnell machen können, ist der dritte Punkt ich
will unglaublich schnell schreiben können und jetzt kommt
es ganz wichtig gleich mal vorweg gesagt Wir haben ja eine
Datenbank normalerweise also mindestens logisch haben wir
einen Satz von diesen ganzen Informationen die wir
zusammenführen. Wir haben aber vielleicht.
Zehntausende Hunderttausende von Klienten, ne, weil wir, weil das
zum Beispiel ne Webanwendung gibt und jeder hinter seinem
Browser sitzt und jeder gerade was hochlädt n neues Video n
neuen Blog erstellt oder irgend sowas und das im besten falle
sogar irgendwie gleichzeitig auf der Welt kann man ja nicht
kontrollieren ne so das heißt es muss jeder der jetzt gerade was
in diese eine Datenbank einfügen will in der Lage sein es sehr
sehr schnell zu tun und für die Datenbank sieht's halt grauselig
aus weil die kriegt quasi alles ab alles gleichzeitig ja muss
das so schnell wie möglich abfrühstücken und konsistent.
Ohne Fehler einspeichern ne. Du hast nen den den Fachbegriff
dafür glaub ich noch aufgeschrieben, oder?
Ja, man sagt Concurrency oder Parallelität oder genau, und das
ist technisch total, also. Es ist einfach nicht ne.
Wir haben ja quasi Reihen und wenn du jetzt gleichzeitig was
schreiben willst, da kann viel schief gehen, wenn man da auch
schon normal drüber nachdenkt, wenn ich dann auch noch
Beziehungen habe zwischen den Dingern, ich muss mir ganz viele
Gedanken machen, was ich wie Sperre für einen kurzen Moment,
also Locking ist da das Stichwort, der eine User muss
halt sicher seine Daten reinpacken können und der andere
vielleicht gleichzeitig, aber die Datenbank muss wissen ist
das jetzt, kann da was anbrennen wenn die das gleichzeitig machen
oder nicht ja also. Das da steckt ziemlich viel
Brandpower hinter und gleichzeitig wird natürlich auch
noch gelesen von allen gleichzeitig muss halt alles in
Datenbank abkönnen, genau und dann dann will ich eigentlich,
dass du eine Datenbank vollständig standardisiert ist.
Wir hatten es ganz am Anfang gesagt, also wenn wir über SQL
sprechen dann und SQL ist halt ein ISO Standard, da steht ganz
schön viel drin was was also der theoretische Implementierung
alles können muss. Dann erwarte ich das von einer
idealen Datenbank, dass die halt vollständig diesen SQL Standard
bedient und und mit einer hohen Geschwindigkeit alle diese
Anfragen verarbeitet. Ja und auch quasi im Prinzip für
jedes Operating System, da ist. Ja ich will die Datenbank ja
nicht auf einer speziellen Hardware laufen lassen können,
nur. Sondern auf allem, was so, was
man halt so kennt. Ja dann find ich das jetzt
wieder so mein Ding, weil ich bin da hier n Verfechter von
open Source und ich bin bin natürlich auch im Klamm
Geldbeutel immer unterwegs also ich finde im besten Falle kostet
die Datenbank nichts ja und ist auch noch gleichzeitig Open
Source und zwar unter einer Lizenz die ich mich auch nicht
zwingt sogar meine meine eigenen Code Open Source zu stellen
sondern eine Open Source Lizenz wo ich sogar quasi auch noch.
Einen Enterprise Produkt Mitverkaufen kann und ist
trotzdem ein Bauender erfahren. Das wäre natürlich das Non plus
ultra sage ich mal ja. Du meinst, wo du selbst ein
Close Source Produkt draus machen darfst?
Richtig, genau. Also wir sprechen halt von BSD
Lizenzen oder es gibt ja so ein paar LGPL und Mi t.
Das sind so die Lizenzen die die das erlauben.
Wie alleine stehst du da oder wie viele andere Entwickler hast
du da draußen, die das auch so sehen, oder?
Glaubst du, da sind auch welche, die sagen, es ist besser?
Weiß ich nicht. Kauf bei Oracle oder sowas ich
glaube ich der größte Datenbankanbieter noch immer
oder war es zumindest lange ich nehme die Oracle Datenbank und
dann habe ich dahinter eine Firma und bezahle dafür lieber.
Also meine Meinung ist ganz klar, ich muss nichts bezahlen
müssen in meiner idealen Datenbank kostet die nichts und
es gibt keine Firma die dahinter steckt warum?
Ich kann es auch sagen und also warum kann man sich auch anhören
in unserer Open Source Folge, da habe ich das sehr stark
ausgelegt aber es. Ist halt einfach so, wenn es
Open Source ist, heißt ja, dass der Quelltext offen ist.
Das heißt, und wenn ich dann auch noch eine große Community
habe, das bekomme ich immer dann, wenn das ein Projekt ist,
als sehr viel Mehrwert bietet und was viele Leute anfangen zu
nutzen. Ja, dann hab ich halt einfach.
Dann hab ich quasi Zehntausende von Entwicklern die da drauf
gucken und sicherstellen, dass das auch funktioniert, der
neuesten Technologie angepasst ist und sicher ist, weil alle
diese Entwickler machen das ja im Auftrag für ne andere Firma
und haben großes Eigeninteresse dran, dass das robust ist,
stabil ist und sicher ist. Und wie kann ich mir sicherer
sein, dass das ein tolles Projekt ist, wenn es quelloffen
ist und mir das angucken kann? Ja, ansonsten muss ich halt
Oracle vertrauen, ob die das auch ordentlich machen und es
werden weniger Entwickler sein bei Oracle, die haben zwar
viele. Als die Community groß ist, von
einem großen Open Source Projektor, deswegen sag ich
immer nem Alt open Source mit großer Community.
Ja, also jetzt vielleicht nicht irgendein Open Source Projekt,
aber halt die relevanten großen, ja die sind im Notfall besser
geprüft und besser gecheckt als das jetzt eine einzelne Firma
stemmen kann in ihrem Closed Source Business genau und dann
ist natürlich so eine Datenbank wenn man ich sag mal wenn man
halt nicht nur vorgesetzt bekommt was sie alles genau
macht, sondern wenn man es quasi darauf anlegt, dass jetzt ein
bisschen was technischer. Man sagt, OK, ich bereite das
Feld der Technologie so vor, dass ich sie auch erweitern kann
in Zukunft mit was weiß ich was da kommt.
Ja, der hat zum Beispiel Post Dress, die haben ja da, die sind
ja in den Achtzigern gestartet, da gab es ja noch keine AI und
so weiter haben die also noch nicht noch nicht antizipieren
können, dass wir dann auf einmal irgendwie zum Beispiel jetzt
sowas haben wie ganz viele matrizenmäßige Floating Values,
die ich eigentlich speichern will.
Aber wenn ich jetzt quasi die Technologie so offen lasse, dass
ich jetzt noch nacharbeiten kann, Module einfügen kann, die
das quasi die die Grundtechnologie dieser
Datenbank so hinbauen, dass ich auch noch neue Anforderungen mit
verhaften kann, dann ist natürlich auch super plus, dass
ich quasi auch, und das ist auch wichtig, sage ich nochmal eine
Datenbank ist. Manchmal nicht nur stumpf zum
reinschreiben und auslesen, sondern hat auch ein bisschen
Logik selber, also auf der untersten Ebene.
Es können also kleine Events passieren, die dann also.
Ich füge, was zum Beispiel ein in eine Datenbank von außen, und
dann gibt es eine Logik in der Datenbank, die sagt, wenn du das
einführt, dann machst du danach noch dies, das und das in den
Daten meiner Datenbank auf anderen Tabellen oder
Irgendsowas, also kleine Logiken.
Ja, das ist auch wichtig, dass sowas da ist, damit ich, damit
ich quasi sehr zügig und per Post Daten manipulieren kann, da
wo sie halt quasi auch existieren auf der Platte.
Ja, also. Es ist wieder ein Punkt, wo sie
dir einfach wieder mehr abnimmt, was du nicht selber manuell dann
dann lösen müsst. Ja, genau.
Und vor allen Dingen ist n Performance Punkt den wenn ich
es erstmal auslesen muss und dann in meinem Anwendungscode
manipuliere um es dann wieder zurückzuschreiben kannst du dir
ja gleich vorstellen, dass das halt viel ineffizienter ist, als
wenn ich jetzt zum Beispiel so eine kleine Routine direkt in
der Datenbank schreiben kann, muss ich es nämlich nicht
auslesen und wieder zurückschreiben.
Das ganze Locking und so weiter angucken, sondern es passiert
direkt da. Wo es sein soll?
Gut, das waren 6 Punkte. Jetzt kommt der siebte.
Jetzt kommt der letzte genau im besten Falle.
Jetzt bringe ich so ein bisschen die Zeit rein, auch rein und die
Analytik, Analytik, die Datenanalyse, aber stell dir
vor, du hast zum Beispiel eine Tabelle oder Sensordaten,
ausliest sehr sehr sehr sehr viele über Jahre hinweg und
jetzt willst du zum Beispiel einen Chart, also willst du es
einfach anzeigen lassen, die Sensordatenpunkte ja.
Dann willst du ja nicht in deinem armen Java Script
Dashboard sage ich mal, wo dieser Chart aufgebaut wird.
2000000 Sensordatenpunkte von den letzten 2 Jahren haben,
sondern da wirst du immer ne Statistik drauf machen, sag ich
mal und fast quasi Datenpunkte zusammen und sagst zum Beispiel
mach mir halt so nen so n Average jeden Monat, nimm alle
Datenpunkte zusammen, mach davon average wert und dann kriegst du
halt ne übersichtliche Anzahl von Datenpunkten die du anzeigen
kannst. Trotzdem über Jahre hinweg, ja
jetzt ist die Frage, wo machst du das Averaging auch wieder so
ein bisschen das sind. Ist ja ähnlich.
Der Punkt den ich davor hatte oder nicht.
Aber wenn jetzt zum Beispiel die Datenpunkte Datenbank so eine
Art Windowing Aggregation, vorverarbeitung.
In einer Art von also Datenanalyse bietet, dann
brauchst du auch erst gar nicht so viele Datenpunkte abfragen,
dann sagst du mach halt averaging jeden Monat und dann
bekommst du schon übers Netzwerk auch nur die Datenpunkte, die
schon vorverarbeitet sind. Ja, ansonsten müsste ich es
wieder in meine Anwendungslogik machen, das wäre wieder viel
Bandbreite vom Kabel und es wird halt langsamer, weil ich halt
irgendwie das später mache, aber wenn ich Sachen früher erledigen
kann, näher zu dem wo es wo der Datenpunkt gehalten wird, dann
ist es immer besser, es ist wie beim Edge Computing.
Cool, dann war das jetzt sozusagen die optimale
Datenbank, die du beschrieben hast.
Ziemlich frei vom Anwendungsfall noch beziehungsweise ja, es geht
um strukturierte Daten oder über die.
Besprechung oder geht es auch immer?
Noch? Nee, das war bunt gemischt.
Ich hab sogar jetzt sogar noch n bisschen die Zeit rein mit
reingebracht. Ja richtig, jetzt wo du es
sagst. Ja genau, also das ist schon.
Also wenn man jetzt, wenn man diese Punkte alle voll
durchoptimiert hätte, hätte man es schon ziemlich gut optimierte
Datenbank, die alles Mögliche schon abdecken könnte jetzt.
Habe ich noch eine Frage, weil das haben wir ja auch bei uns,
wir haben ja die Möglichkeit. Einen Eintrag in einer Reihe
über die Zeit zu beobachten, zum Beispiel, wenn sich irgendwie,
wenn du hast als als als einen Eintrag, als eine Row in einer
Tabelle, also eine Person mit einer Adresse, meinetwegen, es
ändert sich die Adresse von birkenweg auf den Lindenweg,
meinetwegen die Straße, und jetzt will ich aber wissen zum
Zeitpunkt x, wie war da die Straße, sowas können wir doch
sogar auch machen mit der Post, dann wieder, oder willst du da
noch drauf eingehen? Ja nee, aber das, das kann
eigentlich jeder. Bank, weil, weil jetzt da kannst
du dir musst du einfach clever überlegen, wie speicherst du das
ab, dann kannst du sagen ich hab halt quasi ne historische
Tabelle also du hast die Tabelle addresses und dann hast du
historical addresses dann machst du ne zweite Tabelle.
Und jetzt ist es so. Wenn du das ändern würdest.
Und jetzt kommt so n bisschen der der Trick diese Triggers.
Ja du sagst jetzt OK ich ändere eine Zeile die Adresse dann soll
automatisch jetzt ist der Punkt automatisch, soll dann quasi
eine Zeile angelegt werden in der historischen Adresse.
Tabelle der dann sagt OK, hier wurde geändert auf ja zack das
Delta und dann weißt du was los ist.
Aber das willst du quasi nicht in deinem Code verhaften,
sondern du willst in deinem Code nur sagen hier Update neue
Adresse aber die Datenbank hat jetzt n Trigger hinterlegt wenn
sich die Adresse ändert, dann machst du einen Insert in den
historischen Table automatisch, das ist ein Datenbank Business
Logik quasi und mach das und Post press kann das ja so und so
lösen wir das ja. Dann war das also eigentlich nur
ein Beispiel für den sechsten Punkt, den du hattest, dass die
schon gewisse. Selber abbilden kann die die
Daten. Genau.
Customization, Small Programming und so weiter Events und so
weiter ja. OK, verstanden so, dann ist ja
die Frage, warum ist Postgrass jetzt auch bei uns die Datenbank
der Wahl? Und und so beliebt ne ganz
genau, ja, weil und die Antwort ist natürlich, weil weil gut,
das ist jetzt natürlich ne subjektive Geschichte, das kann
ich jetzt einfach nur aus meiner warte ja sagen, weil ich finde,
dass das postcrest Projekt halt am nahesten Drankommt, an dem,
was ich jetzt auch so. Als ideale Datenbank gerade
formuliert. Hab ja, es ist halt für mich das
Projekt was halt diese Punkte am besten ausfüllte, wenn im
Vergleich zu den anderen angeboten die es so gibt ja.
Warum das so ist, das können wir gleich im Einzelnen noch mal
besprechen. Ne, vielleicht sag ich kurz was
zum Bhost res Projekt, damit wir es mal kurz einordnen kann
irgendwie auch. Ja, ja, gerne.
Also wir müssen Historie, wo kommt es her?
Wo wird es eingesetzt? Et cetera?
Ja genau, also das also diese, dieser Start, dieser ganzen
Post. Grace, was man heute kennt, das
heißt ja postquest QL und ist halt n Datenbanksystem.
Der Start ist so alt wie ich selber und das ist schon
ziemlich alt, also das ist Anfang der Achtzigern ist das
quasi alles losgelegt worden von einem Herrn Michael,
wahrscheinlich hat er Michael Stonebreaker und der hat dann
mal irgendwie Anfang der 80er dieses Post Quest Projekt
gestartet. Noch ganz am Anfang glaube ich
gar nicht mit mit dem mit dem Ziel jetzt SQL voll supporten,
sondern eher mit dem Ziel die Datentypen gut zu unterstützen.
Das war in den Achtzigern noch das größere Problem, was ich
ganz mit der ersten Punkt, den ich gesagt hatte, die komplexe
Datentypen, alles Mögliche da verwalten und abbilden zu
können, die ganzen Relationen. Gut und effizient zu managen,
das war, glaube ich, der initiale Zündpunkt.
Da gab es dann noch nicht so viele Konkurrenzprodukte, die
das gut konnten, ne. Deswegen wurde dieses Projekt
ins Leben gerufen, 89 gab es das erste Release und mit einer Open
Source Lizenz BSD, also mit einer sehr freien opensource
Lizenz. Und dann hat man 94.
Also das war der Stoneback hat angefangen, da gab es dann
Studenten, PHD und das wurde dann sofort ne Community, war ja
Open Source, also da haben mehrere Leute dran gearbeitet.
In Berkeley. In Berkeley.
Das kann man mal sagen. Ja genau, das stimmt.
War in. Den Achtzigern auch schon der,
der der Ursprung der Großen, der großen Technologien, sag ich
mal. Ja, da ging ja das Silicon
Valley, also also da fing es an, die Erfolgsstory des Silicon
Valleys. Ganz genau.
Ja und? Und solche Projekte wie Post
West gehören halt auf jeden Fall dazu.
Total erfolgreiche Projekte bis heute 94 wurde der SQL Support
hinzugefügt und das sag ich jetzt gleich mal vorweg, einer
der wenigen Datenbanken ist Post Dress die das die den diesen ISO
Standard der wirklich heftig ist so komplett und getreu erfüllt,
denn du hast ja immer also SQL ist halt ein stapel Papier wie
es sein sollte in der Theorie und dann hast du halt natürlich
die Implementierung, das muss erstmal so laufen dagegen ja und
Podcast. Ich, einer der führenden
Implementierungen von Datenbanken, die das als
wirklich zu einem sehr, sehr hohen Prozentsatz exakt so
umsetzt. Ja, die Anforderung dieses ISO
Standards, ja. Genau.
Und 96 kam glaube ich der Name Post Grass QL zustande, also
durch ne dadurch, dass der SQL Support mit rein kam und das
auch n ja n wichtiger Feature Punkt war wo der SQL quasi dem
Namen hinzugefügt und seitdem heißt es halt.
Bisschen sperrig, Post Grä Post Grass sie ist das Projekt, und
dann haben Sie das Essen auf mit dem QL hinten dran, damit das
Sequel, das heißt übrigens Sequel jetzt richtig ne SQL, das
sind da die 3 Buchstaben für Structured Curry Language, man
spricht es aber Sequel. Aus ja, da erkennt man immer die
Line für mich dran. Ich sag immer SQL und meine
Gesprächspartner sagen immer Sequel, also wenn es wenn es
Entwickler sind und ich Kriegs nicht auf die Kette, aber
irgendwann will ich es noch schaffen.
Ich schaffe es ja selber auch schon nicht.
Bei postcress ich sag meistens postcremes, weil postcress
Sequel heißt glaube ich nicht postcremes QL ist alles
irgendwie zungenbrecher, aber wenn man es Post sagt Weißt du
weißt schon der Rest was los ist.
Da gibt es auch sonst nichts, das ist dann immer das eine.
Ja genau, denn jetzt muss ich vom Spicker ablesen, könnt ihr
auch selber lesen, aber 97 Open Source Community entwickelt
quasi das Projekt weiter, hat es übernommen worden, die treuen
Hände gegeben, das klappt ja auch nicht immer bei so Open
Source Projekten und 2005 steht ja noch Windows Support wurde
eingeführt. Und mal für so ne Übersicht Post
res. Ich hab ja gesagt es ist halt
Open Source und ist n wichtiges Datenbanksystem wie wichtig es
ist erkennt man immer wenn man mal so n paar Beispiele nennt
von Firmen, von einschlägigen Firmen und Institutionen die es
nutzen die es vielleicht nicht exklusiv nutzen, aber.
Mindestens an wichtiger Stelle. Ja, ich les einfach mal vor
Apple, Instagram, Reddit, Spotify, Debian, Debian ist die
Linux Disco United States Federal Government, also da ist
auch verbaut die in der ESA, Gitlab, Uber, tripadvisor,
openstreetmap, openstreetmap halte ich kurz mal an
openstreetmap ist ja also Navigationssystem, im Prinzip
Datenbank und das ist cool, weil hier das Hochoptimiert für
Geodaten. Es gibt einen Datentyp quasi der
für diese ganzen Geodaten optimiert ist und da hat man
quasi eine Erweiterung eingebaut, weil es halt ging.
Das ist nochmal erster Punkt, Komplexität, Datenstrukturen usw
Weiterentwicklung möglich, ja und das hat man halt gemacht ja
und hat ein Feature rangesetzt Twist heißt das glaube ich und
das halt besonders krass und schnell Geodaten verarbeiten
kann und darauf Anfragen machen kann Netflix.
Sales Force, Skype, Yahoo und Heroco kann man auch einmal
kurzhaltig auch mal kurz an, ist quasi benutzt.
Postgre und Butt macht. Macht da quasi den Service
drumherum. Ja, Service kann man dann
irgendwie noch mal über andere Interfaces bedienen, könnt ihr
selber gucken, also schon n paar einschlägige Firmen, bei denen
halt innenproduktion sehr relevant ja und wichtig postgreß
eingesetzt wird ja, ist also keine Randerscheinung, kein
Nischending ist schon ist schon ein sehr krasser krasser
Standard da. Das heißt, wir sind da in sehr
guter Gesellschafter, in dem wir das auch nutzen.
Also man kann sagen, man macht nichts falsch, wenn man sich
jetzt für Post Quest entscheidet.
Hat man erstmal nichts falsch gemacht, dass das würde ich
jetzt mal vorweg sagen, als Fazit.
Diese Datenbank liefert alles was man braucht für also wenn
ich jetzt nicht gerade irgendwie was weiß ich die neue Raumfahrt
aufmache oder so oder die nächste Nasa bin, dann muss ich
vielleicht noch mal nachdenken. Aber also wenn ich jetzt
irgendwie eine Webanwendung mache auch eine Komplexe, dann
bin ich mit und auch mit vielen Daten, dann bin ich mit Postgras
auf der sicheren Seite. Witzig, dass du es gerade sagst.
Man begegnet mich gerade die Mondlandung, also ich glaube 69
oder so ne krasser Weise. Als du sagtest, Anfang der 80er,
hat man da in Berkeley angefangen mit der Datenbank und
man hat sich erstmal beschäftigt.
Halt da verschiedene Datentypen überhaupt abbildet und so weiter
und dachte so hm 11 Jahre vorher ist man schon irgendwie zum Mond
geflogen. Also es ging anscheinend
trotzdem solche Sachen ne ja das ist mir sowieso n krasses Rätsel
wie die das alles damals gemacht haben.
Also das ist das sagen auch die Computer ganz anders aus, das
waren ja Räume und keine Computer, das war Wahnsinn.
Ne, da gibt es ne coole Dokumentation.
Muss man mal gucken. Ich weiß nicht wie sie heißt,
aber es ging über die Technik der Mondlandung.
Ja wer Bock hat kann ich empfehlen im Fernsehen das.
Machen wir okay kleiner Ausflug wieder zurück zu Datenbanken und
Post. Grass gut, bisschen über die
Historie gesprochen. Wo wird es eingesetzt?
Es ist extrem verbreitet, du sagst man man macht nichts
falsch wenn man es benutzt, ich glaube es ist trotzdem immer
angeraten noch mal seine Anforderungen auf den Prüfstand
zu stellen und zu gucken ob es wirklich passt.
Aber nichtsdestotrotz eine Empfehlung an der Stelle und
jetzt hast du gesagt wollen wir mal die Punkte vom Anfang
durchgehen und gucken. Wie löst, wie werden die dann
eigentlich gelöst? Jetzt bei Post Rescue oder?
Ja, Post Dress, lass uns einfach.
Ich sag einfach postgruster macht es.
Einfacher Postwest das fair. Dann mach ich auch mit.
Das erste Thema waren die Datenstrukturen, ne wie die dort
abgebildet werden können. Richtig, richtig.
Also ich sag es noch mal. Wir haben im Prinzip 2 Varianten
von Daten. Wir werden also wir können immer
sagen, wenn Daten n Schema haben oder wenn ich das Gefühl hab,
ich sag es noch mal, wenn ich Daten irgendwie ne Tabelle
verhaften kann tatsächlich schon und nicht über Excel nachdenke
oder irgendsowas. Dann sind das immer
strukturierte Daten, ne. Wenn jeder Datensatz eigentlich
die gleichen Überschriften mal hat oder die gleichen
Eigenschaften richtig in der Art ne.
Ja, zum Beispiel. Denk nach irgendwie was weiß ich
Studenten, ja die haben die halt nen Vornamen Nachnamen.
Was weiß ich nen Immatrikulationsdatum oder
Irgendsowas. Ja das sind dann quasi
Überschriften einer Tabelle, so ist es ja auch ne Datenbanken,
Datenbanken, Tabellen am Ende des Tages ja und dann hab ich
die Überschriften und dann hab ich die Einträge in der
Datenbank sind quasi die Reihen einer Tabelle, so also in dem
Studentenbeispiel bleibt das Halt immer gleich der Header und
dann tacker ich die halt runter so und dann ist es das sagen wir
nochmal ganz klar also ich hab ne Überschrift also.
Jetzt zum Beispiel Vorname. Ich hab die Tabelle students,
dann habe ich First Name immer englisch und der First Name
dieser dieses Feld, dieser Header, der hat jetzt einen
definierten Datentyp zu haben. So der ist zum Beispiel String.
Ja String sagt dann aber zum Beispiel auch ist vielleicht
darf dann halt maximal 128 Charakterlang sein, also 128
Zeichen, wenn der Vorname länger ist als 128 Zeichen passt es
halt nicht in das Feld. Weil der Datentyp so festgelegt
ist. So ja, muss ich überlegen, passt
das für n Vorname ja wahrscheinlich schon.
Ja ansonsten muss ich n anderen Datentyp nehmen, wenn der halt
länger ist, dann muss ich halt Text nehmen, zum Beispiel gibt
es nen anderen Datentyp, da kannst du halt beliebig viele.
Zeichen reinfügen jetzt kannst du sie aber natürlich
vorstellen, dass nen begrenzter String viel effizienter
abgehandelt wird, sowohl für das, für das also für das
Speichern und für den Memory Footprint.
Ja, als auch beim Lesen und schreiben als jetzt ein größerer
Datentyp, das ist halt die Kunst.
Da lege ich mich fest. Und wenn ich jetzt aber mich
festgelegt habe, dass ich sage okay ein Student sieht halt
immer so aus, er hat ein Firstname, das ist ein String,
der hat einen Lastname, ist auch ein String, dann hat er ihn
immer artikulationsdatum, das ist halt ein.
Spezielle Date Formate auch n Datenformat wie das Halt quasi
gehalten wird. Dann hab ich ein Schema
definiert, ein Schema ist quasi eine Definition.
Wie meine Daten aus meine strukturierten Daten aus
Versehen haben. Ja, also wenn ich immer wenn ich
n Schema habe, dann hab ich im Prinzip, dann sprech ich von
strukturierten Daten ne so und dann hab ich noch die Relation
wenn ich jetzt die Mentoren hab das sag ich noch mal kurz als
Recap, das ist ja wichtig also wenn ich jetzt zum Beispiel mit
Toren hab und jeder Student kann genau einen Mentor haben, dann
packe ich jetzt die Mentoren nicht mit in die
Studententabelle weil sonst also weil weil mehrere Studenten
können ja auch unter anderem den gleichen Mentor haben, sonst
würde ich ja quasi den Dateninformationen zu dem Mentor
kopieren müssen. Dann würd ich ja sagen, Student
Alicia oder Irgendsowas hat den Mentor Werner Zimmermann oder
Professor Werner Zimmermann oder irgend sowas.
Ja und dann kommt aber der Torben, der hatte auch den
Professor Werner Zimmermann, weil der Halt quasi mehrere
Studenten hat als Mentor. Ja, und jetzt müsste ich den
Werner Zimmermann und seine Daten, wenn ich jetzt nur diese
eine Tabelle hätte, ja in jede Zeile wieder mit voll
reinschreiben, wenn ich schon erzähle, macht es keinen Sinn,
ja, das nennt man dann auch Normierung nee Entschuldigung,
nicht Normierung, sondern Normalisierung der Daten, das
heißt ich. Echt, ich guck mir das Problem
an, ja und sag dann OK macht keinen Sinn das in den Süden zu
machen, sondern ich nehm ne eigene Tabelle nur für die
Mentoren, nenn die Halt Mentors, hab da quasi auch wieder First
Name Last Name drin und vielleicht n paar andere Daten
vielleicht für die Mentoren relevant sind.
Seit wann ist der Mentor oder was weiß ich?
Ja und jetzt sage ich, wenn ich jetzt den Studenten den Mentor
zuordnen will, und das ist die Relation, das ist wichtig, dass
das, was Datenbanken gut können, jetzt sage ich quasi der Primary
Key, also der, wenn ich so sagen will, der Ro Index ja von dem.
Von dem Mentor, der steht jetzt quasi als Datentyp als weiteres
Feld bei den Studenten mit drin. Ja, Mentor ID heißt es dann ja,
also wie ich bei den students First Name Last Name,
Matriculation Date und Mentor ID.
Ja und dann brauche ich nämlich nur noch ne ID einzumalen das
ist total effizient gespeichert und referenziert quasi auf den
Mentor und wenn jetzt 2 verschiedene Studenten den
gleichen Mentor haben, dann steht da zweimal eine 1 drin und
dann war es sparsam gespeichert. Ja, jetzt hast du ja sehr
allgemein wieder erklärt. Was was ist da postkreis
überlegen anderen Datenbanken an der Stelle, also was das Thema
angeht. Nein, aber ich habe deswegen so
ausgeholt, weil ich jetzt einen Punkt noch machen möchte.
Das waren jetzt die strukturierten Datenschema, das
kann Post Grace genauso gut wie alle anderen Datenbanken ist, da
weiß ich nicht, wahrscheinlich nicht überlegen, aber ich
glaube, das ist gut implementiert haben und jetzt
hast du es aber manchmal, dass das nicht so passt.
Jetzt hast du manchmal einfach Daten, die willst du nicht so,
also es ist vielleicht ein großes Blob an Daten, jetzt hast
du über Jason schon gesprochen, nicht auseinandernehmen, aber
Jason ist quasi. Nächsten Objekt kannst du ja
wieder also mehrere Datenpunkte ablegen.
Ja und jetzt könntest du sagen wollen, ich will ein Feld haben,
das heißt halt nicht first nem müssen uns dringen, sondern das
heißt halt irgendwie ich nenn es mal sogar fast Data um um es
auszudrücken, dass es gar nicht so fest ist, ja.
Und in diese in den Inhalt dieser Zelle quasi.
Ja von Data will ich jetzt halt nicht ins dringen oder n Int
oder n float oder irgendwas definiertes reinschreiben,
sondern Jason. Und n Jason, das kann ja in
jeder Reihe anders aussehen. Ne, das definiere ich dann nicht
mehr. Das hat dann im Prinzip kein
Schema, außer dass es Jason sein muss, kann dann aber für jeden
Reiheneintrag, für jeden Studenten den ich anlege, kann
der halt n anderes json haben mit anderem Inhalt, ja.
Das sind so also ich würd nicht sagen unstrukturiert, aber
halbstrukturiert es ist nicht mehr ganz so durchstrukturiert,
ja so und was jetzt aber kommt ist das obwohl du Jason da
reinpackst musst du jetzt nicht sagen, das ist jetzt irgendwie n
String und ich sterilisation Instinkt sondern postcredit
kapiert Jason als Datentyp. Du kannst jetzt sagen, Data ist
vom Datentyp Jason und das. Kann ich alles?
Ja, das das muss n Jason sein, aber das kann da drin alles
sein, so und jetzt und jetzt ist da aber mehr jetzt hat Post
Dress da davon mehr Logik als zu sagen das ist jetzt einfach nur
irgendein Blob oder ein String oder Bytes ja sondern es weiß es
ist ein Jason und jetzt kannst du bei den Abfragen und bei dem
Einspielen auf einmal auf extra Funktionalität zugreifen.
Du kannst jetzt zum Beispiel Teile von den JSON rausfiltern,
es weist jetzt nämlich auf einmal doch ein bisschen mehr
als nur, dass da irgendwas steht.
Sondern es kennt die Struktur von Jason.
Es kennt Keys und Values, es kann dir bei einer Abfrage zum
Beispiel Jasons Zusammenaggregieren in ein
großes Jason und so weiter und sofort.
Und das Gleiche gilt für XML. Ja, und was ich jetzt sagen will
ist das Post res scheint weil es nämlich sowohl strukturierte
Schema basierte Daten als auch zum Teil unstrukturierte Daten,
wenn sie denn in JSON und XML aufgeschrieben werden
unterstützt. Das heißt hier verschwimmen
sogar die Grenzen von den No Sequel wie wir so schön sagen
Databaces, die nur darauf optimiert quasi sowas wie Jason
oder sowas zu speichern, so einen strukturierten Krams aber.
Postquest ist da ist, hat da nicht kein Feature, sondern das
kann das halt auch. Ja, und das ist besonders stark
an der Stelle, ja, das würde ich mal so sagen, das kann nicht
jede Datenbank hat einen JSON Datentyp, ist auch nicht Teil
vom SQL Standard oder irgend sowas heißt ist halt einfach ein
Feature wo Post resql da richtig coolen Support hat.
Das heißt, ich kann dann auch Currys Abfragen, schreiben
nutzen, die auf die Inhalte dieser Jsons, wie du schon
sagst, zugreifen. Ja, richtig, bis zum Gewissen,
bis zu gewissen Grenzen und so weiter aber genau das stimmt ja,
wir können genau und es gibt sogar noch einen Typ.
Jason B. Dann wird das Jason quasi noch
mal binarisiert und noch mal optimierter gespeichert und so.
Also es gibt da einfach sehr viel Support um diese und das
ist wichtig, weil wir haben ja auch schon mal ne Folge gemacht,
Jason ist halt einfach ein unglaublich wichtiges
Austauschformat heute im Web. Ja, es ist.
Also für mich ist das einfach die Grundlage von von
Datenaustausch. Und wenn ich natürlich n
direkten JSON Support hab in der Datenbank ist halt unglaublich
cool, ja. Und wir nutzen es auch und man
kann es auch mixen. Ja, du kannst halt quasi auch n
Urroul haben, wo du dann halt Datentypen machst, die Fest sind
und dann hast du so n hast du so n für flexiblere Sachen hast du
einfach n Jason, was du noch mit dran klebst.
Ja und dann bist du auf einmal hast du ne sehr mächtige
Konstrukt gebaut wie du deine Daten halten kannst.
Ja das zu Datenstrukturen, also da kann Post Quest also quasi im
Prinzip alles bedienen was man so braucht.
Ich würde mal ein Beispiel machen, vielleicht soll er dich
dazu fragen. Ich hab.
Jetzt meine meine meinen Eintrag, meine Row in dem Fall
meinetwegen jetzt also Kunden, ich rede jetzt über CRM,
Customer Relationship management, ich habe da die
Kunden und dann habe ich einen Header oder ein Feld, das heißt
Notes, Notizen und das könnte ich als JSON deklarieren und
dann kann ich in dem JSON als erstes sage ich mal dynamisch im
Laufe der Nutzung dieser Anwendung Note 1, Note 2, Note
3, Note 4 et cetera anlegen, also jeweils als Key und dann in
value die jeweilige Notiz da reintippen so.
Der eine Eintrag kann ja meinetwegen 3 Notizen haben.
Der nächste Eintrag hat nur eine Notiz, der nächste hat
vielleicht 50 oder sowas. Also sowas könnte ich ja damit
eigentlich ganz gut abbilden dann.
Das kannst du machen. Ja, das kannst du machen und die
wird sofort schwindelig, weil man immer wieder dann drüber
nachdenkt, ist das gut oder nicht, von der ja, das nennt
sich also, das nennt sich Normalisierung.
Ja, es gibt, das ist auch mathematisch, also das Wort
Normalisierung heißt quasi im Prinzip, ich guck mir meine
ganzen Daten an und analysiere deren interne Abhängigkeiten und
Versuche, und eigentlich also wenn man, wenn man
Normalisierung ganz ernst nimmt und nicht über Jason nachdenkt,
dann ist das eigentlich genau nicht, wie man es macht, was du
sagst, die Notiz. En würde man nämlich
normalerweise, wenn es eine normalisierte Datenbank ist, die
voll mit strukturierten Daten voll ist, dann würde man quasi
ein Notizendabelle anlegen, wo du einfach die Notizen weißt.
Du und jetzt Referenziere ist eine Relation, weil du hast
gesagt, der Kunde der kann Notizen haben.
So jetzt habe ich dann halt, dann habe ich halt eine runto
many connection von den Notizen zu dem Kunden, also habe ich
eben notiztabelle würde ich dann quasi eine Kunden id haben so.
Und jetzt Gerrit. Jetzt merkst du schon, und das
ist halt. Die Kunst heute ja, die Kunst
ist, wie designe ich meine Datenbank, wie designe ich meine
Anwendungslogik? Weil ich halt diese Mittel habe
zur Verfügung. Ja, mach ich es jetzt als Jason
oder nicht? Ja, es kann auch manchmal
vorteilhaft sein, die Datenbank nicht komplett mit Schema und
strukturierten Daten aufzusetzen, nicht alles in 3000
tables aufzuteilen, weil, und das kannst du dir vorstellen.
Es führt zu Overhead. Ja, sowohl beim Einfügen, ja
weil wenn ich wenn ich jetzt wenn du jetzt neuen Eintrag
einfügen willst, dann musst du ja nicht nur in der Tabelle
Kunden irgendwas einfügen, sondern auch in der Tabelle
Notizen und so weiter und wenn du jetzt sag ich mal n großes
Gewebe hast wo du 40 Tabellen irgendwie wo sich 40 Tabellen
aufeinander beziehen um einen quasi logischen Datenpunkt
abzubilden mit deren ganzen Abhängigkeiten, dann kann das
auch irgendwann langsam werden und man.
Ist besser beraten, man packt dann so ein paar Sachen einfach
in Jason rein, so wie du es gesagt hast, fette ich aus ja
plus und das sage ich auch noch mal.
Wenn du jetzt was in eine neue Version führst, wenn du sagst,
verflixt, wir brauchen jetzt hier noch nicht nur Notizen,
sondern noch irgendwas anderes, dann fängst du ja an meiner
Datenbank so eine Art schima Evolution, so heißt das
fachworte du änderst dein Schema, weil du neue
strukturierte Daten oder die strukturierten Daten ändern
musst. Und das ist kompliziert, wenn
deine Tabelle schon Daten drinne hat, dann brauchst du eine
Migration, dann musst du quasi von dem einen Status in den
neuen. Standard, dass man Tabellen
migriert, aber der Aufwand ist umso höher, desto mehr
strukturierte Daten du hast. Wenn du unstrukturierte Daten
hast, Cheat You Goal, dann sagst du halt OK.
In den Notizen kannst du jetzt noch das und das abspeichern und
klatschtest halt mit in dein json rein, wie du es gesagt hast
da. Da das richtige Mittel zu
finden, da müssen wir halt die Software Architekten Fragen, ja
das aber die Technologie bietet es dir halt ja die Datenbank, du
kannst dir aussuchen ne. Doch wenn dein Fass aufgemacht.
OK, Entschuldigung ja. Wurden ausgeschlagen.
Na. Ja, alles klar, aber das sind ja
genau die Insights, die halt spannend sind.
Ja, also. Es ist halt auch ja, und es ist
für mich auch spannend jedes Mal.
Ja, es ist deswegen, es ist früher war es fast einfacher,
ja, da konnten wir halt einfach nicht Jason abspeichern, da
musstest du halt deine Notizen einfach normalisieren und dann
war es ganz fertig, die gesagt Garrett, deine Notizendings da,
das ist wieder ein Array in dem Rohr, sondern ist einfach eine
notizentabelle und ist links da drauf, fertig ist der Lack,
manchmal ist es ja auch eine Strafe, wenn man zu viele
Möglichkeiten hat. Ich wollte gerade sagen, wenn
man weniger weiß, so wie ich, dann hat man auch nicht so viele
Auswahlmöglichkeiten. Ja, genau.
Das ist auch so. Ja, auch der.
Softwareentwickler hat es manchmal gar nicht so einfach.
Ja, weil er zu viel weiß. Man kann sich da nicht
entscheiden. Dann lassen wir weitermachen.
Wir. Machen mal weiter.
Wir sind jetzt fertig mit den Daten, mit den Datenstrukturen,
ich komme zum nächsten Thema, Es war auslesen und schreiben, also
möglichst schnell, jetzt gucken wir hier was macht Postquest
beim Auslesen, was machen alle Datenbanken beim Auslesen so
Punkt ja also wenn ich irgendwas finden will sagen wir mal wir
haben da eine Excel Tabelle wieder ich bleibe jetzt mal bei
den Studenten die hatten wir ja am Anfang ja und ich will jetzt
einen bestimmten Studenten finden so wenn ich jetzt nichts
mache dann. Muss ich, dann muss der Computer
auch wieder Mensch Reihe für Reihe angucken.
Scrollst es durch, bist du halt was weiß ich Bob Marley oder
irgendwas findest du ja in Reihe 1734 so bis dahin gescrollt und
wenn er weiter hinten steht hast du halt Pech gehabt.
Das ist natürlich nicht, was Datenbanken machen, sondern
Datenbanken machen. Sogenannte Indizierung Indexing
hat man vielleicht auch schon mal gehört.
Ja, und was heißt Indexing heißt?
Ich nehme halt meine Einträge, die ich habe.
Und jetzt sage ich zum Beispiel ein bestimmter Header, also eine
Column in meinem in meiner Tabelle, die optimiere ich jetzt
dazu, dass sie gesucht werden kann.
Das wird immer auf dem Primary Key sowieso gemacht.
Also der ne die die ID quasi der der Reihe.
Es kann aber zum Beispiel auch passieren und nicht ganz oft
Frage, wenn ich zum Beispiel ganz oft nach dem nach dem First
Name Suche und will halt alle sehen die den First Name Alice
haben zum Beispiel ja da kann ich die Color First Name
indizieren und indizieren heißt ich guck mir das quasi alles an
und ich speichere eine zweite Datenstruktur hin und das ist
das ist jetzt Computer Theorie das sind B Trees nennt man das
oder auch Hashes und so weiter da gibt es verschiedene
Algorithmen und da. Quest übrigens auch.
Deswegen postest du es cool. Postquest hat im Prinzip alle
coolen Indexierungs Algorithmen implementiert, ja für alle
möglichen Anwendungsfälle. Ja, manchmal will ich quasi
direkt was finden, wo ich sage, ich will finden wo der Name
gleich ist, ja oder wo irgendwas größer kleiner ist oder so
ähnlich ist wie oder ich habe so eine fulltext Suche, das ist
alles verschiedene Anforderungen an das gleiche Problem, ich will
schnell irgendwas finden. Und da hat Postquest sehr geile
indexing Algorithmen und bietet das an.
Indexing heißt immer, ich habe etwas mehr Memory Verbrauch, das
ist die Backside, aber ich bin schneller beim Suchen also
entweder bin ich langsam beim Suchen und habe fast keinen
Brauch kein extra Memory oder ich speichere mir quasi
zwischenstrukturen die mir das Suchen erleichtern damit ich
schneller habe ich schneller gesucht und habe etwas mehr
Memory gebraucht das erinnert. Mich gerade so ein bisschen an
irgendwelche. Suchmaschinen, zum Beispiel
Google, die fangen ja auch nicht in dem Moment an, das Internet
zu durchsuchen, wo ich dann meine Suchanfrage tippe, sondern
dass es vorher schon die ganze Zeit, ich sag mal, gescrapt oder
eingelesen, und ich springe dann an die richtige Stelle und und.
Ganz genau. Geh bitte das raus, das ist
irgendwo zwischengespeichert. Das ist Ultra hart indexiert bei
Google, denn die mal die antizipieren ja schon, was du
noch nicht getippt hast und suchen damit schon auch los.
Ja, gleichzeitig mit mehrfach und so weiter und sofort ja das
ist Ultra krass. Ja genau.
OK so. Das muss natürlich parallel
passieren und so weiter und sofort ja, aber das verbirgt
sich hinter dem Auslesen, da ist es also, das das was wichtigste
ist. Ist, da sind die indexing
Algorithmen ja, also auslesen ist immer das einfachere
Problem, das Informatischere ja weil wenn du liest manipulierst
du ja nicht die Datenquelle ja das kannst du immer auch sehr
schnell parallel machen, also da passiert nichts, lesen halt alle
gleichzeitig shit egal. Aber wenn alle gleichzeitig
schreiben hast du einen Riesenschmerzer schreiben ist ja
so viel komplizierter als lesen. Immer in der Informatik und bei
Datenbanken halt auch. Ja so und jetzt und da ist
glaube ich Post richtig richtig schnell ist und glaube 1 der
besten also meiner Meinung nach besten Datenbanken System ist
ist für das parallele ultraschnelle reinschreiben weil
sich die Herren ich gehe da jetzt nicht in die Technik rein,
aber die Herren haben sich Daten haben sich sehr viele Gedanken
gemacht wie schaffe ich es wenn zig Anfragen zum Schreiben
gleichzeitig kommen. Und die schnell zu verarbeiten
und sogar vielleicht, also in der gleichen Datenbank.
Da gibt es ja verschiedene Tabellen.
Ja, vielleicht kommt eine Anfrage, die schreibt in Tabelle
students was rein und die andere Anfrage schreibt in die Tabelle
usernay Users rein oder Mentors oder oder oder courses oder
irgend sowas ja. Und die dann auch in
Abhängigkeit voneinander sind. Vielleicht sogar das oder auch
nicht. Ja, und jedenfalls sortiert und
du musst dich darum nicht kümmern.
Postgre sortiert das für dich aus und das was parallel
geschrieben werden kann, wird parallel gemacht, da wo ich kurz
locken muss und aufpassen muss, dass ich da nichts ins Gefecht
kommt und ich irgendwie so eine Art Race condition habe oder
deadlocks ja, das kann auch passieren.
Das ist unglaublich kompliziert, dass ich durch das eine Locken
der andere festsitzt, der gerade eigentlich was machen muss.
Das entstehen Deadlocks und das ist alles gelöst.
Es gibt Deadlock, Auflösungsalgorithmen und und
und und und es ist alles furchtbar schnell und es wird
nur minimal quasi die Datenbank für den minimalen Zeitpunkt und
für den minimale Größe quasi gesperrt und gelockt, so dass
ich Max mit maximaler Geschwindigkeit Daten rein
Semmeln kann in meine Post Racer.
Da sie glaube ich besser als viele andere Systeme so, und sie
nennen das selber mvcc. Multiversion concurrency Control
glaub ich MVCC Multi Version bezieht sich dann quasi auf den
Status, auf den Status der Datenbank, ne diesen also diesen
Zustand. 1. Jetzt kommt n ne ne Einfügung,
ja das ist dann quasi und danach es gibt ne neue Version der
Datenbank, so sprechen die Datenbanken, also nicht Version
von Postcrest, sondern eine Version vom Inhalt quasi ja
Inhalt zur Version 10 und dann kommt ein Insert und dann ist
was anderes, dann ist quasi die Version 11 und Multi Version
concurrency control heißt halt quasi ich hab halt hier
parallele Inser. Dann entstehen parallele
Versionen und so weiter und alles wird wieder
zusammengeführt und zusammen zum Schluss bleibt da ein homogenes,
kohärentes Bild und die Datenbank korrumpiert nicht
innen drin. Ne, das haben Sie gut gelöst.
So Standard and open Source, da brauche ich glaube ich nicht
Auswahl. Also wer Open BSD ist die Open
Source Lizenz, also postgas ist Open Source kostet nichts, es
gibt unglaublich viele. Software drumherum weil es Open
Source ist. Wir haben Leute dazu
beigetragen. Du kannst es im Docker starten,
die Datenbank, es gibt Support dafür, du kannst sogenannte
Object Relational Models dran ziehen, es gibt
sprachunterstützung, es gibt Extrafunktionen, die später noch
hinzu kamen. Ich habe ja immer schon gesagt,
dieses geographische suchen, Volltextsuche wurde später noch
in Drangestückt, es gibt Tools, die können dir quasi eine
gegebene Datenbank, das sind autoscantools, da wird dir quasi
mitgeteilt, was ist da alles drin, welche Table, du kannst
direkt weitermachen. Es gibt die Tools zum Verwalten,
zum UI, mäßigen angucken. Was ist.
In meiner Datenbank sieht es aus PG Admin zum Beispiel ist ein
krasses Tool, PG Admin 4 glaube ich sehr aktuelle Version.
Das sind halt alles ja Vorteile, die dadurch zustande kommen,
dass es erstens Open Source ist und nichts kostet, denn dann
muss, sonst müsste ja jeder Entwickler erstmal hier Gebühr
einzahlen, damit er was entwickeln kann.
Muss ja testen ja und zweitens weil es durch krasser Standard
ist. Ja es QL Standard nach Papier,
das heißt du kannst halt auch irgendwelche, du kannst halt
einfach Post Quest nutzen, wenn du auch nur einfach SQL
bedienst, kannst du sagen okay ist mir eigentlich egal was da
für eine Datenbank ist. Post funktioniert auf jeden
Fall, weil es halt auf jeden Fall den SQL Standard
implementiert. Mega Mega, Mega wichtiger Punkt.
Ja, haben Sie sehr gut gelöst. Ja, das ist schon cool, das habe
ich schon auch gar nicht bedacht, was da noch alles an
Tools dann rundherum entsteht, die auch wieder aus der
Community kommen und wieder für die Community freigegeben werden
etc. Und die können ja nur aus der
Community kommen, wenn es vorher quasi nichts gekostet hat, denn
sonst kommen sie alle nur vom vom Enterprise Hersteller, der
Datenbank von Oracle dann die haben natürlich auch ihre Tools,
aber die sind halt alle von Oracle, da entwickelt ja keiner
nen Open Source datenbankmanagement Tool.
Also gut vielleicht schon. Aber der, der, der müsste dann
schon auch sehr leidenschaftsvoll sein, ne da
dafür bezahlen Open Source Tools dann zu ja gibt es.
Alles weiß, da gibt es sicherlich auch Partnerschaften,
dann bestimmt und so. Gibt es, gibt es alles, gibt es
gibt nichts, was nicht gibt, aber ich sag mal so, also wenn
es halt von vornherein open Source war, ist er halt einfach
der das Portfolio der Auswahl größer, also riesig.
Ja, das ist schon okay, das ist ganz klar für uns der Weg, den
wir gehen, ja. So und dann zu diesen Events und
zu diesen inneren Logiken und so weiter da gibt es, das erzähle
ich gar nicht so viel zu. Wir hatten ja auch gerade,
glaube ich, ein Beispiel schon genannt, wo man es gebrauchen
kann. Anderes Beispiel ist Token
Exploration zum Beispiel, das kann jeder sich vorstellen, da
ist zum Beispiel so ein Session Token logs sich quasi eine
Webseite und dann sagt man ja immer okay, das läuft halt
irgendwie eine halbe Stunde und dann ist das quasi abgelaufen
expired und dieses Experimente, das Ganze ist auch ein
klassisches Ding was direkten Datenbank verhaften kannst.
Du kannst sagen okay wenn das Token insert wurde, dann setzt
du gleich mal einen u date ja 30 Minuten.
Zukunft muss das automatisch gelöscht werden?
Ne dieses Token, ja das kannst du machen, ne und das kannst du
machen mit einer Programmiersprache, die ist
jetzt da gibt es mehrere, da gibt es Unterstützung glaub ich
für für Pearl und was weiß ich aber es also es Postgress bietet
so ne kleine Makro. Business Programmiersprache, in
der du das ausdrücken kannst. Ja, und damit kannst du diese
ganzen wichtigen anderen Events, Sachen, Triggers, kleine
Businesslogiken und so weiter ausdrücken.
Ja, also auch prima gelöst. Kann man gut verstehen, liest
man immer ne Doku und dann hat man das gemacht, ja.
Und dann? Delta Analytics, hatte ich
gesagt, ideale Datenbank. Bietet da auch da Features und
auch hier Postcredit bietet ein sogenanntes Windowing mit allen
möglichen statistischen Funktionen vor.
Hinterlegt, da kannst du einfach benutzen und kriegst halt super
cool statistisch reduzierte Datensätze aus deinen großen
Tabellen in Wahnsinnsgeschwindigkeit auch
fertig, auch cool, also da fehlt auch an nichts, selbst wenn man
jetzt, wenn der Anwendungsfall ist.
Ich mache ein bisschen mehr Numerik, ein bisschen Data
Science ist man bei Postwest jetzt auch nicht angeschmiert.
Dann haben wir den Punkt auch schon durch.
Ja, also die Sachen, die für Postcrash sprechen hast du mal
aufgezählt. Und ja, ich glaub zuletzt
hattest du noch gesagt, wolltest du schon noch mal kurz n
Überblick geben, was es dann eigentlich noch gibt da draußen?
Was sind die Alternativen im Bereich SQL oder Secret oder
auch No secret? Ich weiß es Grad nicht.
Was da noch war, also jetzt, die alte hat bei den Alternativen
würde ich mich jetzt beschränken auf die auf die relationalen
Kollegen, ansonsten gibt es einfach viel zu viele und es
entstehen auch immer wieder neue und auch sehr gute Projekte und
und und alle. Es ist auch gerechtfertigt.
Ja, es gibt zum Beispiel, ich sag's mal nur gerade aus Spaß,
aber es gibt zum Beispiel diese Vector Datenbanken, dann stehe
ich jetzt gerade ganz neue Sorte von Datenbanken, die halt
einfach nur hoch optimiert sind für diesen Use Case KI und
einfach diese Gewichte zu speichern, das ist ja aber auch
klar, also postcaz hat ja nicht den Anspruch nur eine KI
Datenbank zu sein, sondern genau den Anspruch was ich gesagt
habe, eine ideale Datenbank mit all diesen.
Features eigentlich schon oder? Also schon sehr.
Purple ja breit, breit, aber trotzdem in der Tiefe.
Jedes einzelne Feature sehr gut und effizient realisiert.
Ja, das ist halt der Punkt. Aber natürlich wenn deine wenn
deine Voraussetzungen. Was ich mache?
Eine Datenbank, die nur KI Gewichte speichern kann, sonst
nichts können muss. Na ja, dass die dann in der
Performance gewinnt ist wahrscheinlich ist.
Ist ja auch n unfairer vergleichbar ja, aber die hab
ich jetzt mal kurz rausgelassen ne also wir wir vergleichen
jetzt mal zu Datenbanken, also zu RDBMS wie man so schön sagt,
Relational Database Management Systems, die also auch mal SQL
Standard implementieren und so weiter also eine gewisse Breite
auch darbieten wie jetzt Post Racer, denn sonst ist der
Vergleich unfair. So und dann.
Ich gehe kurz durch, also das sind auch nicht so viele, nur
die wichtigsten, bekannteste, vielleicht die 2 bekanntesten.
Ich fange mit dem einen an, ist my Sequel, das ist so auch die
Zeit, sag mal die Zeit der 90er 2000 er oder der Lambstack, also
ganz viele erste Webseiten haben mit My Secret Datenbank Apache
Server da da, da kommt dann mit My Secret arbeiten und so von
Sun Micro Systems 2000 nee, nee, gar nicht.
Quatsch, was natürlich hier von 95 von My Secret ab gestartet
und dann von Sun. Übernommen und ganz jetzt gehört
es glaub ich zu Oracle seit 2010 ne Lizenz ist.
Seitdem es zu Oracle gehört natürlich ne Commercial licence,
aber es ist Dual lizenziert. Du kannst es auch unter der GPL
Open Source Lizenz nehmen, GPL allerdings.
Zwingt dich dazu, deinen eigenen, deinen eigenen Code,
den du drumherum schreibst, auch zu öffnen.
Das hab ich mir gerade gedacht. Ja, das werden die ja kaum dann
als Open Source erlauben und dann Kloß du das daraus zu
machen. Genau.
Und jetzt mal kurz die Unterschiede.
Also My Secret ist auch einfach ein super System heutzutage,
performt auch super, ist vielleicht sogar etwas besser,
wenn man jetzt nur lesen will, also man.
Harrt viel, schnell parallel auslesen will, was immer die
Anwendung ist. Wenn du der Anwendungsfall ist.
Wenn du jetzt Webseiten bespielen willst mit Content
einfach ganz viel rausspielen willst, ja und nicht so viel
reinspielst ja. Genau dafür.
Dafür gab es dann in im My Secret ganz am Anfang auch so
Engines dahinter die eine Engine, die konnte gar keine
Transaktionen verwalten, da musstest du heute aufpassen,
dass du nicht durcheinander kamst, dass du quasi immer
atomisch, quasi diese Inserts gemacht hast.
Ja, also nix hier mit Multi. Die Virgin Cunca Cancy Control
später kam noch n anderes ne andere Engine inno DB hieß die
die konnte das dann, das war aber nie so richtig cool
designed von vornherein wie wie jetzt bei Postquest da auch der
der die die die Standardimplementierung ist ist
kompletter bei Post Quest als bei my Sequel ich muss das alles
bitte mit Vorsicht, denn überall geht die Entwicklung weiter und
so weiter und wir sind jetzt ja. Die Systeme sind alle schon
lange, lange nach langen Jahren angefangen und die sind alle
sehr, sehr reif und sehr weit. Ja, also.
Du hast doch mal gesagt, meine ich und das hab ich auch schon
häufiger mal aufgefasst. Das ist auch ähnlich wie bei
Programmiersprachen. Hab ich jetzt mal.
Wenn irgendwas gut kannst und das ist völlig aus der Welt
gefallen, ist so aus der Zeit gefallen, dann bleibt dabei ja.
Genau, ganz genau. Ja, ja, und man sieht auch, ich
will auch und hier muss ich auch kurz vorsichtig sein, ich hab
das auch mit KI hier mir ran geholt die Informationen weil es
einfach wer nutzt das quasi also ich wollte euch mal erzählen.
My Secret ist halt auch verbreitet.
Ja, und ich hab gefunden, dass Facebook My Secret genutzt hat,
initialy Build muchoffice Infrastructure using My secret
steht hier ja, also Air BNB und github.
Ja, das sind jetzt auch keine kleinen Institutionen und so,
die basieren auf auf auf My SGL kann man nehmen ja überhaupt gar
kein Problem. Das zweite große
Buttonbanksystem ist natürlich Oracle, also ich würde sagen, du
hast selber gesagt, die haben auch glaube ich am allerersten
gestartet, historisch gesehen 77 Larry.
Allison hat das schon gestartet und ist einfach das.de facto.
Das ist ein krasses Datenbanksystem, wenn du Geld
hast. Wenn du Geld hast, weil Oracle
nichts hier Open Source ist, halt musst.
Du ist für Enterprise Business ist gedacht, da schmeißt du Geld
ein, hast du aber auch einen krassen Support und hast ein
mega gutes Produkt da ist also performt überall genauso gut
oder besser wie Postgress und kostet aber halt Geld, das ist
ein großer Unterschied in meiner Liste fällt es da draus, weil
ich finde. Ja, also ich würde halt Oracle
alleine aus diesem Grund nicht einsetzen.
Amazon Nasa at also die amerikanische Telekom at t.
Setzen auf Oracle da gibt es noch ganz viele andere als
Beispiel. So, dann haben wir den Microsoft
SQL Server, den kennen auch viele, die jetzt sehr viel im
Windows System in der Windows Welt unterwegs sind, hier haben
wir aber auch keine Open Source Lizenz, ist auch ein Commercial.
Produkt ja, und für mich klarer Nachteil.
Das ist halt Microsoft SQL, das heißt es ist halt irgendwie
krass auf den Windows Stack auf die Microsoft Technologie
verhaftet. Ja ich bin ja von Hause aus ein
Linux Manager und wenn man das halt nicht ist.
Auch Superprodukt. Ja, ich hab auch hier n paar
Beispiele Stack Overflow als wir mal dieses Nutzen go Daddy, JP
Morgan und zig mehr ja noch mal so n paar rausgepickt.
Und dann haben wir Maria DB, muss ich sagen, kenn ich auch.
Vom Namen hab ich noch nie genutzt, ist irgendwie der
quasi, wenn ich es richtig verstanden hab der Open Source
Teil von My secret geworden, nachdem Oracle hatte ich ja
gesagt My Secret übernommen hat. Haben sich da Entwickler
abgespalten und quasi den Open Source Gedanken von My Secret
weitergetragen und getauft in Maria DB auch GPR Lizenz, also
Open Source. Und hat auch die waren ja auch
nicht faul und haben sich hingelegt, sondern haben auch
weitergemacht und haben viel Performance für vor allen Dingen
für Datenanalyse noch hingeschrieben.
Hier Features like Column Store und so weiter müsst ihr selber
nachlesen, kann ich nur auch sagen, habe ich noch nicht
benutzt, wie gesagt kann dann auch für solche Anwendungsfälle
cool sein, Wikipedia habe ich gefunden, nutzt angeblich Maria
DB im Hintergrund die Deutsche Bank angeblich auch wie gesagt
ohne Gewähr. Diese.
Aussagen, aber ich glaube der spannende Fakt ist ja hier
tatsächlich, dass es aus Mexiko hervorgegangen ist.
In dem Moment, wo das dann eben in Oracle aufgegangen ist.
Insofern kann man auch relativ sicher sein, dass wenn man jetzt
Anwendungen hatte, wo eine My Sequel Datenbank hinterstand
eine Webseite, dass man die wahrscheinlich relativ easy in
den Maria DB System umgetauft bekommt, dann habe ich als
letztes eine, die ist ganz anders als alle, also die ist
eigentlich nicht nur richtig nicht richtig vergleichbar,
Sequel Light, SQL light geschrieben ist.
Eine Sequel Datenbank aber ganz anders irgendwie als alle
anderen, weil weil sie. Alle ihre Daten, die Sie
speichert, in ein einzelnes File reinspeichert da also die.
Diese Datenbank wurde quasi gemacht um auf sowas wie ganz
Hardware schwachen Geräten wie Embedded Devices und so weiter
trotzdem. Daten zu halten ja die n
gewissen Anspruch an Komplexität und Relationalität haben.
Ja ist richtig cool, kann man mal wissen.
Ja Sequelight ist auch schnell installiert ja das das läuft
halt immer dann wenn du ja wenn und man kann auch viele
Instanzen von Sequelite haben, ja weil die braucht halt in sich
kaum kaum Speicher, er ist total schlank.
Benutzt halt dieses eine File wie gesagt als ganze Datenbank,
das ist sonst nicht der Fall, so Post West.
Datenbanken sind ja auch darauf aufgelegt irgendwie riesige
Enterprise Systeme zu bedienen. Ist secret mit Absicht nicht
leicht, leicht und klein gehalten und findet.
Man findet man viel auf so Edge Devices, also und zum Beispiel
im Google Chrome. Angeblich.
Ich habe es auch nicht im Code nachgelesen, aber angeblich zum
Beispiel diese Browser Story ist und so weiter die jeder
Entwickler der Frontend macht kennt basieren quasi auf
Seculite würde auch Sinn machen. Die User Preferences and Browser
history. Solche Dinge, genau da steht
wohl ein bisschen secret hinter. Ja, das waren jetzt mal die, die
diese 5, die ich noch mal nennen wollte, also ich gehe sie noch
mal durch, My secret, hatte ich gesagt, Oracle.
Datenbanksystem Microsoft Secret Server und Maria DB als
Nachfolger von Mysqal und am Secret.
Mal so 5 rausgepickt. Es gibt viele, viele, viele
mehr, aber in dem im Vergleich zu diesen 5 steht sich über
Postcrestian nichts nach. Ja und wie gesagt hat halt auch
eine eine der schönsten Open Source Lizenzen und so Docker
Support kann man also kann ich empfehlen wenn man wenn man
jetzt einfach mal eine Datenbank braucht muss man nicht unbedingt
ganz viel nachdenken, kann einfach zu Post West greifen,
das wird schon funktionieren letzte Frage.
Letzte Frage, wenn man zur Post greift, was heißt das?
Das installiert man sich dann über.
Als Entwickler weiß man das wie man das Macht oder?
Ja, ich hoffe. Also ich finde, wenn man heute
in der Datenbank zu einer Datenbank greift, wie du sagst
Gerät, dann greift man, dann greift man ins Docker.
Also man geht auf eine Docker Registry, es gibt official
Images für die Official Images, die sind quasi geprüft, nicht
von irgendjemandem. Von irgendeinem Entwickler
opensource Beiträge alles was es dann quasi geprüfte offizielle
Images Stocker Images für die Datenbanken ja so auch für
Postgress, dann kriegst du das im Container im Docker
Container, da läuft die Datenbank drin sauber in
Capsulated die Daten wenn du das ordentlich machst.
Speicherst du quasi persistierst du über nen Volume Mount, so
nennt man das Dockerfolge gehabt.
Ja ist wunderbar und dann kannst du ne businesslogik Anklemmen in
auch im besten Fall ist steht im Dockercontainer in der Sprache,
in der Technologie deiner Wahl. Denn die Verbindung zu der
Datenbank funktioniert über Web Requests.
Ja, ist alles gelöst. Da gibt es zig Bibliotheken,
muss man sich, kann man einfach, da hat man quasi nen Datenbank
Klienten ne in der Technologie die du halt brauchst.
Bei uns no JS. Ganz oft ja.
Und dann gibt es zig Klienten in Note TS, die mit Posts arbeiten
und dann hab ich alle schön sauber verteilt, hab meine
Datenbank da kann die updaten mit dem Container zur nächsten
Version und so weiter und sofort ja.
Wenn man n bisschen Docker kann, ist man in 10 Minuten soweit und
hat ne Datenbank fertig. Ja, kann loslegen.
Irgendwann muss ich es auch noch mal ausprobieren.
Ja, kannst du mal machen. Ich zeig.
Es dir Grad zu machen, n bisschen juckt sie mich ja, je
mehr wir sprechen, desto mehr juckt es mich, auch mal
irgendwas ausprobieren, ne. Ja, aber gut, ja, Zeit muss
gefunden werden. Gut.
Apropos Zeit, Ich würde sagen, passt.
Wir haben über ne Stunde gemacht, war richtig cool und ja
wir hoffen das erfüllt jetzt auch die Hörerfragen und
Kommentare die es da gab dafür auf jeden Fall danke für diese
für diesen Input und für dieses Piksen ja bitte hier und dazu
noch mal was machen, das freut uns immer wenn da so ein
Feedback kommt, also gerne weiter so.
Ansonsten vielen Dank Burkhard. Ja, gerne hat Spaß gemacht
heute. Ja, fand ich.
Auch fand ich auch genau. Bis in 2 Wochen bei einfach
komplex. Ciao ciao.
Tschüss aus Hamburg, einfach. Komplex wird präsentiert und
produziert von heißem Ware. Wir freuen uns auf deine Fragen
und deinfeedbackanpodcast@heiseweb.com
vielen Dank fürs Hören dieser Folge bis Dienstag in 2 Wochen
und Tschüss aus Hamburg.