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