| Section | 1 |
|---|---|
| Instructor(s) | Khaled, Ahmed (ahmedkhaled) |
| Location | Crerar 390 |
| Meeting Times | Wednesday 5pm - 7:30pm |
| Fulfills | Core Systems Elective |
Course Description:
This course introduces the fundamental concepts associated with the design and work of databases, including 1) the main steps to design a database and the Entity-Relationship (ER) model for an initial database design; 2) the different categories of data and an overview on the other data models with a comparison between SQL and NoSQL databases; 3) the essential properties and theories for the work of a database.
The course focuses on three main types of databases: 1) Relational SQL-based, where we learn about the relational data model, the normalization forms for an optimized design, and the Structured Query Language (SQL) to build relational databases and to store, manipulate, and retrieve data (using MySQL RDBMS); 2) Document-based NoSQL, where we learn about the document data model (using MongoDB) and the MongoDB Query Language (MQL); and 3) Graph-based NoSQL, where we learn about the graph data model (using Neo4j) and the graph query language (Neo4j's Cypher).
The students, in the final project, will design and implement a database for a system/scenario of their choice, then develop a user interface (e.g., web-based) using a programming language (e.g., Java, Python) of their choice that connects and interacts with the created database to execute user interactions through database supported queries.
Course Contents:
Coursework:
Recommended (optional) Textbooks
Completed or concurrently taking MPCS 51036, 51040, 51042, 51046, 51100, CAPP 30122, MACS 30122, or have a Core Waiver for Programming.
This course can not be taken if you are taking or have already completed MPCS 53020 Foundations of Database Systems. There is significant overlap between the two courses.
This course requires competency in Unix and Linux. If you attended the MPCS Unix Bootcamp you covered the required material. If you did not, please review the UChicago CS Student Resource Guide here: https://uchicago-cs.github.io/student-resource-guide/.
Course request information for non-MPCS students: https://masters.cs.uchicago.edu/student-resources/non-mpcs-student-course-requests/
This class is scheduled at a time that conflicts with these other classes: