ACID-transacties
ACID-transacties zijn de vier garanties (Atomicity, Consistency, Isolation, Durability) die zorgen dat je data correct blijft, ook als een p...
Lees meerEen vreemde sleutel is een kolom die verwijst naar de primaire sleutel van een andere tabel. Zo bewaakt de databank dat een order alleen naar een bestaande klant verwijst.
Een vreemde sleutel is een kolom die naar een rij in een andere tabel verwijst. In een ordertabel staat bijvoorbeeld customer_id. Die waarde hoort overeen te komen met een bestaande klant in de klantentabel.
De primaire sleutel zegt wie een rij is. De vreemde sleutel zegt naar welke rij ergens anders je verwijst. Samen houden ze relaties tussen tabellen betrouwbaar.
Zonder vreemde sleutel kan een databank een order bewaren voor klant 999, ook als die klant niet bestaat. Met een vreemde sleutel weigert de databank die fout.
Een foreign key legt vast welke kolom naar welke tabel en kolom verwijst.
CREATE TABLE customers (
customer_id integer PRIMARY KEY,
name text NOT NULL
);
CREATE TABLE orders (
order_id integer PRIMARY KEY,
customer_id integer NOT NULL REFERENCES customers (customer_id),
order_date date NOT NULL
);Voeg je nu een order toe met een onbekende customer_id, dan stopt de databank de schrijfactie. Dat heet referentiële integriteit: verwijzingen in je data blijven kloppen.
Voor relaties tussen tabellen. Orders horen bij klanten, factuurlijnen horen bij facturen, en tickets horen bij accounts.
Voor datakwaliteit aan de bron. Je voorkomt zwevende records die nergens meer bij horen.
Voor begrijpelijke datamodellen. Tools en mensen zien sneller welke tabellen bij elkaar horen.
Voor ETL-controles. In een data warehouse kan je controleren of elke factrij naar bestaande dimensies verwijst.
De lastige vraag is wat er moet gebeuren wanneer de rij waarnaar verwezen wordt verdwijnt. SQL kent daar verschillende regels voor.
CREATE TABLE orders (
order_id integer PRIMARY KEY,
customer_id integer NOT NULL,
FOREIGN KEY (customer_id)
REFERENCES customers (customer_id)
ON DELETE RESTRICT
);Met RESTRICT kan je een klant niet verwijderen zolang er orders naar verwijzen. Met CASCADE zouden de orders mee verdwijnen. Met SET NULL blijft de order bestaan, maar wordt de verwijzing leeg. Welke optie juist is, hangt af van het proces. Voor boekhoudkundige data is automatisch mee verwijderen vaak gevaarlijk.
Een join is een query waarmee je tabellen samen leest. Een vreemde sleutel is een regel waarmee de databank bewaakt dat de relatie klopt. Je kan dus joinen zonder foreign key, maar dan vertrouw je erop dat de data netjes blijft.
In analytische omgevingen ontbreken foreign keys soms bewust, bijvoorbeeld omdat ze ladingen vertragen of omdat de data uit losse bestanden komt. Dan moet je dezelfde controle elders organiseren, via tests, data contracts of datakwaliteitsregels.
Maak delete-regels expliciet. De verkeerde cascade kan veel data verwijderen. Denk dit door voor je de regel toevoegt.
Controleer laadvolgorde. Je kan geen orders laden voor klanten die nog niet geladen zijn.
Let op historische data. Een order uit 2021 moet soms blijven verwijzen naar een klantversie uit 2021, niet naar de klant zoals die vandaag is.
1. Is een foreign key verplicht om te joinen?
Nee. SQL kan tabellen joinen op elke kolom. De foreign key is de kwaliteitsregel die zegt dat de relatie geldig moet zijn.
2. Waarom ontbreken foreign keys soms in een data warehouse?
Omdat analytische systemen vaak snelheid, bulk loads en flexibele modellering voorrang geven. De controle verschuift dan naar tests en monitoring.
3. Kan een vreemde sleutel naar meerdere kolommen verwijzen?
Ja. Als de doelrij een samengestelde primaire sleutel heeft, moet de foreign key dezelfde combinatie gebruiken.
ACID-transacties zijn de vier garanties (Atomicity, Consistency, Isolation, Durability) die zorgen dat je data correct blijft, ook als een p...
Lees meerEen afleidingsregel legt uit hoe een nieuwe waarde wordt berekend of bepaald uit bestaande data. Ze maakt businesslogica achter velden, metr...
Lees meerAI Builder brengt AI-modellen en prompts naar Power Apps en Power Automate. Makers kunnen er onder meer documenten uitlezen, tekst classific...
Lees meerAnomaliedetectie spoort automatisch datapunten op die niet passen in het normale patroon: een factuur die uit de toon valt, een machine die ...
Lees meerAnonimisering maakt data redelijkerwijs niet meer herleidbaar tot een persoon, waardoor de GDPR niet meer van toepassing is. Pseudonimiserin...
Lees meer
Zeven nieuwe Data Panda-connectors uit juni 2026, met concrete toepassingen voor rapportering, voorraad, finance, ticketing, planning en ope...
Nieuw in Microsoft Fabric? Zo verschillen een lakehouse en een warehouse, in mensentaal: wat ze doen, wanneer je wat kiest en wanneer je bei...