Database Management System - Syllabus

Embark on a profound academic exploration as you delve into the Database Management System course (DBMS) within the distinguished Tribhuvan university's BIT department. Aligned with the BIT Curriculum, this course (BIT202) seamlessly merges theoretical frameworks with practical sessions, ensuring a comprehensive understanding of the subject. Rigorous assessment based on a 60+20+20 marks system, coupled with a challenging passing threshold of , propels students to strive for excellence, fostering a deeper grasp of the course content.

This 3 credit-hour journey unfolds as a holistic learning experience, bridging theory and application. Beyond theoretical comprehension, students actively engage in practical sessions, acquiring valuable skills for real-world scenarios. Immerse yourself in this well-structured course, where each element, from the course description to interactive sessions, is meticulously crafted to shape a well-rounded and insightful academic experience.


Course Description: The course covers the basic concepts of databases, database system concepts and architecture, data modeling using ER diagram, relational model, SQL, relational algebra and calculus, normalization, transaction processing, concurrency control, and database recovery.

Course Objectives: The main objective of this course is to introduce the basic concepts of database, data modeling techniques using entity relationship diagram, relational algebra and calculus, basic and advanced features SQL, normalization, transaction processing, concurrency control, and recovery techniques.

Units

Database Concepts and Architecture

Database (Introduction, Examples), Database Management System (Introduction, Advantages, Examples); Database Users(Actors on the scene: Database Administrators, Database Designers, End Users(Causal, Naïve, Sophisticated, Standlone), System Analyst and Standalone Programmers, Workers behind the scene: DBMS System Designers and Implementers, Tool Developers, Operators and maintenance personnel) and Benefits of Databases;

Data Models (Hierarchical, Network, ER, Relational, Object): , Schemas, and Instances; Three-Schema Architecture (Internal, Conceptual and External View) and Data Independence (Logical and Physical);

Database Languages (DDL, DML, SDL, VDL) and Interfaces (Menu Based, Mobile Apps, Form Based, GUI, Natural Language, Keyword Based, Search Input Output, Interfaces for Parametric users and DBA);

The Database System Environment(DBMS Component Modules, Database System Utilities, Tools, Application Environments, and Communications Facilities);

Centralized and Client/Server Architectures for DBMSs (One-tier, Two-tier, Three-tier, N-tier);

Classification of Database Management Systems (Single and Mutli user, Centralized and Distributed, Homogeneous and Heterogeneous, General Purpose and Special Purpose);


Data Modeling Using the Entity-Relational Model

Using High-Level Conceptual Data Models for Database Design (Requirement Analysis, Conceptual Design, Logical Design, Physical Design);

Entity Types, Entity Sets, Attributes (Composite Vs. Simple, Single Valued Vs. Multivalued, Stored Vs. Derived) and Keys; Relationship Types, Relationship Sets, Relationship Instances, Relationship Degree, Roles, and Structural Constraints(Cardinality Ratio, Participation Constraint); Weak Entity Types (Weak Entity and Partial Keys); 

ER Diagrams, Naming Conventions(Attribute, Entity, Relationship), and Design Issues; Relationship Types of Degree Higher Than Two; ER-to-Relational Mapping

Enhanced Entity–Relationship (EER): Subclasses, Superclasses, and Inheritance; Specialization and Generalization; Constraints (Overlapping, Disjoint) and Characteristics of Specialization and Generalization;


The Relational Data Model and Relational Database Constraints

Relational Model Concepts (Domains, Attributes, Tuples, and Relations; Characteristics of Relation); Relational Model Constraints (Domain Constraints, Key Constraints, Constraints on Null Values) and Relational Database Schemas (Relational Database state); (Entity Integrity, Referential Integrity, and Foreign Keys);

Update Operations, Transactions, and Dealing with Constraint Violations (Inset, Delete Update Operations) (Restrict/Cascade/set null/ set default);

