================================================================================ RAPPORT D'ÉTAT DE LA BASE DE DONNÉES - SCHÉMA GDUNO Date: 2026-01-22 ================================================================================ ✅ PHASE 1 COMPLÉTÉE - Renommage des tables de types -------------------------------------------------- Tables renommées avec succès (convention ENTITE_TYPE): - type_diplome → diplome_type (4 enregistrements) - type_organisme → organisme_type (10 enregistrements) - type_programme → programme_type (5 enregistrements) - type_role → personne_role (7 enregistrements) Colonnes FK mises à jour dans toutes les tables référencées. ✅ VUES FONCTIONNELLES - Toutes les 9 vues opérationnelles -------------------------------------------------- Vue | Lignes | Status -------------------------|---------|-------- v_organisme_complet | 329 | ✓ OK v_organisme_geo | 328 | ✓ OK v_organisme_hierarchie | 47 | ✓ OK (racines et dépendances) v_organisme_dependances | 329 | ✓ OK v_organisme_programmes | 2815 | ✓ OK (relations O-P) v_personne_organisme | 240 | ✓ OK v_programme_complet | 1120 | ✓ OK v_programme_geo | 2815 | ✓ OK v_superset_dataset | 3002 | ✓ OK (agrégations) ✅ STRUCTURE ACTUELLE DES TABLES PRINCIPALES -------------------------------------------------- Table: organisme - PK: id (INTEGER, séquentiel) - Code: code (VARCHAR(20), NOT NULL, UNIQUE) - Parent: code_parent (VARCHAR(20)) → FK vers organisme(code) - Relations: organisme_type_id, municipalite_geo_id, region_administrative_id - Total: 329 organismes Table: programme - PK: id (INTEGER, séquentiel) - Code: code (VARCHAR(20), NOT NULL) - Relations: diplome_type_id, programme_type_id, secteur_formation_id - Total: 1120 programmes Table: organisme_programme (table de jonction) - FK: organisme_id → organisme(id) - FK: programme_id → programme(id) - Total: 2815 relations Table: personne - FK: organisme_id → organisme(id) - FK: personne_role_id → personne_role(id) - Total: 240 personnes ✅ INTÉGRATION GEO.MUNICIPALITE -------------------------------------------------- Schema geo contient les tables géomatiques officielles: - geo.municipalite: 1345 municipalités (vs 69 dans gduno.municipalite) - geo.mrc - geo.region_administrative - geo.communaute_metropolitaine - geo.arrondissement Connexion actuelle: - gduno.organisme.municipalite_geo_id → gduno.municipalite(id) - gduno.municipalite.code_isq ≈ geo.municipalite.code_geo - Liaison fonctionnelle via JOIN testée et validée Note: geo.municipalite a des doublons dans code_geo (codes 98904, 98912) ✅ CLÉS ÉTRANGÈRES VALIDÉES -------------------------------------------------- Toutes les FK sont intactes et fonctionnelles: - organisme → organisme_type ✓ - organisme → municipalite ✓ - organisme → region_administrative ✓ - organisme → organisme (self-ref via code_parent) ✓ - programme → diplome_type ✓ - programme → programme_type ✓ - programme → secteur_formation ✓ - organisme_programme → organisme ✓ - organisme_programme → programme ✓ - personne → organisme ✓ - personne → personne_role ✓ ⏸️ PHASE 2 REPORTÉE - Migration vers clés naturelles -------------------------------------------------- Objectifs initiaux: - Utiliser organisme.code comme PK (au lieu de id) - Utiliser programme.code comme PK (au lieu de id) - Référencer directement geo.municipalite Raisons du report: 1. Complexité de l'intégration geo.municipalite (doublons code_geo) 2. Nécessite coordination avec NocoDB (triggers) 3. Impact important sur les applications existantes 4. Schema actuel parfaitement fonctionnel Recommandations: - Privilégier geo.municipalite comme source de référence géomatique - Conserver les ID séquentiels pour la compatibilité - Les codes naturels (code) sont déjà UNIQUE et utilisables en JOIN - Documenter le mapping code_isq ↔ code_geo ================================================================================ CONCLUSION ================================================================================ La base de données est dans un état STABLE et FONCTIONNEL: - ✅ Phase 1 (renommage) complétée avec succès - ✅ Toutes les vues opérationnelles - ✅ Relations et contraintes FK intactes - ✅ Données accessibles et cohérentes - ✅ Prête pour utilisation en production Prochaines étapes suggérées: 1. Documenter l'usage de geo.* comme source géomatique officielle 2. Analyser l'impact d'une migration Phase 2 sur les applications 3. Coordonner avec équipe NocoDB pour gestion des triggers 4. Évaluer si les clés naturelles apportent une vraie valeur ajoutée ================================================================================ ================================================================================ TESTS DE VALIDATION EXÉCUTÉS - 2026-01-22 ================================================================================ ✅ TEST 1: Comptage des enregistrements ---------------------------------------- organisme: 329 ✓ programme: 1120 ✓ organisme_programme: 2815 ✓ (relations actives) personne: 240 ✓ ✅ TEST 2: Tables de référence (renommées en Phase 1) ----------------------------------------------------- diplome_type: 4 ✓ organisme_type: 10 ✓ programme_type: 5 ✓ personne_role: 7 ✓ ✅ TEST 3: Jointures complexes ------------------------------ Requête multi-tables avec agrégations: ✓ Top 5 organismes par nombre de programmes: - Cégep Limoilou: 69 programmes - Cégep d'Ahuntsic: 64 programmes - Cégep du Vieux Montréal: 63 programmes - Cégep de Drummondville: 60 programmes - Collège LaSalle: 59 programmes ✅ TEST 4: Hiérarchie et self-reference --------------------------------------- FK organisme.code_parent → organisme(code): ✓ Requête récursive fonctionnelle: ✓ Exemple: 5 conservatoires de musique rattachés au MES (code 999999) ✅ TEST 5: Intégration géomatique ---------------------------------- Liaison gduno.municipalite ↔ geo.municipalite: ✓ 322 organismes liés à 66 municipalités uniques (via code_isq) Données géospatiales accessibles: ✓ ================================================================================ RÉSUMÉ FINAL ================================================================================ ✅ Base de données gduno: OPÉRATIONNELLE ✅ Phase 1 (renommage): COMPLÉTÉE ET VALIDÉE ✅ Toutes les vues: FONCTIONNELLES (9/9) ✅ Intégrité référentielle: PRÉSERVÉE ✅ Données géospatiales: ACCESSIBLES via geo.* Status: PRÊT POUR PRODUCTION Date du rapport: 2026-01-22 Généré par: migration automatisée + tests de validation ================================================================================