Lektion 32. Start med databaser

Forberedelse

  • Læs kapitel 20 Introduktion til databaser

Formål

  • Repetition af databaser

Fælles gennemgang

Fra sidst

  • Evt. opfølgning på opgave

Lektien til denne gang

  • Hvilken type data kan vi gemme i frontend (cookies), backend og databaser
  • Hvad gør databasen velegnet til at gemme data i frem for frontend og backend
  • Gennemgå normalisering kort

Øvelser

Øvelserne til denne gang er diskussionsøvelser. Lav dem derfor i grupper og diskuter dem gerne.

32.1 Database repetition

  • Hvad er en database i sin helt grundlæggende form. Giv et eksempel, som ikke er bogens eksempel
  • Forklar ud fra 3-lags modellen hvordan vi kommunikerer med databasen
  • Hvad KAN en database egentlig
  • Forklar forskellen på databasebegreber og begreber fra en almindelig tabel
  • Hvad er forskellen på en flad og en relationel database
  • Forklar begreberne primærnøgle, fremmednøgle og redundans

32.2 CRUD og SQL

  • Hvad betyder CRUD
  • Hvad kan vi bruge CRUD det til i forhold til databaser
  • Gå ind på www.w3schools.com og find (simple) SQL eksempler på CRUD. Tag skærmfotos af koden (eller lav link til websiderne i din besvarelse, du bestemmer).
    • Hvilke koder passer til hhv. C, R, U og D i CRUD. Tip: C = create = INSERT INTO og R = read, brug SELECT
    • Prøv at forklar dine kodeeksempler koden så godt, som du nu kan
  • De 3 næste spørgsmål skal du nok google:
    • Hvad kendetegner et dynamisk programmeringssprog. Tip: HTML og CSS er ikke dynamiske programmeringssprog, JavaScript og PHP er dynamiske
    • Er SQL et dynamisk sprog
    • Kan vi arbejde med f. eks. variable og forgrening-betingelse i SQL

32.3 Fjordkøbing Svømmeklub

Fjordkøbing er en mindre kommune, der ligger ved Fjordkøbing Fjord. Efter mange års tovtrækkerier i byrådet har kommunen endelig fået bygget en svømmehal. En gruppe mennesker ønsker at starte en svømmeklub. De mødes og aftaler, at de vil arbejde videre med ideen, og at der skal være 3 typer medlemskab. Senior kr. 300, junior kr. 150 og passivt medlemskab kr. 50. Alle priser er for et års medlemskab. De har skrevet følgende ned om de første medlemmer

FornavnEfternavnAdressePostnummerByAlderMedlemsskabPris pr. år
BennyBølgeVandvej 36789Fjordkøbing34Senior300
ClaraCrawlBadegade 86789Fjordkøbing19Senior300
BertaBrystsvømningKorkbæltegade 46789Fjordkøbing20Senior300
BoButterflyBoblevej 26790Havnsby25Senior300
HanneHovedspringPlaskegade 4, st. tv6790Havnsby17Junior200
DorteDovenHavskum 36800Moleby65Passiv50
  • Er der redundans i databasen? Begrund dit svar
  • Normaliser databasen. Begrund hvad som du foretager gennem normaliseringen.

Fjordkøbing Svømmehal er moderne og meget handicapvenlig. Der går ikke længe, før Fjordkøbing Svømmeklub får en henvendelse fra en gruppe forældre til handicappede børn. De vil gerne starte en underafdeling med fokus på handicappede børn. Fjordkøbing Svømmeklub siger selvfølgelig ja.

  • Hvad må Fjordkøbing Svømmeklub registrere om deres medlemmer i forhold til handicap, og hvad må de ikke registrere. Der er stor forskel på de handicappede svømmere. Nogle af dem er multihandicappede og skal have hjælper med, mens andre handicappede svømmere svømmer på eliteplan og er kandidater til Handicap-OL. Tip: Dansk Handicap Idræt står for samme problem, og de har løst det! Prøv evt. at se, hvad de har gjort
  • Kom med et forslag til, hvordan svømmeklubben kan udvide databasen, så den kan registrere de nødvendige (men lovlige) ekstra data om handicappede
  • Normaliser din nye database

Bemærk: Gå gerne i dybden med opgaven her, det er en interessant problemstilling!

32.4 Kundedatabase

“Det hvide snit og den røde tråd” er en tøjproducent, der sælger engros til tøjbutikker. Du skal lave model af en database for dem.

  • Firmanavn
  • Kontaktperson
  • Telefonnummer og email på kontaktperson
  • Adresse, postnummer og selvfølgelig by
  • CVR nummer (har 8 cifre, f.eks. “37511714”)

Lav en tabel (f.eks. i Excel) på 0’de normalform, hvor du finder på 6 kunder og indsætter dem i tabellen.

“Det hvide snit og den røde tråd” oplyser, at alle deres kunder er opdelt i guld, sølv og bronze-kunder. Alle guld-kunder har Signe Sælger som kontaktperson, sølvkunderne har Rikke Rabat som kontaktperson og bronze-kunderne har Søren Sniksnak som kontaktperson. Guldkunder får 10% rabat, sølvkunder 5% rabat og bronze-kunderne ingenting.

  • Indsæt disse oplysninger i din tabel fra før

Nu er du klar til normalisering: Husk at:

  • Gennemfør 1. normalform før, at du går til 2. og 3. normalform
  • 1. normalform = alle poster skal have en primærnøgle, og tabellen skal være “atomiseret”. Dvs. alt, du vil sortere på, skal have hver sin selvstændige kolonne
  • 2. og 3. normalform: Handler udelukkende om at splitte tabellen op for at undgå redundans

32.5 Case sensitive

  • Hvad vil det sige, at kode kan være “case sensitive
  • Find simple eksempler på case sensitive kode i kode, som du allerede kender. HTML, CSS, JavaScript og PHP .

32.5 Færdig før de andre

Gå i gang med kapitel 21. Hent data med SELECT