Sophus
SQL-Guru
- Beiträge
- 135
Hallo Leute,
nachdem ich nun ein geeignetes und kostenloses Programm (Dia) gefunden habe, möchte ich mit euch zusammen nun in kleinen Schritten beginnen meine Datenbank zu modellieren.
Für diejenigen, die es noch nicht wissen, geht es hier zunächst einmal um eine Film-Serie Datenbank. Eine Datenbank, in welcher Informationen über Filme und Serien gespeichert werden. Beginnen möchte ich mit der Person, die in Filmen und Serien als Schauspieler dienen.
So, was sehen wir hier? Wir sehen erst einmal fünf Tabellen (Nationalität, Geschlecht, Geburtsort, Status, Person) und eine Zwischentabelle (Nationalität_Person).
Die Tabellen Geschlecht und Geburtsort sind selbsterklärend. Jedoch möchte ich kurz darauf eingehen, weshalb ich sie ausgelagert habe. Mir geht es allgemein darum, dass ich in meiner Datenbank Redundanten vermeiden will. Darüber hinaus möchte ich einen Datensatz in Real auch nur einmal ändern. Beispiel, ich habe in mich in der Tabelle Geschlecht vertippt, anstatt "männlich" habe ich "mnnälich" geschrieben, und mir fällt es wesentlich später auf, während ich angenommen schon 100 Datensätze habe. So müsste ich alle 100 Datensätze abarbeiten oder einen kleinen Code in meinem Programm schreiben, der die Datensätze nacheinander ausliest, und sie entsprechend ändert. In meinem Fall brauche ich aber nur einmal eine Korrektur bzw. Änderung vornehmen, und die Änderung bzw. Korrektur ist dann auch in anderen 100 Datensätzen wirksam. Des Weiteren betrachte ich diese beiden Tabellen, Geschlecht und Geburtsort, als Stammdaten.
In der Tabelle Status kommt nicht, wie vermutet der Beziehungsstatus rein, sondern der Status darüber, ob die Person bzw. der Schauspieler bereits tot ist oder noch lebt. Wenn er tot ist, wird auch sein Todeszeitpunkt vermerkt.
Kommen wir nun zur Nationalität. Ich habe mich ein wenig schlau gemacht, und mich gefragt, wie viele Nationalität ein Mensch besitzen kann? Nach meiner logischen Berechnung komme ich auf drei. Angenommen das Kind kommt in Amerika zur Welt, der Vater des Kindes ist Deutscher, und die Mutter des Kindes ist Spaniern. Also haben wir hier folgende Konstellation. Eine Person kann mehrere Nationalität besitzen, und eine Nationalität kann von mehreren Personen beansprucht werden. Also viele Personen viele Nationalitäten und andersrum. Daher die Zwischentabelle Nationalität_Person.
Anmerkungen: Euch ist sicherlich aufgefallen, dass ich nicht mit Beziehungs-Bezeichnungen wie 1:n oder n:m arbeite. Der Hintergrund ist folgender: Ich bin der Ansicht, dass in Datenbanken heutzutage keine Beziehungen mehr eingearbeitet werden müssen. Die Datenbanken werden auf der Seite meines Projektes erstellt und strukturiert. Hinzu kommt, dass das Anlegen und Abrufen von meinem Projekt aus stattfindet. Des Weiteren ist euch sicherlich aufgefallen, dass bei allen ID-Feldern, die als PK (Primary Key) deklariert worden sind, den Feldtyp Long Integer haben, und nicht AutoIncrement. Das liegt daran, dass mein Programm die IDs vergibt. Ich werde dabei in meinem Programm mit der GUID arbeiten.
Jetzt seid ihr am Zug. Ich freue mich über eure Anmerkungen und Kritik sowie Verbesserungsvorschläge.
Euro Sophus
nachdem ich nun ein geeignetes und kostenloses Programm (Dia) gefunden habe, möchte ich mit euch zusammen nun in kleinen Schritten beginnen meine Datenbank zu modellieren.
Für diejenigen, die es noch nicht wissen, geht es hier zunächst einmal um eine Film-Serie Datenbank. Eine Datenbank, in welcher Informationen über Filme und Serien gespeichert werden. Beginnen möchte ich mit der Person, die in Filmen und Serien als Schauspieler dienen.
So, was sehen wir hier? Wir sehen erst einmal fünf Tabellen (Nationalität, Geschlecht, Geburtsort, Status, Person) und eine Zwischentabelle (Nationalität_Person).
Die Tabellen Geschlecht und Geburtsort sind selbsterklärend. Jedoch möchte ich kurz darauf eingehen, weshalb ich sie ausgelagert habe. Mir geht es allgemein darum, dass ich in meiner Datenbank Redundanten vermeiden will. Darüber hinaus möchte ich einen Datensatz in Real auch nur einmal ändern. Beispiel, ich habe in mich in der Tabelle Geschlecht vertippt, anstatt "männlich" habe ich "mnnälich" geschrieben, und mir fällt es wesentlich später auf, während ich angenommen schon 100 Datensätze habe. So müsste ich alle 100 Datensätze abarbeiten oder einen kleinen Code in meinem Programm schreiben, der die Datensätze nacheinander ausliest, und sie entsprechend ändert. In meinem Fall brauche ich aber nur einmal eine Korrektur bzw. Änderung vornehmen, und die Änderung bzw. Korrektur ist dann auch in anderen 100 Datensätzen wirksam. Des Weiteren betrachte ich diese beiden Tabellen, Geschlecht und Geburtsort, als Stammdaten.
In der Tabelle Status kommt nicht, wie vermutet der Beziehungsstatus rein, sondern der Status darüber, ob die Person bzw. der Schauspieler bereits tot ist oder noch lebt. Wenn er tot ist, wird auch sein Todeszeitpunkt vermerkt.
Kommen wir nun zur Nationalität. Ich habe mich ein wenig schlau gemacht, und mich gefragt, wie viele Nationalität ein Mensch besitzen kann? Nach meiner logischen Berechnung komme ich auf drei. Angenommen das Kind kommt in Amerika zur Welt, der Vater des Kindes ist Deutscher, und die Mutter des Kindes ist Spaniern. Also haben wir hier folgende Konstellation. Eine Person kann mehrere Nationalität besitzen, und eine Nationalität kann von mehreren Personen beansprucht werden. Also viele Personen viele Nationalitäten und andersrum. Daher die Zwischentabelle Nationalität_Person.
Anmerkungen: Euch ist sicherlich aufgefallen, dass ich nicht mit Beziehungs-Bezeichnungen wie 1:n oder n:m arbeite. Der Hintergrund ist folgender: Ich bin der Ansicht, dass in Datenbanken heutzutage keine Beziehungen mehr eingearbeitet werden müssen. Die Datenbanken werden auf der Seite meines Projektes erstellt und strukturiert. Hinzu kommt, dass das Anlegen und Abrufen von meinem Projekt aus stattfindet. Des Weiteren ist euch sicherlich aufgefallen, dass bei allen ID-Feldern, die als PK (Primary Key) deklariert worden sind, den Feldtyp Long Integer haben, und nicht AutoIncrement. Das liegt daran, dass mein Programm die IDs vergibt. Ich werde dabei in meinem Programm mit der GUID arbeiten.
Jetzt seid ihr am Zug. Ich freue mich über eure Anmerkungen und Kritik sowie Verbesserungsvorschläge.
Euro Sophus
Zuletzt bearbeitet von einem Moderator: