CPSC 304 Introduction to Relational Databases

Winter 2014 Term 2 (January -- April 2015) 


Instructor: Laks V.S. Lakshmanan

Course Description

Overview of relational database systems, logical database design, E-R models, formal relational query
languages, SQL, functional dependencies, normalization, formal relational query languages (Relational 
Algebra and Datalog), Commercial Query Language (SQL), data warehouses, special topics.

Prerequisite

(a) CPSC 221 or
(b) CPSC 260, EECE 320 and one of CPSC 210, EECE 210, EECE 309.

Learning Outcomes

At the end of the course you will be able to :

Course Content

CPSC 304 is an introductory course to database design and management. The course focus is primarily on
relational databases, and presents the concepts related to the design of a relational database, the most
popular relational database languages and the concepts related to data warehousing and online analytical
processing.

We will begin with a general overview of the database systems and their common features. Then, we will
examine the issues of the logical design of a relational database for an enterprise. We'll study in depth the
Entity-Relationship model as the primary method for representing the overall logical structure of the data,
and how this can be combined with the integrity constrains and used to design a database in an appropriate
normal form which avoids redundancies and allows efficient access of the data.

After that, we will study the popular relational languages. We'll start our study with relational algebra and Datalog on
the formal side and then move to SQL, a popular database language used by most industry strength relational database 
systems. In combination with the course assignments, this part of the course will provide you with  the
knowledge and skills you need to work on any relational database project.

At the end of the course we will examine systems which allow organizations to create summaries from
multiple databases and provide tools for analyzing the data in order to support high-level decision making.
This type of data transformation is called data warehousing and the data processing that involves data
analysis is known as online analytic processing (OLAP). In this part of the course we’ll discuss the basic
concepts of warehousing, like basic models for storing this type of data and basic OLAP queries.
If time permits we may discuss the basic concepts of other type of databases, like Information Retrieval Systems
and XML-based databases.

CPSC 304 is an introductory course to database design and management. The course focus is primarily on
relational databases,  and presents the concepts related to the design of a relational database, the most
popular relational database languages and the concepts related to the transaction processing layer (top
layer) of a database system. The actual topics of transaction management, concurrency control, and crash
recovery are dealt with in detail in CPSC 404.

Textbook

Raghu Ramakrishnan and Johannes Gehrke. Database Management Systems, 3rd Edition, McGraw-Hill,
2003.

Additional References

Course Material On-Line

Most of the materials we will use in this course will be available on-line at the following URLs:

You came here from the course home page which has links to the course notes. As mentioned elsewhere, we will be extensively using the Piazza system (essentially exclusively) for all online discussion related to this course.