Filme, Schauspieler und Auszeichnungen
Von: Michael Schuerig (michael@schuerig.de) [Profil]
Datum: 12.03.2009 15:21
Message-ID: <gpb5oh$oje$1@newsreader2.netcologne.de>
Newsgroup: de.comp.datenbanken.misc
Datum: 12.03.2009 15:21
Message-ID: <gpb5oh$oje$1@newsreader2.netcologne.de>
Newsgroup: de.comp.datenbanken.misc
- Sean Penn hat 2009 einen Oscar als bester Schauspieler für seine Rolle in Milk bekommen. - Tiger & Dragon hat 2000 einen Golden Globe als bester fremdsprachiger Film bekommen. - Ennio Morricone hat 2007 einen Oscar für sein Lebenswerk bekommen. Fakten dieser Art möchte ich in einer Datenbank abbilden. Ein erster Versuch für ein Schema, in dem sich diese Fakten ausdrücken lassen, könnte ziemlich einfach aussehen. Angenommen, alle Namen (Personennamen, Filmtitel, Preise) sind eindeutig und als Primärschlüssel geeignet. Nullbare Attribute sind mit [0] gekennzeichnet. Person: Name Film: Titel, Jahr Preis: Name, PreisGruppe PreisGruppe: Name (Oscar, GG, Emmy, ...) Auszeichnung: Preis.Name, Person.Name[0], Film.Titel[0] Das sieht schön übersichtlich aus und macht Queries einfach: Welcher Film/Schauspieler hat (in einem bestimmten Jahr) die meisten Auszeichnungen bekommen. SELECT filme.name, filme.jahr, COUNT(*) AS oscars FROM filme JOIN auszeichnungen ON auszeichnung.film_titel = filme.titel JOIN preise ON auszeichnungen.preis_name = preise.name GROUP BY filme.name, filme.jahr ORDER BY oscars DESC LIMIT 1 Dem stehen einige Nachteile gegenüber. Das Schema läßt zu viel zu, nämlich auch Auszeichnungen, die sich weder auf einen Film, noch eine Person beziehen, oder etwa einen Auszeichnung für das Lebenswerk eines Films. Um soetwas durch Constraints oder auf Anwendungsebene auszuschließen wären noch weitere Metadaten zu den Preisen erforderlich. Das Schema könnte von vornherein so angelegt werden, dass es strukturell nur sinnvolle Fakten ausdrücken kann. Dazu müßte zwischen Preisen und Auszeichnungen danach unterschieden werden, ob sie an einen Film, eine Person oder die Kombination aus Person und Film verliehen wird. Das bläht das Schema auf und Queries würden durch UNIONs verunziert. Ich bitte um konstruktive Meinungsäußerungen. Michael (Nein, es geht mir nicht um Filme.) -- Michael Schuerig mailto:michael@schuerig.de http://www.schuerig.de/michael/[ Auf dieses Posting antworten ]
