Revised March 3, 2015

CS 348: Introduction to Database Management


Watch a video introduction to this course on YouTube.

General description

This course covers the basic concepts and elements of database management by providing a "classic" introduction to the relational data model and its languages. The course also covers database design methodology.

Students gain experience using and building applications on top of a state-of-the-art commercial DMBS by completing several assignments. Students also gain hands-on experience with commercial database management systems (DBMS) by writing application programs using the commercial DBMS query languages. The main course topics are data models, architecture of database systems, data definition and manipulation languages, database design methods, and the theory of data dependencies and relational normalization.

Logistics

Audience

  • CS major students

Normally available

  • Fall, Winter, and Spring

Related courses

  • Pre-requisites: SE 240 or CS 240
  • Successors:
  • Anti-requisites: CS 338, CS 448, ECE 456

For official details, see the UW calendar.

Software/hardware used

  • A database management system, currently DB2 on Linux labs

Typical reference(s)

  • Database System Concepts, 6th edition, Avi Silberschatz, Henry F. Korth, and S. Sudarshan (required)
  • Database Management Systems, 3rd ed., Ramakrishnan & Gehrke, (optional)

Required preparation

At the start of the course, students should be able to

  • Program using a high-level programming language, such as C/C++/Java
  • Demonstrate a fundamental understanding of data structures

Learning objectives

At the end of the course, students should be able to

  • Explain the principles of relational database management systems
  • Develop data models by constructing Entity-Relationship models from specifications and map them to relational tables in Boyce-Codd Normal Form
  • Interact with database management systems by means of their languages (in particular SQL), and other interfaces, such as ODBC and JDBC
  • Use and build database application programs
  • Typical syllabus

    Introduction (2 hours)

    • Data as a fundamental asset and what it means to manage persistent data
    • Differences between file management and database management in terms of functionality and interface

    Relational database systems (6 hours)

    • Fundamentals of relational databases, relational calculus, relational algebra, integrity issues

    Database design (7 hours)

    • Database design methodology
    • Logical data modeling by Entity-Relationship modeling, mapping ER models to relational models, relationship to UML models
    • Normalization of relational schema

    SQL and interfaces (7 hours)

    • SQL DDL, SQL DML, QBE

    Database application development (5 hours)

    • Embedded SQL, concept of transactions, principles of access granularity, ODBC, JDBC

    Database tuning (3 hours)

    • Database indexes, role of indexes in efficient database application development

    Database administration (3 hours)

    • Views and view management
    • Database security and authorization

    Current topics (6 hours)

    • Distributed databases, data warehouses, data mining