This course is designed to introduce the foundations of database systems, focusing on basics such as the relational algebra and data model, query optimization, query processing, and transactions. Data modeling, conceptual models, object-oriented model, and relational data model. Mapping conceptual schema to a relational schema, entity and referential integrity, and relational algebra and relational calculus. Overview of database languages, SQL, query optimization, embedding non-procedural queries in a procedural language, and introduction to Object Query Language. Database design, functional dependency, normal forms, multivalued dependency, join dependency, and representation theory.