Lær grunnleggende databasekonsepter, ER-modellering og enkel bruk av SQL for å hente og organisere data.
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.
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 |
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.
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';
- 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.