Tweede Kamer tramite SQL ora include tutte le relazioni tra i dati

Il Data Warehouse della Tweede Kamer è consultabile con SQL tramite un nuovo connettore, TweedeKamerV2. Questo utilizza il collegamento OData v5 della Camera anziché il collegamento v2. Il collegamento v2 verrà eliminato il 1 ottobre 2026.

Questo nuovo driver rende accessibili per la prima volta anche le relazioni tra i dati: quale voto appartiene a quale decisione, quale documento a quale fascicolo, quale prenotazione a quale sala, ecc.

Perché un nuovo connettore

La Tweede Kamer ritirerà il collegamento OData/v4/2.0 il 1 ottobre 2026. Il connettore esistente TweedeKamerNl legge quel collegamento e smetterà di funzionare in seguito. Il nuovo connettore legge il successore OData/v5.

Entrambi i connettori esisteranno in parallelo fino al 1 ottobre 2026, in modo che un report esistente possa essere convertito senza interruzioni.

Cosa cambia: le relazioni

Il vecchio connettore forniva le tabelle, ma non le relazioni tra di esse. Un riferimento a un singolo altro record veniva espanso in colonne di quell’altro record, che successivamente rimanevano sempre vuote; un riferimento a più record scompariva senza avviso. Questo rendeva il driver meno prezioso per molti scenari.

Il nuovo connettore registra tutti i 132 riferimenti conosciuti dal modello in due modi:

  • un riferimento a un singolo altro record diventa una colonna normale con la chiave all’interno, ad esempio Besluit_Id su un voto. Su cui è possibile filtrare e unire;
  • un riferimento a più record ottiene una propria tabella di associazione di due colonne, ad esempio ZaalReserveringen tra sale e prenotazioni.

Esempio: voti contrari nelle decisioni respinte

La query sottostante conta per ciascun gruppo quante volte ha votato contro una decisione che è stata respinta. Ciò richiede due tabelle contemporaneamente: il tipo di decisione si trova sulla decisione stessa, il voto sullo scrutinio.

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

Esempio: quanto è occupata ogni sala?

Il secondo tipo di relazione, la tabella di associazione, collega due tabelle che non possiedono una chiave l’una per l’altra. Sale e prenotazioni sono una di queste coppie:

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

In questo modo scopriamo che la Throbeckezaal è molto prenotata, ma la “Oude zaal - Rooksalon” molto poco.

Transizione

I nomi delle tabelle sono in gran parte identici tra le tabelle.

Vedi anche: