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

Textbooks & References

  1. Fundamentals of Database Systems — Ramez Elmasri and Shamkant B. Navathe (Pearson, 7th Edition, 2015).
  2. Database Systems: A Practical Approach to Design, Implementation, and Management — Thomas M. Connolly and Carolyn E. Begg (Pearson, 6th Edition, 2014).
  3. 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.