LØSNINGSFORSLAG AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Torsdag 6. desember 2007,

Like dokumenter
AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Torsdag 6. desember 2007,

Løsningsforslag: Avsluttende eksamen i TDT4110 Informasjonsteknologi, grunnkurs Torsdag 6. desember :00 13:00

AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Tirsdag 19. desember 2006,

Løsningsskisse til kontinuasjonseksamen i TDT4105 Informasjonsteknologi, grunnkurs Onsdag 10. august

AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs En vakker dag i August 2007,

Avsluttende eksamen i TDT4110 Informasjonsteknologi, grunnkurs En vakker dag i august :00 13:00

LØSNINGSFORSLAG AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs En vakker dag i August 2007,

LØSNINGSFORSLAG Kontinuasjonseksamen i TDT4110 Informasjonsteknologi, grunnkurs Onsdag 10. august

Kontinuasjonseksamen i TDT4110 Informasjonsteknologi, grunnkurs ONSDAG 10. august

LØSNINGSFORSLAG AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Tirsdag 19. desember 2006,

Løsningsskisse til kontinuasjonseksamen i TDT4105 Informasjonsteknologi, grunnkurs Onsdag 10. august

KONTINUASJONSEKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs 15. August 2008,

KONTINUASJONSEKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Tirsdag 8. august,

Kontinuasjonseksamen i TDT4105 Informasjonsteknologi, grunnkurs XXXdag XX. august

ALGORITMER OG DATASTRUKTURER

Avsluttende eksamen i TDT4110 og TDT4115 Informasjonsteknologi, grunnkurs 8. august :00 13:00

LØSNINGSFORSLAG KONTINUASJONSEKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs 15. August 2008,

AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Mandag 19. desember,

Løsningsforslag: Avsluttende eksamen i TDT4110/IT1102 Informasjonsteknologi, grunnkurs Tirsdag 10. august :00 13:00

ALGORITMER OG DATASTRUKTURER

ALGORITMER OG DATASTRUKTURER

LØSNINGSFORSLAG KONTINUASJONSEKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Tirsdag 8. august,

LØSNINGSFORSLAG AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Mandag 19. desember,

Løsningsskisse til avsluttende eksamen i TDT4105 Informasjonsteknologi, grunnkurs Torsdag 8. desember :00 13:00

Avsluttende eksamen i TDT4110/IT1102 Informasjonsteknologi, grunnkurs Snorsdag x. august :00 13:00

ALGORITMER OG DATASTRUKTURER

Norsk informatikkolympiade runde

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2017

UNIVERSITETET I OSLO

TDT4105 Informasjonsteknologi, grunnkurs

Avsluttende eksamen i TDT4110/IT1102 Informasjonsteknologi, grunnkurs Tirsdag 21. desember

Norsk informatikkolympiade runde

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs. Torsdag 29. November 2007 Kl

Avsluttende eksamen i TDT4105 Informasjonsteknologi, grunnkurs Tirsdag 21. desember

LØSNINGSFORSLAG, EKSAMEN I ALGORITMER OG DATASTRUKTURER (IT1105)

Norsk informatikkolympiade runde

TDT4110 IT Grunnkurs Høst 2015

Løsningsforslag til kontinuasjonseksamen i TDT4105 Informasjonsteknologi, grunnkurs Mandag 13. august

ALGORITMER OG DATASTRUKTURER

AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Mandag 8. desember 2008,

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2016

UNIVERSITETET I OSLO

Norsk informatikkolympiade runde

UNIVERSITETET I OSLO

ALGORITMER OG DATASTRUKTURER

KONTINUASJONSEKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs 5. august 2009,

TDT4110 Informasjonsteknologi grunnkurs: Eksempler. Mangekanter

UNIVERSITETET I OSLO

Avsluttende kontinuitetseksamen i TDT4110 Informasjonsteknologi, grunnkurs En vakker dag i august :00 13:00

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid:

LØSNINGSFORSLAG AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Mandag 8. desember 2008,

HØGSKOLEN I SØR-TRØNDELAG

TDT4110 IT Grunnkurs Høst 2012

