Datenbank Forum - für Anfänger und Profis

Willkommen im Datenbank Forum von Datenbanken-verstehen.de - Das Datenbank, Data Warehouse & Business Intelligence Forum!

Das Datenbank Forum für Anfänger und Profis ist eine Community zu den Themen Datenbanken, Data Warehouse & Business Intelligence. Nimm teil an der Community von Datenbanken-verstehen.de und tausch dich mit deinen Fragen und Lösungen mit anderen Nutzern aus.

Als registrierter Benutzer genießt Du viele Vorteile, wie

  • den vollen Zugang zu allen Foren und Unterforen
  • Kostenloses Lernmaterial inkl. Lösungen zum Thema Datenbanken
  • Zugriff auf DB-Tutorials, Best Practices und SQL-Snippets

Bevor Du einen Beitrag verfassen möchtest, kannst Du dich einfach kostenlos registrieren.

oder Einloggen mit



Beachte bitte die Forenregeln von Datenbanken-verstehen.de. Wir wünschen Dir viel Spaß im Datenbank Forum! - Dein Datenbanken-verstehen.de-Team

Datenbankmodellierung [Film/Serie]

Ein gutes Datenbankdesign ist Pflicht! Doch wie geht man an die Datenmodellierung heran?
Hier treffen Datenbankdesign und Datenmodellierung aufeinander...

Datenbankmodellierung [Film/Serie]

Beitragvon Sophus » Mi 28. Jan 2015, 16:27

Hallo Datenbank-Experten,

wie der Betreff meines Themas schon verrät, geht es zunächst einmal um die Modellierung einer Film/Serie-Datenbank. Ich halte Film und Serie zwar getrennt, aber beide kommen in eine Datenbank. Das heißt, dass Film und Serie auch Tabellen gemeinsam benutzen werden. Dies wollte ich nur erwähnen, damit wir das in unseren Überlegungen berücksichtigen. Des Weiteren möchte ich erwähnen, dass ich mit dem Programm »Dia« arbeite - irgendwie komme ich mit der UML oder ERM nicht sonderlich klar. Nimmt es mir also nicht übel :-)

Kurz zu meiner Philosophie zu meinem Programm: Ich will am Ende darauf hinaus, dass der Anwender seine Daten selbst verwalten soll und ich ihm somit - soweit es mir möglich ist - die absolute Freiheit geben will. Das bezieht sich insbesondere darauf, wenn der Anwender unter anderem Stammdaten verwalten soll.

er_diagramm-filme-serie.jpg


Zu meiner Vorgehensweise. Ich habe schon mit der Modellierung begonnen und werde zunächst einmal ein Bild hochladen, worauf ihr erstmal meinen bisherigen Stand sehen könnt. Keine Panik, wir werden nicht alles auf einmal besprechen. Ich werde der Übersicht halber mit grafischen Darstellungen auf einzelne Beziehungen und Tabellen eingehen. Abschließend möchte ich noch erwähnen, dass ich meine Tabellen und die gezeichneten Beziehungen farblich gekennzeichnet habe. Tabellen die immer schwarz sind, sind Zwischentabellen/Zuordnungstabellen/Verknüpfungstabellen - ich weiß ja nicht wie ihr solche Tabellen nennt.

Zunächst möchte ich mit euch auf das Thema Person eingehen. Für Filme brauchen wir ja schließlich Schauspieler die eine bestimmte Rolle spielen :-)

--------------------------------
Ich habe die Tabelle Person über die Verknüpfungstabelle Person_Nationalität eine Beziehung zu der Tabelle Nationalität hergestellt. Überlegung: Ein Mensch kann allein in Deutschland bis zu drei Nationalitäten beanspruchen, wenn er/sie in Deutschland geboren wurde, deren Vater zum Beispiel Franzose und deren Mutter eine Schwedin ist. Andersrum kann eine Nationalität viele Menschen beanspruchen. Also viele Menschen viele Nationalitäten, und viele Nationalitäten viele Menschen. Für mich wäre das eine n:m-Beziehung. Anmerkung: Einige haben sicherlich mitbekommen, dass ich in der Tabelle Nationalitäten eine ID als Primärschlüssel benutze. Sicherlich könnte man die Nationalitäten mit international anerkannten Abkürzungen versehen und diese als Primärschlüssel benutzen. Jedoch ist es rein theoretisch möglich, dass sich solche Abkürzungen im Laufe der Zeit verändern. Aber eine festgelegte ID ändert sich nicht. Warum auch? Ich weiß, es gibt die Möglichkeit, dass zum Beispiel bei MySQL sowas wie ON UPDATE CASCADE benutzen kann. Aber wenn ich es umgehen kann, wieso nicht dann die ID verwenden?
--------------------------------


