IN2090-ukesoppgaver: Uke 3

ER-modellering

Med gjevne mellomrom finner man farlige stoffer i ulike varer, enten matvarer, byggematerialer, osv. Disse m? da kalles tilbake og de som er ansvarlig for produksjon eller design m? kontaktes slik at feilen kan opprettes. Du er ansatt av et nytt statlig organ som skal holde styr p? informasjon som kan v?re nyttig i en slik sammenheng, og m? derfor lage en database over varer og deres ingredienser, firmaer, ansatte, osv. For ? lage en robust og god database m? du derfor f?rst lage en ER-modell som fanger den relevante informasjonen om dette domene.

I ukens oppgaver skal du alts? lage en ER-modell som modellerer utsagnene under. Du kan bruke Dia eller andre programmer (se semestersiden for mer info) eller tegne for h?nd.

Oppgave 1 - Varer og firmaer

Du starter med ? modellere varer og firmaer, og f?r oppgitt f?lgende informasjon fra domene-ekspertene:

  • En vare har en unik strekkode, et navn, og ingredienser (f.eks. “salt”, “fruktose”, “E224”, osv.). Det kan v?re mange ingredienser per vare.
  • En vare selges av et firma for en gitt pris. ?n vare kan selges av mange firmaer og et firma kan potensielt selge mange varer. Firmaene vi ?nsker ? lagre selger minst én vare.
  • Firmaer har et navn, en adresse som igjen best?r av postkode, gateadresse og poststed. Poststed kan utledes fra postkode. I tillegg har firmaer et unikt 8-sifret registreingsnummer.

Oppgave 2 - Avdelinger

Videre forst?r du at firmaer kan v?re veldig store, og at det derfor ikke nytter ? fors?ke ? kontakte et firma sentralt dersom det er noe galt med én av varene firmaet selger. Du trenger derfor ? ogs? lagre informasjon om strukturen til firmaene, og f?r da f?lgende informasjon:

  • Hvert firma kan best? av en rekke avdelinger. Hver avdeling betegnes med et navn, men dette navnet er kun unikt innen firmaet det tilh?rer (f.eks. kan det jo tenkes at to avdelinger fra hvert sitt firma begge heter “Avdeling for h?rprodukter”). Et firma kan naturligvis inneholde mange avdelinger, men trenger ikke inneholde noen avdelinger.
  • Avdelingene er ansvarlige for ulike aspekter ved en vare som firmaene produserer (f.eks. produksjon, salg eller design), og det er slik at én vare kan ha mange avdelinger som er ansvarlige for den, mens en avdeling kan v?re ansvarlig for mange varer. En vare trenger ikke ha noen avdeling som er ansvarlige for den, og en avdeling trenger heller ikke v?re ansvarlige for noen varer.

Oppgave 3 - Ansatte

Dersom det er en kritisk situasjon kan det v?re best ? kontakte de ansatte i en avdeling direkte. Du innser derfor at du ogs? ?nsker ? lagre informasjon om de ansatte i de ulike avdelingen. Du f?r da samlet f?lgende generelle informasjon etter ? ha bes?kt ulike avdelinger:

  • Hver avdeling har ansatte, som er ansatt for en gitt periode. En avdeling kan ha mange ansatte. Videre er hver ansatt ansatt ved n?yaktig én avdeling.
  • Hver ansatt har et navn, et unikt telefonnummer, en stillingstittel (slik som “produktansvarlig”, “designer”, “produksjonsmedarbeider”, osv.). De ansatte har ogs? en ID som er unik for alle ansatte p? tvers av alle avdelinger og firmaer.
  • Hver avdeling har ogs? n?yaktig én ansatt som er avdelingens leder. En ansatt kan kun v?re leder for avdelingen den er ansatt ved.

L?sningsforslag: