Watch a video introduction to this course on YouTube.
The main objective of this course is to introduce students to fundamentals of database technology by studying databases from three viewpoints: those of the database user, the database designer, and the database administrator. It teaches the use of a database management system (DBMS) by treating it as a black box, focusing only on its functionality and its interfaces.
This is an introductory course on the basic concepts and the elements of database systems. It covers the basic concepts of database management by providing a "classic" introduction to the relational data model and its languages, and discusses database design methodology. The course objective will be achieved by focusing on three fundamental sub-objectives:
Complementary to the above objectives, the course has a training component where the students will gain experience using and building applications on top of a state-of-the-art commercial DMBS through a small project, and to get some practical hands-on experience with commercial database management systems (DBMS) by writing application programs using the commercial DBMS query languages. The main 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.
CS 348 is a course for CS major students.
Prerequisites: SE 240 or CS 240; CS students only.
Antirequisite: CS 338, CS 448, ECE 456.
Database Management Systems, 3rd ed., by Ramakrishnan & Gehrke, Published by McGraww Hill (required) ; Database Systems Concepts 5th ed., by Korth & Silberschatz Plublished by McGraw Hill (optional)
3 hours of lectures per week. Normally available in Fall, Winter, and Spring.
Data as a fundamental asset, what it means to manage persistent data, differences between file management and database management in terms of functionality and interface.
Fundamentals of relational databases, relational calculus, relational algebra, integrity issues.
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 DDL, SQL DML, QBE.
Embedded SQL, concept of transactions, principles of access granularity, ODBC, JDBC.
Database indexes, role of indexes in efficient database application development.
Views and view management, database security and authorization.
Distributed databases, data warehouses, data mining.

David R. Cheriton School of Computer Science
University of Waterloo
Waterloo, Ontario, Canada N2L 3G1
Tel: 519-888-4567 x33293
Fax: 519-885-1208
Contact | Feedback: cs-uops@cs.uwaterloo.ca | David R. Cheriton School of Computer Science | Faculty of Mathematics