Database Systems
Hands-on relational database systems — ER/EER modeling, schema normalization, complex SQL queries, views, indexing, and complete database project implementation.
Instructor: Istiaq Ahmed Fahad
Term: Fall 2026
Location: Department of Computer Science and Engineering, BRAC University
Course Overview
CSE370: Database Systems (Lab) offers extensive practical experience with relational database management systems (RDBMS). Students master relational schema design, conceptual data modeling (ER/EER), schema normalization, and advanced SQL querying. The course includes hands-on SQL assignments and a collaborative term project designing and implementing a complete database system with an application interface.
Key lab topics include:
- Relational Foundations & DDL: Defining schemas, constraints, referential integrity, and cascading actions.
- SQL Mastery (DML & DQL): Multi-table joins, subqueries, grouping, aggregations, and view definitions.
- Database Optimization: Indexing strategies, query plan evaluation, transaction control, and normalization up to BCNF.
- Full-Stack Database Project: Designing and developing a real-world database system with an interactive frontend application.
Course Information
- Institution: Department of Computer Science and Engineering, BRAC University
- Course Portal: CSE370 Course View
- Role: Course Instructor (Lab)
Textbooks & References
- Fundamentals of Database Systems — Ramez Elmasri and Shamkant B. Navathe (Pearson, 7th Edition, 2015).
- Database Systems: A Practical Approach to Design, Implementation, and Management — Thomas M. Connolly and Carolyn E. Begg (Pearson, 6th Edition, 2014).
- Database System Concepts — Abraham Silberschatz, Henry F. Korth, and S. Sudarshan (McGraw-Hill, 6th Edition, 2011).
Prerequisites
- CSE221 (Algorithms)
Schedule
| Topic | Materials |
|---|---|
| Lab 1 — Relational Databases & MySQL Environment Setup Introduction to relational database management systems (RDBMS), setting up MySQL Server, command-line interfaces, and database management tools. | |
| Lab 2 — Data Definition Language (DDL) & Integrity Constraints Schema creation: CREATE DATABASE, CREATE TABLE, ALTER TABLE, DROP TABLE, data types, PRIMARY KEY, FOREIGN KEY, NOT NULL, and UNIQUE constraints. | |
| Lab 3 — Data Manipulation Language (DML) & Basic Queries INSERT, UPDATE, DELETE statements, and basic SELECT queries with WHERE filtering, pattern matching (LIKE), ORDER BY, and LIMIT. | |
| Lab 4 — SQL Aggregations & Grouping Aggregate functions (COUNT, SUM, AVG, MIN, MAX), GROUP BY clause, HAVING filtering, and conditional statements (CASE WHEN). | |
| Lab 5 — Relational Joins & Multi-Table Queries Cartesian product, INNER JOIN, LEFT OUTER JOIN, RIGHT OUTER JOIN, FULL OUTER JOIN, self joins, and multi-table queries. | |
| Lab 6 — Subqueries & Set Operations Scalar and multi-row subqueries, IN, ANY, ALL, correlated subqueries, EXISTS / NOT EXISTS, and set operations (UNION, INTERSECT). | |
| Lab 7 — Conceptual Modeling & Schema Design Entity-Relationship (ER) and Enhanced ER (EER) modeling, converting ER diagrams to relational schemas, and normalization (1NF, 2NF, 3NF, BCNF). | |
| Lab 8 — Advanced SQL: Views, Indexing & Transactions Creating and querying SQL Views, B-tree and hash indexing for performance optimization, transactions (ACID properties), COMMIT, and ROLLBACK. | |
| Lab 9 — Database Project Milestone 1 (Design & Schema Implementation) Team project requirements analysis, ER/EER diagram validation, normalization, and relational schema script execution. | |
| Lab 10 — Database Project Milestone 2 (Backend Integration) Connecting database engines with application programming languages (Python / Node.js / Java), executing parameterized queries, and preventing SQL injection. | |
| Lab 11 — Final Project Demonstration & Defense End-to-end database application demo, interactive queries, reporting, integrity verification, and oral defense. |