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: adius
  • Created At:
    2015-07-27 08:51:42 UTC
  • Last Modified:
    2015-07-27 08:51:42 UTC