← Tilbake til oversikten

USN – Nivå 2

Leksjon 2: Lage databasetabeller

Før du kan registrere data og lage spørringer må du definere databasetabellene: Hva skal tabellene hete? Hvilke kolonner skal de inneholde? Hva slags data vil bli lagret i de ulike kolonnene? SQL har en egen kommando for å lage tabeller: CREATE TABLE.

Hver tabell bør ha en primærnøkkel for entydig å kunne identifisere rader i tabellen. En database består av mange tabeller. Fremmednøkler sørger for å etablere logiske sammenhenger mellom tabellene. Forretningsregler bidrar til å sikre kvaliteten på data som blir registrert.

Læringsmål


Oppgaver

Oppgavene går ut på å bygge opp en database for sykkelutleie. Du skal først opprette tabeller for å holde rede på sykler, kunder og utleieforhold. Deretter skal du importere data fra tekstfiler (.csv).

A. Lage tabeller: Sykkelmodeller og sykler

Databasen skal ta vare på opplysninger om sykkelmodeller og (konkrete) sykler – i to forskjellige tabeller:

Modell(MNr, Fabrikk, Betegnelse, Kategori, Dagpris)
Sykkel(MNr, KopiNr, Ramme, Farge)

Bedriften disponerer altså et antall sykler ("kopier") av hver sykkelmodell, kanskje 2 sykler av modell 1, 3 sykler av modell 2 osv.


Tips:


B. Lage tabeller: Kunder og utleieforhold

Kunde(KNr, Fornavn, Etternavn, Mobil)
Utleie(KNr, MNr, KopiNr, TidUt, TidInn)

Tips:


D. Importere data

Du skal nå importere data fra fire tekstfiler på CSV-format (Comma Separated Values). Hver linje på filene svarer til en rad i tilhørende databasetabell. Første linje inneholder kolonnenavn, og verdiene er i vårt tilfelle adskilt med semikolon.


E. Forretningsregler med NOT NULL og UNIQUE

Endre SQL-koden du laget i oppgave B, slik at både fornavn og etternavn på kunder må fylles ut (NOT NULL), og dessuten skal systemet hindre at to kunder har samme mobilnummer (UNIQUE). Kjør skriptet på nytt, og sjekk deretter at forretningsreglene virker. Utvid med tilsvarende regler på andre kolonner i databasen, der du mener det er hensiktsmessig.


F. Forretningsregler og fremmednøkler

  1. Lag tabeller Farge og Kategori. Begge tabeller skal kun inneholde en eneste kolonne med samme navn som tabellen.
  2. Sørg for at kolonnene Sykkel.Farge og Modell.Kategori blir fremmednøkler mot disse hjelpetabellene.
  3. Fyll tabellene med data fra tilhørende kolonner Sykkel.Farge og Modell.Kategori. (Det finnes flere teknikker.)
  4. Sjekk at du nå ikke får registrert sykler i andre farger enn de som er registrert i tabellen Farge. Endre i tabellen Farge slik at det blir mulig å registrere grønne sykler.
  5. Ser du muligheter for å innføre flere slike hjelpetabeller?

G. Ekstraoppgave (uten løsning)

Ta utgangspunkt i eksempeldatabasen til oppgave 1 (lagAnsatt.sql). Skriv først SQL-kommandoer som oppretter tabellene til denne databasen (CREATE TABLE). Prøv deretter å generere testdata til tabellene manuelt ved hjelp av (INSERT INTO).


Se nivå 2 – løsningsforslag

Tilgjengelig etter passord.