--------------------------------
Ein jeder Schauspieler hat ja auch ein Geschlecht. Zumindest möchte ich das in meiner Verwaltung mit berücksichtigen. Für mich gehört das Geschlecht auch zu den Stammdaten. Man könnte in der Tabelle mit BOOLEAN arbeiten. Aber es ist ja möglich dass jemand ein Zwitter etc. ist. Damit ich gar nciht erst in Verlegenheit komme und meine Anwender ihre Freiheit genießen, dachte ich mir, lege ich eine Tabelle Geschlecht an. Wie die Anwender dann die Geschlechter benennen soll nicht mehr mein Thema sein. Da ein Mensch nur ein Geschlechtsmerkmal haben kann, entschied ich mir für eine 1:n-Beziehung.
--------------------------------


--------------------------------
Der Geburtsort eines Menschen erschien mir auch wichtig - daher diese Tabelle. Auch die Angabe der (Geburts)Orte betrachte ich als Stammdaten, die der Anwender fein selbst verwalten soll. Und da ein Mensch nur an einem Geburtsort zur Welt kommen kann, entschied ich mich für die 1:n-Beziehung.
--------------------------------


--------------------------------
Da es sich bei den personen um Schauspieler handelt können diese in der Filmindustrie auch Auszeichnungen gewinnen. Die Tabelle Auszeichnung soll sowohl als normale als auch als Verknüpfungstabelle fungieren.

Zu den Auszeichnungen gehören natürlich die Angabe der Preise - daher die Tabelle Preis. Da der Preis von der Auszeichnung abhängig ist, habe ich zwischen Auszeichnung und Preis eine Beziehung hergestellt. Ich entschied mich hierbei für eine 1:n -Beziehung, weil ein Schauspieler von einem Preis einmal was gewinnen kann. Zum Beispiel, wurde der Schauspieler Leonardo DiCaprio im Film Titanic als bester Hauptdarsteller ausgezeichnet, und bekam den Preis Blockbuster Entertainment Award. So kann er für diesen Film nur einmal als "bester Hauptdarsteller" ausgezeichnet werden. Alles andere erschien mir doch unmöglich und sinnlos. Warum sollte jemand mehrmals als "bester Hauptdarsteller" ausgezeichnet werden?

Im nächsten Schritt geht es um die Tabelle Kategorie. Unter Kategorie verstehe ich, als was er ausgezeichnet wurde. Als bester Hauptdarsteller, als schlechtester Nebendarsteller, als Lieblingsdarsteller, als bester Bösewicht etc?
--------------------------------


--------------------------------
Als Schauspieler muss man ja auch Rollen spielen. Daher die Tabelle Rolle. Da eine Person in einem Film mehrere Rollen belegen kann (»Familie Klumps und der verrückte Professor«. Eddie Murphy besetzt hier gleich mehrere Rollen) und eine Rolle von unterschiedlichen Personen gespielt werden kann (»Das Kabinett des Doktor Parnassus«. Hier wird eine Rolle vom verstorbenen Heath Ledger sowie Jonny Depp, Jud Law und Colin Farrell gespielt). Also entschied ich mich für eine n:m-Beziehung (Person_Rolle_Filmallgemein).
--------------------------------


--------------------------------
Es gibt aber auch Personen, die hinter der Kamera arbeiten. Zum Beispiel der Kameramann, Visagistin, Drehbuchautor, Regisseur etc. Also entschied ich mich für die Tabelle Funktion. Hier kann der Anwender beliebig viele Funktionen hinzufügen und diese dann den Personen zuordnen. Warum ich mich für eine n:m-Beziehung (Person_Funktion_FilmAllgemein) entschied? Eine Person kann ja mehrere Funktionen belegen. Er kann Drehbuchautor, Regisseur und gleichzeitig für der Kamera stehen und eine Rolle ausüben.
--------------------------------

Bevor wir zum Thema Film übergehen, möchte ich hier eine Pause einlegen und euch zu Wort kommen lassen. Habt ihr bisher Kritik oder Verbesserungsvorschläge oder Fragen? Ich bin gespannt. Schließlich lerne ich gerne was Neues hinzu.

