National Economic and Demographic Development

Published: 13 April 2026| Version 1 | DOI: 10.17632/g2b426c5rn.1
Contributors:
Tomi Oladunjoye,

Description

This dataset provides a comprehensive, structured relational view of global economic performance and demographic transitions over a 54-year period (1970–2024). The data is organized into five normalized tables designed for relational database research and analysis. The core of the dataset is the COUNTRY entity, which serves as a dimensional hub for three major indicator groups: Economic Indicators, Demographic Statistics, and Investment Infrastructure. Economic indicators include Gross Domestic Product (GDP) in current USD, GDP per Capita, Inflation rates (CPI), and Unemployment rates. Demographic statistics track Total Population, Life Expectancy at birth, Median Age, and Rural/Urban population shifts. Finally, the Investment Infrastructure table captures public spending on education and healthcare as a percentage of GDP, along with Gross Fixed Capital Formation (Infrastructure Investment) in USD. The primary objective of this dataset is to enable researchers to analyze the multi-dimensional correlations between financial growth and human development. For example, users can query the relationship between healthcare spending (Investment) and life expectancy (Demographics) or observe how rapid urbanization impacts regional inflation rates. By providing the data in a normalized format, this collection eliminates the redundancy typically found in flat-file World Bank exports, making it ready for immediate import into SQL-based environments for complex join-based analysis and longitudinal studies.

Files

Steps to reproduce

The raw data was collected using the World Bank Open Data API (v2). A custom Python script (fetch_data.py) was developed to programmatically query 10 distinct indicators: GDP (NY.GDP.MKTP.CD), GDP per Capita (NY.GDP.PCAP.CD), Inflation (FP.CPI.TOTL.ZG), Unemployment (SL.UEM.TOTL.ZS), Population (SP.POP.TOTL), Life Expectancy (SP.DYN.LE00.IN), Urban Population % (SP.URB.TOTL.IN.ZS), Education Spending (SE.XPD.TOTL.GD.ZS), Health Spending (SH.XPD.CHEX.GD.ZS), and Infrastructure Investment (NE.GDI.FTOT.CD). Data was requested for all available countries for the time series 1970 to 2024 in JSON format. Using the Python pandas library, the raw API responses were processed to handle several real-world data challenges. Metadata was used to filter out aggregate regions (e.g., World, High Income) to ensure the database only contains specific national entities. Records with missing values for crucial indicators were retained but normalized to NULL values for database compatibility. Explicit checks were performed to remove duplicate entries for any CountryID-Year combination during the merging of separate indicator dataframes. Continental and regional classifications were standardized to ensure consistent mapping across different World Bank data exports. The database was designed following a Snowflake-schema inspired relational model to satisfy Third Normal Form (3NF). A COUNTRY table tracks static metadata using ISO-3 codes as Primary Keys. A CONTINENT table was extracted to store administrative region metadata, linked to COUNTRY via a foreign key, reducing data redundancy. Indicators were separated into three distinct subject-area tables (ECONOMIC_INDICATOR, DEMOGRAPHIC_STATISTIC, INVESTMENT_INFRASTRUCTURE) to ensure that attributes were functionally dependent on their specific primary keys and to support efficient querying. The schema was implemented in MySQL using a DDL script (schema.sql). Data ingestion was automated via a second Python script (seed_db.py). This script performed final whitespace trimming on continental names, mapped countries to their normalized ContinentIDs, and performed batch inserts of over 30,000 records using the mysql-connector-python driver to ensure transactional integrity. Tools Used: Python 3.x, Pandas, Requests API, MySQL 8.0, MySQL Workbench, Git.

Institutions

Categories

Economics, Demography

Licence