Avsluttende eksamen i TDT4110 Informasjonsteknologi, grunnkurs Mandag 8. desember :00 13:00

TDT4110 IT Grunnkurs Høst 2016

BOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl

Algoritmer og Datastrukturer

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

UNIVERSITETET I OSLO

EKSAMEN. Emne: Webprogrammering med PHP (kont.) Webprogrammering 1 (kont.) Eksamenstid:

LØSNINGSFORSLAG AVSLUTTENDE EKSAMEN TDT 4110, TDT 4115 og IT1102 Informasjonsteknologi, grunnkurs Mandag 19. desember,

UNIVERSITETET I OSLO

Eksamensoppgave i TDT4105 Informasjonsteknologi grunnkurs, med Matlab LØSNINGSFORSLAG

Norsk informatikkolympiade runde. Sponset av. Uke 46, 2015

TDT4105 Informasjonsteknologi grunnkurs: Uke 42 Strenger og strenghåndtering

Algoritmer og Datastrukturer

Eksamen i Internetteknologi Fagkode: IVA1379

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Norsk informatikkolympiade runde

TDT4105 Informasjonsteknologi, grunnkurs

HØGSKOLEN I SØR-TRØNDELAG

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

Innhold. 2 Kompilatorer. 3 Datamaskiner og tallsystemer. 4 Oppsummering. 1 Skjerm (monitor) 2 Hovedkort (motherboard) 3 Prosessor (CPU)

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs

Palindrom - iterativt

EKSAMEN I EMNA TDT4110 / TDT4115 INFORMASJONSTEKNOLOGI GK med Forslag til løysing. Fredag 12. august 2005 KL

TDT4102 Prosedyreog objektorientert programmering Vår 2016

AVSLUTTENDE EKSAMEN I. TDT4160 Datamaskiner Grunnkurs Løsningsforslag. Torsdag 29. November 2007 Kl

TDT4105 IT Grunnkurs Høst 2016

UNIVERSITETET I OSLO

Avsluttende eksamen i TDT4120 Algoritmer og datastrukturer

TDT4110 IT Grunnkurs Høst 2014

Avsluttende eksamen i TDT JSP Informasjonsteknologi, grunnkurs Torsdag 8. desember :00 13:00

Alternativ dag for teoriforelesning. Intro. Torsdag 12:15-14:00 R1

UNIVERSITETET I OSLO

EKSAMENSOPPGAVE / EKSAMENSOPPGÅVE

UNIVERSITETET I OSLO

HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL

Bruk piazza for å få rask hjelp til alles nytte!

O-notasjon og kompleksitet

Auditorieøving 2. Matlab. TDT4105 Informasjonsteknologi, grunnkurs. Brukernavn. Fullt navn

Løsningsforslag Kontinuasjonseksamen i TDT4110 Informasjonsteknologi - grunnkurs

Web-programmering med JSP Løsningsforslag leksjon 3

EKSAMEN. Emne: Algoritmer og datastrukturer

EKSAMENSFORSIDE Skriftlig eksamen med tilsyn

Seksjon 1. INF2270-V16 Forside. Eksamen INF2270. Dato 1. juni 2016 Tid Alle trykte og skrevne hjelpemidler, og en kalkulator, er tillatt.

Eksamensoppgave i TDT4120 Algoritmer og datastrukturer

Løsningsforslag for eksamen i fag SIF8010 Algoritmer og datastrukturer Lørdag 9. august 2003, kl

TDT4110 Informasjonsteknologi grunnkurs: Uke 48 Oppsummering/Spørretime. Professor Alf Inge Wang

HØGSKOLEN I SØR-TRØNDELAG

