Proof of Concept (POC) d'une base de données relationnelle PostgreSQL pour analyser le marché immobilier français, réalisé dans le cadre du parcours Data Engineer d'OpenClassrooms.
En tant que Data Engineer chez Laplace Immo, un réseau national d'agences immobilières, la mission consiste à collecter l'ensemble des transactions immobilières en France afin de suivre l'évolution du prix au mètre carré et d'identifier les régions où le marché est le plus porteur.
Ce dépôt contient le POC : une base de données modélisée, chargée avec les données, et interrogée en SQL pour répondre aux besoins métier exprimés par l'agence.
La base de données DataImmo suit une modélisation en étoile respectant la
3ème forme normale (3NF) et les contraintes RGPD :
dim_communes: référentiel géographique (région, département, commune)dim_biens_immobiliers: caractéristiques des biens (surface, type, pièces)f_transactions: table de faits des ventes (date, valeur foncière)f_populations: population par commune
Le schéma relationnel a été conçu avec PGModeler (fichier .dbm fourni).
id_transaction: clé primaire auto-incrémentée (SERIAL)id_bien: clé issue d'une concaténation (adresse + code postal + lot)com_code: concaténation du code département et du code commune (attention aux départements corses 2A / 2B)
.
├── model/
│ └── dataimmo.dbm # Schéma PGModeler
├── sql/
│ ├── 1_after_tables_creation.sql # Création des tables (finales + temporaires)
│ ├── 2_after_csv_imports.sql # Insertion des données et nettoyage
│ └── 3_12_requested_queries.sql # Les 12 requêtes métier
├── data/ # Fichiers CSV sources (non versionnés)
├── docs/
│ └── dictionnaire_donnees.ods # Dictionnaire des données
├── README.md
└── .gitignore
Prérequis : une instance PostgreSQL et un client SQL (psql, DBeaver, pgAdmin ou SQLite Studio pour une version simplifiée).
# 1. Créer la base de données
createdb dataimmo
# 2. Créer les tables (finales et temporaires)
psql -d dataimmo -f sql/1_after_tables_creation.sql
# 3. Importer les CSV dans les tables temporaires (via \copy ou l'interface)
# puis lancer l'insertion et le nettoyage
psql -d dataimmo -f sql/2_after_csv_imports.sql
# 4. Exécuter les requêtes d'analyse
psql -d dataimmo -f sql/3_12_requested_queries.sqlLes 12 requêtes répondent aux besoins de Laplace Immo, notamment : - Nombre d'appartements vendus et ventes par région (1er semestre 2020) - Proportion des ventes par nombre de pièces - Top 10 des départements par prix au m² - Prix moyen au m² des maisons en Île-de-France - Taux d'évolution des ventes entre les deux premiers trimestres 2020 - Communes avec le plus de transactions pour 1000 habitants
PostgreSQL, SQL, PGModeler.