Create all necessary tables and indexes in the database.
Populate the database with sample data for testing.