Gib natürlichsprachlich wieder, wonach folgende SQL-Anfrage sucht:

Hinweis: Der Operator table sample bernoulli (n) ist IBM UDB-spezifisch und wählt zufällig n % Tupel der Ergebnismenge aus.

select *
from actors as a where a.movie_id in
	(		select distinct m.MID
			from movies as m
			tablesample bernoulli (0.10)
			inner join genre as g on g.movie_id = m.mid
			where g.genre not like ’%Adult%’
		union
			select a.movie_id as mid
			from actors as a
			tablesample bernoulli (0.01)
			inner join producers as p on p.name = a.name
			where a.movie_id = p.movie_id
	)
union
	select *
	from actors as a
	tablesample bernoulli (2)

Gib zusätzlich an, ob Tupel doppelt ausgegeben werden und begründe deine Antwort!

Solution
  • Wähle zufällig 0.01% der Schauspieler, die gleichzeitig Schauspieler und Produzent eines Films sind.

    Wähle außerdem 0.1% aller Schauspieler, die in mindestens einem Film mitgespielt haben, der kein "adult-only" Film ist.

    Vereinige die beiden Schauspielergruppen und wähle davon 2% der Schauspieler zufällig aus.

    Da union die Mengensemantik nutzt, können keine Tupel doppelt ausgegeben werden.

  • URL:
  • Language: Deutsch
  • Subjects: Databases
  • Type: Name
  • Duration: 20min
  • Credits: 4
  • Difficulty: 0.5
  • Tags: sql query
  • Note:
    HPI, 2015-06-01, Datenbanksysteme 1, Aufgabe 3.4b
  • Created By: ad-si
  • Created At:
    2015-07-27 08:51:42 UTC
  • Last Modified:
    2015-07-27 08:51:42 UTC