Transkript:

Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap BOKMÅL LØSNINGSFORSLAG AVSLUTTENDE EKSAMEN TDT 4105 Informasjonsteknologi, grunnkurs Torsdag 6. desember 2007, 9.00 13.00 Faglig kontakt under eksamen: Jørn Amundsen, tlf 918 97 897 Hjelpemidler (C): Tilleggshefte I, Introduksjon til HTML, CSS, JSP og MYSQL (alle utgaver) Tilleggshefte II, introduksjon til: MATLAB (alle utgaver) Typegodkjent kalkulator HP30S. Sensurdato: 7. januar 2008. Resultater gjøres kjent på http://studweb.ntnu.no og sensurtelefon 81548014. Oppgavesettet inneholder 5 oppgaver. Det er angitt i prosent hvor mye hver oppgave og hver deloppgave teller ved sensur. Les igjennom hele oppgavesettet før du begynner å lage løsning. Disponer tiden godt! Gjør rimelige antagelser der du mener oppgaveteksten er ufullstig, skriv kort hva du antar. Svar kort og klart, og skriv tydelig. Er svaret uklart eller lenger enn nødvig trekker dette ned. Lykke til!

Oppgave 1 Flervalgsoppgaver (20 %) Bruk vedlagt svarskjema for å svare på denne oppgaven. Du kan få nytt ark av eksamensvaktene dersom du trenger dette. Kun ett svar er helt riktig. For hvert spørsmål gir korrekt avkryssing 1 poeng. Feil avkryssing eller mer enn ett kryss gir -1/2 poeng. Blankt svar gir 0 poeng. Du får ikke mindre enn 0 poeng totalt på denne oppgaven. Der det er spesielle uttrykk står den engelske oversettelsen i parentes. 1. Brunfrid har klart å knekke passordet til en database med personalinformasjon på NTNU etter flere forsøk, men får kalde føtter og bestemmer seg for ikke å få innsyn i databasen. Har Brunfrid gjort noe ulovlig i følge loven? a) Nei b) Ja c) Loven sier ikke noe om dette 2. Hva er hvit-boks testing i systemutvikling? a) Testing som innebærer at man tar i betraktning systemets eller modulens indre oppbygning b) Testing som innbærer at man ikke ser på systemets eller modulens indre oppbygning c) Testing hvor man ser hvordan de ulike delene i et system fungerer sammen 3. Hvor mange bit trenger du til å kode et symbol i alfabetet Ω = {A,B,C,D} ved enkel koding hvor alle symbolene er representert med samme antall bit. a) 2 bits b) 3 bits c) 4 bits 4. Hvilken type minne har normalt lavest tilgangstid (access time) i en datamaskin? a) Primærminne b) Cache c) Registre 5. Man må søke Datatilsynet om konsesjon: a) Man trenger aldri å søke Datatilsynet om konsesjon. b) Når man oppretter et personregister med sensitive personopplysninger. c) Alltid når man oppretter alle typer personregister. 6. En ulempe med åpen kildekode (open source) er: a) Det er vanligvis dyrt å anskaffe. b) Du har ingen mulighet til å re på produktet selv. c) Du har normalt ikke krav på brukerstøtte. Side 2 av 15

7. En ruter (router): a) Er kun en signalforsterker. b) Den ser fysiske adresser og kan dermed kun splitte et nettverk. c) Den ser nettverksadresser og kan derfor koble sammen forskjellige typer nettverk. 8. En vanlig datamaskin (PC) inneholder typisk: a) Prosessor, primærlager (RAM), I/O-enheter og systembuss. b) Prosessor, primærlager (RAM), DNS-lager, I/O-enheter og systembuss. c) Prosessor, primærlager (RAM), I/O-enheter og GSM-bro. 9. En prosessor: a) Er flink til å legge sammen to tall. b) Får raskt oversikt over store bilder. c) Er flink til å løse abstrakte problemer uten menneskelig inngripen. 10. Når er binærsøk normalt raskere enn sekvensielt søk? a) Binærsøk er alltid raskere enn sekvensielt søk. b) Binærsøk er aldri raskere enn sekvensielt søk. c) Binærsøk fungere bare på sorterte datamengder og er her normalt raskere enn sekvensielt søk. 11. Hva er hovedoppgaven til en navnetjener? a) Oversette IP-adresser til domenenavn. b) Oversette domenenavn til IP-addresser. c) Holde rede på variabelnavn når et program kjører. 12. En protokoll er: a) Et sett av kommunikasjonsregler. b) Et program som oversetter kildekode til kode som kan kjøres på en datamaskin. c) Hovedkomponent i en vanlig datamaskin. 13. I det binære tallsystemet, hva er summen av 010 og 101? a) 101 b) 1001 c) 111 Side 3 av 15

