# Documentation BDNB - Base de Données Nationale des Bâtiments

## Vue d'ensemble

La Base de Données Nationale des Bâtiments (BDNB) est une base de données géographique exhaustive qui agrège de nombreuses sources sur les bâtiments français :

- **Source** : CSTB (Centre Scientifique et Technique du Bâtiment) / ADEME
- **Couverture** : Département 03 (Allier)
- **Total lignes** : ~6,08 millions de lignes
- **Taille totale** : ~1,1 Go
- **Format** : CSV avec géométries WKT (Well-Known Text)
- **Projection** : EPSG:2154 (Lambert 93)

### Principes de structuration

La BDNB s'articule autour de 3 niveaux géographiques :
1. **batiment_groupe** : Groupe de bâtiments (échelle de l'adresse)
2. **batiment_construction** : Bâtiment individuel (empreinte au sol)
3. **parcelle** : Parcelle cadastrale

Les données thématiques sont attachées principalement au niveau `batiment_groupe`.

---

## Tables principales

### 1. batiment_groupe.csv ⭐ (Table centrale)

**Rôle** : Table pivot contenant les groupes de bâtiments identifiés à l'échelle de l'adresse.

**Statistiques** :
- Lignes : 271 795
- Taille : 78 Mo
- Clé primaire : `batiment_groupe_id`

**Colonnes** :
```
geom_groupe              Géométrie MULTIPOLYGON en WKT
batiment_groupe_id       Identifiant unique (ex: bdnb-bg-11HT-AKW6-6RW8)
code_departement_insee   Code département (03)
s_geom_groupe            Surface du groupe en m²
code_iris                Code IRIS INSEE
code_commune_insee       Code commune INSEE (5 caractères)
libelle_commune_insee    Nom de la commune
code_epci_insee          Code EPCI (intercommunalité)
contient_fictive_geom_groupe  Indicateur de géométrie fictive (0/1)
```

**Exemple** :
```
batiment_groupe_id: bdnb-bg-11HT-AKW6-6RW8
code_commune_insee: 03300
libelle_commune_insee: Vaumas
s_geom_groupe: 257 m²
```

**Usage** : Point d'entrée pour toutes les jointures avec les données thématiques.

---

### 2. batiment_construction.csv

**Rôle** : Détails sur chaque construction individuelle composant un groupe de bâtiments.

**Statistiques** :
- Lignes : 405 196
- Taille : 97 Mo
- Clé primaire : `batiment_construction_id`
- Clé étrangère : `batiment_groupe_id`

**Colonnes** :
```
WKT                         Géométrie MULTIPOLYGON
batiment_construction_id    Identifiant unique (ex: bdnb-bc-CK5L-44YF-S14M)
batiment_groupe_id          Lien vers batiment_groupe
code_departement_insee      Code département
code_iris                   Code IRIS
code_commune_insee          Code commune
s_geom_cstr                 Surface de construction en m²
hauteur                     Hauteur du bâtiment en mètres
altitude_sol                Altitude du sol en mètres
fictive_geom_cstr           Indicateur de géométrie fictive
```

**Relation** : 1 batiment_groupe → N batiment_construction (1,5 constructions par groupe en moyenne)

---

### 3. adresse.csv ⭐ (Lien avec BAN)

**Rôle** : Référentiel des adresses issues de la Base Adresse Nationale (BAN).

**Statistiques** :
- Lignes : 182 132
- Taille : 26 Mo
- Clé primaire : `cle_interop_adr`

**Colonnes** :
```
WKT                     Géométrie POINT (coordonnées de l'adresse)
cle_interop_adr         Clé d'interopérabilité BAN (ex: 03001_0013_00004)
code_departement_insee  Code département
numero                  Numéro dans la voie
rep                     Répétition (bis, ter, etc.)
type_voie               Type de voie (rue, avenue, place, etc.)
nom_voie                Nom de la voie
libelle_adresse         Adresse complète formatée
code_postal             Code postal
code_commune_insee      Code commune INSEE
libelle_commune         Nom de la commune
source                  Source des données (BAN)
```

**Exemple** :
```
cle_interop_adr: 03001_0013_00004
libelle_adresse: 4 Place des Anciens Combattants 03200 Abrest
```

**Usage** : Jointure avec votre base d'adresses via `cle_interop_adr` ou `libelle_adresse`.

---

### 4. parcelle.csv

**Rôle** : Parcelles cadastrales du département.

**Statistiques** :
- Lignes : 733 568
- Taille : 497 Mo
- Clé primaire : `parcelle_id`

**Colonnes** :
```
geom_parcelle           Géométrie MULTIPOLYGON de la parcelle
parcelle_id             Identifiant parcelle cadastrale (ex: 03001000ZC0568)
code_departement_insee  Code département
code_commune_insee      Code commune
s_geom_parcelle         Surface de la parcelle en m²
```

**Format parcelle_id** : CODE_COMMUNE (5) + SECTION (3) + NUMERO (4)
- Exemple : `03001000ZC0568` → commune 03001, section 000ZC, numéro 0568

---

## Tables de relations (rel_*)

Ces tables établissent les liens many-to-many entre les entités principales.

### rel_batiment_groupe_adresse.csv ⭐ (Lien BAN)

**Rôle** : Association entre bâtiments et adresses BAN.

**Statistiques** :
- Lignes : 209 054
- Taille : 34 Mo

**Colonnes** :
```
WKT                  Géométrie MULTILINESTRING (ligne entre bâtiment et adresse)
batiment_groupe_id   Référence batiment_groupe
cle_interop_adr      Référence adresse BAN
code_departement_insee  Code département
classe               Classe de relation (non renseigné)
lien_valide          Validité du lien (1=valide)
origine              Origine du lien (ex: "Association Geometrique")
```

**Usage critique** : Cette table permet de faire le pont entre vos adresses BAN et les bâtiments BDNB.

**Exemple de jointure** :
```sql
SELECT
    bg.*,
    a.libelle_adresse
FROM batiment_groupe bg
JOIN rel_batiment_groupe_adresse rel ON bg.batiment_groupe_id = rel.batiment_groupe_id
JOIN adresse a ON rel.cle_interop_adr = a.cle_interop_adr
WHERE rel.lien_valide = 1
```

---

### rel_batiment_groupe_parcelle.csv

**Rôle** : Association entre bâtiments et parcelles cadastrales.

**Statistiques** :
- Lignes : 293 578
- Taille : 13 Mo

**Colonnes** :
```
batiment_groupe_id      Référence batiment_groupe
parcelle_id             Référence parcelle cadastrale
code_departement_insee  Code département
parcelle_principale     Indicateur de parcelle principale (1=oui, 0=non)
```

**Note** : Un bâtiment peut être à cheval sur plusieurs parcelles. Le flag `parcelle_principale` indique la parcelle principale.

---

### rel_batiment_groupe_dpe_logement.csv

**Rôle** : Association entre bâtiments et DPE individuels.

**Statistiques** :
- Lignes : ~186 000
- Taille : 12 Mo

**Colonnes** :
```
batiment_groupe_id   Référence batiment_groupe
identifiant_dpe      Référence vers dpe_logement
code_departement_insee  Code département
fiabilite_rattachement  Qualité du rattachement
score_rattachement   Score de confiance
```

**Usage** : Lier les bâtiments aux DPE détaillés de la table `dpe_logement.csv`.

---

### Autres tables rel_*

| Table | Lignes | Rôle |
|-------|--------|------|
| rel_batiment_construction_adresse.csv | ~620k | Lien constructions ↔ adresses |
| rel_batiment_construction_rnb.csv | ~480k | Lien constructions ↔ RNB (référentiel bâtiments) |
| rel_batiment_groupe_bdtopo_bat.csv | ~464k | Lien bâtiments ↔ BDTOPO |
| rel_batiment_groupe_dvf_open.csv | ~72k | Lien bâtiments ↔ transactions DVF |
| rel_batiment_groupe_merimee.csv | ~306k | Lien bâtiments ↔ monuments historiques |
| rel_batiment_groupe_proprietaire.csv | ~21k | Lien bâtiments ↔ propriétaires |
| rel_batiment_groupe_rnc.csv | ~3,3k | Lien bâtiments ↔ copropriétés |

---

## Tables thématiques

### Données énergétiques

#### batiment_groupe_dpe_representatif_logement.csv ⭐

**Rôle** : DPE représentatif agrégé par bâtiment (le plus complet).

**Statistiques** :
- Lignes : 32 559
- Taille : 27 Mo
- **102 colonnes** (très détaillé)

**Colonnes principales** :
```
batiment_groupe_id                Référence bâtiment
identifiant_dpe                   ID du DPE représentatif
arrete_2021                       DPE nouvelle méthode (0/1)
type_batiment_dpe                 maison / appartement
periode_construction_dpe          Période de construction
annee_construction_dpe            Année de construction
nombre_niveau_logement            Nombre d'étages du logement
nombre_niveau_immeuble            Nombre d'étages de l'immeuble
surface_habitable_logement        Surface habitable en m²
conso_5_usages_ep_m2              Consommation énergie primaire (kWh/m²/an)
conso_5_usages_ef_m2              Consommation énergie finale (kWh/m²/an)
emission_ges_5_usages_m2          Émissions GES (kg CO2/m²/an)
classe_bilan_dpe                  Classe DPE (A à G)
classe_emission_ges               Classe GES (A à G)

# Chauffage
type_energie_chauffage            Énergie (électricité, gaz, fioul, bois, etc.)
type_generateur_chauffage         Type de générateur
type_installation_chauffage       individuel / collectif

# Eau chaude sanitaire (ECS)
type_energie_ecs                  Énergie ECS
type_generateur_ecs               Type de générateur ECS

# Isolation
type_isolation_mur_exterieur      ITI / ITE / non isolé
u_mur_exterieur                   Coefficient U des murs (W/m²K)
type_vitrage                      simple / double / triple vitrage
type_materiaux_menuiserie         bois / pvc / métal / aluminium
type_isolation_plancher_bas       Isolation du plancher
type_isolation_plancher_haut      Isolation du toit

# Surfaces
surface_mur_exterieur             Surface des murs en m²
surface_vitree_nord               Surface vitrée nord en m²
surface_vitree_sud                Surface vitrée sud en m²
surface_plancher_bas_totale       Surface plancher en m²
```

**Couverture** : ~12% des bâtiments ont un DPE représentatif.

---

#### batiment_groupe_dpe_statistique_logement.csv

**Rôle** : Statistiques agrégées des DPE par bâtiment (plusieurs DPE moyennés).

**Statistiques** :
- Lignes : ~29k
- Taille : 1,9 Mo

**Usage** : Complète le DPE représentatif avec des moyennes statistiques.

---

#### dpe_logement.csv

**Rôle** : DPE individuels détaillés (1 ligne = 1 DPE).

**Statistiques** :
- Lignes : 69 370
- Taille : 56 Mo
- Clé primaire : `identifiant_dpe`

**Colonnes** : Identiques à `batiment_groupe_dpe_representatif_logement` mais sans lien direct au bâtiment.

**Usage** : Récupérer tous les DPE d'un bâtiment via `rel_batiment_groupe_dpe_logement.csv`.

---

#### batiment_groupe_dle_elec_multimillesime.csv

**Rôle** : Données Locales de l'Énergie (DLE) - Électricité par année.

**Statistiques** :
- Lignes : ~10k
- Taille : 897 Ko

**Colonnes** :
```
batiment_groupe_id      Référence bâtiment
millesime               Année (2018, 2019, 2020, 2021, 2022)
nb_pdl_res              Nombre de PDL résidentiels
nb_pdl_pro              Nombre de PDL professionnels
nb_pdl_tot              Total PDL
conso_res               Consommation résidentielle (kWh/an)
conso_pro               Consommation professionnelle (kWh/an)
conso_tot               Consommation totale (kWh/an)
conso_res_par_pdl       Consommation moyenne par PDL résidentiel
conso_pro_par_pdl       Consommation moyenne par PDL professionnel
conso_tot_par_pdl       Consommation moyenne par PDL
```

**Note** : Données agrégées par bâtiment et par année (5 lignes par bâtiment si données 2018-2022).

---

#### batiment_groupe_dle_gaz_multimillesime.csv

**Rôle** : Données Locales de l'Énergie (DLE) - Gaz par année.

**Statistiques** :
- Lignes : ~3k
- Taille : 287 Ko

**Colonnes** : Identiques à DLE électricité.

**Couverture** : Moins de bâtiments (gaz moins répandu que l'électricité).

---

#### batiment_groupe_dle_reseaux_multimillesime.csv

**Rôle** : DLE - Réseaux de chaleur/froid.

**Statistiques** :
- Lignes : ~30
- Taille : 3 Ko

**Note** : Très peu de données (réseau de chaleur peu développé dans l'Allier).

---

### Données immobilières

#### batiment_groupe_dvf_open_representatif.csv ⭐

**Rôle** : Transactions immobilières représentatives par bâtiment (DVF = Demandes de Valeurs Foncières).

**Statistiques** :
- Lignes : 52 666
- Taille : 5,5 Mo

**Colonnes** :
```
batiment_groupe_id                  Référence bâtiment
id_opendata                         ID transaction DVF
valeur_fonciere                     Prix de vente en euros
date_mutation                       Date de la transaction
nb_locaux_mutee_mutation            Nombre de locaux vendus
nb_maison_mutee_mutation            Nombre de maisons vendues
nb_appartement_mutee_mutation       Nombre d'appartements vendus
nb_dependance_mutee_mutation        Nombre de dépendances vendues
nb_locaux_tertiaire_mutee_mutation  Nombre de locaux tertiaires vendus
surface_bati_mutee_residencielle_individuelle  Surface maisons vendues (m²)
surface_bati_mutee_residencielle_collective    Surface appartements vendus (m²)
surface_bati_mutee_dependance       Surface dépendances vendues (m²)
surface_bati_mutee_tertiaire        Surface tertiaire vendue (m²)
surface_terrain_mutee               Surface terrain vendue (m²)
nb_piece_principale                 Nombre de pièces principales
prix_m2_local                       Prix au m² du bâti (€/m²)
prix_m2_terrain                     Prix au m² du terrain (€/m²)
```

**Exemple** :
```
valeur_fonciere: 88000 €
date_mutation: 2021/02/11
nb_maison: 1
surface_bati: 86 m²
prix_m2_local: 1023 €/m²
```

**Période** : Transactions depuis 2014.

---

#### batiment_groupe_dvf_open_statistique.csv

**Rôle** : Statistiques DVF agrégées par bâtiment.

**Statistiques** :
- Lignes : ~46k
- Taille : 4,8 Mo

**Usage** : Moyenne des prix sur plusieurs transactions.

---

### Données copropriété

#### batiment_groupe_rnc.csv ⭐

**Rôle** : Registre National des Copropriétés (RNC).

**Statistiques** :
- Lignes : 2 065
- Taille : 261 Ko

**Colonnes** :
```
batiment_groupe_id          Référence bâtiment
numero_immat_principal      Numéro d'immatriculation copropriété
periode_construction_max    Période de construction
l_annee_construction        Liste des années de construction [JSON]
nb_lot_garpark              Nombre de lots garages/parkings
nb_lot_tot                  Nombre total de lots
nb_log                      Nombre de logements
nb_lot_tertiaire            Nombre de lots tertiaires
l_nom_copro                 Liste des noms de copropriété [JSON]
l_siret                     Liste des SIRET syndics [JSON]
copro_dans_pvd              Copropriété en plan de sauvegarde (0/1)
```

**Exemple** :
```
numero_immat: AH0968750
nb_log: 2
nb_lot_tot: 6
nb_lot_garpark: 0
l_nom_copro: ["25-27 rue du Vert Galant"]
```

**Couverture** : ~0,76% des bâtiments (seules les copropriétés).

---

### Données propriétaires

#### proprietaire.csv

**Rôle** : Propriétaires personnes morales (bailleurs sociaux, entreprises, etc.).

**Statistiques** :
- Lignes : 9 252
- Taille : 634 Ko

**Colonnes** :
```
personne_id             Identifiant propriétaire
siren                   SIREN de l'entreprise
code_departement_insee  Code département
forme_juridique         SA, SAS, SARL, etc.
denomination            Nom de l'entreprise
code_postal             Code postal du siège
libelle_commune         Commune du siège
dans_majic_pm           Présent dans MAJIC (1/0)
nb_locaux_open          Nombre de locaux possédés
```

**Exemple** :
```
siren: 552046484
denomination: CDC HABITAT SOCIAL SOCIETE ANONYME D'HABITATIONS A LOYER MOD
forme_juridique: SA
nb_locaux_open: 1491
```

**Note** : Uniquement les personnes morales (pas les particuliers).

---

### Données logements sociaux

#### batiment_groupe_rpls.csv

**Rôle** : Répertoire des Logements Locatifs des bailleurs Sociaux (RPLS).

**Statistiques** :
- Lignes : ~4,5k
- Taille : 297 Ko

**Colonnes** :
```
batiment_groupe_id          Référence bâtiment
rpls_open                   Présence dans RPLS (1)
nb_classe_ener_a/b/c/d/e/f/g  Nombre de logements par classe DPE
classe_ener_principale      Classe énergétique majoritaire
nb_classe_ges_a/b/c/d/e/f/g   Nombre de logements par classe GES
classe_ges_principale       Classe GES majoritaire
accessible_pmr              Accessible PMR (0/1)
dans_qpv                    Dans QPV (0/1)
l_annee_construction        Années de construction [JSON]
nb_log                      Nombre de logements
s_log_hab                   Surface habitable totale (m²)
type_construction           Individuel / Collectif [JSON]
```

**Couverture** : Uniquement logements sociaux (~1,7% des bâtiments).

---

### Données géographiques et référentiels

#### batiment_groupe_adresse.csv ⭐

**Rôle** : Synthèse des adresses principales par bâtiment.

**Statistiques** :
- Lignes : 180 907
- Taille : 29 Mo

**Colonnes** :
```
batiment_groupe_id              Référence bâtiment
cle_interop_adr_principale_ban  Clé BAN de l'adresse principale
libelle_adr_principale_ban      Libellé complet de l'adresse principale
nb_adresse_valid_ban            Nombre d'adresses valides BAN
fiabilite_cr_adr_niv_1          Niveau 1 de fiabilité
fiabilite_cr_adr_niv_2          Niveau 2 de fiabilité
```

**Exemple** :
```
batiment_groupe_id: bdnb-bg-11HT-AKW6-6RW8
cle_interop_adr_principale_ban: 03300_b144_00009
libelle_adr_principale_ban: 9 Les Jeandurets Hauts 03220 Vaumas
fiabilite_cr_adr_niv_1: données croisées à l'adresse fiables
fiabilite_cr_adr_niv_2: batiment sans voisin à l'adresse
```

**Usage** : Accès rapide à l'adresse principale sans passer par rel_*.

---

#### batiment_groupe_bdtopo_bat.csv

**Rôle** : Données BDTOPO (IGN) sur les bâtiments.

**Statistiques** :
- Lignes : ~463k
- Taille : 30 Mo

**Colonnes** :
```
batiment_groupe_id      Référence bâtiment
l_nature                Liste des natures [JSON]: Indifférenciée, Religieux, etc.
l_usage_1               Liste des usages principaux [JSON]: Résidentiel, Commercial, etc.
l_usage_2               Liste des usages secondaires [JSON]
l_etat                  État [JSON]: En service, En construction, etc.
hauteur_mean            Hauteur moyenne en mètres
max_hauteur             Hauteur maximale en mètres
altitude_sol_mean       Altitude moyenne du sol en mètres
```

**Note** : Source de référence IGN pour les hauteurs et usages.

---

#### adresse_metrique.csv

**Rôle** : Métrique complémentaire sur les adresses (distances, etc.).

**Statistiques** :
- Lignes : ~51k
- Taille : 3,5 Mo

---

### Données environnementales et risques

#### batiment_groupe_argiles.csv

**Rôle** : Aléa retrait-gonflement des argiles (risque sécheresse).

**Statistiques** :
- Lignes : ~129k
- Taille : 7,8 Mo

**Colonnes** :
```
batiment_groupe_id  Référence bâtiment
alea                Niveau d'aléa : Faible / Moyen / Fort
```

**Usage** : Identifier les bâtiments à risque sécheresse/fissures.

---

#### batiment_groupe_radon.csv

**Rôle** : Aléa radon (gaz radioactif naturel).

**Statistiques** :
- Lignes : ~146k
- Taille : 8,8 Mo

**Colonnes** :
```
batiment_groupe_id  Référence bâtiment
alea                Niveau d'aléa : Faible / Moyen / Fort
```

---

#### batiment_groupe_qpv.csv

**Rôle** : Quartiers Prioritaires de la politique de la Ville (QPV).

**Statistiques** :
- Lignes : ~1,2k
- Taille : 73 Ko

**Colonnes** :
```
batiment_groupe_id  Référence bâtiment
nom_quartier        Nom du QPV
```

**Exemple** : "Coeur D'Agglo"

---

### Données patrimoniales

#### batiment_groupe_merimee.csv

**Rôle** : Distance aux monuments historiques (base Mérimée).

**Statistiques** :
- Lignes : ~54k
- Taille : 3,3 Mo

**Colonnes** :
```
batiment_groupe_id                      Référence bâtiment
distance_batiment_historique_plus_proche  Distance en mètres
nom_batiment_historique_plus_proche      Nom du monument
```

**Exemple** :
```
distance: 334 mètres
nom: Eglise Saint-Pierre
```

---

### Données équipements

#### batiment_groupe_bpe.csv

**Rôle** : Base Permanente des Équipements (BPE) - Équipements publics.

**Statistiques** :
- Lignes : ~2,6k
- Taille : 171 Ko

**Colonnes** :
```
batiment_groupe_id  Référence bâtiment
typequ              Type d'équipement (code)
```

**Usage** : Identifier écoles, mairies, hôpitaux, etc.

---

#### batiment_groupe_hthd.csv

**Rôle** : Très Haut Débit (fibre optique).

**Statistiques** :
- Lignes : ~126k
- Taille : 7,6 Mo

**Colonnes** :
```
batiment_groupe_id  Référence bâtiment
nb_pdl              Nombre de points de livraison fibre
l_type_pdl          Types de PDL [JSON]: "PA" (Point d'Accueil), "IM" (Immeuble), etc.
l_nom_pdl           Noms des PDL [JSON]
```

**Usage** : Éligibilité fibre optique.

---

### Données construction

#### sitadel.csv

**Rôle** : Permis de construire et autorisations d'urbanisme (SITADEL).

**Statistiques** :
- Lignes : ~50k
- Taille : 4,1 Mo

**Colonnes principales** :
```
type_numero_dau                 Type et numéro du dossier (DP, PC, etc.)
date_reelle_autorisation        Date d'autorisation
etat_avancement_projet          Autorisé, En cours, Achevé, etc.
nature_projet                   extension, construction neuve, etc.
destination_principale          résidentiel, non résidentiel
nb_log_tot_crees                Nombre de logements créés
nb_log_demolis                  Nombre de logements démolis
s_hab_creee                     Surface habitable créée (m²)
s_hab_demolie                   Surface habitable démolie (m²)
type_princip_logts_crees        individuel, collectif
```

**Usage** : Projets en cours et constructions récentes.

---

#### parcelle_sitadel.csv + rel_parcelle_sitadel.csv

**Rôle** : Lien entre parcelles cadastrales et permis de construire.

**Statistiques** :
- parcelle_sitadel.csv : ~29k lignes, 2,4 Mo
- rel_parcelle_sitadel.csv : ~15k lignes, 937 Ko

---

### Autres tables thématiques

| Table | Lignes | Taille | Description |
|-------|--------|--------|-------------|
| batiment_groupe_geospx.csv | ~182k | 11 Mo | Données géo-prospective |
| batiment_groupe_ffo_bat.csv | ~206k | 13 Mo | Fichiers fonciers ouverts |
| batiment_groupe_bdtopo_equ.csv | ~60 | 4 Ko | Équipements BDTOPO |
| batiment_groupe_bdtopo_zoac.csv | ~8,6k | 553 Ko | Zones d'activité BDTOPO |
| batiment_groupe_synthese_propriete_usage.csv | ~214k | 13 Mo | Synthèse propriété/usage |
| batiment_groupe_indicateur_reseau_chaud_froid.csv | ~2k | 121 Ko | Réseaux de chaleur/froid |

---

## Schéma des relations entre tables

```
                                    ┌─────────────────────┐
                                    │  batiment_groupe    │ ⭐ TABLE CENTRALE
                                    │  (271k lignes)      │
                                    └──────────┬──────────┘
                                              │
                    ┌─────────────────────────┼─────────────────────────┐
                    │                         │                         │
        ┌───────────▼──────────┐  ┌──────────▼─────────┐   ┌──────────▼─────────┐
        │ batiment_construction│  │ batiment_groupe_   │   │   rel_batiment_    │
        │     (405k)           │  │    adresse (181k)  │   │   groupe_adresse   │
        └──────────────────────┘  └────────────────────┘   │      (209k)        │
                                                            └──────────┬─────────┘
                                                                       │
                                                            ┌──────────▼─────────┐
                                                            │     adresse        │ ⭐ BAN
                                                            │     (182k)         │
                                                            └────────────────────┘

                    ┌─────────────────────────┐
                    │  rel_batiment_groupe_   │
                    │     parcelle (294k)     │
                    └───────────┬─────────────┘
                                │
                    ┌───────────▼──────────┐
                    │      parcelle        │
                    │      (734k)          │
                    └──────────────────────┘

        DONNÉES ÉNERGÉTIQUES                    DONNÉES IMMOBILIÈRES
        ┌──────────────────────┐                ┌──────────────────────┐
        │ bg_dpe_representatif │ ⭐              │  bg_dvf_open_repr.   │ ⭐
        │      (32k)           │                 │       (53k)          │
        └──────────────────────┘                └──────────────────────┘
        ┌──────────────────────┐                ┌──────────────────────┐
        │ bg_dle_elec_multi.   │                │  bg_dvf_open_stat.   │
        │      (10k)           │                 │       (46k)          │
        └──────────────────────┘                └──────────────────────┘
        ┌──────────────────────┐                ┌──────────────────────┐
        │ bg_dle_gaz_multi.    │                │    proprietaire      │
        │       (3k)           │                 │       (9k)           │
        └──────────────────────┘                └──────────────────────┘
        ┌──────────────────────┐
        │   dpe_logement       │
        │      (69k)           │
        └──────────────────────┘

        COPROPRIÉTÉ / SOCIAL                    RISQUES / ENVIRONNEMENT
        ┌──────────────────────┐                ┌──────────────────────┐
        │   bg_rnc (2k)        │ ⭐              │  bg_argiles (129k)   │
        └──────────────────────┘                └──────────────────────┘
        ┌──────────────────────┐                ┌──────────────────────┐
        │   bg_rpls (4,5k)     │                │  bg_radon (146k)     │
        └──────────────────────┘                └──────────────────────┘
                                                ┌──────────────────────┐
                                                │  bg_qpv (1,2k)       │
                                                └──────────────────────┘

        GÉORÉFÉRENCEMENT                        PATRIMOINE / ÉQUIPEMENTS
        ┌──────────────────────┐                ┌──────────────────────┐
        │ bg_bdtopo_bat (463k) │                │  bg_merimee (54k)    │
        └──────────────────────┘                └──────────────────────┘
        ┌──────────────────────┐                ┌──────────────────────┐
        │   bg_hthd (126k)     │                │   bg_bpe (2,6k)      │
        └──────────────────────┘                └──────────────────────┘

        CONSTRUCTION / URBANISME
        ┌──────────────────────┐
        │   sitadel (50k)      │
        └──────────────────────┘
```

**Légende** :
- ⭐ : Tables prioritaires
- bg_* : Préfixe "batiment_groupe"
- Toutes les tables thématiques se lient via `batiment_groupe_id`

---

## Exemples de requêtes SQL

### 1. Récupérer les bâtiments d'une commune avec adresses

```sql
SELECT
    bg.batiment_groupe_id,
    bg.code_commune_insee,
    bg.libelle_commune_insee,
    bg.s_geom_groupe,
    bga.libelle_adr_principale_ban,
    bga.cle_interop_adr_principale_ban
FROM batiment_groupe bg
LEFT JOIN batiment_groupe_adresse bga
    ON bg.batiment_groupe_id = bga.batiment_groupe_id
WHERE bg.code_commune_insee = '03185'  -- Montluçon
ORDER BY bga.libelle_adr_principale_ban;
```

---

### 2. Joindre avec votre base d'adresses BAN

```sql
-- Si vous avez une table "mes_adresses" avec la colonne "ban_id"
SELECT
    ma.id AS mon_adresse_id,
    ma.adresse,
    bg.batiment_groupe_id,
    bg.s_geom_groupe,
    bg.code_commune_insee
FROM mes_adresses ma
JOIN rel_batiment_groupe_adresse rel
    ON ma.ban_id = rel.cle_interop_adr
JOIN batiment_groupe bg
    ON rel.batiment_groupe_id = bg.batiment_groupe_id
WHERE rel.lien_valide = 1;
```

---

### 3. Récupérer les données énergétiques complètes

```sql
SELECT
    bg.batiment_groupe_id,
    bg.code_commune_insee,
    bg.libelle_commune_insee,
    bga.libelle_adr_principale_ban,

    -- DPE représentatif
    dpe.classe_bilan_dpe,
    dpe.classe_emission_ges,
    dpe.conso_5_usages_ep_m2,
    dpe.type_energie_chauffage,
    dpe.type_generateur_chauffage,
    dpe.surface_habitable_logement,
    dpe.nombre_niveau_immeuble,

    -- DLE électricité (dernière année)
    dle_elec.millesime AS millesime_elec,
    dle_elec.nb_pdl_tot AS nb_compteurs_elec,
    dle_elec.conso_tot AS conso_elec_kwh,

    -- DLE gaz (dernière année)
    dle_gaz.nb_pdl_tot AS nb_compteurs_gaz,
    dle_gaz.conso_tot AS conso_gaz_kwh

FROM batiment_groupe bg
LEFT JOIN batiment_groupe_adresse bga
    ON bg.batiment_groupe_id = bga.batiment_groupe_id
LEFT JOIN batiment_groupe_dpe_representatif_logement dpe
    ON bg.batiment_groupe_id = dpe.batiment_groupe_id
LEFT JOIN batiment_groupe_dle_elec_multimillesime dle_elec
    ON bg.batiment_groupe_id = dle_elec.batiment_groupe_id
    AND dle_elec.millesime = '2022'
LEFT JOIN batiment_groupe_dle_gaz_multimillesime dle_gaz
    ON bg.batiment_groupe_id = dle_gaz.batiment_groupe_id
    AND dle_gaz.millesime = '2022'

WHERE bg.code_commune_insee = '03185'
ORDER BY bga.libelle_adr_principale_ban;
```

---

### 4. Bâtiments avec copropriété (RNC)

```sql
SELECT
    bg.batiment_groupe_id,
    bga.libelle_adr_principale_ban,
    rnc.numero_immat_principal,
    rnc.nb_log AS nb_logements,
    rnc.nb_lot_tot AS nb_lots_total,
    rnc.nb_lot_garpark AS nb_parkings,
    rnc.l_nom_copro AS noms_copro,
    rnc.copro_dans_pvd AS plan_sauvegarde
FROM batiment_groupe bg
JOIN batiment_groupe_rnc rnc
    ON bg.batiment_groupe_id = rnc.batiment_groupe_id
LEFT JOIN batiment_groupe_adresse bga
    ON bg.batiment_groupe_id = bga.batiment_groupe_id
ORDER BY rnc.nb_log DESC;
```

---

### 5. Transactions immobilières récentes

```sql
SELECT
    bg.batiment_groupe_id,
    bga.libelle_adr_principale_ban,
    dvf.valeur_fonciere,
    dvf.date_mutation,
    dvf.nb_maison_mutee_mutation + dvf.nb_appartement_mutee_mutation AS nb_biens_vendus,
    dvf.surface_bati_mutee_residencielle_individuelle +
    dvf.surface_bati_mutee_residencielle_collective AS surface_totale_m2,
    dvf.prix_m2_local,
    dvf.prix_m2_terrain
FROM batiment_groupe bg
JOIN batiment_groupe_dvf_open_representatif dvf
    ON bg.batiment_groupe_id = dvf.batiment_groupe_id
LEFT JOIN batiment_groupe_adresse bga
    ON bg.batiment_groupe_id = bga.batiment_groupe_id
WHERE dvf.date_mutation >= '2020-01-01'
ORDER BY dvf.date_mutation DESC;
```

---

### 6. Bâtiments à risque environnemental élevé

```sql
SELECT
    bg.batiment_groupe_id,
    bg.code_commune_insee,
    bg.libelle_commune_insee,
    bga.libelle_adr_principale_ban,
    argile.alea AS alea_argile,
    radon.alea AS alea_radon
FROM batiment_groupe bg
LEFT JOIN batiment_groupe_adresse bga
    ON bg.batiment_groupe_id = bga.batiment_groupe_id
LEFT JOIN batiment_groupe_argiles argile
    ON bg.batiment_groupe_id = argile.batiment_groupe_id
LEFT JOIN batiment_groupe_radon radon
    ON bg.batiment_groupe_id = radon.batiment_groupe_id
WHERE argile.alea = 'Fort'
   OR radon.alea = 'Fort'
ORDER BY bg.code_commune_insee;
```

---

### 7. Logements sociaux avec DPE

```sql
SELECT
    bg.batiment_groupe_id,
    bga.libelle_adr_principale_ban,
    rpls.nb_log AS nb_logements_sociaux,
    rpls.s_log_hab AS surface_habitable_totale,
    rpls.classe_ener_principale,
    rpls.classe_ges_principale,
    rpls.accessible_pmr,
    rpls.dans_qpv,
    rpls.l_annee_construction
FROM batiment_groupe bg
JOIN batiment_groupe_rpls rpls
    ON bg.batiment_groupe_id = rpls.batiment_groupe_id
LEFT JOIN batiment_groupe_adresse bga
    ON bg.batiment_groupe_id = bga.batiment_groupe_id
WHERE rpls.rpls_open = 1
ORDER BY rpls.nb_log DESC;
```

---

### 8. Bâtiments près d'un monument historique

```sql
SELECT
    bg.batiment_groupe_id,
    bga.libelle_adr_principale_ban,
    merimee.distance_batiment_historique_plus_proche AS distance_m,
    merimee.nom_batiment_historique_plus_proche AS monument
FROM batiment_groupe bg
JOIN batiment_groupe_merimee merimee
    ON bg.batiment_groupe_id = merimee.batiment_groupe_id
LEFT JOIN batiment_groupe_adresse bga
    ON bg.batiment_groupe_id = bga.batiment_groupe_id
WHERE merimee.distance_batiment_historique_plus_proche < 100
ORDER BY merimee.distance_batiment_historique_plus_proche;
```

---

### 9. Vue complète d'un bâtiment

```sql
-- Vue exhaustive d'un bâtiment avec toutes les données disponibles
SELECT
    -- Identifiants
    bg.batiment_groupe_id,
    bg.code_commune_insee,
    bg.libelle_commune_insee,
    bg.code_iris,
    bg.s_geom_groupe AS surface_m2,

    -- Adresse
    bga.libelle_adr_principale_ban,
    bga.cle_interop_adr_principale_ban,

    -- DPE
    dpe.classe_bilan_dpe,
    dpe.classe_emission_ges,
    dpe.conso_5_usages_ep_m2,
    dpe.type_energie_chauffage,
    dpe.surface_habitable_logement,

    -- DVF (dernière transaction)
    dvf.valeur_fonciere,
    dvf.date_mutation,
    dvf.prix_m2_local,

    -- RNC (si copropriété)
    rnc.numero_immat_principal,
    rnc.nb_log AS nb_lots_copro,

    -- Risques
    argile.alea AS risque_argile,
    radon.alea AS risque_radon,
    qpv.nom_quartier AS quartier_prioritaire,

    -- Patrimoine
    merimee.distance_batiment_historique_plus_proche AS distance_mh_m,
    merimee.nom_batiment_historique_plus_proche AS monument_proche,

    -- Fibre
    hthd.nb_pdl AS nb_pdl_fibre,

    -- BDTOPO
    bdtopo.hauteur_mean AS hauteur_moyenne_m,
    bdtopo.l_usage_1 AS usages_principaux

FROM batiment_groupe bg
LEFT JOIN batiment_groupe_adresse bga
    ON bg.batiment_groupe_id = bga.batiment_groupe_id
LEFT JOIN batiment_groupe_dpe_representatif_logement dpe
    ON bg.batiment_groupe_id = dpe.batiment_groupe_id
LEFT JOIN batiment_groupe_dvf_open_representatif dvf
    ON bg.batiment_groupe_id = dvf.batiment_groupe_id
LEFT JOIN batiment_groupe_rnc rnc
    ON bg.batiment_groupe_id = rnc.batiment_groupe_id
LEFT JOIN batiment_groupe_argiles argile
    ON bg.batiment_groupe_id = argile.batiment_groupe_id
LEFT JOIN batiment_groupe_radon radon
    ON bg.batiment_groupe_id = radon.batiment_groupe_id
LEFT JOIN batiment_groupe_qpv qpv
    ON bg.batiment_groupe_id = qpv.batiment_groupe_id
LEFT JOIN batiment_groupe_merimee merimee
    ON bg.batiment_groupe_id = merimee.batiment_groupe_id
LEFT JOIN batiment_groupe_hthd hthd
    ON bg.batiment_groupe_id = hthd.batiment_groupe_id
LEFT JOIN batiment_groupe_bdtopo_bat bdtopo
    ON bg.batiment_groupe_id = bdtopo.batiment_groupe_id

WHERE bg.batiment_groupe_id = 'bdnb-bg-11HT-AKW6-6RW8';
```

---

## Statistiques de couverture

| Donnée | Table | Couverture |
|--------|-------|------------|
| Adresse BAN | batiment_groupe_adresse | 66,5% (181k/272k) |
| DPE représentatif | bg_dpe_representatif | 12,0% (32k/272k) |
| DLE électricité | bg_dle_elec | 3,7% (10k/272k) |
| DLE gaz | bg_dle_gaz | 1,1% (3k/272k) |
| DVF transactions | bg_dvf_open_repr | 19,4% (53k/272k) |
| Copropriété RNC | bg_rnc | 0,76% (2k/272k) |
| Logement social RPLS | bg_rpls | 1,7% (4,5k/272k) |
| Risque argiles | bg_argiles | 47,5% (129k/272k) |
| Risque radon | bg_radon | 53,7% (146k/272k) |
| QPV | bg_qpv | 0,44% (1,2k/272k) |
| Monuments historiques | bg_merimee | 19,9% (54k/272k) |
| Fibre HTHD | bg_hthd | 46,4% (126k/272k) |
| BDTOPO | bg_bdtopo_bat | 170,4% (463k/272k)* |

*\* Plus de 100% car plusieurs entrées BDTOPO par bâtiment*

---

## Notes importantes

### Format des identifiants

- **batiment_groupe_id** : `bdnb-bg-XXXX-XXXX-XXXX` (ex: bdnb-bg-11HT-AKW6-6RW8)
- **batiment_construction_id** : `bdnb-bc-XXXX-XXXX-XXXX`
- **parcelle_id** : Format cadastral `CCCCCSSSNNNNN` (C=commune, S=section, N=numéro)
- **cle_interop_adr** : Format BAN `CCCCC_XXXX_NNNNN` (C=commune, X=identifiant, N=numéro)

### Géométries

- **Format** : WKT (Well-Known Text)
- **Projection** : EPSG:2154 (Lambert 93)
- **Types** :
  - `POINT` : Adresses
  - `MULTIPOLYGON` : Bâtiments, parcelles
  - `MULTILINESTRING` : Relations spatiales

### Colonnes JSON (listes)

Certaines colonnes contiennent des listes au format JSON :
```
l_annee_construction: [ "1850", "1900" ]
l_nom_copro: [ "25-27 rue du Vert Galant" ]
l_usage_1: [ "Résidentiel", "Annexe" ]
```

Pour les exploiter en SQL (PostgreSQL) :
```sql
SELECT
    batiment_groupe_id,
    jsonb_array_elements_text(l_annee_construction::jsonb) AS annee
FROM batiment_groupe_rnc;
```

---

## Cas d'usage typiques

### 1. Enrichir une base d'adresses avec données bâtiment

**Objectif** : Ajouter DPE, surface, nombre de logements à vos adresses.

**Tables nécessaires** :
- `adresse.csv` (BAN)
- `rel_batiment_groupe_adresse.csv`
- `batiment_groupe.csv`
- `batiment_groupe_dpe_representatif_logement.csv`
- `batiment_groupe_rnc.csv` (si copropriété)

**Jointure** :
```
mes_adresses.ban_id
  → rel_batiment_groupe_adresse.cle_interop_adr
  → batiment_groupe.batiment_groupe_id
  → données thématiques
```

---

### 2. Cartographie des passoires thermiques

**Objectif** : Identifier les bâtiments avec DPE F ou G.

**Tables nécessaires** :
- `batiment_groupe.csv`
- `batiment_groupe_dpe_representatif_logement.csv`
- `batiment_groupe_adresse.csv`

**Filtre** :
```sql
WHERE dpe.classe_bilan_dpe IN ('F', 'G')
```

---

### 3. Analyse du marché immobilier

**Objectif** : Prix au m² par commune, période, type de bien.

**Tables nécessaires** :
- `batiment_groupe.csv`
- `batiment_groupe_dvf_open_representatif.csv`
- `batiment_groupe_dvf_open_statistique.csv`

**Agrégation** :
```sql
SELECT
    bg.code_commune_insee,
    bg.libelle_commune_insee,
    EXTRACT(YEAR FROM dvf.date_mutation) AS annee,
    AVG(dvf.prix_m2_local) AS prix_moyen_m2,
    COUNT(*) AS nb_transactions
FROM batiment_groupe bg
JOIN batiment_groupe_dvf_open_representatif dvf
    ON bg.batiment_groupe_id = dvf.batiment_groupe_id
GROUP BY bg.code_commune_insee, bg.libelle_commune_insee, annee
ORDER BY annee DESC, prix_moyen_m2 DESC;
```

---

### 4. Audit copropriétés (loi ALUR)

**Objectif** : Lister les copropriétés avec nombre de lots, logements, statut.

**Tables nécessaires** :
- `batiment_groupe.csv`
- `batiment_groupe_rnc.csv`
- `batiment_groupe_adresse.csv`
- `batiment_groupe_dpe_representatif_logement.csv` (optionnel)

**Champs clés** :
- `numero_immat_principal` : Immatriculation copropriété
- `nb_log` : Nombre de logements
- `nb_lot_tot` : Nombre total de lots
- `copro_dans_pvd` : Plan de sauvegarde

---

### 5. Détection bâtiments énergivores

**Objectif** : Identifier les bâtiments avec forte consommation énergétique.

**Tables nécessaires** :
- `batiment_groupe.csv`
- `batiment_groupe_dle_elec_multimillesime.csv`
- `batiment_groupe_dle_gaz_multimillesime.csv`
- `batiment_groupe_rnc.csv` (pour nb_log)

**Calcul** :
```sql
SELECT
    bg.batiment_groupe_id,
    bga.libelle_adr_principale_ban,
    rnc.nb_log,
    (COALESCE(elec.conso_tot, 0) + COALESCE(gaz.conso_tot, 0)) AS conso_totale_kwh,
    (COALESCE(elec.conso_tot, 0) + COALESCE(gaz.conso_tot, 0)) / NULLIF(rnc.nb_log, 0) AS conso_par_logement
FROM batiment_groupe bg
LEFT JOIN batiment_groupe_adresse bga ON bg.batiment_groupe_id = bga.batiment_groupe_id
LEFT JOIN batiment_groupe_rnc rnc ON bg.batiment_groupe_id = rnc.batiment_groupe_id
LEFT JOIN batiment_groupe_dle_elec_multimillesime elec
    ON bg.batiment_groupe_id = elec.batiment_groupe_id AND elec.millesime = '2022'
LEFT JOIN batiment_groupe_dle_gaz_multimillesime gaz
    ON bg.batiment_groupe_id = gaz.batiment_groupe_id AND gaz.millesime = '2022'
WHERE rnc.nb_log > 0
ORDER BY conso_par_logement DESC;
```

---

## Ressources et documentation officielle

- **Site BDNB** : https://www.data.gouv.fr/fr/datasets/bdnb/
- **Documentation CSTB** : https://doc-bdnb.cstb.fr/
- **API BDNB** : https://api.bdnb.io/
- **Base Adresse Nationale (BAN)** : https://adresse.data.gouv.fr/
- **DVF (Demandes Valeurs Foncières)** : https://www.data.gouv.fr/fr/datasets/dvf/

---

## Fichiers CSVT

Les fichiers `.csvt` définissent les types de colonnes pour les outils SIG (QGIS, ArcGIS) :
- `String` : Texte
- `Real` : Nombre décimal
- `Integer` : Nombre entier
- `Date` : Date

Exemple `batiment_groupe.csvt` :
```
String,String,String,Real,String,String,String,String,Integer
```

---

## Fichiers PRJ

Les fichiers `.prj` définissent le système de projection (EPSG:2154 - Lambert 93).

---

## Conclusion

La BDNB est une base de données extrêmement riche permettant de croiser :
- **Géolocalisation** (adresses BAN, géométries)
- **Énergie** (DPE, DLE, consommations)
- **Immobilier** (transactions DVF, prix au m²)
- **Propriété** (copropriétés RNC, propriétaires, logements sociaux)
- **Risques** (argiles, radon, monuments historiques)
- **Équipements** (fibre, équipements publics)

**Tables prioritaires pour débuter** :
1. `batiment_groupe.csv` (table centrale)
2. `adresse.csv` (référentiel BAN)
3. `rel_batiment_groupe_adresse.csv` (lien bâtiments ↔ adresses)
4. `batiment_groupe_dpe_representatif_logement.csv` (données énergétiques)
5. `batiment_groupe_rnc.csv` (copropriétés et nombre de logements)

**Clé de jointure universelle** : `batiment_groupe_id`

**Conseil** : Commencez par importer ces 5 tables dans votre base de données, puis ajoutez progressivement les tables thématiques selon vos besoins.
