Case TV Company (en)
TV Company Case
A TV company wishes to develop a database to store data about the TV series that the company produces. The data includes information about actors who play in the series, and directors who direct the episodes of the series.
Actors and directors are employed by the company. A TV series are divided into episodes. Each episode may be transmitted at several occasions. An actor is hired to participate in a series, but may participate in many series. Each episode of a seriesis directed by one of the directors, but different episodes may be directed by differentdirectors.
Examples of database queries:
- Which actors play in the series Big Sister?
- In which series does the actor Bertil Bom participate?
- Which actors participate in more than one series?
- How many times has the first episode of the series Wild Lies been transmitted? Atwhat times?
- How many directors are employed by the company?
- Which director has directed the greatest number of episodes?
Develop an E/R model of this system. Find attributes of the entity sets. Determine whichof the attributes that can be used as primary keys.
Hulp
De opdracht is in het Engels, zorg ervoor dat je alles goed begrijpt. Zoek woorden op die je niet begrijpt. Als je de tekst verder niet begrijpt vraag het dan aan je collega-student of aan de docent.
Maak een verzameling van gegevens die je wilt gaan vastleggen. Schrijf hierbij alle atributen op. Let op dat je attributen zoveel mogelijk opdeeld. Adres wordt in principe opgedeeld in 'straatnaam', 'huisnummer' en 'toevoeging'.
Attributen die een vaste relatie met elkaar hebben leg je niet apart vast. Bedrag met en zonder btw leg je dus niet vast in twee kolommen. Je legt bedrag zonder btw vast en het btw percentage als deze variabel is.
Velden waarvan de waarde variaeert naarmate de tijd verloopt leg je ook niet vast. Een voorbeeld hiervan is leeftijd. In plaats van leeftijd leg je geboortedaum vast.
Deel deze gegevens op in groepjes (tabellen) zodanig dat je geen informatie dubbel hoeft op te slaan en dat er logische groepjes ontstaan. Op deze manier zal het aanpassen of verwijderen van gegevevens ook maar op één plek hoeven te gebeuren.
Definieer je relaties.
Kijk bij het definiëren van je relaties goed naar de tekst en naar de queries die je vanuit dit design kunnen worden gesteld.
Check
Check nog een keer door de hele tekst terug te lezen en bij elk stukje informatie te kijken of dat klopt in je datamodel.
Check of al je primary keys uniek zijn, bij twijfel maak je een apart ID aan.
Check of je relaties een foreign- en primary key heben.
Check bij 1:1 relaties of het niet logischer is om de twee tabellen samen te voegen.
Check nog en keer goed of er geen informatie dubbel opgeslagen wordt.