This course is designed to introduce students to the foundations of database systems, focusing on basics such as the relational data model, database and schema design, SQL, query processing, and transactions.
Classes will consist of lectures and discussions. The students will also be provided with lab practice of managing data using relational database management systems. A semester-long project is required, which is to apply the concepts and techniques learned in class in designing and implementing a simple database application (either a mobile app or a web app).
- 10.009 The Digital World; or
- 50.001 Introduction to Information Systems & Programming; or
- Strong programming background (e.g. mobile/web app development)
- Demonstrate the fundamental concepts, operation and function of different components of database systems.
- Describe the roles of transaction processing and concurrency control in a modern DBMS.
- Demonstrate key issues in the operation of a DBMS including query processing, security and integrity.
- Design and implement a database application.
- Discuss and analyse new trends in data systems (e.g. big data).
Discuss and apply key topics related to the engineering and design of database systems, including:
- Data model.
- Database and schema design.
- Schema normalization and integrity constraints.
- Relational Algebra
- Query processing.
- Query optimization.
- Concurrency control.