Homepage von Manuel Groh

Charts

Der Einstieg in hochvernetzte Graphdaten und deren Auswertung gelingt am besten dann, wenn man die Daten darin auch interpretieren und validieren kann. Denn was nutzt die schönste Query, wenn man das Resultat aufgrund der eigenen Unkenntnis weder Bestätigen noch Verwerfen kann?

Aus diesem Grund bieten sich die Deutschen Charts sehr gut als Datengrundlage an. Wenn die Abfrage nach dem Titel, welcher sich die längste Zeit auf Platz 1 befand Despacito lautet, dann bluten uns nicht nur die Ohren, sondern wir wissen auch, dass es stimmt.

Die CSV-Datei enthält Einträge im Format week;pos;title;artist;video, ist ca. 15MB groß und wurde aus den Daten der Seite Offizielle Deutsche Charts generiert. Download

date
Das fortlaufende Datum ab dem 07.01.1977
pos
Die Wochenplatzierung
title
Den Titel des Lieds
artist
Den Namen der Interpreten / Gruppe
video
Falls vorhanden den Youtube-Link zum Video

Cypher-Magie

Zum Importieren der Daten aus der CSV Datei in eine Graphdatebank sind folgende Cypher-Befehle notwendig:

Durch die Festlegung von Bedingungen wie einzigartige Attribute (Primärschlüssel) können die späteren Befehle um ein vielfaches beschleunigt werden.

Die Knoten der einzelnen Platzierungen können unabhängig von der CSV-Datei generiert werden.

Zunächst werden nun die Interpreten importiert. Durch die Bedingung (Constraint) und dem Merge-Befehl entstehen keine Dopplungen. Anschließend werden die jeweiligen Lieder geladen. Die Lieder zweier unterschiedlicher Interpreten können den gleichen Titel haben, weswegen hier eine Bedingung nicht leicht ist und es so zu Performanzproblemen kommt. Durch den erweiterten Merge-Befehl hin zu einem ganzen Pfad werden Dopplungen vermieden. Sollte ein neues Lied der Datenbank hinzugefügt werden, so wird ggf. auch der Videolink ergänzt.

Die Zuordnung von Liedern zu Platzierungen in einer Woche ist etwas schwieriger, da Platzierung und Datum voneinander abhängen. In klassischen relationalen Datenbanken wäre eine Hilfstabelle mit kombiniertem Primärschlüssel sinnvoll, im Graph nutzt man dazu entweder einen Hilfsknoten mit drei Kanten, welcher den Titel mit einem Datum und einer Platzierung verbindet, oder wir attributieren die Kante zwischen Titel und Platzierung wie hier mit der Angabe des Datums. Da ein Titel z.B. auch mehrere Wochen auf Platz 1 der Charts verweilen kann, sind so zwischen Titel und Platzierung mehrere Kanten möglich.

Fragen über Fragen

Eine Datenbank macht erst dann Spaß, wenn man sie ausgiebig befragt.

Es gibt noch viele lustige und interessante Abfragen. Wenn Sie noch eine Ergänzung haben, mailen Sie mir gerne. Später folgt auch noch der Code zum generieren der CSV-Datei.