Back to reading lessons
Week 10Day 1

Databasdesign med PostgreSQL: hur svenska team strukturerar sin data

readingintermediate
PreviousNext
Lektionstext

Inom svensk mjukvaruutveckling är PostgreSQL en av de mest använda databaserna. Det är en kraftfull, öppen källkod-databas som används av allt från startups i Stockholm till stora myndigheter. I den här lektionen tittar vi på hur svenska team designar och strukturerar sina databaser i praktiken.

Vad är en relationsdatabas?

En relationsdatabas lagrar data i tabeller. Varje tabell har rader och kolumner, ungefär som ett kalkylblad. I PostgreSQL kan man koppla ihop tabeller med hjälp av nycklar – det kallas för relationer. En primärnyckel (primary key) identifierar varje rad unikt, och en främmande nyckel (foreign key) kopplar en rad i en tabell till en rad i en annan tabell.

Till exempel: om du har en tabell för användare och en tabell för beställningar, kan varje beställning ha en kolumn som pekar på vilken användare som lade ordern. Det gör det enkelt att hämta all data som hör ihop.

Normalisering – att undvika dubbletter

En viktig princip när man designar databaser är normalisering. Det handlar om att organisera sin data så att man inte lagrar samma information på flera ställen. Svenska utvecklingsteam följer ofta de tre första normalformerna (1NF, 2NF, 3NF) som ett minimum. Målet är en ren, förutsägbar datastruktur som är lätt att underhålla.

Om du till exempel lagrar en kunds adress på varje beställning istället för i en separat kundtabell, riskerar du att ha inkonsekvent data. Normalisering löser det problemet.

Scheman och namngivning

I PostgreSQL organiserar man tabeller i scheman. Många svenska team använder separata scheman för olika delar av systemet – till exempel ett schema för autentisering, ett för affärslogik och ett för rapportering. Det håller koden organiserad och gör det lättare att ge olika användare rätt behörigheter.

Namngivning är också viktig. I Sverige är det vanligt att använda engelska namn på tabeller och kolumner, även om koden i övrigt skrivs på svenska. Det gör databasen lättare att dela med internationella partners och underlättar integration med externa system.

Index och prestanda

När en databas växer kan frågor bli långsamma om man inte använder index. Ett index är ungefär som ett register i en bok – det hjälper databasen att hitta data snabbare. I PostgreSQL skapar man index på kolumner som man söker på ofta. Men det är viktigt att inte skapa för många index, eftersom de tar upp lagringsutrymme och gör skrivoperationer långsammare.

Svenska team använder ofta verktyget EXPLAIN ANALYZE för att förstå hur PostgreSQL kör en fråga och var det uppstår flaskhalsar.

Migrationer – att ändra databasen på ett säkert sätt

När man arbetar i ett team behöver alla utvecklare ha samma version av databasens struktur. Det löser man med migrationer – scriptfiler som beskriver ändringar i databasen steg för steg. Populära verktyg för detta i svenska team är Flyway och Liquibase, men också ORM-inbyggda migrationer som i Django eller Prisma.

En migration kan till exempel lägga till en ny kolumn, ändra en datatyp eller skapa en ny tabell. Alla ändringar versionshanteras precis som vanlig kod, vilket gör det enkelt att spåra vad som ändrats och när.

Säkerhet och behörigheter

I Sverige, liksom i resten av EU, måste man följa GDPR när man hanterar personuppgifter i databaser. Det innebär bland annat att man bara ska lagra de uppgifter man verkligen behöver, och att man ska ha tydlig kontroll över vem som kan läsa och ändra data.

I PostgreSQL hanterar man det med roller och behörigheter. Man kan ge en roll rätt att läsa en tabell men inte skriva, eller ge en annan roll fullständig åtkomst. Svenska team separerar ofta databehörigheter för applikationsanvändare, läsanvändare och administratörer.

Complete this lesson

Track progress locally on this device.