• Keine Ergebnisse gefunden

1 2 3 4 5 6 7

N/A
N/A
Protected

Academic year: 2021

Aktie "1 2 3 4 5 6 7"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

SQL-Lab – WiSe 14/15

Institut für Informationssysteme – TU Braunschweig – http://www.ifis.cs.tu-bs.de

Technische Universität Braunschweig Institut für Informationssysteme http://www.ifis.cs.tu-bs.de Christoph Lofi, Jan-Christoph Kalo

SQL-Lab – Aufgabenblatt 5 – SQL Statements Allgemeine Informationen

Die SQL Statements dieses Aufgabenblattes bilden die Grundlage für Aufgabenblatt 5. Bitte führt sie in der angegebenen Reihenfolge aus, um die Datenbank eures späteren Programms

aufzubauen.

CREATE TABLE participations ( actor VARCHAR(100) NOT NULL, movie VARCHAR(400) NOT NULL, movie_title VARCHAR(400) NOT NULL, PRIMARY KEY(actor, movie)

);

INSERT INTO participations ( SELECT DISTINCT

a.name_name, m.title_id, m.title_title FROM (

SELECT * FROM imdb.actors UNION ALL

SELECT * FROM imdb.actresses ) AS a

JOIN imdb.movies AS m ON a.title_id = m.title_id WHERE m.title_year = 2008 AND m.title_type = 'film' );

CREATE TABLE actor_cooccurrence AS ( SELECT DISTINCT

p1.actor AS actor_from, p2.actor AS actor_to, p1.movie_title AS movie FROM participations AS p1 JOIN participations AS p2 ON p1.movie = p2.movie WHERE p1.actor <> p2.actor )

DATA INITIALLY DEFERRED REFRESH DEFERRED;

SET INTEGRITY FOR actor_cooccurrence IMMEDIATE CHECKED NOT INCREMENTAL;

CREATE INDEX aco__actor_from ON actor_cooccurrence (actor_from);

CREATE INDEX aco__actor_to ON actor_cooccurrence (actor_to);

WITH himself(name, num) AS ( VALUES('Bacon, Kevin', 0) ),

first_grade(name, num, actor1, title1) AS ( SELECT DISTINCT

actor_to, 1, actor_from, movie FROM actor_cooccurrence WHERE actor_from

IN (SELECT name FROM himself) UNION ALL

(SELECT h.*, '', '' FROM himself h) ),

second_grade(

name, num, actor1, title1, actor2, title2 ) AS (

SELECT DISTINCT actor_to, 2, actor1, title1, actor_from, movie FROM first_grade AS f JOIN actor_cooccurrence ON actor_from = f.name UNION ALL

(SELECT f.*, '', '' FROM first_grade AS f) ),

third_grade(

name, num, actor1, title1, actor2, title2, actor3, title3

) AS (

SELECT DISTINCT actor_to, 3, actor1, title1, actor2, title2, actor_from, movie FROM actor_cooccurrence JOIN second_grade AS s ON actor_from = s.name UNION ALL

(SELECT s.*,'','' FROM second_grade AS s) )

SELECT DISTINCT

name, num, actor1, title1, actor2, title2, actor3, title3

FROM third_grade

WHERE name = 'Depp, Johnny' ORDER BY num ASC;

1

2

3

4 5 6

7

Referenzen

ÄHNLICHE DOKUMENTE

In der Klasse SqlHelper existiert eine Methode getConnectProperties(), die dafür benutzt werden soll euren Benutzernamen, euer Passwort und die URL für den SQL-Server

Sollte eines der nicht unterstützten Features benötigen werden, kann dies mit einer kleinen Notiz oder frei von Hand direkt im Diagramm annotiert werden. • Ein Ausdruck

Zu einem Film wird die URL seines Streams gespeichert, während bei Serien jede einzelne Episode eine eigene URL hat.. Zu allen Filmen und Episoden werden die beteiligten

FIRST.FM möchte damit auch unbekannten Bands und Solokünstlern eine Plattform zur Ver- öffentlichung ihrer Musik bieten.. Bislang basierte der Service auf einem bekannten

Der Ablauf, der Inhalt und die Ergebnisse dieser vier Schritte sollten bereits in RDB1 im Aufgabenblatt 4: View Integration (Aufgabe 4.2) genauer beschrieben

Technische Universität Braunschweig Institut für Informationssysteme http://www.ifis.cs.tu-bs.de Wolf-Tilo Balke, Philipp Wille.. SQL-Lab – Aufgabenblatt 3 –

Anfrage 5: Finde die names aller Actors (und Actresses), die in mindestens 30 Movies (nicht Serien) seit 2004 mitgespielt haben und die Anzahl der Movies in denen sie

Jeder Schauspieler, der noch keine Zahl hat und mit einem der Schauspieler mit der Zahl 1 in einem Film zusammen gespielt haben, bekommt eine Kevin Bacon Zahl von 2. Das