Database¶
About¶
- Level: Intermediate
- Lectures: 20 hours
- Self-study: 10 hours
- Exercises: 61
- Lines of Code to write: 147
- Format: e-learning + weekly online teleconference with instructor
- Language: English or Polish
Description¶
This course provides practical, hands-on training in designing, building, and maintaining data layers for Python applications using both relational and non-relational databases. Through exercises on data modeling, schema design and normalization, ORM usage, migrations, query construction and optimization, transactions and concurrency control, backup and restore, and integration with testing, CI pipelines, and pandas, participants will gain skills to design robust schemas, write efficient queries, and manage schema evolution in production.
Advantages¶
Participants will reduce runtime defects and debugging time by learning maintainable schema and migration practices and by testing schema changes. The course speeds feature delivery through reusable models and automated migrations, improves observability and performance via query optimization and monitoring techniques, and provides repeatable patterns for backups, recovery, and CI integration that help teams deliver reliable data-driven features faster.
Target Audience¶
- Backend and full-stack developers who design data models and write SQL or ORM code for Python applications.
- Data engineers and ETL authors who build pipelines, transform data, and integrate databases with analytics tools.
- Application architects and technical leads responsible for schema design, data integrity, and maintainability across services.
- QA engineers and test authors who create integration and system tests that exercise data layers and migrations.
- DevOps engineers, SREs, and DBAs who operate databases, backups, and performance monitoring in production environments.
- Data analysts and data scientists who need reliable extraction and transformation workflows and reproducible query results.
- Advanced students and learners aiming to build production-grade, data-driven Python applications.
Format¶
The course is delivered as a blended learning experience, comprising numerous short videos that progressively introduce concepts and techniques through a series of practical examples. The course format combines e-learning modules with weekly online teleconferences with the instructor for Q&A, discussions, and code reviews.
During the self-study phase, students complete practical exercises that apply the learned techniques. Each exercise is designed to have 100% test coverage, allowing students to verify their solutions. Additionally, students will have access to a spreadsheet to track their progress.
Students will also receive downloadable resources, including code samples, exercise templates, and reference materials to support their learning journey. Since 2015, we have refined our materials based on student feedback to ensure clarity, engagement, and practical relevance. All code listings undergo automatic testing (over 28,000 tests) to ensure accuracy and reliability. All materials, code listings, exercises, and assignments are handcrafted by our trainers without the use of AI. All case studies and examples are based on real-world scenarios drawn from our extensive experience in software engineering.
Working language of the course is either English or Polish.
Course Outline¶
-
Introduction to ORM Systems:
- Database design assumptions and information storage optimization
- Types of database normalization
- Best design practices
-
Data Modeling:
- Creating a local database
- Creating primary and foreign keys
- Creating simple tables
-
Creating Relational Tables:
- one to one
- one to many
- many to many
-
Deleting tables:
- Changing table relationship schemas
- Migrations
- Restoring a previous version of the database
-
Database Interaction:
- Reading data from relational and non-relational tables
- Editing individual values/records
- Creating queries with relationships
- Creating subqueries
- Passing query results to pandas DataFrames
-
Functions and Analysis:
- Using basic mathematical functions for a selected dataset
- Functions generating charts and statistics
- Using custom Python functions defined by the user
Our Experience¶
AATC trainers have been teaching software engineering since 2015. We have already delivered over 11,000 (eleven thousand) hours of software engineering training to more than 32,000 (thirty-two thousand) students worldwide.
Requirements¶
- Basic knowledge of Python programming
- Familiarity with using an IDE (e.g., PyCharm, VSCode)
- Familiarity with using version control systems (e.g., Git)
Setup¶
- Newest version of Python
- IDE of your choice (e.g., PyCharm, VSCode)
- Git installed and configured
- GitHub account
- Web browser (e.g., Chrome, Firefox, Safari, etc.)
- SQLite3 installed locally
- Possibility to install PostgreSQL locally (eg. using Docker)
Apply¶
If you are interested in taking this course, please contact us at info@astronaut.center