This course covers database systems from the perspective of database designers and database programmers (not to be confused with database system implementors). The emphasis is on fundamental topics that should be familiar to every computer scientist and good programmer. In addition to traditional topics such as Entity-Relationship modeling, relational database design theory, relational algebra and calculus, SQL, and Datalog, the course also covers object-oriented and object-relational databases, with topics such as ODL, OQL, and SQL3.