CSC-251: Database System (4: 3+1)
General Information
Course Number CSC-251
Credit Hours 3+1 (Theory Credit Hour = 3, Lab Credit Hours = 1)
Prerequisite None
Course Objectives
The aim of this course is to build the foundation of database design, implementation and management from theory
and practical perspectives. The focus of this course would be on design and development of relational model and
relational query languages associated with such model. The basic concepts of concurrency control and transaction
processing will also be covered. In addition to the theoretical concepts, the course through the lab section, and
programming assignments and projects, will require students to use the Oracle / MySQL database systems and
develop term projects.
Catalog Description
CSC-251
Course Content
Session Week Topic Suggested Readings
No. No. (Chapters)
01-05 1-2 Introduction to DBMS
Database-System Applications
Views of Data
Database Languages
Relational Databases 1
Database Design
Data Storage and Querying
Transaction Management
Database Architecture
Database Users and Administrators
06-10 2-3 Introduction to the Relational Model
Structure of Relational Databases
Database Schema
Keys 2
Schema Diagrams
Relational Query Languages
Relational Operations
11-14 4-5 Relational Model
Relational Operations
2.6
Formal Relational Query Language
Relational Algebra
14-18 5-6 An algebraic Query Language
Natural Joins
Theta- Joins
2.6
Combining operations to form queries
Naming and renaming
Relationships among operations
18-23 7-8 Functional-Dependency Theory
Functional Dependencies (FDs) 7
Definition of FD
Keys of relations
Super Keys
Rules about FDs
Reasoning about FDs
Armstrong’s Axiom and inferencing Rule
Computing the closure of Attributes
Computing the closure of FDs
Mid Exam
24-26 9 Design of relational database schema
Anomalies
Decomposing Relations using FDs 7
Third Normal Form (3NF) and Boyce-Codd Normal Form
(BCNF)
27-29 10 Overview of the Design Process
The Entity-Relationship Model
Constraints
Removing Redundant Attributes in
Entity Sets
6
Entity-Relationship Diagrams
Reduction to Relational Schemas
Entity-Relationship Design Issues
Extended E-R Features
30-33 11 Enhanced ER design
From ERD to Relational Designs (translation)
From Entity sets to relations 6
From ER Relationships to Relations
Combining relations
34-39 12- 13 Transaction Management
ACID Properties
Concurrency Control
17, 18
Concurrency Control with locking methods
2PL
Deadlock
40-42 Semi-Structured and Un-structured Data
14 XML
JSON
11
PL/SQL
NoSQL
Graph Databases
43-45 15 Project Presentations and Revision
Final Exam
Text Book
Avi Silberschatz, Henry F. Korth, S. Sudarshan: "Database System Concepts", 7th Edition, 2019, McGraw-Hill
Reference Material
Hector Garcia-Molina, Jeffrey D. Ullman, Jennifer Widom:, “Database Systems: The Complete Book ”, 3 rd edition,
Pearson Prentice Hall
Thomas Connolly, Carolyn Begg:, “Database Systems: A practical approach to design, implementation and
Management ”, 5th edition, Addison Wesley
Course Learning Outcomes
Course Learning Outcomes (CLO)
1 Explain fundamental database concepts
2 Design conceptual, logical and physical database schemas using different data models
3 Identify functional dependencies and resolve database anomalies by normalizing database tables
4 Use Structured Query Language (SQL) for database definition and manipulation in any DBMS
CLO-GA Mapping
CLOs GA1 GA2 GA3 GA4 GA5 GA6 GA7 GA8 GA9 GA10
CLO 1 1
CLO 2 x
CLO 3 x
CLO 4 x
Computer Science/Software Engineering
Program Learning Outcomes
GA: Graduate Attributes
GA-1 Academic Education: Completion of an accredited program of study designed to prepare graduates
as computing professionals.
GA-2 Knowledge for Solving Computing Problems: Apply knowledge of computing fundamentals,
knowledge of a computing specialization, and mathematics, science, and domain knowledge appropriate for
the computing specialization to the abstraction and conceptualization of computing models from defined
problems and requirements.
GA-3 Problem Analysis: Identify and solve complex computing problems reaching
substantiated conclusions using fundamental principles of mathematics, computing sciences, and relevant
domain disciplines.
GA-4 Design/Development of Solutions: Design and evaluate solutions for complex computing problems,
and design and evaluate systems, components, or processes that meet specified needs.
GA-5 Modern Tool Usage: Create, select, or adapt and then apply appropriate techniques, resources, and
modern computing tools to complex computing activities, with an understanding of the limitations.
GA-6 Individual and Teamwork: Function effectively as an individual and as a member or leader of a
team in multidisciplinary settings.
GA-7 Communication: Communicate effectively with the computing community about complex
computing activities by being able to comprehend and write effective reports, design documentation, make
effective presentations, and give and understand clear instructions.
GA-8 Computing Professionalism and Society: Understand and assess societal, health, safety, legal, and
cultural issues within local and global contexts, and the responsibilities relevant to professional computing
practice
GA-9 Ethics: Understand and commit to professional ethics, responsibilities, and norms of professional
computing practice.
GA-10 Life-long Learning: Recognize the need, and have the ability, to engage in independent learning for
continual development as a computing professional.