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