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_Idsur 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
RoomReservationsentre 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 :