dbsys.info

Film og kino

Denne oppgaven tar for seg to beslektede systemer: en filmdatabase og et billettsystem for en kinoeier.

Filmdatabase

Databasen skal inneholde informasjon om kinofilmer. Om hver film skal det lagres tittel, spilletid i minutter og produksjonsår. En film tilhører nøyaktig en sjanger. Aktuelle sjangere er drama, action, komedie, kriminal, thriller, western, tegnefilm, dokumentar. Filmtilsynet tildeler hver film en nedre aldersgrense, som kan være 7, 11, 15, eller 18 år, eventuelt merket "for alle".

Databasen skal også inneholde informasjon om personer som har deltatt i produksjonen av filmer, både skuespillere og andre. Om alle personer skal følgende opplysninger lagres: fornavn, etternavn, kjønn, fødselsdato og eventuelt dødsdato. Om skuespillere skal rollenavnet lagres, og om rollen er en hovedrolle, birolle eller statistrolle. Om øvrige personer lagres kun jobbtittelen, som for eksempel produsent eller fotograf.

Billettreservasjon

En bedrift eier et antall kinoer. Hver kino har en adresse og består av flere kinosaler. Hver kinosal har et antall nummererte rader som hver har et antall nummererte seter.

En kinoforestilling skjer i en gitt kinosal på et bestemt tidspunkt. En forestilling viser en bestemt film. Om hver film blir det lagret en tittel, et sammendrag, spilletid, en aldersgrense og full billettpris. Forestillinger i samme kinosal må ikke overlappe i tid. Pensjonister, studenter og barn under 12 år betaler halv pris. På noen forestillinger opererer man med nummererte billetter.

Det er mulig å reservere et antall plasser på en bestemt forestilling, enten via telefon eller internett. Reservasjonen blir tildelt et unikt reservasjonsnummer. Antall solgte billetter må ikke overstige antall ledige plasser i kinosalen. På forestillinger med nummererte billetter kan en enkelt reservasjon gjelde "ikke sammenhengende" seter, for eksempel sete 12 på rad 4 og sete 21 på rad 7.

Systemet skal kunne produsere rapporter som viser billettsalg fordelt på filmer og tidspunkter, både i antall seter og i kronebeløp.

Oppgaver

Følgende oppgaver gjelder begge databasesystemene.

  1. Lag en begrepsmessig datamodell (ER-diagram) for databasen. Legg eventuelt ved en liste over forretningsregler som ikke lar seg beskrive ved hjelp av E/R.
  2. Implementer datamodellen. Gjør rede for valg av datatyper og indekser. Prøv å definere forretningsregler direkte på tabellene.