Het Gegevensmagazijn van de Tweede Kamer is raadpleegbaar met SQL via een nieuwe connector, TweedeKamerV2. Die gebruikt de OData v5-koppeling van de Kamer in plaats van de v2-koppeling. De v2-koppeling vervalt per 1 oktober 2026.
Deze nieuwe driver ontsluit voor het eerst ook de verbanden tussen de gegevens: welke stemming hoort bij welk besluit, welk document bij welk dossier, welke reservering bij welke zaal, etc.
Waarom een nieuwe connector
De Tweede Kamer trekt de koppeling OData/v4/2.0 in op 1 oktober 2026. De bestaande connector TweedeKamerNl leest die koppeling en stopt dan met werken. De nieuwe connector leest de opvolger OData/v5.
Beide connectoren bestaan naast elkaar tot 1 oktober 2026, zodat een bestaande rapportage kan worden omgezet zonder onderbreking.
Wat er verandert: de verbanden
De oude connector bood de tabellen aan, maar niet de verbanden ertussen. Een verwijzing naar een enkel ander record werd uitgeklapt tot kolommen van dat andere record, die vervolgens altijd leeg bleven; een verwijzing naar meerdere records verdween zonder melding. Dit maakte de driver voor veel scenario’s minder waardevol.
De nieuwe connector legt alle 132 verwijzingen die het model kent vast op twee manieren:
- een verwijzing naar een enkel ander record wordt een gewone kolom met de sleutel erin, bijvoorbeeld
Besluit_Idop een stemming. Daarop kan gefilterd en gekoppeld worden; - een verwijzing naar meerdere records krijgt een eigen koppeltabel van twee kolommen, bijvoorbeeld
ZaalReserveringentussen zalen en reserveringen.
Voorbeeld: tegenstemmen bij verworpen besluiten
Onderstaande query telt per fractie hoe vaak die tegen stemde bij een besluit dat werd verworpen. Dat vraagt om twee tabellen tegelijk: de soort van het besluit staat op het besluit, de stem op de stemming.
select stg.fractienaam
, count(*) as aantal_tegen
from TweedeKamer..Stemmingen stg
join TweedeKamer..Besluiten bst
on bst.id = stg.besluit_id
and bst.soort = 'Stemmen - verworpen'
where stg.soort = 'Tegen'
and stg.GewijzigdOp >= trunc(sysdateutc) - 14
group
by stg.fractienaam
Voorbeeld: hoe druk is elke zaal?
Het tweede soort verband, de koppeltabel, verbindt twee tabellen die geen sleutel naar elkaar dragen. Zalen en reserveringen zijn zo’n paar:
select zal.naam as zaal
, count(*) as aantal_reserveringen
from TweedeKamer..ZaalReserveringen zrg
join TweedeKamer..Zalen zal
on zal.id = zrg.zaal_id
group
by zal.naam
Zo leren we dat de Throbeckezaal veel reservering kent, maar de “Oude zaal - Rooksalon” heel weinig.
Overstappen
De tabelnamen zijn grotendeels identiek tussen de tabellen.
Zie ook: