Database management systems are one of the foundations upon which a modern economy is built. This is a course about such systems. The course begins by introducing SQL, a special-purpose language designed for managing data in a relational database management system (RDBMS). Then consideration is given to the theory underpinning relational databases, data storage and querying, and transaction management. The second meeting of the class each week is entirely devoted to laboratory work where students tackle exercises and demonstrate their work. Group-based projects are undertaken to provide practical experience of the design, building, and evaluation of database management systems. An individual project provides practical experience of data cleansing. There is a written midterm exam and a written final exam. By the end of the course a student will have obtained a reasonable familiarity with both relational and non-relational database management systems.