CS 252 Introduction to
Computational Theory
Course Objectives:
- to study the theory of computation
- to learn the traditional topics of formal languages, automata,
computability, and computational complexity
- to understand the foundations of theoretical computer science
Topics
Purpose of DBMS, DB Terminology
Entity-Relationship Model
Relational Model
- Relational Algebra
- Tuple Calculus
- Domain Calculus
- Extended Algebra & Modification
SQL
- SQL
- SQL - Set Operations
- SQL - Aggregate Operations
- SQL Queries
Integrity Constraints
- Database Constraints
- Assertions & Triggers
- FDs
- Closure of FDs
- Key Finding
- Canonical Covers
Relational Database Design
- Relational DB Design & Decomposition
- Normalization using FDs
- 1NF - BCNF
- MVDs
- 4NF
- Normalization using MVDs & JDs
Logic-Based Data Model
- Datalog
- Recursion in Datalog
- Power of Datalog
Object-Oriented Databases
- Object-Oriented Databases
- Object-Oriented Data Modeling
- Object-Oriented Languages (O2)
- Object-Oriented Languages (O2SQL)
- Object-Oriented Programming Languages
Object-Relational Databases
XML
CS 554 Distrubuted Databases
Course Objectives:
- To understand the principles that guide the design of distributed DBMSs.
- To become acquaintance with current design problems of distributed DBMSs.
- To apply concepts learned to enhance the current design theory, methods, and
algorithms of distirbuted DBMSs.
Topics
- Distributed DBS
- Distributed DBMS Architecture
- Distributed Database Design
- Distributed DB Design
- Horizontal Fragmentation
- Vertical Fragmentation
- Hybrid Fragmentation
- Data Allocation
- Query Processing
- Overview of Query Processing
- Characterization & Layers of Query Processing
- Query Decomposition
- Localization of Distributed Data
- Distributed Query Optimization
- Centralized Query Optimization
- Join Ordering in Fragment Queries
- Distributed Algorithms
- Transaction Management
- Transactions
- Properties of Transactions
- Types of Transactions
- Concurrency Control
- Lock-based & Timestamp Protocols