In dieser Aufgabe laden wir die movie-Daten der IMDb im XML-Format in eine Datenbank. Dazu erstellen wir eine Tabelle mit dem Namen moviexml. Jedes Tupel in dieser Tabelle stellt einen Film mit dessen ID (Attribut mid) und weiteren Informationen im XML-Format (Attribut content) dar. Das XML-Attribut eines Film-Tupels hat beispielsweise folgenden Inhalt (hier der Film mit der IDGhosts of the Past (1991) (TV)):
<movie>
<mid>Ghosts of the Past (1991) (TV)</mid>
<title>Ghosts of the Past</title>
<year>1991</year>
<actors>
<actor>
<name>Davis, Carl (IV)</name>
</actor>
<actor>
<name>McCartney, Paul</name>
</actor>
</actors>
</movie>
Um die Tabelle zu erzeugen und zu befüllen, gibt es das SQL-Script create_and_insert_utf8.sql
.
Gib für die folgende Anfrage jeweils sowohl eine geeignete SQL-Anfrage mit eingebetteten XQuery/XPath-Anteilen als auch die Ergebnisse der Anfrage an.
Gib ID, Titel, Jahr und zusätzlich die Anzahl der Schauspieler aus für alle Filme, in denen mehr als 50 Schauspieler mitgespielt haben.
Query:
select mid as Id, xmlquery('$CONTENT/movie/title/text()') as Title, xmlquery('$CONTENT/movie/year/text()') as Year xmlquery('$CONTENT/movie/actors/count(actor)') as Number from moviexml where xmlexists('$CONTENT/movie/actors[count(actor)>50]');
Output:
Id Title Year Number Beer (1985) Beer 1985 51 Bobby Jones, Stroke of Genius (2004) Bobby Jones, Stroke of Genius 2004 85 Do Not Disturb (1999) Do Not Disturb 1999 64 Edge of Night, The Edge of Night, The 1984 465 Gigli (2003) Gigli 2003 54 I Was a Communist for the FBI (1951) I Was a Communist for the FBI 1951 74 Lionheart (1990) Lionheart 1990 54 Making of a Male Model (1983) (TV) Making of a Male Model 1983 53 Meister Eder und sein Pumuckl Meister Eder und sein Pumuckl 1979 92 Ned Kelly (1970) Ned Kelly 1970 62
HPI, 2015-07-13, Datenbanksysteme 1, Aufgabe 5.4c
2015-07-27 15:16:58 UTC
2015-07-27 15:16:58 UTC