ENCT301
Database Management System
Syllabus
- Introduction (3 hours)
- Application and evolution of database
- Data abstraction (physical, logical, and view level) and data independence
- Schema and instances
- Data Models (7 hours)
- Introduction to data models (entity-relationship, relational, object, hierarchical, network, graph data models)
- E-R model: entities and entity sets, attributes and keys, strong and weak entity sets, relationship and relationship sets (mapping cardinalities), specialization, generalization and aggregation
- Relational model: concept of relational model, key constraints, converting ER model into relational model
- Relational Query Languages (7 hours)
- Relational algebra
- Concept of DDL, DML and DCL
- Overview of the SQL query language: DDL and DML queries
- Set operations
- Aggregate functions, GROUP BY, HAVING
- Joins and types of joins
- Nested sub queries
- Database modification (insert, update, delete)
- Views
- Triggers and stored procedures
- Privilege and roles management: GRANT and REVOKE statements
- Database Constraints and Normalization (6 hours)
- Integrity constraints and domain constraints
- Assertions
- Functional dependencies
- Different normal forms (1NF, 2NF, 3NF, BCNF)
- Query Processing and Optimization (4 hours)
- Query processing, optimization and evaluation
- Transformation of relational expressions
- Techniques of query optimization: cost based and heuristic optimization
- Query evaluation: materialization and pipelining
- Denormalization for performance
- Materialized view
- Performance tuning
- File Structure and Hashing (5 hours)
- Disks and storage
- Records organizations
- Ordered indices
- B+ tree index
- Hashing concepts: static and dynamic hashing
- Transaction Processing and Concurrency Control (5 hours)
- Transaction and transaction model, state diagram
- ACID properties
- Concurrent execution of transactions
- Serializability (conflict and view serializability)
- Lock based protocols
- Deadlock handling and prevention
- Multiple granularity
- Crash Recovery (4 hours)
- Failure classification
- Recovery and atomicity
- Log-based recovery
- Shadow paging
- High availability using remote backup systems
- Advanced Database Concepts (4 hours)
- Concept of object-oriented databases
- Distributed database model
- Concept of data warehousing and online analytical processing
- Basic concepts of NoSQL and big data
Practicals
- Database server installation and configuration
- DB client installation and connection to DB server, practice with SELECT on existing DB
- Practice with DML queries: select, insert, update and delete
- Advanced queries with joins and subqueries
- Aggregation and grouping
- Practice with DDL commands: create/alter/drop table, integrity constraints and views
- Triggers and stored procedures
- Query processing, optimization, performance tuning and database administration
- Group project work