Gruß
Sophus
Eine Signatur ist im Moment nicht verfügbar. Wir arbeiten mit Hochdruck an einer Lösung - für diese Einschränkung bitten wir um ihr Verständnis
Sophus
 
Beiträge: 10
Registriert: Di 27. Jan 2015, 23:25

Re: Datenbankmodellierung [Film/Serie]

Beitragvon Micha » Fr 30. Jan 2015, 00:10

Hallo Sophus,

leider kann ich Dir jetzt schon sagen, dass sich keiner alles hier durchlesen wird.
Das ist zu viel und Du solltest das in mehrere Fälle einteilen.

Zu deinem Beispiel Nationalität würde ich erstmal von dem Normalfall ausgehen, dass jeder Mensch eine Nationalität hat. Falls die Anforderungen von deinem Kunden sich ändern, ändert sich natürlich dann auch dein Use-Case.

Zu deinem Punkt "Geschlecht". Überleg Dir den Einsatz von "Flags". Flags sind fest definierte Konstanten. Du kannst Sie anstatt von Tabellen einsetzen. Modelle sind zwar sehr schön - sie bilden aber nie die komplette Realität ab und dienen nur zur Abstraktion, daher beschränke Dich auf dein Use-Case.

Bei den nachfolgenden Punkten ist besser erstmal von einfacheren Anforderungen auszugehen.

Für wen soll denn das Programm gedacht sein, da es mir scheint, dass es eine Eierlegende Wollmilchsau werden soll ;)

Gruß,
Micha
Micha
 
Beiträge: 129
Registriert: So 3. Nov 2013, 12:13

Re: Datenbankmodellierung [Film/Serie]

Beitragvon Sophus » Fr 30. Jan 2015, 00:31

Was ist eine "Eierlegendewollmilchsau"? :-) Ich kenne sowas gar nicht :-) Zunächst einmal programmiere ich aus reinem Interesse. Es ist natürlich in erster Linie für mich. Aber ich will mich ja auch selbst steigern, sprich, was lernen, daher mag ich es, wenn mein Projekt an Komplexität zunimmt. Später, wenn ich mit meinem Projekt zufrieden bin, werde ich es vielleicht kostenlos zur Verfügung stellen. Es liegt also momentan kein konkretes Ziel vor mir, so nach dem Motto, ich programmiere dies auf Zeitdruck für Kunde XYZ.

Aber vielleicht sollte ich mein Projekt kurz vorstellen. Wie gesagt, wird es eine reine Verwaltungs-Software. Was soll darin alles verwaltet werden? Natürlich sämtliche Informationen zu Filmen, Serien, Büchern, Comic, Magazine, Briefmarken, Musik-Alben, Musik.Singles, Schaltplatten, Zitate, Kontaktdaten etc. Also eine ganze Menge. Anfangen will ich erst einmal mit den Filmen und Serien, und mich dann hocharbeiten. Mein Projekt soll dann gleich mehrere Datenbanken unterstützen, einmal Microsoft SQL, MySQL, Microsoft Access, SQLite, PostgreSQL etc. Das heißt, der Benutzer kann sich aussuchen mit welcher Datenbank er arbeiten will, und dementsprechend soll dann mein Programm damit kommunizieren.

Nun, ich habe diesmal mehr ran genommen, weil ich mich schon etwas vorgearbeitet habe, und dieses Thema "Person" schon weitestgehend "abgeschlossen" habe. Es ist nämlich so, dass ich zuvor in einem anderen Datenbank-Forum war, und dort das Thema "Person" besprochen wurde. Aber zu deiner Anmerken das Geschlecht als Flag zu nehmen. Ich möchte zu gern die Freiheit aufrecht erhalten. Der Benutzer kann mir unendliche viele Geschlechter-Typen eintragen wie im lustig ist. Allgemein soll der Nutzer seine Stammdaten selbst verwalten, ohne dass ich mich da als Programmierer einmische. Und das wir erst einmal von normalen Situationen und normalen Rahmenbedingungen ausgehen, finde ich soweit in Ordnung, aber es ist nicht verkehrt, wenn man auch theoretisch die Sache betrachten. Ich weiß, dass es Menschen gibt die gefühlte 54685463515 Nationalitäten haben. Also wieso dann eine Einschränkung? Ich finde, man soll Normalfälle und die theoretischen Möglichkeiten in einem betrachten. Sonst muss man hinterher die Datenbank erneut strukturieren. Und meine Benutzeroberfläche passe ich nebenher mit an. Das läuft quasi alles nebenbei.
Eine Signatur ist im Moment nicht verfügbar. Wir arbeiten mit Hochdruck an einer Lösung - für diese Einschränkung bitten wir um ihr Verständnis
Sophus
 
