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.