14. I det binære tallsystemet, hva er 010 multiplisert med 101? a) 111 b) 1010 c) 1111 15. Hva er inspeksjon i systemutvikling? a) Inspeksjon innebærer å finne feil eller forsikre seg om at feil ikke finnes uten å kjøre programmet b) Inspeksjon innebærer å undersøke om de som programmerer lager ryddige programmer som er lette å lese c) Inspeksjon innebærer å finne feil i koden ved å kjøre programmet 16. Hvilket av følge utsagn er usant? a) Protokollen HTTP befinner seg i applikasjonslaget og bygger på TCP/IP. b) Nettverkslaget har ansvaret for å rute (viderese) pakkene i nettet. c) En melding som skal ses over Internett deles opp i pakker. Pakkene kobles så sammen og ses sammen over nettet. 17. Gitt ei sortert liste av 280 verdier. Vi søker etter en verdi som ikke finnes i lista. Hvor mange sammenligninger må vi i verste fall gjøre ved bruk av binærsøk? a) 140 b) 8 c) 9 18. Hva er usant om adresser på Internett? a) En IP-adresse kan representeres vha det vanlige tallsystemet som 4 tall fra og med 0 og til og med 255 adskilt med punktum. b) En IP-adresse er på 32 bit, noe som betyr at det finnes 2 32 unike IP-adresser c) Et system som heter DAS (Domain Access System) holder orden på koblingen mellom en tekstlig adresse (for eksempel www.vg.no) og den tilhøre IP-adressen 19. Gitt at vi skal søke etter tallet 4 i den sorterte datamengden 1,4,8,9,11,14,23. Hvilke tall vil bli sjekket dersom vi anver algoritmen binærsøk (avrund nedover ved partall antall elementer)? a) 1,4 b) 9,4 c) 9,1,4 20. Hva defineres ikke som sensitiv informasjon iflg. Personopplysningsloven? a) Rasemessig eller etnisk bakgrunn, eller politisk, filosofisk eller religiøs oppfatning b) Eksamensresultater c) Medlemskap i fagforeninger Side 4 av 15

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 b a a c b c c a a c b a c b a c c c b b Side 5 av 15

Oppgave 2 Grunnlegge programmering (30 %) a) (5 %) Skriv en funksjon hilb som tar inn et heltall n og returnerer en tabell med n rader og n kolonner hvor hvert element har verdien H(i, j) = 1/(i + j 1). function H = hilb(n) H = zeros(n); % kan utelates for i = 1:n for j = 1:n H(i,j) = 1/(i+j-1); b) (10 %) Lag funksjonen kodmelding som tar inn ei liste med et like antall heltall og returnerer en kodet versjon av lista hvor to og to elementer parvis har byttet plass. Får funksjonen inn L 1, L 2, L 3, L 4,... skal L 2, L 1, L 4, L 3,... returneres. Eksempel: med lista 12, 65, 34, 76 skal resultatet bli 65, 12, 76, 34. function L = kodmelding(l) for i = 1:2:length(L) tmp = L(i); L(i) = L(i+1); L(i+1) = tmp; Side 6 av 15

c) (5 %) Gjør nødvige ringer for at denne funksjonen skal sortere lista i synke istedet for stige rekkefølge. Skriv ned både linjenummer og ny programkode på setning(er) du rer. 1 function liste = sorter(liste) 2 harbyttet = true; 3 while (harbyttet) 4 harbyttet = false; 5 for i = 2:length(liste) 6 if (liste(i) < liste(i-1)) 7 tmp = liste(i); 8 liste(i) = liste(i-1); 9 liste(i-1) = tmp; 10 harbyttet = true; 11 12 13 14 6 if (liste(i) > liste(i-1)) d) (10 %) Lag en funksjon curvelen som beregner omtrentlig lengde av en graf f(x), beregnet i N punkter x 1,..., x N langs x-aksen med lik avstand h. Verdiene f(x 1 ),..., f(x N ) er lagret i ei liste Y = y 1,..., y N. Funksjonen curvelen tar inn to verdier (h,y) og returnerer en verdi s som er summen av linjestykkene s i, hvor s 2 i = h2 + (y i+1 y i ) 2. Se figur 1 for sammenhengen mellom x i, y i og s i. y y 1 s i y N h x 1 x i x i+1 x N x function s = curvelen(h, Y) Figur 1: beregning av kurvelengde s = 0; for i = 1:length(Y)-1 s = s + sqrt(h^2 + (Y(i+1)-Y(i))^2); Side 7 av 15