Beiträge: 10
Registriert: Di 27. Jan 2015, 23:25

Re: Datenbankmodellierung [Film/Serie]

Beitragvon RainerH » Fr 30. Jan 2015, 14:27

Hallo Sophus,

Ich muss mich der Meinung von Micha anschließen.
Dein Programm kann alles oder auch nichts davon sein.
Das ist ungefähr so, als würde ich sagen, dass Ich World of WarCraft programmieren will und noch etwas draufsetze.

Zu dem Thema Geschlecht würde ich sagen: männlich, weiblich => Flags => full stop.
Zu dem Thema alle Datenbanken: Das macht man mit OR-Mappern und selbst die können nicht alle Datenbanken ansprechen.

Du kennst bestimmt den Film Matrix - Neo geht zu dem Verräter und fragt Ihn: "Was? - Du siehst Dir die Matrix nur kodiert an?", er sagt: "Ja, die Programmierer und Bildwandler arbeiten an einem prototypen und selbst die brauchen Jahre - um die Matrix zu entschlüsseln, muss man so viel programmieren, dass schaft Keiner!"

Ich will Dir den Mut nicht nehmen, aber ich bezweifle ernsthaft, dass Dein Traumprojekt in Erfüllung geht.
Sonst sehe ich erst mal keine groben Fehler im Modell. Hast Du schon mal einen Prototypen in Access oder so erstellt?
Nach welchem Entwicklungsmodell gehst Du vor? Wasserfall oder Rapid Prototyping oder... ?

--
Rainer
Nimm NICHTS persönlich -- alles ist Feedback...
RainerH
 
Beiträge: 221
Registriert: Fr 1. Nov 2013, 17:58

Re: Datenbankmodellierung [Film/Serie]

Beitragvon Sophus » Fr 30. Jan 2015, 17:22

Hallo RainerH,

inwiefern meinst du, dass mein Programm nichts oder alles sein kann? Weil ich so viele Sachen verwalten möchte, und mich nicht nur - sagen wir mal - auf Filme und Serie konzentriere?

Zu dem Geschlecht. Es gibt ja auch Menschen die können auch ein Zwitter sein. Anfangs meiner Modellierung habe ich daran gedacht mit einem BOOLEAN zu arbeiten. Und das Geschlecht quasi in die Tabelle Person als Feld hinzufüge. Nur gibt es ein Problem, Boolean kennt nur TRUE/FALSE. Aber allgemein, was ist an die Tabelle Geschlecht auszusetzen? Welchen Nachteil erkaufe ich mir hierbei?

Und allgemein zu den unterschiedlichen Datenbanken. Es ist momentan mein Fernziel. Ich habe für mich privat schon Verwaltungs-Programme geschrieben. Irgendwo hat jeder mal klein angefangen :-) Und man entwickelt sich immer weiter. Man macht für sich dann immer neuere "Updates" und so weiter. Begonnen zu lernen habe ich mit der Microsoft Access-Datenbank. Irgendwann wechselte ich aus Neugier nebenbei auf MySQL. Aber zunächst einmal soll die Modellierung unabhängig von den Datenbanken statt finden. Es ist völlig uninteressant von welcher Datenbank wir ausgehen werden. Für mich ist es wichtig, dass ich zusammen mit euch eine Modellierung auf die Beine bekomme.

Zu deiner Frage mit dem Entwicklungsmodell. Ich muss gestehen, dass ich mit beiden Begriffen nichts anfangen kann. Ich muss darüber hinaus auch gestehen, dass ich vorher sowohl beim Programmieren als auch bei den beiden Datenbanken sehr unsauber gearbeitet habe. Und dies soll jetzt mein erster Schritt sein, in welcher ich sauber und professioneller programmieren und modellieren möchte. Es ist für mich sozusagen ein neuer Arbeits-Abschnitt.
-----------

Ich habe eben nachgesehen. Zur Zeit arbeite ich eher nach dem Wasserfall-Prinzip. Neben der Modellierung fertige ich aber meine Benutzeroberfläche an. Ich muss ja die Daten entsprechend verwalten können. Und Funktionen die nichts mit der Datenbank zu tun haben, werden nebenbei auch in mein Programm erstellt. Aber mit der Datenbank per se kann ich schlecht arbeiten, wenn sie noch nicht mal im Ansatz fertig ist.
Eine Signatur ist im Moment nicht verfügbar. Wir arbeiten mit Hochdruck an einer Lösung - für diese Einschränkung bitten wir um ihr Verständnis
Sophus
 
