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
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