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
Normally available
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)
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