Avdeling for økonomi, informatikk og samfunnsfag Eksamen i IBE 210 - Databaser H 2008 Eksamensdag : 5 desember 2008 Tid : 9.00 13.00 Faglærer/telefonnummer : Arne Løkketangen 99690939 Hjelpemidler : Alle trykte og skrevne Antall sider inkl. forsiden : 5 Målform : Bokmål Noen generelle råd: Kladdeark skal ikke leveres. Disse blir ikke sensurert. 1
Oppgave 1. Datamodellering 25% En ny take-away pizza har nettopp åpnet, og trenger en database for å lagre informasjon om kunder, pizza salget, priser og oppskrifter. Pizzaene selges i 3 størrelser og 2 typer bunn. Kundene kan bestille ekstra topping på alle pizzaer. Firmaet vil også kunne lagre hva hver kunde har bestilt, slik at spesialtilpassede tilbud kan lages senere. Tegn en datamodell for dette og tilhørende relasjonstabeller Angi hvilke forutsetninger du gjør, særlig hvis noe er uklart. Oppgave 2. SQL 40% Gitt følgende data modell: SALG *salg_nr salg_antall ITEM *itemname Itemtype itemcolor AVDELING *avd_navn avd_etasje avd_telefon LEVERANSE *leveranse_nr lev_mengde LEVERANDØR *leverandør_nr leverandør_navn Avdelingens sjef Ansattes avdeling ANSATT *ansatt_nr ansatt_fnavn ansatt_lønn Sjefen til den ansatte 2
Og følgende relasjonstabeller: SALE salg_nr salg_antall itemname avd_navn ITEM item_navn item_type item_farge LEVERANSE leveranse_nr leveranse_mengde item_navn avd_navn leverandør_nr LEVERANDØR leverandør_nr leverandør_navn AVDELING avd_navn avd_etasje avd_telefon ansatt_nr ANSATT ansatt_nr ansatt_fnavn ansatt_lønn avd_navn sjef_nr Lag SQL spørringer basert på disse, som svar på følgende spørsmål: a) Finn alle blå ting (item) som er av type K b) Finn alle ting (item) som ble levert til andre avdelinger enn Bøker c) Finn de avdelingene som aldri har solgt Fiskestang d) Finn de ansatte som jobber på en annen avdeling enn sjefen sin. e) Finn de tingene (item) som man ikke har solgt noe av. f) Finn navnene til de ansatte som tjener mer enn sjefen som tjener minst 3
Oppgave 3. Normalisering 15% Du jobber med å lage et standard databasesystem for skolemusikk-korps. Et musikkorps du har tatt kontakt med bruker en regnearktabell for å holde styr på medlemmene. Tabellen inneholder de opplysningene du trenger å lagre i standardsystemet, men du vil utvikle en løsning basert på relasjonsdatabaser. Mnr Navn Født Kan spille Har Foresatte Adresse Postnr Poststed Telefonnr instrument 211 Per Ås 83 Trompet Kornett 124 130 Tore og Kari Ås Bråsvingen 1234 Soten 12312312 212 Jo Nes 84 Klarinett Sax 111 84 Stine og Ole Nes Skrusvingen 1234 Soten 12323423 213 Tor Ås 86 Trommer 72 Tore og Kari Ås Bråsvingen 1234 Soten 12312312 215 Siv Nesse 86 Fløyte 94 Kjell og Olaug Nesse Svingveien 1235 Asken 12323456 a. Hvilke problemer er det forbundet med å lagre dataene som i tabellen over? b. Hvilken normalform har dataene i tabellen? c. Vis hvilke determineringer (functional dependencies) som finnes. d. Omform tabellen over til 3 dje normalform. Vis hvilke tabeller du ender opp med, samt deres attributter, nøkler og kardinaliteten mellom relasjonene. Si hvilke forutsetninger du må gjøre. 4
Oppgave 4. Integritet og Triggere 10% Svar ganske kort på følgende spørsmål: a) Hva er forskjellen på et before image og et after image, og når blir de brukt? b) Hva er låsing, og hvilke typer låsing finnes? c) Gi et eksempel på en vranglås. d) Hva er formålet med triggere? e) Hva mener vi med integritet i databasesammenheng? f) Hvorfor tilstreber vi en database som har full integritet? g) Per er i banken, som dessverre ikke har noen samtidighetskontroll på databasen sin. Når han ankommer, har Per NOK 250 på kontoen. Han utfører følgende ting samtidig, når kontoen viste at han hadde NOK 250 på kontoen, og de nye saldoene ble skrevet tilbake i følgende rekkefølge: Sette inn NOK 250. Betale regning på NOK 100. Få tilbake penger på et kjøp, NOK 50. Hva er saldoen til slutt? Oppgave 5. Masse andre spørsmål 10% Svar kort på følgende spørsmål: a) Hvis en primærnøkkel består av tre attributter, kan en av dem være null, så lenge de andre to ikke er det? b) Hvorfor er det så vanskelig å lage et datavarehus? c) Hva er forskjellen på DDL og DML? d) Hva er en determinant? e) Hva er en Multivalued Dependency? f) Hva er et data-marked (data mart) og hvorfor blir det brukt? g) Hva er en sammensatt nøkkel? 5