Lær grunnleggende databasekonsepter, ER-modellering og enkel bruk av SQL for å hente og organisere data.
Databaser og datamodellering
Databaser er hjørnestenen i nesten alle digitale tjenester. Når du logger inn, bestiller noe på nett eller poster på sosiale medier, lagres dataene i en database. Å forstå grunnleggende databasekonsepter er viktig for alle som jobber med IT og medieproduksjon.
I dette kapittelet skal du lære:
- Hva en database er og hvorfor de brukes
- ER-diagrammer for datamodellering
- Tabeller, rader, kolonner og relasjoner
- Grunnleggende SQL-spørringer
En database er en organisert samling av data som lagres og administreres elektronisk. Den gjør det mulig å lagre, hente, oppdatere og slette data effektivt. En relasjonsdatabase organiserer data i tabeller med definerte relasjoner mellom dem.
Tabeller, rader og kolonner
En relasjonsdatabase organiserer data i tabeller:
- Hver tabell representerer en type ting (elever, fag, karakterer)
- Kolonner definerer egenskapene (navn, fødselsdato, e-post)
- Rader er individuelle poster (én elev, ett fag)
Eksempel - Tabell "Elever":
| elevid | fornavn | etternavn | klasse | epost |
|---|---|---|---|---|
| 1 | Mia | Hansen | 1IMA | mia@skole.no |
| 2 | Jonas | Berg | 1IMB | jonas@skole.no |
| 3 | Sara | Nilsen | 1IMA | sara@skole.no |
Primærnøkkel er en unik identifikator for hver rad (elevid i eksempelet). Ingen to rader kan ha samme primærnøkkel.
Fremmednøkkel er en kolonne som refererer til primærnøkkelen i en annen tabell. Den knytter tabellene sammen.
ER-diagrammer
Et ER-diagram (Entity-Relationship) er et visuelt verktøy for å planlegge databasestrukturen.
Entiteter er tingene vi lagrer data om (Elev, Fag, Karakter). De representeres som rektangler.
Attributter er egenskapene til entitetene (navn, dato, poeng). De listes i entiteten.
Relasjoner viser hvordan entiteter henger sammen:
- En-til-en (1:1): Én elev har én brukerkonto
- En-til-mange (1:N): Én klasse har mange elever
- Mange-til-mange (N:M): Mange elever tar mange fag
En mange-til-mange-relasjon krever en koblingstabell mellom de to tabellene.
Eksempel:
Elev (1) --- (N) Karakter (N) --- (1) Fag
Oversatt: Én elev har mange karakterer, og hvert fag har mange karakterer fra ulike elever.
Grunnleggende SQL
SQL (Structured Query Language) er språket for å kommunisere med databaser.
Hente data (SELECT):
SELECT fornavn, etternavn FROM elever;
Henter fornavn og etternavn for alle elever.
SELECT FROM elever WHERE klasse = '1IMA';
Henter alle kolonner for elever i klasse 1IMA.
Sette inn data (INSERT):
INSERT INTO elever (fornavn, etternavn, klasse) VALUES ('Erik', 'Larsen', '1IMB');
Oppdatere data (UPDATE):
UPDATE elever SET klasse = '2IMA' WHERE elevid = 1;
Slette data (DELETE):
DELETE FROM elever WHERE elevid = 3;
Sortere (ORDER BY):
SELECT FROM elever ORDER BY etternavn;
Filtrere (WHERE):
SELECT * FROM karakterer WHERE poeng > 50;
ER-diagram for et skolebibliotek:
Entiteter:
- Bok (bokid, tittel, forfatter, isbn, antall)
- Elev (elevid, fornavn, etternavn, klasse)
- Utlån (utlanid, bokid, elevid, utlånsdato, innleveringsdato)
Relasjoner:
- Én bok kan lånes ut mange ganger (1:N mellom Bok og Utlån)
- Én elev kan ha mange utlån (1:N mellom Elev og Utlån)
SQL-eksempel:
"Vis alle bøker som Mia Hansen har lånt:"
SELECT b.tittel, u.utlånsdato FROM bok b JOIN utlån u ON b.bokid = u.bokid JOIN elev e ON e.elevid = u.elev_id WHERE e.fornavn = 'Mia' AND e.etternavn = 'Hansen';
Oppsummering
- En database er en organisert samling av data som kan søkes, oppdateres og analyseres.
- ER-diagrammer modellerer relasjoner mellom ulike dataelementer (entiteter).
- Tabeller organiserer data i rader (poster) og kolonner (felter).
- Primærnøkler identifiserer hver rad unikt, fremmednøkler kobler tabeller sammen.
- SQL-spørringer brukes til å hente, legge til, oppdatere og slette data.
- Databasekunnskap er viktig for å forstå hvordan digitale systemer lagrer og organiserer informasjon.
Hva er en primærnøkkel i en database?
Forklar forskjellen mellom en-til-mange (1:N) og mange-til-mange (N:M) relasjoner, og gi et eksempel på hver.
Hvilken SQL-kommando brukes for å hente data fra en database?
Lag et enkelt ER-diagram for en nettbutikk. Inkluder minst tre entiteter med attributter og relasjoner.
Hva er en fremmednøkkel?
Skriv SQL-spørringer for følgende oppgaver basert på en tabell "produkter" med kolonnene produkt_id, navn, pris og kategori: a) Hent alle produkter. b) Hent produkter med pris over 500. c) Hent alle produkter sortert etter pris fra lavest til høyest.
Dette kapitlet er skrevet av Anthropics toppmodeller (Claude Opus og Claude Fable) og er foreløpig ikke manuelt gjennomgått — kvalitetskontrollen gjøres av uavhengige KI-agenter, og innmeldte feil rettes fortløpende. Funnet en feil? Meld fra, så retter vi den. Les mer om hvordan innholdet lages.