1. Foundation |
General Introduction |
- Concepts of Data, Information, Database Management System (DBMS).
- Learn about popular DB models (relational, NoSQL).
- Compare the advantages of DBMS over file storage.
|
- Understand the core concepts of the database world.
|
2. Modeling |
Data Model |
- Entity-Relationship Model.
- Practice drawing ER Diagrams.
- Relational Model and Relational Algebra.
- Types of data constraints (primary key, foreign key).
|
- Ability to describe and structure data for a problem.
|
3. Interaction |
Database Language (SQL) |
- DDL (Data Definition Language): CREATE, ALTER, DROP.
- DML (Data Manipulation Language): SELECT, INSERT, UPDATE, DELETE.
- DCL (Data Control Language): GRANT, REVOKE.
- Learn about T-SQL/PL-SQL.
|
- Master the standard language for interacting with databases.
|
4. Design |
Database Design |
- Rules for converting from ER Diagram to Relational Model.
- Normalization forms: 1NF, 2NF, 3NF, BCNF.
- Practice designing a database for a specific application.
|
- Create an efficient and non-redundant database structure.
|
5. Programming |
Database Programming |
- Write Stored Procedures.
- Use Triggers for automation.
- Create Views to simplify queries.
- Optimize performance with Indexes.
|
- Build complex business logic within the database.
|
6. Transactions |
Transactions and Concurrency |
- Concept of Transactions and ACID properties.
- Concurrency control problems and solutions.
- Learn about Deadlock and how to handle it.
|
- Ensure data consistency and integrity.
|
7. Security |
Recovery and Data Safety |
- Recovery techniques after failures (log-based recovery).
- Backup and Recovery strategies.
|
- Protect data from incidents and loss.
|
8. Advanced |
Distributed & Advanced Databases |
- Distributed Database Architecture.
- Data Fragmentation and Replication techniques.
- Introduction to NoSQL database systems (Key-Value, Document, Graph).
|
- Expand knowledge to modern database systems.
|
9. Practical |
Real-world Applications |
- Analyze and design databases for management, banking, and e-commerce systems.
- Understand the role of databases in Big Data and Cloud Computing.
|
- Connect learned knowledge with real software systems.
|