About the Course

Course Objectives


  • Have fun, learn a lot and come to appreciate and enjoy some amazing technology. Data and databases have and will change the world.
  • Provide a foundation that allows you to succeed in future courses. Despite being a 4XXX course, this is an introduction to databases. Databases are widely used in many scenarios. Database technology is a large and active SW area.
  • The technology is crucial for future courses
    • Big data, data analysis, data science.
    • Advanced database classes.
    • Machine learning, AI.
    • Numerical and data analytics in operations research, engineering, economics, finance, life sciences, financial engineering, medicine, etc.
    • Microservices and cloud application development.
  • Enable you to successfully apply the technology in your work and profession.
  • Have cool stuff to put on your resumes and talk about in interviews.

Technology and Systems


Students will get practical experience applying course concepts in homework assignments and a project. There are many database models. Students will get experience with multiple database models, as well as cloud based databases. Students will get experience with some of the following (as time allows):

  • Relational: MySQL.
  • Document: DynamoDB, MongoDB.
  • Graph DB: Neo4J, Amazon Neptune, CosmosDB
  • Key Value: Redis, Elasticache.
  • Analytics: Spark, AWS Datalake, AWS Glue.

Course Overview


Each section of W4111 is slightly different based on student interest and professor's focus. There is a common, core syllabus. Professors cover topics in different orders and grouping based on teaching style.

This section of W4111 has four modules:

  • Foundational concepts (50% of semester): This module covers concepts like data models, relational model, relational databases and applications, schema, normalization, … The module focuses on the relational model and relational databases. The concepts are critical and foundational for all types of databases and data centric applications.
  • Database management system architecture and implementation (10%): This module covers the software architecture, algorithms and implementation techniques that allow databases management systems to deliver functions. Topics include memory hierarchy, storage systems, caching/buffer pools, indexes, query processing, query optimization, transaction processing, isolation and concurrency control.
  • NoSQL – “Not Only SQL” databases (20%): This module provides motivation for “NoSQL” data models and databases, and covers examples and use cases. The module also includes cloud databases and databases-as-a-service.
  • Data Enabled Decision Support (20%): This module covers data warehouses, data import and cleanse, OLAP, Pivot Tables, Star Schema, reporting and visualization, and provides and overview of analysis techniques, e.g. clustering, classification, analysis, mining.

Programming versus Non-Programming Tracks


Students taking the class have vastly different programming experience and interest in programming. To accomodate the diverse experience and interests, all sections of W4111 offer a programming track and a non-programming track.

The department's description of the programming/non-programming is:

"To accommodate the diverse backgrounds of the students who take this class, all sections of the class should include a non-programming option for projects and assignments. We have successfully offered such an option in some sections of the class for many years: students can either program a web application to interface with a DB of their own design, or alternatively follow the non-programming option and come up with a quantifiably more detailed DB design/data."

What does not constitute programming?

  • Writing queries for a relational, graph, document, or other data management system does not constitute programming and can be expected of all students.

What constitutes programming?

  • Writing more than a handful (1-5) lines of code, that is not directly required to write a query."

The difference will become clear when we provide the details on HW 1, and we will also explain the differences in the first lecture.

Exams are the same for both tracks.