SQL — SELECT, WHERE, JOIN (basisniveau)
Informatik C · STX · C-niveau · Datamodellering
💻 SQL — SELECT, WHERE, JOIN (basisniveau)
- Tabeller og felter.
- Primær- og fremmednøgle.
- ER-diagrammer (Entity-Relationship).
- SQL (SELECT, WHERE, JOIN — basisniveau).
#### Normalisering (overblik)
Normalisering er en proces til at organisere data i database-tabeller, så der ikke er redundans (dobbelt-data) og dataintegritet bevares.
Formål:
- Undgå redundans (samme data flere steder).
- Undgå anomalier (insert/update/delete-anomalier).
- Sikre dataintegritet.
Normalformer (Codd 1970'erne):
1NF (1. normalform): alle felter indeholder atomare værdier.
- Forkert:
Telefon = "12345678, 87654321"(flere værdier i ét felt). - Rigtigt: separate rækker eller en relateret telefon-tabel.
2NF (2. normalform): opfyldt 1NF + alle ikke-nøgle-felter er FULDT afhængige af primærnøglen (gælder kun ved sammensatte nøgler).
3NF (3. normalform): opfyldt 2NF + ingen transitive afhængigheder (ikke-nøgle-felt afhænger af et andet ikke-nøgle-felt).
- Forkert:
Elev(elev_id, navn, klasse, klasse_lærer)— klasse_lærer afhænger af klasse, ikke direkte af elev. - Rigtigt: opdel i to tabeller —
Elev(elev_id, navn, klasse_id)+Klasse(klasse_id, klasse_lærer).
| OrdreID | Kunde | KundeAdr | Vare | Pris |
|---|---|---|---|---|
| 1 | Anna | Vej 1 | Bog | 100 |
| 2 | Anna | Vej 1 | Æble | 5 |
Problem: Annas adresse gentages → hvis hun flytter, skal alle ordrer opdateres (update-anomali).
Normaliseret (3NF):
- Kunde: (KundeID, Navn, Adresse).
Centrale begreber
- Tabeller og felter.
- Primær- og fremmednøgle.
- ER-diagrammer (Entity-Relationship).
- SQL (SELECT, WHERE, JOIN — basisniveau).
- Undgå redundans (samme data flere steder).
- Undgå anomalier (insert/update/delete-anomalier).
- Sikre dataintegritet.
- Forkert:
Telefon = "12345678, 87654321"(flere værdier i ét felt).
Læringsmål
- Lave tabeller med primær- og fremmednøgle
- Lave ER-diagrammer
- Forstå normalisering (overblik)
- Skrive simple SQL-queries (SELECT, WHERE, JOIN)
Sådan kan du arbejde med emnet
- Skriv en SQL-forespørgsel, der henter alle kunder fra Danmark og sorterer dem efter navn
- Skriv en INNER JOIN-forespørgsel, der kombinerer en kundtabel og en ordretabel
- Forklar, hvad der er forskellen på en LEFT JOIN og en INNER JOIN
Arbejd iterativt med prototyper og dokumentation. Test, evaluér og dokumentér.
Øv dette emne med AI — quizzer, forklaringer og feedback tilpasset dit niveau.
Prøv Fagportalen gratis