La Deuxième Chambre via SQL maintenant incluant toutes les relations entre les données

Le Magasin de Données de la Chambre des Représentants est consultable avec SQL via un nouveau connecteur, TweedeKamerV2. Celui-ci utilise le lien OData v5 de la Chambre, au lieu du lien v2. Le lien v2 sera obsolète à partir du 1er octobre 2026.

Ce nouveau pilote permet aussi, pour la première fois, de révéler les relations entre les données : quel vote correspond à quelle décision, quel document appartient à quel dossier, quelle réservation à quelle salle, etc.

Pourquoi un nouveau connecteur

La Chambre des Représentants retirera le lien OData/v4/2.0 le 1er octobre 2026. Le connecteur existant TweedeKamerNl utilise ce lien et cessera donc de fonctionner. Le nouveau connecteur utilise le successeur OData/v5.

Les deux connecteurs coexisteront jusqu’au 1er octobre 2026, permettant ainsi à un rapport existant d’être converti sans interruption.

Ce qui change : les relations

L’ancien connecteur offrait les tables, mais pas les relations entre elles. Une référence à un autre enregistrement unique était dilatée en colonnes de cet autre enregistrement, qui restaient toujours vides ; une référence à plusieurs enregistrements disparaissait sans avertissement. Cela rendait le pilote moins utile pour de nombreux scénarios.

Le nouveau connecteur établit les 132 références connues du modèle de deux manières :

  • une référence à un autre enregistrement unique devient une colonne ordinaire contenant la clé, par exemple Decision_Id sur un vote. Cela peut être filtré et joint ;
  • une référence à plusieurs enregistrements reçoit sa propre table d’association à deux colonnes, par exemple RoomReservations entre les salles et les réservations.

Exemple : votes contre lors de décisions rejetées

La requête ci-dessous compte par groupe politique le nombre de fois où celui-ci a voté contre lors d’une décision rejetée. Cela nécessite deux tables à la fois : le type de la décision est sur la décision, le vote sur le vote.

select   stg.name_faction
,        count(*) as number_against
from     TweedeKamer..Votes stg
join     TweedeKamer..Decisions  bst
on       bst.id = stg.decision_id
and      bst.type = 'Votes - rejected'
where    stg.type = 'Against'
and      stg.ChangedOn >= trunc(systemdateutc) - 14
group
by       stg.name_faction

Exemple : quelle est l’occupation de chaque salle ?

Le deuxième type de relation, la table d’association, relie deux tables qui ne portent pas de clé l’une vers l’autre. Les salles et les réservations sont un tel couple :

select   zal.name     as room
,        count(*)     as number_reservations
from     TweedeKamer..RoomReservations zrg
join     TweedeKamer..Rooms             zal
on       zal.id = zrg.room_id
group
by       zal.name

Nous apprenons ainsi que la salle Throbecke est très réservée, mais la “Vieille salle - Salon Fumeur” très peu.

Transition

Les noms des tables sont en grande partie identiques entre les tables.

Voir aussi :