Datenbanken

Durch den Forschungstätigkeit von Wolfi im Datenbankbereich und der praktischen Datenbankerfahrung von Andy tauchen wir in den folgenden Episoden in die Datenbankwelt ein. Von SQL bis NoSQL aber auch DataScience und Big-Data stehen am Themenplan. Vor allem ist uns aber auch immer der praktische Aspekt wichtig und manchmal ist die beste Lösung auch gar keine Datenbank, sondern eine einfache Datei...

Podcast

Datenbanken im Engineering Kiosk Podcast

Details zur Podcast Episode #118 Wie funktioniert eine moderne Suche? Von Indexierung bis Ranking Software Engineering Backend Datenbanken

#118 Wie funktioniert eine moderne Suche? Von Indexierung bis Ranking

Explain my like i am five: Die Grundlagen moderner Suchen Wir, als User, erwarten heutzutage ziemlich viel von einer Suchmaschine. Es soll “magisch” verstehen, was wir eigentlich finden möchten. Egal ob wir das richtige Wort dafür nutzen (aka Synonym-Suche) oder ob der Begriff einen Tippfehler hat (aka “Meinten Sie …?”). Oft werden Tools wie Elastic- oder OpenSearch, Solr, Algolia und Co. für sowas eingesetzt, denn eine einfache Volltext-Suche mittels eines Wildcard-SQL-SELECT Statement reicht dafür nicht mehr aus. Doch was steckt eigentlich dahinter? Wie funktionieren all diese modernen Suchen eigentlich im Inneren? In dieser Episode geht es um die Grundlagen moderner Suchmaschinen. Wir schmeißen mit Begriffen wie Stemming, Homonyme, BERT, Stopwords, Inverted Index, Suffixbäume, N-Grams, Term Frequency-Inverse Document Frequency, Vector Space Model und Co um uns und erklären das ganze...

Details zur Podcast Episode #99 Modernes SQL ist mehr als SELECT * FROM - mit Markus Winand Software Engineering Interview Datenbanken

#99 Modernes SQL ist mehr als SELECT * FROM - mit Markus Winand

SQL is Dead, Long Live SQL! Fast jede Applikation hat irgendeine Form von persistenter Datenhaltung. Oft in Form einer Datenbank. Der Platzhirsch bei Datenbanken sind Systeme, die sich mit der Structured Query Language (kurz SQL) abfragen lassen. MySQL, PostgreSQL, Oracle, MSSQL Server, sqlite, Google BigQuery und so weiter. Die coolen Kids haben vielleicht irgendeine Form von NoSQL-Datenbank im Einsatz. Aber auch da kommt man nicht um SQL herum. Für die meisten Entwickler*innen ist SQL ein alter Hut. SELECT * FROM Tabelle WHERE foo = bar GROUP BY id. Das haben wohl die meisten gelernt und damit kommt man schon sehr weit. Doch war es das mit den Möglichkeiten von SQL? Klare Antwort: Nein. Die Sprache wird weiterentwickelt, bekommt moderne Features und hat weitaus mehr zu bieten als manch einer denkt. Und darüber sprechen wir in dieser Episode mit dem SQL-Experten Markus Winand. Wir...

Details zur Podcast Episode #91 Konsistent, Verfügbar, Ausfalltolerant oder Performant: Das CAP- und PACELC-Theorem in verteilten Systemen Backend Software Engineering Datenbanken Cloud

#91 Konsistent, Verfügbar, Ausfalltolerant oder Performant: Das CAP- und PACELC-Theorem in verteilten Systemen

Konsistent, Verfügbar und Ausfalltolerant: Wähle zwei - Das CAP-Theorem Stellt euch vor, ein Handwerker könnte die Dienstleistung schnell, günstig und in hoher Qualität leisten. Wäre dies nicht ein Traum? Leider sind alle drei Eigenschaften in der Realität nicht möglich. Und genau so geht es uns mit dem CAP-Theorem in verteilten Systemen mit Datenhaltung. Speziell im aktuellen Zeitalter mit Cloud Computing, horizontaler Skalierung, weltweiter Verfügbarkeit spielt das CAP-Theorem eine essentielle Rolle. Wie soll sich dein System verhalten, wenn die Netzwerk-Verbindung zwischen deinen Compute-Knoten ausfällt? Muss die Datenhaltung konsistent bleiben? Oder sind Inkonsistenzen für eine gewisse Zeit OK, dafür hat die Verfügbarkeit eine höhere Priorität? Um diesen Konflikt geht es in dieser Episode. Bonus: Auf GCP kannst du deine Compute-Instanz auf maximal 12 TB SSD Disk (ohne...

Details zur Podcast Episode #69 MySQL vs. MariaDB Backend Software Engineering Datenbanken

#69 MySQL vs. MariaDB

Wie viel MySQL Drop In-Replacement steckt wirklich in MariaDB? MariaDB, ein Fork der populären Datenbank MySQL. Angetreten, um ein Drop-In-Replacement und eine direkte Alternative zu MySQL darzustellen. Doch wie viel ist da dran? Ist MariaDB MySQL kompatibel? Wo liegen die Gemeinsamkeiten und Unterschiede? Was war eigentlich der Grund für den Fork? In welchen Bereichen entwickeln sich beide Datenbanken vollkommen anders? Und was hat sich im Bereich der Storage-Engines alles so getan? In dieser Episode bringen wir etwas Licht in den direkten Vergleich zwischen MySQL und MariaDB. Bonus: Was ein Weber-Grill mit MySQL und MariaDB zu tun hat. Das schnelle Feedback zur Episode: 👍 (top) 👎 (geht so)

Details zur Podcast Episode #63 Spaß mit Zahlen: Under- und Overflows, Rückwärtslaufende Zeit, Negative Modulos und Währungsbeträge Software Engineering Backend Datenbanken

#63 Spaß mit Zahlen: Under- und Overflows, Rückwärtslaufende Zeit, Negative Modulos und Währungsbeträge

Herausforderungen mit Zahlen in der Programmierung: Hidden bugs, Effekte auf die Realität und der richtige Umgang. Der korrekte Umgang mit Zahlen in der Softwareentwicklung ist so wichtig wie die Reifen bei einem Auto, um es zu fahren. Obwohl viele Entwickler sagen, Mathematik ist ein täglicher Bestandteil des Tages, so kommt man um die Verarbeitung von Zahlen nicht drum herum. Doch wie schon früher in der Schule, kann der Umgang mit Zahlen sehr Herausfordernd sein. In dieser Episode sprechen wir über klassische Fehler, die beim Umgang mit Zahlen in Software gemacht werden, über skurriles Verhalten von Programmiersprachen aber auch über die Effekte dessen auf die reale Welt. Es geht um Datentypen in Programmiersprachen und deren Wertebereiche, Probleme mit großen Zahlen und JSON, Währungsumrechnung und die korrekte Speicherung, Integer-Under- und Overflow, negative Modulo-Berechnungen,...

Details zur Podcast Episode #54 Key Value Store Redis: Einsatzmöglichkeiten, Fallstricke, Datenstrukturen, HyperLogLog und (flüchtige) Persistenz DevOps Datenbanken Open Source

#54 Key Value Store Redis: Einsatzmöglichkeiten, Fallstricke, Datenstrukturen, HyperLogLog und (flüchtige) Persistenz

Redis - Der open source, in-memory data structure server Viele Software-Engineers haben bereits von Redis gelesen. Primär im Anwendungsfall eines Caches. Doch das ist bei weitem nicht alles, was Redis unter der Haube hat. In dieser Episode schauen wir uns den Data Structure Server mal genauer an. Was ist Redis? Welche Datentypen unterstützt dieser? Was ist Geospatial und HyperLogLog? Kann Redis meine Daten auch persistieren? Welche Use-Cases gibt es neben dem Caching? Wer ist eigentlich der Kopf hinter Redis? Und wie kann ich Redis erweitern, falls ich noch mehr Funktionalität brauche? All das und noch viel mehr Hintergrundwissen zu Redis in dieser Episode. Bonus: Wann unser Co-Host Andy und wann Andreas genannt wird und was Clippy von Word mit Redis zu tun hat.

Details zur Podcast Episode #49 Die Zukunft: Software Repository Mining Backend Software Engineering Datenbanken Produktivität

#49 Die Zukunft: Software Repository Mining

Die Analyse von Metadaten aus dem Software-Entwicklungsprozess: Yey or Ney? Die wenigsten kennen den Begriff des Software Repository Minings, doch die meisten benutzen Features, die darauf zurückzuführen sind. Zum Beispiel der automatische Vorschlag von den richtigen Pull Request Reviewern. Es geht darum, auf Basis der Daten aus dem Softwareentwicklungsprozess neue Erkenntnisse zu gewinnen, um diesen einfacher und produktiver zu gestalten. In dieser Episode klären wir, woher die Daten kommen, wie man an diese gelangt, welche Anwendungsfälle es gibt, was die Herausforderungen dabei sind und wie ihr damit starten könnt. Bonus: Ob Andy bereits 50 Jahre alt ist und warum gute Architektur auch als Selbstschutz dient.

Details zur Podcast Episode #41 SQL Injections - Ein unterschätztes Risiko Backend Datenbanken Sicherheit Software Engineering

#41 SQL Injections - Ein unterschätztes Risiko

SQL Injections: Eine der weitverbreitetsten Sicherheitslücken im Web, auch im Jahr 2022 Der Großteil aller Applikationen interagiert in irgendeiner Art und Weise mit einer Datenbank. Deswegen werden die meisten Entwicklerinnen und Entwickler bereits von der Sicherheitslücke "SQL Injection" gehört haben. Seit 24 Jahren ist dies eine der weitverbreitetsten Sicherheitslücken im Internet und es ist kein Ende in Sicht. Was ist eigentlich eine SQL-Injection im Detail? Welche verschiedenen Arten gibt es? Was ist der Grund, dass uns dieses Einfallstor so lange beschäftigt? Woher kommt diese und wer hat sie entdeckt? Wie kann man sich schützen und seine Anwendung ausreichend testen? All das und noch viel mehr in dieser Episode. Bonus: Der Kontrast zwischen Duisburg und Berlin und wie die SQL-Injektion als Nebenprodukt entdeckt wurde.

Details zur Podcast Episode #22 NoSQL: ACID, BASE, Ende einer Ära Teil 2 Datenbanken

#22 NoSQL: ACID, BASE, Ende einer Ära Teil 2

Neben relationalen Datenbanken gibt es noch eine ganz andere Welt: NoSQL. Doch wofür steht eigentlich NoSQL? Kein SQL? Not Only SQL? Was ist eigentlich die Geschichte hinter dem Hype? Warum wurde diese Art von Datenbanken erfunden? Wofür sind diese gut? Folgen NoSQL Datenbank auch dem ACID-Concept? Was ist Eventual Consistency? Und was sind Neo4J, M3, Cassandra, und Memcached für Datenbanken? Eine Episode voller Buzzwords … Hoffen wir auf ein Bingo. Bonus: Warum Wolfgang keinen Manta fährt und ob Andy bald mit einem Ferrari zum einkaufen fährt.

Details zur Podcast Episode #19 Datenbank-Deepdive (oder das Ende einer Ära): von Redis bis ClickHouse Datenbanken

#19 Datenbank-Deepdive (oder das Ende einer Ära): von Redis bis ClickHouse

Der zweite Datenbank-Deepdive im Engineering Kiosk. Indirekt knüpfen wir an Episode 8 mit dem Thema Datenbanken. Diesmal fangen wir aber ganz vorne an: Mit hierarchischen Datenbanken über Objektorientierte Datenbanken, anschließend zu SQL bis hin zur NoSQL und Spaltenorientierten Datenbank-Ära. Dabei klären wir Fragen was zum Beispiel der Unterschied zwischen Datenbanken und Dateien ist, ob OOP-Datenbank immer noch ein Hype ist, was Indexe sind und wie diese funktionieren, warum die Migration weg von Oracle schwierig sein kann, ob Lucene eine Datenbank ist und noch viel viel mehr. Bonus: Was Kürbiskerne mit Datenbanken zu tun haben und warum MySQL ein besseres Adressbuch mit SQL Interface ist.

Details zur Podcast Episode #08 Vergiss doch Datenbanken! Datenbanken

#08 Vergiss doch Datenbanken!

Datenbanken, besonders relationale Datenbanken und im Web ganz besonders MySQL. Jeder kennt sie, jeder nutzt sie, aber keiner gibt zu diese zu nutzen da sie uncool und alt sind und sowieso nicht skalieren. Wolfgang und Andy sprechen ein wenig über dieses Thema: Wie man seine eigene SQL Datenbank schreibt, was der Unterschied von Row-Based und Statement-Based Replication ist, warum simple Dateien oft besser sind als eine Datenbank, ob sqlite helfen kann und MongoDB die Lösung ist, wie Facebook, Booking und GitHub MySQL betreiben, ob PostgreSQL wirklich was kann und welche Schritte ihr unternehmen könnt, um eure Datenbank zu tunen. Bonus: Ob Wolfgang Mickey Krause kennt und ob er ein erfolgreicher MySQL Buchautor war.