An introduction to the analysis and design of typical database systems. Includes theoretical and practical aspects of designing database systems. A substantial project is included.

This course will focus on the theory underlying databases and, in particular, relational databases. This will include the entity-relationship model, the relational model, Structured Query Language (SQL), integrity constraints, and relational database design. As a bonus, students will be introduced briefly to NoSQL databases.

Prerequisite: CSE 2010.
Students are expected to have a working knowledge of data structures (stacks, queues, linked-lists, trees, graphs), and discrete math (relations, functions, bijections, propositional logic, truth tables). If you do not satisfy the prerequisites, then taking the class is at your own risk. Students will also be expected to execute queries in a popular programming language such as Python, C/C++, or Java.