Beiträge: 10
Registriert: Di 27. Jan 2015, 23:25

Re: Datenbankmodellierung [Film/Serie]

Beitragvon RainerH » Di 3. Feb 2015, 22:24

Versuch zu erst deine Anforderungen etwas zu dämpfen, zum Beispiel von realen Fällen wie dem Geschlecht (m/w). Später kannst Du dann immer noch deine 56 Arten (so viel Geschlechtstypen hat Facebook) einbauen. Wenn Du wirklich Step by Step lernen möchtest, dann würde ich an deiner Stelle mit Film/Schauspieler anfangen.

Versuche erst Mal dort alle Freiheiten einzubauen, dann kann es weiterentwickelt wird.
Mehr kann ich Dir noch nicht helfen, da der Use Code noch nicht genau defineirt ist.

--
Rainer
Nimm NICHTS persönlich -- alles ist Feedback...
RainerH
 
Beiträge: 221
Registriert: Fr 1. Nov 2013, 17:58

Re: Datenbankmodellierung [Film/Serie]

Beitragvon Sophus » Di 3. Feb 2015, 23:01

Hallo RainerH,

das "Problem" ist einfach, dass ich schon etwas weiter voran geschritten bin. Und ich gehe auch Schritt für Schritt voran, jedoch beziehe ich gleich alles mit ein. Meine Benutzeroberfläche wird ja nebenbei mitgestalten, so das ich weiß, wie es zum Beispiel aussehen wird, wenn der Anwender einen Schauspieler samt Informationen hinzufügen will.

Gruß
Sophus
Eine Signatur ist im Moment nicht verfügbar. Wir arbeiten mit Hochdruck an einer Lösung - für diese Einschränkung bitten wir um ihr Verständnis
Sophus
 
Beiträge: 10
Registriert: Di 27. Jan 2015, 23:25

Re: Datenbankmodellierung [Film/Serie]

Beitragvon Micha » Mi 4. Feb 2015, 20:18

Hallo Sophus,

womit greifst Du denn auf deine Datenbank(kann ja jede sein) zu?
Das verstehe ich jetzt nicht :roll:

Wie kannst Du ein Frontend entwickeln, wenn noch garnicht die Zieldatenbank definiert ist.
Bitte kläre mich da mal auf...

Gruß,
Micha
Micha
 
Beiträge: 129
Registriert: So 3. Nov 2013, 12:13

Re: Datenbankmodellierung [Film/Serie]

Beitragvon Sophus » Mi 4. Feb 2015, 21:30

Hallo Micha,

deine Fragestellung gehört eigentlich in eine andere Kategorie. Denn meine Modellierung soll zunächst unabhängig von den Datenbank-Typen stattfinden. Sei mir nicht böse, wenn ich dich hier einfach mal abwürge, aber ich kann dir gerne eine private Nachricht senden. Ich möchte nicht, dass hier sogenannte »Off-Topics« entstehen.

Gruß
Sophus
Eine Signatur ist im Moment nicht verfügbar. Wir arbeiten mit Hochdruck an einer Lösung - für diese Einschränkung bitten wir um ihr Verständnis
Sophus
 
Beiträge: 10
Registriert: Di 27. Jan 2015, 23:25

Re: Datenbankmodellierung [Film/Serie]

Beitragvon Micha » Mo 16. Feb 2015, 00:18

Ok,

ich drücke Dir die Daumen, dass dein Projekt richtig gut wird.
Wenn es dann fertig ist, würde ich dann mal gerne das gesamte ER-Diagramm sehen?

Evtl. lannst Du es ja mal hier hochalden im Forum, damit auch andere Leser davon lernen können.

Gruß,
Micha
Micha
 
Beiträge: 129
Registriert: So 3. Nov 2013, 12:13

Nächste

Zurück zu Datenbankdesign und Datenmodellierung

 


  • Related topics
    Antworten
    Zugriffe
    Letzter Beitrag

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

cron
  • Jetzt Fan werden
  • Newsletter abonnieren? Hier anmelden!

    Alle Informationen aus dem Portal, Blog und Forum in einem Newsletter!

    E-Mail-Adresse: