Innleveringsoppgave 4

Innleveringsoppgave4
Viskalherbyggeviderepådatabasenfrainnleveringsoppgave3.(Modellenfra
innleveringsoppgave3ergjengittpåsisteside.)
UniversitetetiUqbarerveldigopptattaveffektiviseringogvilgjernefåtimelister,bådefor
overtidogfortimeansatte,påelektroniskform.Enmåteågjøredettepå,eråutvide
databasenfraforrigeinnlevering.Sidenvinåskalsepådettefraarbeidsgiverensside,
trengerviåskillemellomforskjelligeansatte.Dessutenmåviviteomdenenkelteeransatt
påtimebasis(ogskalhavanligtimelønn)ellerfast(ogbareskalhaekstrabetaltnår
timetalletoverstigervissegrenser).
Fastansattekanværeansattfulltid,noesomiRuritaniaer30timerpr.uke,ellerdekan
væredeltidsansatt.Ihvertfallforallefastdeltidsansattemåsystemetvitehvormangetimer
pr.ukedenansatteskaljobbe.(Overstigertimetalletdette,skaldetutebetalestimelønn
fremtil30timeroverstiges;deretterskaldetutebetalesovertid.)
Ansatteharetlønnstrinn,ogforhvertlønnstrinnfinnesenmånedslønnforfulltidsansatte,
envanligtimelønnogentimelønnforovertid.(MyntenheteniRuritaniaheterruro,ogen
ruroerhundreur.)
Viderejobberdeansatteofte,menikkealltid,påprosjekter.Prosjekterharenprosjektkode,
dessutenhardeenbudsjettrammeforpersonalkostnader(somangisiantalltimer,ikkei
ruroogur).Deharenprosjektledersomalltiderfastansatt,ogsomskalgodkjenne
timebruken.Nårenansattblirsattpåetprosjekt,bestemmesdetogsåenøvregrensefor
hvormangetimervedkommendeskaljobbepåprosjektet.
1
Oppgave1.BrukORMtilålageeninformasjonsmodellsompassermedvirkelighetsbeskrivelsen(ogforretningsreglene)over.
Hint:
1. Prøvåidentifisereundertemaer.Modellerhvertundertemaforseg.
2. Hvisetundertema(etsakskompleks)virkerkomplisertåmodellere,såforsøkå
modellereenforenkletversjonførst.(Deterbedreåhaenenkelmodelldernoen
aspekterkanskjeikkeerheltivaretatt,ennåentenhaenkomplisertmodellsomer
feil,elleråikkefåtilnoeidetheletatt...)
3. HuskatORM-modellerbareinneholderstatiskeskranker.Derforkandetgenerelt
væreatenbeskrivelseinneholdernoen«dynamiske»opplysningersomikkeer
relevanteforORM-modelleringen.Deterogsåofteslikatnoenavde«statiske»
opplysningenehellerikkemodelleres,entenfordidegirenunødigkomplisert
modell,ellerfordidesimpelthenikkeerrelevante.
Oppgave2.Realiser(gruppér)ORM-modellentiletrelasjonsskjema.
DereskalikkelevereSQL-kodefordette,menpresentererealiseringenpåsammeformsom
relasjonsskjemaetfordenopprinneligedatabasen;dettefinnerderepåsisteside.Detkan
værelurtåtaenkikkpådetteskjemaetførst.Lesogsådetilhørendekommentarene.
Oppgave3.BrukSQLtilåfinneut
1. omdeternoensomerprosjektlederepåflereennettprosjekt
2. omdeternoenprosjektlederesomogsåjobberpåprosjekterderdeikkeer
prosjektledere
3. hvilkenavdetimeansattesomharhøyestlønnstrinn
4. gjennomsnittslønnentildefastansattefordeltpåstillingsbrøk,dvs.
(i)gjennomsnittslønnentilheltidsansatte(dvs.med30timeriuken),
(ii)gjennomsnittslønnentildeltidsansattemed29timeriuken,
(iii)gjennomsnittslønnentildeltidsansattemed28timeriuken,osv.
Sorterlistenetteravtagendestillingsbrøk.
2
ORM-modellenfrainnleveringsoppgave3:
Relasjonsskjema:
Hvisvibrukerrealiseringsalgoritmenrettfremutenåtahensyntilkommentarenemerket1
og2imodellenover1,fårvi:
Timeliste(timelistenr,status,[levert],[utbetalt],[timeantall],beskrivelse)
Timelistelinje(timelistenr,linjenr,startdato,starttid,[sluttid],[pause],[varighet],beskrivelse)
Følgendetabellererundertrykt,dvs.sløyfetfordideterlitepoengiåhaegnetabellerfor
disseopplysningene2:
Timelistestatus(status)
Dato(aammdd)
Klokkeslett(hhmm)
Tidsrom(antminutter)
Beskrivelse(tekst)
Linje(linjenr)
Fremmednøkler:
Timelistelinje(timelistenr)→Timeliste(timelistenr)
1
Ireellemodellererdetikkeuvanligåhasliketekstligeskranker.Detteerskrankersomikkekan
uttrykkesiORM.Forågjøredetenklere,skalderegenerelt(medmindrevieksplisittsiernoeannet)
ikketahensyntiltekstligeskrankerunderrealiseringen.
2
Dereskalvanligvisikkegjengiundertryktetabeller;deertattmedherforåillustrerehvaslags
tabellersomtypiskundertrykkes.Detteblirforelestskikkeligsenere,såderefårikketrekkomdere
tarmedsamtligetabelleribesvarelsenpåakkuratdenneinnleveringsoppgaven.
3