Oppgave 3 Matlab (30 %) Eva har skrevet en funksjonen bubblesort i IT-grunnkurs. På internett finner hun pseudokoden til en variant av boblesortering, funksjonen combsort: INN UT OPPSTART liste L av tilfeldige heltall sortert liste L swaps = false og gap = sizeof L imens gap > 1 eller swaps er utført hvis gap > 1 gap = heltallsdelen av gap / 1.3 hvis gap er 10 eller 9, sett gap = 11 hvis gap swaps = false foralle L i fra første element inntil i+gap > siste element hvis L i > L i+gap bytt om elementene L i og L i+gap swaps = true hvis bytt om foralle imens a) (5 %) Eva er ikke helt sikker på om pseudokoden er riktig hvis lista L består av bare ett tall. Er den det? Gi en kort begrunnelse. ellers. Ja. Hvis initialiseringen swap = false fjernes vil den feile for lengde 1 men fungere korrekt Side 8 av 15

b) (15 %) Anta pseudokoden er riktig uansett lengde på lista og skriv funksjonen combsort fra oppgitt pseudokode. function L = combsort(l) n = length(l); gap = n; swaps = false; % for n==1 while (gap > 1 swaps) if (gap > 1) gap = floor(gap / 1.3); if (gap == 10 gap == 9) gap = 11; swaps = false; for i = 1:n-gap if (L(i) > L(i+gap)) tmp = L(i); L(i) = L(i+gap); L(i+gap) = tmp; swaps = true; Side 9 av 15

c) (10 %) Eva lurer på hvilken av funksjonene bubblesort og combsort som bruker kortest tid på å sortere ei liste av tall. For å teste dette bruker hun den innebygde funksjonen cputime. I håndboka til Matlab står det Description cputime returns the total CPU time (in seconds) used by MATLAB from the time it was started. Eva sjekker ut hva som er raskest ved å lage ei stor liste av tilfeldige tall mellom 0 og 1. Deretter sorterer hun lista med hver funksjon og måler kjøretiden hver gang med cputime 1. Til slutt skriver hun ut differansen i kjøretid mellom bubblesort og combsort på skjermen. Lag et skript som gjør dette. Anta de to funksjonene er skrevet ferdig og lagret i hver sin m-fil på forhånd. % Kan bruke hardkodet verdi istedet for N % Er ok med disp() til slutt selv om LF er kortere % Er ok med tb-tc og tc-tb % Pga ufullstig dokumentasjon av cputime() godtas % tb = cputime(lb = bubblesort(l)); og % tc = cputime(lc = combsort(l)); N = 100000; L = rand(1,n); t0 = cputime(); Lb = bubblesort(l); tb = cputime() - t0; t0 = cputime(); Lc = combsort(l); tc = cputime() - t0; % eller tic(); % eller tb = toc(); % eller tic(); % eller tc = toc(); tb - tc 1 De innebygde funksjonene tic og toc kan benyttes istedet for cputime. Side 10 av 15

Oppgave 4 HTML (10 %) I denne oppgaven får du oppgitt en html-fil med 10 mangler. Webskjemaet skal bruke metoden get og innholdet skal ses til programmet registrer.cgi. Merk følge: Overskrifter av type <h3> skal være i store bokstaver og ha fargen rød. Overskrifter av type <h4> skal ha fontstørrelse 12pt, ha fonten courier og være grønne. Tabellen har strektykkelse 1 og det skal være 10 punkts avstand mellom innholdet i en celle i tabellen (f.eks. tekst) og kanten av cellen. Fyll ut de tomme feltene slik at nettleseren vil vise koden som vist i figur 2. Det er ikke nødvig å legge inn!doctype og meta merkelapper. Figur 2: Skjema for tilbakemeldinger på fotball-lag (oppgaven fortsetter på neste side) Side 11 av 15

1 <html> 2 <head> 3 <title>football Webpage</title> 4 <style type="text/css"> 5 h3 {text-transform:uppercase; color:red} 6 h4 {font-size:12pt; font-family:courier; color:green} 7 </style> 8 </head> 9 <body> 10 <form action="registrer.cgi" method="get"> 11 <table border="1" cellpadding="10"> 12 <tr> 13 <td> 14 <h4>football team:</h4> 15 </td> 16 <td> 17 <input type="text" name="team" value="rosenborg"> 18 </td> 19 <th>description:</th> 20 <td> 21 <select name="description"> 22 <option>great!</option> 23 </select> 24 </td> 25 </tr> 26 <tr> 27 <td colspan="2"> 28 <h3>thanks for submitting...</h3> 29 </td> 30 <td colspan="2"> 31 <input type="reset" value="reset"> 32 <input type="submit" value="submit"> 33 </td> 34 </tr> 35 </table> 36 </form> 37 </body> 38 </html> Side 12 av 15

Oppgave 5 Databaser (10 %) Vi betrakter en bedrift som produserer produkter. For å lage et produkt trenger en forskjellige materialer. Materialene kjøpes hos leverandører. Et produkt identifiseres ved hjelp av en produktkode prodid. I tillegg har produktet et navn prodnavn og en pris prodpris. Et materiale identifiseres ved en kode matid, et navn matnavn, og en enhetspris enhetspris. En leverandør av materialer identifiseres ved et leverandørnavn levnavn. Leverandørens adresse registreres i levadresse. Bedriften ønsker å registrere antall enheter, antenheter, av hvert materiale som inngår i et produkt. Følge betingelser gjelder: Et produkt inneholder mange materialer Alle produkter inneholder materialer Samme materiale kan inngå i mange produkter Alle materialer inngår i produkter En leverandør kan kun levere ett materiale Et materiale leveres kun av en leverandør Alle leverandører leverer materialer a) (4 %) Lag et ER-diagram som modellerer en database basert på opplysningene først i oppgaven (en database som viser forholdet mellom produkter, materialer og materialleverandører). Minimum de 3 alternativene i figur 3-5 godtas. Produkt prodid prodnavn prodpris antenheter inneholder Materiale matid matnavn enhetspris levnavn levadresse Figur 3: Alternativ 1 Side 13 av 15

Produkt prodid prodnavn prodpris antenheter inneholder Materiale matid matnavn enhetspris Leverandør levnavn levadresse leveres av Figur 4: Alternativ 2 Produkt prodid prodnavn prodpris Inneholder prodid matid antenheter Materiale matid matnavn enhetspris levnavn levadresse Figur 5: Alternativ 3, entetisering Side 14 av 15

b) (4 %) Skriv MySQL-setninger for å opprette databasen beskrevet ved ER-diagrammet i a). Velg selv fornuftige datatyper for attributtene. create table produkt ( prodid int PRIMARY KEY, prodnavn varchar(20) NOT NULL, prodpris int); create table materiale ( matid int PRIMARY KEY, matnavn varchar(20) NOT NULL, enhetspris int, levnavn varchar(20), levadresse varchar(30)); create table innhold ( prodid int PRIMARY KEY, matid int PRIMARY KEY, antenheter int); c) (2 %) Lag en spørring i MySQL som gir en oversikt over hvilke leverandører fra Bergen som har levert materialer til de forskjellige produktene. Oversikten skal inneholde produktnavn og navn på materialleverandører. Sorter utskriften på prodid. select from where order by prodnavn,levnavn produkt, innhold, materiale produkt.prodid = innhold.prodid and materiale.matid = innhold.matid and levadresse = Bergen produkt.prodid; Side 15 av 15