Basic Relational Algebra Operations (Unary: Select, Project, Rename; Binary: Binary: Set Theory(Union, Intersection, Set Difference), Cartesian Product, Join (Natural/Theta), Outer Join (Left/Right/Full); 


SQL

Data Definition and Data Types (Attribute Data Types and Domains Create Database, Create Table, Drop Table, Drop Constraint, Drop Database); Specifying Constraints (Attribute Constraints, Attribute Defaults, Key and Referential Integrity Constraints, Naming Constraints, Constraint using CHECK);

Basic Retrieval Queries (SELECT-FROM-WHERE Structure, Ambiguous Attribute Names, Aliasing, Renaming, Tuple Variables; Unspecified WHERE clause, Use of * in Select, Substring Pattern Matching using LIKE, Arithmetic Operators, Order by Clause); 

Complex Retrieval Queries; (Where Clause using IS NULL, Logical Connectives, Nested Query, Correlated Nested Query, Using BETWEEN, IN and EXISTS Clauses in Where, Renaming Attributes, JOIN, Natural JOIN, OUTER JOIN (Left/Right), Aggregate Functions, GROUP BY and HAVING Clause);

INSERT, DELETE, and UPDATE Statements; Views (CREATE, DROP); 


Relational Database Design

Relational Database Design Using ER-to-Relational Mapping (Mapping of Regular Entity, Weak Entity, Relationship Types, Multivalued Attributes, N-ary Relationship); 

Informal Design Guidelines for Relational Schemas (Semantics of Attributes in Relations, Redundant Information in Tuples and Update Anomalies, NULL Values in Tuples, Generation of Spurious Tuples); 

Functional Dependencies (Definition, Inference Rules for Functional Dependencies, Armstong’s Axioms, Attribute Closure, Equivalence of Functional Dependencies, Minimal Sets of Functional Dependencies);

Normal Forms Based on Primary Keys (First Normal Form, Second Normal Form, Third Normal Form); General Definitions of Second and Third Normal Forms;

Boyce-Codd Normal Form; Multivalued Dependency and Fourth Normal Form;

Properties of Relational Decomposition (Attribute Preservation, Dependency Preservation, Loss-Less/ Non-Additive Join)


Transaction Processing and Concurrency Control, and Recovery

Introduction to Transaction Processing; (Single User vs. Multi User, Read/ Write Operations, Need for Concurrency Control: Lost Update Problem, Temporary Update (or Dirty Read) Problem, Incorrect Summary Problem, Unrepeatable Read Problem, Need for Recovery);

Transaction and System Concepts (Transaction States, System Log, Commit Point of Transaction); Desirable Properties of Transactions (Atomicity, Consistency, Isolation, Durability);  

Schedules, Conflicting Operations in Schedule, Characterizing Schedules based on Recoverability, Characterizing Schedules based on Seriablizility, Serial, Nonserial, Conflict Serializable Schedules, Testing for serializability of Schedule, Using Serializability for Concurrency Control;

Concurrency Control Techniques; Two-Phase Locking (Types of Lock, Basic, Conservative, Strict, and Rigorous Two-Phase Locking, Deadlock and Starvation, Deadlock Prevention, Deadlock Detection) and Timestamp Ordering (Timestamp, Read Timestamp, Write Timestamp, Basic Timestamp Ordering, Strict Timestamp Ordering);


Database Recovery Techniques

Recovery Concepts (Recovery outline and categorization of recovery algorithms; Caching (Buffering) of disk blocks; Write-ahead logging, Steal/nosteal, and Force/no-force; Checkpoints and Fuzzy Checkpointing; Transaction rollback and cascading rollback); 

NO-UNDO/REDO Recovery Based on Deferred Update; Recovery Technique Based on Immediate Update; Shadow Paging; Database Backup and Recovery from Catastrophic Failures; 


NoSQL

Structured and Unstructured Data; Introduction to NoSQL Databases (NoSQL Database, Types of NoSQL Database, Advantage of NoSQL); Discussion of basic architecture of Hbase, Cassandra and MongoDb;


Lab works

 The laboratory work includes design and implementation of database. Students should practice logical design of databases (ER Models) using case tools like draw.io, MS-Visio etc. The so designed database should be implemented by writing database programs using MYSQL, ORACLE etc. The database programs should include the DDL and DML statements like;

- Create, Drop, Alter, Rename of database/table/constraints

- INSERT, DELETE, and UPDATE Statements

- Specifying constraints (primary key, foreign key, referential integrity etc.)

- Basic and complex DML queries using select from where clause including the use of Order By, LIKE, IN, Exists, Between, Logical Connectives, LIMIT etc. - Join Operations

- Set Theory Operations Union, Intersect, Set Difference

- Nested Queries

- Aggregate functions

- Group By Having Clause

- Create Views / Drop Views

- Concepts of transaction, Backup and recovery

In addition, the students should practice and get familiar with the basics of NoSQL Database