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.