Modul 19. Databaser og SQL

Forberedelse

Formål

  • Repetere databaser
  • Diskutere fordele og ulemper ved databaser
  • Smage på lidt kodning

Fælles gennemgang

Fra sidst

  • Hvilken rolle spiller databaser i 3-lags arkitekturen
3 lags arkitektur
  • Hvor mange programmer/apps har databaser
    • Hvordan ved vi, at et program har databaser
  • Hvad er det nu, en database kan, som hverken frontend eller backend kan
  • Hvad er en database i bund og grund “bare”
  • Hvad er der i vejen med databasen her
  • Hvad er forskellen på en flad og en relationel database
  • Forklar udtrykket redundans
  • Forklar figuren her
Normalisering

Lektien til denne gang

Øvelser

19.1 Fordele og ulemper ved databaser

Er du enig eller uenig i mine påstande nedenunder? Begrund dine svar.

  • Databaser er besværlige
  • Vi bruger næsten aldrig databaser
  • Det er nemt at sortere og finde data i databaser
  • Fejl spredes hurtigt
  • Vi kan ikke undgå dobbeltregistreringer. En dobbeltregistrering er f.eks. at vi skriver “6000 Kolding” et sted og “6000 Kollin” et andet sted. Dvs. vi laver en stavefejl. Gør vi det, så er databasen “inkonsistent” eller “ubrugelig”. Vi ved nemlig ikke, om byen hedder “Kolding” eller “Kollin”.
  • Vi kan dele databaser online
  • Databaser er ikke særligt udbredte
  • Databaser findes kun på computere
  • Det kan give store problemer, hvis databasen bliver stjålet eller ødelagt
  • De fleste computerprogrammer er baseret på databaser

19.2 Økobutikken “Sund og grøn”

Økobutikken “Sund og Grøn”, der sælger økologiske madvarer, vil gerne have en database over deres leverandører. De overvejer at gå i konkurrence med Årstiderne, som leverer økologiske madkasser.

  • Lav et forslag i form af en tabel til, hvad du synes, at  de skal registrere. Find på 5 fiktive leverandører og sæt dem ind i din tabel. Tip: Du må gerne gå ind på https://www.aarstiderne.com og kikke dem i kortene.
  • Gennemfør normalisering. Du skal kunne forklare, hvad du gør i normaliseringen. Dvs. du skal have styr på fagudtryk som “primærnøgle”, “redundans” osv. Giv dine tabeller navne
  • Når du er færdig med normaliseringen: Prøv at tegne et E-R diagram og fortæl, hvilken relation dine tabeller har til hinanden

Tip: Du kan måske få hjælp fra videoen her:

19.3 SQL kald

Vi ønsker nu at trække data ud af databasen for “Sund og Grøn” vha. SQL. Vi siger, at vi har 2 tabeller. Tabellen “Kunde” og tabellen “PostnummerBy”. Den første tabel har alle data undtagen by, den sidste tabel har kun postnummer og by. Kom med forslag til

  • Skriv en SQL sætning, der trækker alle data ud af din leverandørtabel
  • Skriv en SQL sætning, der trækker alle fornavne, efternavn og adresse fra din leverandørtabel
  • Skriv en SQL sætning, der trækker alle data fra din leverandørtabel ud sorteret efter I postnummer
  • Skriv en SQL sætning, der kan hente data ud fra flere tabeller, hvor leverandørtabellen “nok” er den ene tabel

Du kan få hjælp til SQL kodningen på hjemmesiden for W3Schools:

19.4 Løbeklubben “Lynet”

Signe Sprint og Mikkel Maraton kan godt lide at løbe. De starter en løbeklub sammen med nogle ligesindede. De vil have følgende oplysninger ind: Navn, adresse. postnummer og by.

  • Sæt databasen på 0’de normalform
  • Normaliser databasen
  • Tegn E-R diagrammet

Løbekluppen Lynet vil have et kontingent. Kr. 400,- for elitemedlemsskab, kr. 300 for almindeligt, kr. 200 for et junior medlemskab.

  • Skriv igen databasen ned på 0’de normalform
  • Normaliser databasen
  • Tegn det nye E-R diagram

18.5 Ekstra opgave. Prøv noget mere SQL

Gå ind på W3schools og find nogle SQL kald. Prøv f.eks. at

  • Start på siden https://www.w3schools.com/sql/sql_select.asp og følg kurset
  • Når du finder noget spændende, så prøv det af i SQLite
  • Det giver plusser at prøve så mange SQL kommandoer af som muligt.