Bilutleie
Oppgaven tar for seg utvikling av et utleiesystem for et bilutleiefirma.
Databasen
Databasen skal lagre opplysninger om kunder, kjøretøy og utleieforhold.
Om hver kunde skal det registreres et unikt kundenummer, fornavn, etternavn og et telefonnummer.
Registreringsnummer, merke, modell og registreringsår blir lagret for alle kjøretøyer. Hvert kjøretøy er plassert i en priskategori. En priskategori bestemmer både kilometerpris og døgnpris.
Hvert utleieforhold gjelder nøyaktig én kunde og ett kjøretøy, og tildeles et unikt og autonummerert utleienummer. Om et utleieforhold blir det også lagret tidspunkt og kilometerstand ved utlevering og innlevering.
Forretningsregler
Følgende forretningsregler skal gjelde i databasen:
- Tekstkolonner skal kun inneholde store bokstaver.
- Registreringsår for kjøretøy skal være større enn 2010.
- For alle utleieforhold skal utleveringstidspunkt være før avtalt innleveringstidspunkt. Dessuten skal kilometerstand ved utlevering ikke være høyere enn ved innlevering.
- Det skal ikke finnes to utleieforhold som overlapper i tid for samme kjøretøy.
- For to utleieforhold for samme kjøretøy skal kilometerstand ved innlevering for det første ikke være høyere enn kilometerstand ved utlevering for det siste.
For de to siste forretningsreglene kan man forutsette at alle utleieforhold blir registrert når kjøretøyet leies ut, og at innleveringstidspunkt og kilometerstand ved innlevering blir oppdatert når kjøretøyet leveres inn.
Funksjonalitet
Det er ønskelig å utvikle en web-applikasjon med funksjonalitet for registrering av følgende opplysninger:
- Ny priskategori, slett priskategori, endre dagpris og kilometerpris for en priskategori
- Nytt kjøretøy, slett kjøretøy, endre priskategori for kjøretøy
- Ny kunde
- Nytt utleieforhold, innlevering av kjøretøy
Det skal også være mulig å ta ut følgende rapporter fra applikasjonen:
- Alle data om samtlige kjøretøy
- Faktura til hver kunde forrige måned
- Utleieforhold forrige måned for hvert kjøretøy
Oppgaver
- Lag en begrepsmessig datamodell (ER-diagram) for utleiesystemet.
- Oversett den begrepsmessige modellen til en logisk datamodell, altså en tabellstruktur med primærnøkler og fremmednøkler.
- Lag et SQL-skript som definerer databasetabellene og setter inn eksempeldata.
- Sørg for at forretningsreglene beskrevet over blir overholdt, enten ved bruk av CHECK-regler eller ved triggere. Test reglene.
- Programmer lagrede rutiner for innsetting, oppdatering, sletting og uthenting av priskategorier.
- Skriv SQL utvalgsspørringer for rapportene.
- Som en start på web-applikasjonen:
- Lag HTML-skjemaer og tilhørende PHP-skript for å opprette et nytt utleieforhold samt for å håndtere innlevering av kjøretøy.
- Lag et PHP-skript som viser alle data om samtlige kjøretøy som en HTML-tabell.