CourseOutline

=**CSE341 - Database Systems**= Instructor: Syeda Saleha Raza Credit Hours: 3 +1

The objective of this course is to cover the theoretical and applied aspects of database management systems. It explains concepts, modeling and implementation details of relational database management system. SQL, the standard language for interacting with databases, is covered in detail with the discussion of underlying theory of relational algebra. Advanced concepts of databases i.e. transaction management, Concurrency Control, Indexing, Security and Optimization are also introduced in this course.
 * Objective:**

**Syllabus**:
Data/ Database/ DBMS, History of Database Systems, File-Based Systems Data Models, Three-schema Architecture, Data Independence, DBMS classification & Architecture Type of Data Models, Relational Model Concepts, Entities, Attributes, Keys, Relationship, Recursive relationship, Degree & Cardinality, Integrity Constraints, Participation Constraints Composite & Multi-valued attributes, 1-1, 1-m, m-m relationships, Identifier Dependency, Existence Dependency, Weak Entities, Artificial Keys, Specialization and Generalization Concept of Set-based Operations, Relational Operations, Type of Joins (Theta join, Equi join, Natural join, Outer join), Universal & Existential Quantifiers Functional Dependencies, Normalization (1NF – 5NF), Denormalization Select/Insert/Update/Delete, Wildcard, IN/Not IN, EXISTS/NOT EXISTS, Aggregates, Group By/Having, Sub-queries, Correlated Queries, Derived tables, Stored Procedures, Views, Triggers, DDL - **Database Connectivity** Front-end to back-end database connectivity and query execution Indexing, Clustered and Non-clustered index, Dense Vs. sparse indexing, Fill Factor Transaction, ACID Properties, Transaction Schedules, Serializability, Precedence Graph Concurrency, Locks & Type of Locks, 2-Phase locking, Isolation levels Authentication vs Authorization, Role based Security, SQL Injection, Horizontal/Vertical Partitioning, Indexing Introduction to Data warehousing, OLTP vs OLAP, Introduction to Distributed Databases
 * - Introduction & History of Database Systems**
 * - Database Systems Concepts & Architecture**
 * - Data Modeling & ERD**
 * - Mapping from conceptual to logical model**
 * - Relational Algebra**
 * - Normalization**
 * - SQL**
 * - Disk Storage, Basic File Structures, and Hashing**
 * - Database Indexing**
 * - Transaction Handling**
 * - Concurrency Control**
 * - Database Security**
 * - Performance Tuning**
 * - Advanced Database Systems Concepts**

**Textboo:**
//**Database Systems**// //A practical approach to Design, Implementation and Management// //By: Thomas Connolly, Carolyn Begg, Anne Strachan// //4th Edition//

- Database Management Systems By: Ramakrishnan
 * Reference books**

- Fundamentals of Database Systems By: Navathe, Somayajulu, Gupta


 * Grading (Tentative)**
 * Assignments || 05 % ||
 * Quiz || 10 % ||
 * Project || 15 % ||
 * Term Exams || 30 % (15 + 15) ||
 * Final || 40 % ||

Labs:
Labs will cover database modeling in //Visio// and Database development, Querying, and transactions using //SQL Server 2005//. Some //C#// labs will also be conducted to give students an idea of database connectivity and data binding controls.

Project:
Students are required to do semester project in this course. Project will typically be an OLTP system implemented for any business domain.