Interview mit Lukas Eder

Lukas Eder ist Berater für Java/SQL, Autor für DZone, JCG, JAXenter, Speaker, Java Champion, JUG Schweiz Vorstandsmitglied. Er schult folgende Themen: Fortschrittliches SQL und SQL Performance. Sein Kurs bei GEDOPLAN IT Training ist die SQL - Masterclass.

Wie kam es dazu, Java-Entwicklern SQL verständlicher bei bringen zu wollen?
Meine Firma vertreibt das beliebte SQL Abstraktionsframework jOOQ. SQL fliesst in unseren Adern. An verschiedenen Konferenzen, wo ich über jOOQ gesprochen habe, habe ich aber festgestellt, dass die meisten Java Entwickler mit fortschrittlichem SQL wenig anfangen können. Nicht, weil es sie nicht interessieren würde, aber weil sie wegen JPA (leider) keinen Zugang mehr dazu haben. Ich fülle nun diese Wissenslücke, bis jetzt sehr zur Zufriedenheit der Zuhörer.

An wen richtet sich der Kurs genau?
An alle Java/SQL Entwickler, die täglich oder zumindest hin und wieder mit SQL zu tun haben, und mit ihren Fähigkeiten gerne auf den nächsten Level kommen würden.

Du bist Java Champion, wie ist dazu gekommen?
Ich bin Vorstandsmitglied der Java User Group Schweiz, an vielen Java Konferenzen unterwegs (siehe: www.jooq.org/news), bin im Programmkomittee der Voxxed Days Zürich verwalte den Firmenblog mit mehreren Millionen Lesern im Jahr, sowohl auf unserem Blog, wie auch auf den Partnerblogs Dzone, JAXenter, JCG, bin hauptsächlich an der Entwicklung unserer 5 Open Source Libraries jOOQ, jOO?, jOOX, jOOR, und jOOU beteiligt. Was mach ich eigentlich nicht? :) Diese Öffentlichkeitsarbeit passt genau zum Bild des Java Champions.

Welche Optimierungsmöglichkeiten für die Performance siehst Du im SQL / Java Umfeld ?
Ich versuche den Entwicklern die Angst vor SQL zu nehmen, und sie zu überzeugen, nicht jedes Problem mit Hibernate zu erschlagen. Schon Gavin King (der Entwickler von Hibernate) hatte immer gesagt, dass man für viele Probleme besser SQL statt Hibernate verwendet. Mit zunehmendem Interesse an SQL kommen auch zunehmende Fähigkeiten im Performanceumfeld.

Welche Grundregeln sollte man beim Design einer SQL-Datenbank beachten ?
Abgesehen von den wohlbekannten Normalisierungsregeln ist es sehr wichtig, daran zu denken, dass eine Datenbank in der Regel sehr viel länger lebt als alle Applikationen, die darauf zugreifen. Der Hype um Schemalosigkeit, der von verschiedenen NoSQL Herstellern gestartet wurde, ist sehr gefährlich. In den ersten Monaten ist Schemalosigkeit ein Vorteil für Entwickler. Fünf Jahre später hat noch jedes Projektmitglied diesen Entscheid bereut. Es ist wichtig, dass Entwickler und Operationsleute zusammenarbeiten, um langfristig orientierte Architekturen und Datenbankdesigns anzustreben.

Kann die Cascade Funktionalität an Relationen zu Problemen führen ?
Das hängt vom Datenbankhersteller ab. Ich selber hatte noch nie Probleme, kann mir aber vorstellen, dass es zu Problemen kommen kann. Damit hab ich zuwenig Erfahrung.

Welche Erfahrungen hast Du mit OO-Mappern wie hibernate gemacht ?
Ich habe schon früh mit Hibernate (version 2.x und 3.x) gearbeitet, und hab Hibernate immer dafür geschätzt, dass langweiliges CRUD damit extrem einfach wird. Ich habe es aber immer vermieden, irgendwelche komplexeren Features zu verwenden, und habe Hibernate immer wie jOOQ verwendet: Database-First, nicht Java-First.

Wie siehst Du NoSql Datenbanken ?

Sie haben natürlich ihre Berechtigung für Nischenprobleme. z.B. macht es keinen Sinn, Logdaten zu normalisieren. Eine «Datenbank» wie Splunk ist für diese Art von Daten besser geeignet. Sehr komplexe Zusammenhänge über komplizierte Domänen werden oft besser in Graphdatenbanken abgebildet. E.F. Codd hat das Relationale Modell aber damals geschaffen, weil die verschiedenen «NoSQL» Datenbanken (oder «PreSQL») ein riesen Chaos verursacht hatten. Es ist das absolute einfachste Datenmodell, und damit das absolut mächtigste. Es gibt aus meiner Sicht keine guten Gründe, eine NoSQL Datenbank für Standardsoftware zu bevorzugen.

Gibt es Vor – Nachteile von NoSql-Datenbanken zu SQL-Datenbanken ?
NoSQL Datenbanken implementieren immer einen sehr spezifischen Anwendungsfall, für den sie sehr viel besser geeignet sind (z.B. Graphdatenbanken). Meist werden diese Datenbanken dann parallel zu einer SQL Datenbank betrieben. Die Nachteile für den allgemeinen Gebrauch sind viel zu gross, als dass sie sich dafür eignen würden.

Du hältst auf der diesjährigen JAX einen Vortrag "Zehn SQL-Tricks, die du nicht für möglich gehalten hättest". Kannst Du bitte eine Schnellüberblick geben über die 10 Tricks oder worum es geht in Deinem Vortrag?
Ich möchte den Teilnehmern zwei sehr interessante SQL Features vorstellen: Fensterfunktionen und Rekursives SQL. Letztere machen SQL zu einer «turingvollständigen» Sprache. Die ersten 3 Tricks werden relativ einfach sein. Die anderen 7 werden auch geübte SQL Entwickler verblüffen. Nach diesem Vortrag wird die Begeisterung für SQL bei den Teilnehmern garantiert stark ansteigen.

Wie lange beschäftigst Du Dich schon mit dieser Thematik?
Seit 2006 (nach Studienabschluss) sehr intensiv. Datenverarbeitung hat mich in der Informatik immer schon am meisten interessiert, hauptsächlich mit zustandslosen, transformativen Sprachen wie SQL, XSLT, und neu auch mit funktionaler Programmierung (siehe jOO?).

Seine nächsten Vorträge bei Konferenzen:

VOXXED Days Lugano am 30.04.2016 in Lugano.
"Ten SQL Tricks that You Didn’t Think Were Possible"

GEEKOUT am 09. - 10.06.2016 in Tallinn.
"Ten SQL Tricks that You Didn’t Think Were Possible"

Unsere Kundenzeitschrift GEDOPLAN aktuell

In dieser Rubrik stellen wir Ihnen einen Artikel aus der aktuellen Ausgabe unserer Kundenzeitschrift zum Online-Lesen zur Verfügung. Alle weiteren Ausgabe zum Download finden Sie hier.

Aktueller Kurs zum Thema:

Aktueller Kurs:

SQL Masterclass - Einsatz von SQL als Applikationssprache
06.10. - 07.10.2016     in Berlin.