CS 348: Introduction to Database Management

Spring 2017

Course Objectives

The lectures try to give an answer the following three questions:

  • why do we want to use databases and what are the benefits of doing so,
  • how do we use databases as users and application programmers,
  • how do we design databases, and
  • (extremely elementary introduction into) how do databases work.
  • Overview of Topics:

    The bullets correspond to self-contained topics, rather than to actual class periods. However, an attempt will be made to include integral number of topics in a class period or to use integral number of class periods per topic.

    Why do we use Databases?

  • Functionality provided by a Database Management System (DBMS).
  • Database Models: Relational, (optionally: Network, OO).
  • How do we use a DBMS?
  • Relational model, logic-based query languages (relational calculus).
  • SQL as the standard interface,
  • Embedded query languages and application programming.
  • Brief notes on database administration, security, etc.
  • How do we design Databases?
  • Entity-Relationship (ER) model.
  • Universal relations and functional dependencies.
  • Data redundancy and normal forms.
  • Database tuning.
  • How do Database Management Systems work?
  • Anatomy of a DBMS: the big picture.
  • Relational Algebra: the operational approach to queries.
  • Transaction model.
  • Advanced Topics (optional)
  • More powerful query languages.
  • More powerful representation techniques.
  • Official Course Description


    The lectures do not assume any prior knowledge of databases. However, you must brush up your skills in the following three areas:
  • Elementary math (sets, relations, first-order logic).
  • Basics of complexity theory (e.g., the O-notation, etc.).
  • Basic programming skills (in C).

  • Classes

    LEC 001 UW 10:00-11:20MW MC 1056
    LEC 002 UW 02:30-03:50MW MC 1056

    Midterm Exam

    June 29 07:00-08:50Th

    Final Exam


    Course Evaluation

    The University of Waterloo has been working hard to bring student evaluations into the modern era by eliminating the need for wasteful and time-consuming paper surveys. The current system we are testing is called "evaluate", and was developed on campus in order to meet the specific needs of the university.

    The evaluation survey is available online.