¶ Datenbanken
Herzlich willkommen zu einfach, komplex, herzlich willkommen. Burkhard Wir haben schon n paar folgen auf dem Buckel n Paar waren auch glaube ich ganz spannend. Die T Folge hat natürlich viele Hörerinnen und Hörer gebracht, die über agile Softwareentwicklung auch Zeit für ein langweiliges Thema ja gerade total Angst vor dieser Folge geholt wollen. Nicht über Datenbanken sprechen. Allein das Wort ist glaube ich schon ja, wir gucken mal, wie spannend das hinkriegen. Also bitte nicht jetzt.
Ausmachen weil ich langweilig hab, aber wenn ich an Datenbanken denke, denke ich einfach nur Tabellen und Excel sowas in der Art ja sowas in der Art Wechsel kommt schon ganz gut hin. Ja genau, ich hab schon mitbekommen. Es gibt verschiedene Arten von Datenbanken ne, wir haben Datenbanken, die besonders gut auch im IOT zum Beispiel nutzbar sind Zeitreihendatenbanken in dem Fall zum Beispiel. Es gibt aber noch eine viel längere Geschichte, glaube ich was Datenbank angeht.
Ich würde mal lieber das so ein bisschen auch chronologisch machen, heute soweit es geht und wir machen ja.
Und bei den Datenbanken anfangen, die ja schon am nächsten da sind und auch ein bisschen verstehen, welche welchen Zweck sie erfüllen, welchen Vorteil sie haben gegenüber einer Excel Tabelle würde ich denke genau die hat dann wahrscheinlich auch Grenzen oder hat sie das mal das Thema wieder n bisschen hin dividieren und so weiter Datenbanken erstmal überhaupt Sinn und Zweck von Datenbanken, die sind dafür da, dass wir Daten persistieren Persistieren ist so ein
technisches Wort, das einfach speichern, archivieren und so weiter das total wichtig ganz genauso aktuell wie es früher war. Das ist heute immer noch, auch wenn man, wenn man meint, es könnte ein langweiliges Thema sein, aber überall gibt es Datenbanken sind zentraler Bestandteil unserer ganzen Software. Die Emotion ist, die sehen wir nicht und deswegen vielleicht so schwierig, weil wir sehen. Sind ja immer die Anwendungen selber, in denen wir klicken die Fenster, den Browser ist alles
schön. Und aber hinter jedem hinter jedem Browser steckt eigentlich ne Datenbank, wenn es nicht gerade irgendwas ist, wo man so einfach nur statische Informationen holt ja, aber wenn du wenn du das zweite Mal irgendwie auf der Webseite gehst und das weiß noch was von dir?
Dann ist das entweder ein kleiner Cookie gewesen, das gibt es auch, aber typischerweise ist eine Datenbank irgendwo im Hintergrund und deine Eingabewerte und das ist das, was du da irgendwie mit Kommunizierst mit dem mit dem Browser wird in einer Datenbank gespeichert und zwar im Backend.
Müssen wir mal kurz 2 Begriffe klären Frontend und Backend ja, das Frontend ist das, was dir was dir was anzeigt, wo du Knöpfe hast du kicken kannst, wo deine Events quasi du ausführst, ob du jetzt auf dem Telefon mit dem Finger Touch das und so weiter das Frontend. Und das Backend, das liegt quasi nicht bei dir auf deinem Rechner, sondern das Backend ist halt im hinten irgendwo ja und typischerweise ist da irgendwo hinten im im Internet auf dem Server und so weiter.
Und was ist eigentlich? Im einfachsten Fall ist bekanntlich nur Datenbank mal sagen das ist im Server, wenn du
¶ Anforderungen
Website sprichst ja, das ist richtig ja ich ich, wir können natürlich über alle Anwendungen sprechen. Heute dann hast du wenn du jetzt nicht im Web bist, dann hast du quasi ja n Desktop Anwendungen. Windows da gibt es dann auch Datenbanken, wo Sachen gespeichert werden aber ich.
Also ich würde sagen Datenbanken so richtig relevant sind die für die für diese für die Webanwendungen ja OK Anwendungen können wir n bisschen spezialisiert ist da deswegen gibt es auch so viele Technologien, ne und hier sind die Anforderungen auch im größten also du kannst dir vielleicht vorstellen wenn du also richtig großen Buden wie Spotify, youtube, Amazon und so weiter da laufen ja so viele Daten ein, also von den Usern aber da kommt auch von hinten
raus. Es gibt neue Angebote, neue Produkte, neue Preise. Ständig ändert sich alles. Das muss irgendwo gespeichert werden, irgendwo organisiert werden diese ganze Information ne und das wird halt in
Datenbanken organisiert. Und da sind dann auch überhaupt gar nicht wenig Daten da sind richtig, richtig, richtig viele Daten drin und wenn es dann aber so sein soll, dass du schnell und flüssig deine Informationen siehst, für dich, dann musst du halt ziemlich zügig genau das herausgefiltert werden, was wirklich relevant ist aus dieser riesigen Datenbank. Ja, und das sind die, das sind die Probleme, die Datenbanken
lösen müssen. Ja, die müssen, die müssen natürlich total sicher sein müssen, müssen archiviert werden können und so weiter. Du musst relativ zügig Daten reinschreiben können und sehr schnell.
Daten lesen können und Daten halt auch gefiltert lesen können, sodass die quasi nur für den ja für die Anfrage, die du hast, oder für den User der interessiert ist, quasi das zeigt, was gebraucht wird k, also Datenbanken speichern Daten. Sie helfen dabei, Daten auszulesen oder man kann Daten auslesen und einen Mann in einer
Datenbank schreiben. Und es gibt den Themenbereich Daten auch zu sichern beziehungsweise Sicherheit speichern einer Datenbank ja genau und es ist so, dass Datenbanken ist Marcel Bild von dir. Am Anfang aufzunehmen. Es ist halt nicht so, dass du einfach nur ne man kann sich nicht vorstellen, dass hätte man
¶ Relationale Datenbank bzw. SQL Datenbank
nur eine riesige Tabelle, wo alles drin ist. Das wäre natürlich schön, wenn es so wäre und einfach zu bedienen auch für die Entwickler und so. Das ist aber nicht praktikabel, weil dann das geht technisch einfach nicht. Du kannst halt nicht auf einer riesigen Tabelle mit Milliarden Einträgen irgendwie alles durchforsten und dann bestimmte Suchanfragen stellen ja machen
wir dann genau deswegen. Man spricht also wenn die meisten Leute, wenn man Datenbank sagt Verstehen eigentlich darunter relationale Datenbanken. Das Wort Relational müssen erklären. Das heißt im Prinzip eigentlich, dass ich meine Informationen bestimmte, meine Daten Informationen bestimmte.
Man sagt Tabellensplitte. Und diese Tabellen setzt sich in Verhältnisse zueinander und dadurch erreiche ich ne da dadurch erreiche ich erst mal schreiben, aber vor allen Dingen viel schnelleres Abfragen der Daten, weil ich nicht immer alle Daten angucken muss wenn irgendeine Frage, sondern bestimmte bestimmte ja suche man sagt also Anfragen schnell abarbeiten EK kannst du da mal ein Beispiel machen genau also ich hab ich hab immer so ein Beispiel hier auf meinen Spicker
hingeschrieben ich weiß nicht ob das Beste ist, aber wir könnten mal wir können sagen Universität, das kennt jeder und jeder weiß zum Beispiel. Da gibt es halt Studenten.
Und dann sagen wir mal, es gibt noch Kurse, in denen die Studenten die Studenten hingehen, und dann füge ich noch das die Mentoren ein, sagen wir mal, ihre Student vielleicht Mentor zugeordnet, der vielleicht während des gesamten Studiums an der Seite steht und Noten ja also jetzt würde ich mal so ne, das sind einfach mal Informationen, ne können wir mal kurz überlegen wie könnte man sowas in der relationalen
Datenbank darstellen, ne? Und da kommen wir dann gleich so ein paar wichtige Konzepte also sagen wir mal die Studenten, ne. Dann haben die studentische Informationen, wie denn heutzutage jeder E Mail hat einen Namen Vorname, Nachname und so weiter. Das wird alles sauber und kleinteilig abgespeichert. Datenbank hat schon über Software habe über Datentypen gesprochen, ist bei der
Datenbank auch total relevant. Es wäre ein Prinzip nennt das Felder also jetzt kann man sich nochmal kurz wechseln also ich sag mal, ich hab n Studenten schied von Excel und oben drüber
habe ich die. Hab ich die Überschriften und sag halt e Mail, Vorname, Nachname, immatrikulationsnummer und so weiter das sind einzelne Spalten, ja, das werden die Spalten genau und dann und dann die Studenten selber die werden dann halt quasi Reihen innerhalb dieser Tabelle ja und es wird dann quasi nach unten immer mehr und oben bleibt quasi gleich und wenn ich migrations Nummer hab vielleicht wenn die Nummer ist, dann ist es vielleicht vom Typ Nummer halt integer und während
der Vorname und Nachname irgendwie vom Typ String ist, das muss man wissen, um um auch die das Speichern der Daten möglichst effizient zu machen. Ich will nämlich. Den Platz, um Informationen zu speichern, stark minimieren, gerade wenn ich ganz viele Daten haben, ja Datentypen hat kann man Folge 3 nochmal genauer hören.
Ja, genau du warst die Folge sogar im Kopf ja so und jetzt gucken wir mal kurz wenn wir jetzt überlegen also sagen wir haben die Studenten Tabelle und jetzt machen wir eine zweite Tabelle auf und die nennen wir jetzt kurzzeitig zum Beispiel gesagt Ja die Kurse selber haben ja Informationen, die für sich selbst relevant sind. Erstmal ja also Name des Kurses, ja Dozent, Dozentin, Länge vielleicht typischer Raum, wo es immer da ist, ja vielleicht das Datum wann immer stattfindet.
Irgendsowas ja, wir wollen ja auch, wir wollen einfach halten und nicht total komplex ja, aber du merkst schon gut. Man kann man könnte das quasi, das ist auch wieder, aber man kann das immer weiter runter kategorisieren und da ist wie bei der Software selber muss ein gutes Mittel finden, wie feindselig man diese Tabellen splittet. Ja und wo ich was zusammenfasse ja das ist das ist die Kunst des Datenbankdesigners typischerweise jemand, der am
Backend arbeitet. Ja teilt sich immer so auf bei den Software gegangen. Wenn ich jetzt aber Assoziationen machen möchte. Wenn ich jetzt die Kurse und die Studenten nicht alleine lassen will, dann kann ich sagen Na ja, ein Student ist in einem oder mehreren Kursen angemeldet. Das heißt, der Student hat möglicherweise viele Kurse, weiß irgendwie nicht Chemie, Physik oder sowas, je nachdem wenn s. Naturwissenschaftlich ist oder sag mal was?
In der BWL hat man recht, da hat man BWLANVWL, da hatten wir ne diverseste kräftig sowas, ne also haben wir hat ein Student viele Kurse wenn wir jetzt auf die Kurse Tabelle stellen und gucken, dann hat aber auch einen Kurs, also zum Beispiel jetzt nicht meine Musik wieder. Der hat aber möglicherweise auch wieder viele Studenten. Also habe ich in der Datenbanksprache sagt man dann hier haben wir eine many to many relation ne also? Mehrere Studenten haben mehrere
Kurse und umgekehrt. Wahrscheinlich müsste man genauer sagen, ein Kurs hat mehrere Studenten und einen Kurs der Kurse, so ja, dann ist ja genau ne und jetzt in Relation ausgedrückt und das ist die Manipulation. Wenn ich jetzt aber zum Beispiel die Mentoren angucke, würde ich jetzt mal ne in diesem Beispiel dann würde ich sagen es ist nicht so, sondern hier hat ein Student genau einen Mentor.
Der Mentor hat viele Studenten. Aber ein Student hat nur einen Mentor und hier hab ich jetzt ne one to many relation. Und in der Datenbank würde man das technisch umsetzen würde, ist ganz einfach da hab ich dann beide Richtungen oder vom vom Studierendenrichtungen des Mentors, also wenn du von Studierenden aus guckst. Dann kannst du sagen, der könnte in parent also n ja den Eltern teilhaben quasi und das ist halt ein Mentor, also hast du da quasi one Student andersrum,
many students one mentor OK? So würde man es sehen. Und wenn du das in der Datenbank ausdrücken würdest wollen würdest, dann müsste der Student an der Tabelle eine ID haben, die auf eine bestimmte Zeile bei den Mentoren verweist.
Dann kriegst du die Relation hin ja, so macht man das auch tatsächlich in der Datenbank ja, das ist immer so, dass jede Datenbank quasi so wie wenn du jetzt in Excel quasi die, die die Reihen anlegst, dann ist quasi der Reihenindex, wenn du möchtest der Primary Key, so nennt man das ein wichtiges Wort Primary Key. Identifiziert genau diesen einen Eintrag, diesen einen Studenten und wenn ich jetzt nicht verweisen möchte auf einen bestimmten Mentor, dann habe ich
sogenannten Foreign Key. Das ist nämlich der der Foreign Key wäre jetzt die Mentoren ID. Die verweist genau auf einen Eintrag in der Mentoren Tabelle bist du noch bei mir? Ich bin noch bei dir OK. Ich hoffe unsere Hörer auch so wir graben im Kopf spielen wieder die Pfeile voneinander gehen vergiss mal gerade die Kurse sind es einfach vergiss es denk mal an die Studenten und die Mentoren und so ja. Genau und die Mentoren haben wir halt quasi.
Die haben ihren Primary ist halt die Mentoren ID, das ist ja auch das kann von mir also ganz im einfachsten Fall das einfach 1234567 und so weiter und dann könnt ihr Student 3 an der Zahl 3 könnt ihr Mentor an der Stelle 5 haben, ja, dann würde dann der Mentoren ID Zeile, von dem Studenten 3 halt die 5 stehen ja OK und dann kann so ein Computer irgendwie das schon quasi in Relation setzen und quasi die Gesamtinformationen
zusammenziehen. Ja und dann habe ich nämlich einmal die anderen Informationen die beiden noch Vorname Nachname. Email kann ich quasi in Relation setzen zu diesem zu diesem Mentor, der auch wieder Name, Email und so weiter hat. Ja jetzt hab ich mal ne Frage du hattest gesagt, das nennt sich dann Quest die man stellen kann, um bestimmte Informationen auszulesen oder Daten
auszulesen. Wenn ich mich nicht täusche, dieses QSQL ecurie kann das sein ja, genau sind SQL, Datenbank, relationale Datenbanken ja genau das kann man so sagen ja OK, also die SQLSQL hast du jetzt einfach so Raum geworfen, hat noch nicht da genau genau das würde ich dich bitten, gleich mal zu erklären hab ich ne Frage eigentlich oder es heißt Sequel OK ja, da werde ich ganz viele sagen es ist falsch ja OK, das ist schon mal gut, dass vielleicht ja sehr gut, wenn das
Land ist auch nicht schlecht. Genau Sequel Structured Cube Language heißt es und ist eine ja structure Language können n Programmiersprache. Ist es nicht ganz ist eine Art Abfragesprache ist auch nicht ganz richtig, weil ich kann nicht nur abfragen, die Sprache wird auch benutzt, um um Einträge zu erstellen. Also und und da gibt es ein anderes Passwort, das vielleicht schon Grad.
Ich weiß nicht ne CRUD ist wirklich ein Bußgeld oder ist einfach n heißt halt so heißt das einfach so ja OK, manchmal liest man, so ist ein einfaches System oder vielleicht ein bisschen mehr Software lastig, aber ich will mal gesagt haben weil wenn man wenn man grad mal hört, ist auch nichts wildes Crutch steht für also CRUD steht für.
Read Read Update und Delete und im Prinzip sind das die 4 Basisoperationen, die du machst, auf jedem auf jeder Tabelle ja, du kannst entweder neuen Eintrag hinzufügen, dass create ja, du kannst ihn auslesen, dass wir das red du kannst t ändern update können ja mal kannst du eine Adresse kannst du umgezogen sein, dann muss ich quasi den finden diesen diesen Eintrag und ihnen ändern, dass wir das Update oder löschen, weil der Student fertig studiert hat oder abgebrochen oder wie auch immer
ja ja. Genau und und diese?
¶ CRUD - Create, Read, Update, Delete
Diese 4 Operationen führst du aus in Anweisung mit diesem SQL. Es ist tatsächlich so richtig Arithmetik und Mathematik
hinter. Das ist eine sehr saubere, sehr fest definierte Abfragesprache und die funktioniert über alle ins also ganz, ganz viele Datenbanken unterstützen halt diese Structure language, das ist n Standard und dann ist es völlig egal, welche Datenbank im Hintergrund nimmst, die funktionieren dann einfach alle Parlamente tun sie das, was wir vorher schon alle gesprochen, außer vielleicht Datenbanken
genau es gibt auch noch. Lique Datenbanken genau die haben sich dann quasi gelöst von diesem von diesem von dieser festen Form, dass ich nicht das ist, eine feste Form. Diese Form nennt man auch Schema ein Datenbankschema. Das ist zwar super. Um schnelle Abfragen machen und schnelle schnelle Inhalte hinzufügen. Es hat aber auch einen Nachteil, weil du quasi ja ganz früh festlegen musst, wie ich die Daten organisieren, welche ich organisiere, also quasi die Überschriften.
Die Tabellenüberschriften sind quasi festgezogen ne?
¶ NoSQL Datenbank
Und das lässt sich nicht so einfach ändern, weil du hast irgendwie 4 Terabyte an Daten in der Datenbank und jetzt überlegst du jetzt irgendwie Relationen, ändert oder löscht oder hinzufügst? Dann wird das ganz schön, da musst du schon aufpassen, dass du alles richtig machst ja und diese Relation nicht zerbrechen, sonst funktioniert dein Frontend
nicht mehr. Gibt es da irgendwelche computergestützte Hilfe, wenn nicht mehr jetzt vorstelle ich habe natürlich nicht nur 2 oder 3 solcher Tabellen, wenn ich da wirklich große Konstrukte bauen große Backends, dann hab ich ja womöglich hunderte Tausende oder noch viel mehr solcher Tabellen.
Ja, da gibt es noch Löcher. Das ist ein Konzept, das schon immer gab ja OK, aber am Ende musst du trotzdem also die sagen ja auch so. Vorsichtig machst du vielleicht was komisches und so, aber das ist immer noch heute ein Thema. Also wenn du jetzt zum Beispiel neue Version rausbringen, von der Software ein neues Feature und willst quasi und muss deswegen auch neue Daten speichern? Eine andere Art von von von von Sachen einführen?
Dann musst du sehr vorsichtig sein mit den Bestandsdaten und mit den Bestands Schnittstellen hast du da nichts kaputt, machst und immer noch geht und manchmal nennt Migration also den
¶ Datenbankmigration und Schema-Evolution
Prozess, dass du das änderst nennt, sich Schema Evolution, weil ich hab gesagt die Form ist Klima und der Begriff der englische Evolution ist auch, was man vielleicht schon mal gehört hat und wenn du Evolution stattgefunden hat, dann musst du eine Migration machen. Das heißt von der einen auf die andere müssen Datenbank migriert werden. Du kennst das manchmal sagen die sagen bestimmte Anwendungen?
So ich muss irgendwie manchmal also ich muss jetzt irgendwie und dann kommst du nicht mehr zurück auf die alte Version müssen irgendwie irgendwann rollt, das werden wir Datenbanken umgeformt und danach bist du auch nicht mehr zurück ins Alte das Alter ich oft migrieren, höre eigentlich in ganz vielen Kundengesprächen wird immer gerade NAP 1 und p 2 migriert oder MRS 1 oder s 2 was auch immer ich hab das Gefühl, Firmen sind dauerhaft dabei irgendwelche Datenbanksysteme
von A nach B zu nennen aber. Klingt ganz schön trocken und hast du wahrscheinlich bestimmt ne gute Anekdote wieder auf Lager oder ja, ich hab immer Anekdote also genau die ist tatsächlich ziemlich lustig, versuche es kurz zu erzählen.
Ich hatte ja schon mal ein Startup direkt nach dem Studium und da haben wir so eine Plattform zum zum Managen von Teilnehmer und für Konferenzen und so weiter gemacht und da gab es einen Professor der N Modul, dass man nämlich quasi dichter die Hotels buchen kann also und der wollte quasi, dass die Leute sich quasi finden können und dann ein Zimmer zu zweit.
Suche o Doppelzimmer mit fremden Leuten es jetzt weiß ich was du für ne Firma hat, aber ganz klar Event Management Plattform lange vor dem Internet oder weiß ich nicht da gerade Kreditkartenzahlungen im Internet und so weiter so pass auf, aber die wollten halt zweierzimmer und aber ganz oft fahren irgendwie Leute alleine auf einer Konferenz Professor alleine ich will nicht Familie sowieso und haben sich überlegt k vielleicht können sie uns doch auswählen wer miteinander ein
Zimmer teilen will, vielleicht ja so und das sollte so sein, dass man quasi. Kann man sich quasi einträgt
ist? Als Datenbank soll man angeben können, wenn der sich anmeldet, ja dann soll der Empfehlung kriegen, dass ich gerne mit ihm auf ein Zimmer teilen würde so ja ja, ich hab irgendwas falsch programmiert müssen und so weiter singen halt komplett schief war es halt so, dass irgendwann die Mails rein, dass irgendwelche Beschwerden irgendwelche jungen französischen Studenten irgendwie im Zimmer teilen wollen.
So kam gar nicht klar, weil ich dann irgendwas um das Ding das hat sich komplett selbst aufgelöst so und das konnten wir nicht mehr in die Datenbank ausgedruckt. Papier auf dem Fußboden liegen und geguckt, wo hier der Fehler hat, sich aber nicht nicht gelöst und es war am Ende des Tages war das Highlight der Konferenz und auf der Keynote ganz am Anfang als Organisator gesprochen hat gesagt, hier sind 2 Jungs, die haben richtig coole Software.
Wir haben leider einen Bug eingebaut, ist ganz lustig. Es tut uns leid, ihr seid jetzt gleich wieder die noch nie gesehen hat irgendwie Hotelzimmer zusammen. So aber es ist vielleicht kommen neue irgendwie Gespräche zustande und so weiter. Das war ziemlicher Fail und das kann schief gehen, wenn man nicht vorsichtig Datenbanken Relationen designt. Das klingt nach einer Kombination aus Kinder und blind.
Was war das da? OK, cool, dann gehen wir weiter ja genau, wir haben jetzt so SQL verstanden. Wir haben Datenbanken verstanden, also relationale Datenbanken. Es gibt aber noch andere Datenbanken. Richtig ne genau also vielleicht gibt es vielleicht kriegen wir das noch mal relationale Datenbanken ist ein Thema und dann gibt es eigentlich nur einen wichtigen anderen. Das sind die Time Series Datenbanken hat am Anfang auch glaube ich schon mal gesagt.
Bei der relationalen Datenbank interessiert mich jetzt der der die die Pension Zeit nicht so sehr es ist immer da und ich kann es abfragen. Dass unsere Studenten Beispiel wäre, ein super Beispiel. Es gibt aber andere Daten. Wenn du jetzt zum Beispiel typischerweise hier, wenn du, wenn du ein Rechenzentrum betreiben würdest und du würdest überwachen, wie ist die CPU wie Memory, Auslastung dann disgrace und so weiter von den ganzen Servern und so weiter?
Dann würdest du das über die Zeit überwachen wollen, ne würdest sehen wollen, wenn nachts irgendwie wenn am nächsten Morgen 10000 E-Mails hast und die Leute haben Probleme willst du gucken. War in der Nacht irgendwas los? Ja, dann würdest du eine Datenbank durchsuchen, die die
¶ Zeitreihendatenbank bzw. Time series database
als Primary Key. Meine Nummer hat sondern Zeitstempel. Ja, weißt du was, wo ich das auf sehe und nutze, wenn ich irgendwie Sport mache, dann zeig ich meinen Puls auf als auch mit einer Pulsuhr richtig in der Art, das wird wahrscheinlich auch ein Theater ganz genau liegen. Ja richtig genau OK und das sind spezielle Datenbanken, weil die ganz anderen.
Also hast du den relationalen Abfrage gar nicht so einfach alle Daten in einer Reihe und aber den du machst abfragen und willst du was Fragen wie zeig mir mal letzten Monat was war da
los? Und dann machen wir mal nen Mittel über alle Werte. Meine Pulswerte im Zeitraum von bis und so weiter, und die sind optimiert für solche Abfragen das gibt es gibt jetzt schon auch Bestrebungen, Datenbanken zu machen, die in allem gut sind, aber ganz oft ist das auch ja, kann man mathematisch beweisen, man kann gar nicht so gut alles gleichzeitig optimieren, also allen meinst du die diese statischen die relationalen, die relationalen
Aspekte und die Time Series Aspekte es gibt schon Probleme am liebsten beides hättest und dann muss man mal gucken was am besten nimmt. Es gibt nur wenig Lösungen, die quasi alle diese Dimensionen gut beherrschen. OK. Willst du vielleicht noch ein paar 2 3 überhaupt Datenbanken mal nennen? Ja, genau genau das mal ein Gefühl dafür kriegen wir reden also historisch. Du hast historisch anfangen, also was man gehört haben muss My Sequel so damit ging es los.
Ja, da gibt es auch ein anderes Wort. Ich mach mal ein bisschen bongo. Wir wollen auch ein bisschen so Boards. Lamp hast du schon mal den Lamp Stack gehört? Nein, lamp also die hat so losging mit den ersten Webseiten es irgendwie Google mal anfing und so weiter da war. Alles das ganze Internet auf dem Lamp Stack Lamp LL steht für Linux A steht für Apache M steht für My Sequel die Datenbank und P für PHP, die Programmiersprache Ach so, das war der gesamte Stack.
Das war der Text, das spricht man heute noch ne, und wenn du wenn du den Text sprichst, dann sagst du musst nur sagen welches Betriebssystem nutze ich? Das war da in dem Land Linux, Webserver benutze. Ich hatte am Anfang gesagt ist relevant für Webserver mit den Datenbanken Frontend, Backend
¶ Tech-Stack
und so weiter. Das war damals Apache. Das war der Webserver. Heute gibt es noch viel mehr. Und und dann die Datenbanklösung My Sequel in dem Fall und die die Programmiersprache, mit der du quasi. Ja, mit dem mit der quasi Datenbank fütterst Abrufst und auch im Frontend arbeitest war PHP in dem Fall.
Heute gibt es anderes Mine, mern und so weiter, ne mit dem anderen Datenbanklösungen also steht für Mongo eigentlich kann man jetzt sagen, dass dass manche Datenbanken besonders gut mit einer bestimmten Programmiersprache arbeiten oder? Mit bestimmten Betriebssystemen ist. Das kannst du so machen und. Du kannst eigentlich mach ich glaube mit Betriebssystem und Programmiersprache heute noch wenig zu tun eher mit der also hast du quasi wenig Daten und wo hast du die Daten oder hab ich
ganz viele? Das ist wichtig. Es gibt es gibt ja heute Anforderungen wo extrem viele Daten ganz kurz speichern muss gar nicht eine Kiste, einen Server, dann brauchst du sowas. Gibt es alles verteilte Datenbanken. Wir hatten ja schon mal ne Folge über Microservices, ja und dann kannst du quasi so eine Datenbank, die eigentlich logisch wie eine Entität aussieht, kannst du aber tatsächlich ganz viele Server
verteilt, ne? Und das ist total wichtig, weil es kann ja mal kaputtgehen, Festplatte ausfallen und so weiter und dann wenn du da die Daten hast nach einer Riesenprobleme also du würdest jetzt verteilen, dann um das doppelt vorzuhalten diese Daten oder kannst ja, das hat es hat mehrere Gründe das eine ist, die ist die ist die Datensicherheit und das quasi redundant vorzuhalten, dann mal eine Festplatte brauchen macht nix ja und das zweite ist natürlich der
Speed, weil du hast quasi verteilt dann die Anfragen lasst über verschiedene Server und kannst quasi auch Daten zusammenziehen und so weiter. Das ist Hightech. So dass es gibt ich sag mal Namen Cassandra von Apache ist heute so ein krasses Modell, wo du OK, ja die ganz großen also wir nutzen das zum Beispiel jetzt hier nicht, aber das würdest du hast ja Overhead musst mal verwalten, administrieren und so weiter ja was muss ich fragen? Wie verwaltet man Datenbanken? Wäre dann.
Microservices ist doch auch ein Weg, das zu tun heutzutage bei verteilten Systemen ja, genau ganz klassisch hast du eigentlich eine Datenbank in einem Container genau der Container Datenbanken sind, werden meistens auch übers übers Web angefragt kleinen Server. Es gibt da eine, die mich vielleicht nennen, die heißt Sequel Light.
Die, die ist anders als alle anderen Datenbanken, weil die nicht quasi eine Netzwerkanfrage vorgestellt bekommt, sondern die Idee ist eingebaut und eine Programmiersprache, die funktioniert einfach sofort und da hast du quasi keinen, da musst du quasi auch nicht diesen serialisierungs Schritt machen, sondern kannst einfach deine Daten wie im Programm hast direkt speichern, das im Prinzip bildet das einfach nur ein Pfeil in die Datenbank quasi einen Pfeil, was lokal zu deiner
Anwendungen liegt. Das ist, wenn du mal auf ganz kleinen Systemen bist, so embedded und so weiter. N zu Equality Datenbank. Welche Datenbanken müssen wir noch kennen? Die top 3 also weißt du mal gehört haben wird aber nicht mehr aktuell genutzt? Die wichtigste relationale Datenbanken, Postgres Sequel oder Post Postgree SQL. Wenn man so liest ja, dann gibt es eine eine sehr bekannte Ero Datenbank, die sich Mongo DB hört man ganz viel und die sind, die sind jetzt tatsächlich
börsennotiert. Das weiß ich zufällig also die Firma hinter Mongo DB ja bringt mich gleich zum nächsten. Vielleicht musst ich noch nicht Datenbanken und. Welche sind nicht? Oder ja genau genau sag mal, ich sag noch einer, die von der Time Series Sorte ist es in Flux d hat auch jetzt auch zu einer gewissen Berühmtheit geschafft.
Es gibt es gibt schon viele Datenbanken, aber ich würde sagen, es gibt nur so na ja, vielleicht 567 relevante oder vielleicht keine Ahnung nicht festlegen und das sind schon auch Firmen also das ist jetzt auch das hat eine Riesenanforderung, das muss halt wirklich reliable funktionieren. Ne ganz viele Firmen stützen hat ihre komplette Daten Datenflut da drauf so ja und deswegen sind die auch gerne dann mal schnell.
Notieren wenn du das wirklich schafft und die haben halt auch Millionen von Usern die einzelnen Datenbanken Implementierung Daten genau, ja, OK jetzt Thema Open source versus closed source. Oder ist Mode auch Open Source nur Mongo verkauft noch Support außenrum? Weißt du das weiß ich nicht genau auf jeden Fall. Es war mal Open Source. Es könnte sein, dass die das umgestellt haben Post also die zum Beispiel Postgre SQL, eine
der mächtigsten Datenbanken ist. Open Source können wir nutzen wir auch dann frei nutzen XD zum Beispiel auch Open Source. Sehr, sehr schön also du kannst natürlich auch immer was dafür bezahlen kriegst du besonderen Support und drumherum aber am Ende weiß was du tust, kannst du das auch als Open Source Produkt nennen Zimmer wenn man weiß, was man tut was ist denn mit der
Datenbanksicherheit? Du hast gerade schon einmal die Redundanz erwähnt, das ist ja dann eher ne Datensicherheit also du siehst zu, dass wenn der eine Server brauchst du noch ein zweites oder einen Service und dass du die Daten noch woanders weil du hast. Muss man irgendwas machen, um die Daten jetzt besonders sicher zu speichern, oder gibt es Datenbanken, die da Sicherheit mit mitbringen schauen oder die
Sicherheit passiert? Eigentlich am beim beim Prozess dieses Prozesses beim beim beim, Wenn ich die Anfrage gegen die
¶ Datensicherheit
Datenbank richte, die also die Datenbank ist typischerweise hinter einem Server und der ist halt gesichert. Da die Daten an sich da kommst du eigentlich du kommst deswegen nicht dran, weil der hat quasi die Daten nicht offen im Internet stehen ne und wenn man das so hört hier, so dass ich bin gehackt worden und alle Daten sind im Internet.
Kundendaten womöglich sogar, denn dann ist dann ist das genau passiert, dann hat jemand geschafft, quasi sich über einen Klienten, so nennt man das ja über eine Anfrage Programm quasi also gegen eine Datenbank zu authentifizieren, als wäre alles normal, ja und sich dann die Daten daraus zu kopieren und die dann quasi ungesichert ins Netz zu speichern. Ja man man kann auch Daten verschlüsselt speichern.
Das tut man bei Passwörtern versteht die quasi nicht, die also in einer guten Datenbank stehen. Passwörter im Klartext und dann sind irgendwie quasi verschlüsselt da drin OK, das heißt, da hab ich einmal so ne Art. Vorhängeschlösser, Datenbank selber und dann ist der Eintrag wo auch noch mal geschlüsselt genau, aber das macht man ehrlich gesagt wirklich nur für Passwörter oder ganz sensitive Daten.
Typischerweise macht man das sonst für nichts, weil du weil dieses Verschlüsseln entschlüsseln wahnsinnig aufwendig ist, also jetzt in Rechenzeit und wir ich habe gerade vorhin gesagt, wie wichtig irgendwie das Schnelle an und Abfragen in die Datenbank ist, ja, das heißt ich muss schon irgendwie Server sichern. Die Datenbank ist und da geht es halt manchmal schief. Ja, ich hab unfairerweise noch nicht die Microsoft Datenbank gesagt.
Sie ist auch eine der Microsoft hat natürlich auch ein eigenes MS Sequel Datenbank Schlauch erwähnt Oracle nicht, auch Oracle ist stimmt ja genau Oracle ist ne riesen Datenbank für genau diese noch relevant heute oder sind relevant ja genau das sind auch relevant. Ich zähle natürlich über die Sachen auf und genau ich weiß gar nicht, hat auch mehrere Datenbanken Lösungen im Angebot ja OK, alles klar.
Ich guck gerade auf meinen Spicker und ja, ich glaube, wir haben tatsächlich schon die wichtigsten Sachen durchgesprochen und vielleicht noch eine sagen, was Datenbanken auch lösen, was man nicht so trivial einfach durch Kurden macht hast du schon mal gehört, was von Transaktionen und Rollback und so weiter könntest du dir vorstellen was wofür
¶ Datenbank Rollback
Transaktionen also jetzt auch wieder mit Börse und Broker ja genau? Wenn wir jetzt mal denkt, ich habe am Anfang gesagt, Wir haben verteilte Tabellen, verteilte Informationen und so weiter. Ich nehme das Beispiel zum Beispiel ebay ich will was kaufen oder ich vielleicht noch besser. Ich nehme das Beispiel B und vielleicht auf Ebay gekauft heute glaube ich nicht mehr.
Ich nehme das Beispiel B ich will irgendwas buchen und dann irgendwas reservieren, zum Beispiel ja und hab noch eine gewisse Zeit bevor ich irgendwie auf Buche verbindlich drücke ja.
Beziehungsweise so einfach, dass du einfach anfängst den buchungsprozess du hast ja nicht auf und du hast ausgesucht, bezahlt und gebucht, als in einem passiert ja nicht auf der Webseite guck dir an, sagt O cool fragst du mal irgendwie fragst mal an ist überhaupt die Immobilie oder das Ferienhäuschen frei in dieser Woche, wenn du das gemacht hast
du frei? Dann erwartest du das passiert automatisch, dass auch frei bleibt bis zum Schluss sagst ich will jetzt buchen, während du noch in dieser in diesem Wizard bist, sag ich mal, in diesem steht ja da das ist jetzt 10 Minuten für dich reserviert oder so das passiert schon mal. Ich weiß nicht ob ich glaube nicht aber bei anderen Anbietern genau das passiert schon mal jetzt datenbanktechnisch ist gar nicht so einfach, weil jetzt musst du quasi du gibst jetzt
schon Informationen ein. Die müssen auch vorgehalten werden in der Datenbank ne also wer bist du? Welchen Zeitraum willst du buchen und so weiter und vielleicht sogar mehrere Einträge die du machen musst,
aber so ein bisschen unter. Vorbehalt, weil du ja noch nicht verbindlich gebucht hast, aber so unter Vorbehalt, dass alle anderen und bei RB das kann ja sein, dass gerade 150 Leute oder 200 oder noch mehr gleichzeitig da genau gucken ja, jetzt hast du aber gerade gedrückt diese Woche will ich haben und in dem Moment kann jeder ist in in Echtzeit quasi für jeden anderen diese Woche nicht mehr verfügbar, weil du möchtest ja durchsuchen ja gruselig wenn du sagst Oh, jetzt habe ich
kreditkartennummer. Ich drücke auf paypal aber Garten a aber woanders JA anders schneller so ja ist jetzt weg. Ja so, das wird auch durch Datenbanken realisiert, das heißt und das ist n das ist ein Grundkonzept. Du machst also eine Art Transaktion, du fängst also quasi an einen Blogger zu machen und Datenbank du reservierst quasi diese ganzen Einträge in der Datenbank unter Vorbehalt.
Und wenn du dann auf, wenn du dann auf ja buchen bestätigt drückst, dann wird das tatsächlich fest eingebucht in Datenbank. Wenn aber nicht, dann musst du ja quasi also, dann musst du ja quasi zurück.
Und das nennt sich Rollback. Dann musst du alle alles, was du geklickt und gebucht hast, reserviert wurde und geblockt wurde Zurückrollen Steuerungs Set ja, genau so einfach ist es im Browser und technisches total komplizierter, weil du musst, du musst jeden einzelnen Eintrag sauber wieder zurückführen, während andere vielleicht stattgefunden haben und so weiter du kannst vielleicht ausmachen das n bisschen
kompliziert ist. Das nennt man eine Transaktion durchführen, das heißt sogar mehrere Insertion in die Datenbank, mehrere Updates und so weiter werden in einer Transaktion gebündelt, die ich als ganzes Zurückrollen kann ich
dann doch nicht. Ja, das sind zum Beispiel, was neben der Datenbanken ab, wenn sie gut sind, dann musst du dich als ja als Anwendungsentwickler nicht mehr drum kümmern, aber das muss man alles richtig machen, cool, aber das war noch ein wertvoller Einschub, während du das erzählt hast, ist mir noch was eingefallen, was ich jetz klären möchte, was mehr natürlich in unserer Software auch manchmal unter kommt und auch an anderen Stellen schon ist.
Die sogenannte Retention Policy ah ja genau und vielleicht magst du die nochmal kurz erklären, weil mein Gefühl ist, dass der Begriff schon häufiger mal fällt. Ja, im Zusammenhang mit Softwarentwicklung stimmt.
Den hast du meistens bei Zeit zeitreihendatenbanken ja und ja also wenn du eine Zeitreihendatenbank hast und dich nimmer auf, dann wird er immer immer voller Speicher quasi für immer alle Werte und jetzt kannst du jetzt kannst du sagen OK, ich will aber ich will aber aus Speichergründen aus welchen Gründen auch immer vielleicht aus rechtlichen Gründen hier Dashcam im Auto n schönes Beispiel von Zeitreihendatenbanken nicht irgendwie bilden auf kommen
Datenbank, aber s da vielleicht aus rechtlichen Gründen nicht, dass für immer gespeichert werden und jetzt in Rente? Die kannst du OK nnte policy von 5 Minuten, das heißt neue Daten,
¶ Retention Policy
die reinkommen also bis 5 Minuten speichert die Datenbank alles voll und dann ab der sechsten Minute werden quasi die ältesten Einträge überschrieben. Ja, so dass du quasi am Ende des Tages immer nur die letzten 5 Minuten in der Datenbank kann man grundsätzlich einstellen ne, das löst. Dann wird die Datenbank erst mal du weißt genau wie groß die wird, ja explodiert irgendwie nicht und zweitens kann das rechtliche Sachen auch vereinfachen.
Das nennt sich das ist der Begriff Retention Policy ja also vorhalte Regelungen. Damit kann man solche Sachen einstellen, die kannst du, die kannst du zeitlich regeln du kannst auch sagen OK, ich so viele Daten irgendwie, also wie man das jetzt genau macht, aber es drückt quasi aus. Ab wann fange ich an, quasi alte Werte wieder zu überschreiben? OK, cool, super dann hätte ich auch keine Fragen mehr. Ja gut und ja hoffe ihr könnt es über Datenbank lernen.
Ich hab was gelernt gut auf jeden Fall. Bin wieder richtig. Ausspricht ja nur das.
Wer sind die Datenbanken? Sind die Hidden Champion ne unser unter unserer unserer modernen Software und Webanwendungen, sondern man befasst sich nicht so gerne damit man kennt sich nicht so gut, aber es sind Prinzip die Motoren und da steckt halt quasi die ja da steckt quasi das ganze Knowledge drin ne und das ist aktuellste Thema, also wenn Google ihre KS trainiert, dann ziehen die halt sehr dediziert Informationen aus riesigen Datenbanken Zusammenhang.
Das sind riesige Systeme der Laufen und richtig gut laufen müssen. Ne gut, gut, super dann. Vielen Dank mal wieder, ja gerne wir hören uns nächste Woche ja, ich habe ja immer ja, ich hoffe, den zuhören hat Spaß gemacht war glaube ich heute ziemlich dichte Informationsflut. Aber schauen wir mal ich hoffe ihr bleibt dabei ist mal wieder entsperrt ja mal gucken, alles lernen, ja.
So ist besser ciao und bis zum nächsten Mal ja Grüße aus Hamburg Tschüss. Vielen Dank fürs Zuhören dieser Folge von einfach komplex die Folge gefallen dann lass uns doch eine gute Bewertung da oder Teile die Folge mit jemanden aus seinem Netzwerk für Kritik zufolge Anregungen und Fragen für neue Folgen, freuen wir uns auf deine Email an Podcast at Punkt com möchtest du zusätzlich mit anderen Hörerinnen und Hörern sowie Burkhard in Kontakt kommen und die Folge oder
generell i Themen besprechen? Dann tritt auch unserem Discord Server bei den Link dazu findest du denn schon alles abonniert jetzt unseren Podcast keine Folge mehr verpassen bis zum nächsten Mal und Tschüss aus Hamburg.
