Syllabus
Course Objectives
This course provides a comprehensive introduction to database management systems (DBMS) and their role in modern data-driven applications. It covers the fundamentals of database theory, conceptual and logical design, and data access and manipulation while emphasizing best practices for modeling, implementation, and optimization.
Students will gain proficiency in relational database concepts through Entity-Relationship (ER) modeling, mapping ER diagrams to relational schemas, and formulating complex SQL queries for real-world analytical tasks.
The course also introduces key data concepts and ethical considerations:
- Understanding the data hierarchy (DIKW pyramid: Data → Information → Knowledge → Wisdom).
- Learning the four levels of data analytics: descriptive, diagnostic, predictive, and prescriptive.
Beyond the fundamentals, the course introduces modern trends and tools in database management, such as:
-
Embedded and analytical databases (e.g., DuckDB) for fast local processing.
- Data Warehouse vs Data Lake vs Lakehouse architectures
- Introduction to NoSQL databases, including:
- Document databases (e.g., MongoDB) for flexible, schema-less data storage.
- Graph databases (e.g., Neo4j) for managing highly connected data and relationship-driven queries.
- Vector databases (e.g., Qdrant) for AI-driven semantic search and retrieval-augmented generation (RAG), with practical guidance on using vector similarity for modern AI use cases.
- Understanding when to choose each NoSQL paradigm over relational systems, and the trade-offs involved.
- Query optimization and indexing for improved performance in large datasets.
- API development with FastAPI to expose database-backed services for web and mobile applications.
Upon successful completion of this course, the student will be able to:
- Introduce fundamental concepts, terminology, and applications of databases.
- Design ER models for simple applications and convert them into relational tables.
- Differentiate between OLAP and OLTP systems and understand their real-world use cases.
- Compare Data Warehouse, Data Lake, and Lakehouse approaches and determine when each is most effective.
- Formulate SQL queries effectively for data retrieval and manipulation.
- Compare relational approaches with NoSQL paradigms (document, graph, and vector) and understand their trade-offs.
- Work with MongoDB for document-based storage, Neo4j for graph data modeling and traversal, and Qdrant for vector similarity search.
- Learn to connect databases with Python.
- Build RESTful APIs using FastAPI to interact with databases.
In the final project, students will design and implement a complete database system from conceptual modeling to relational implementation, accompanied by an interactive analytical dashboard and a simple web application for data exploration and reporting.
Homework Assignments
You will have between 6 to 10 sets of homework assignments, which together carry a total of 6 points. These assignments include both theoretical and practical exercises to help reinforce your learning throughout the course, which will be updated during the course.
Grading
- Class attendance and participation: 2 points
- Homeworks: 6 points
- Final project: 6 points
- Final exam: 6 points
Seeking Assistance
Here are the available help resources, organized by the urgency of your issue:
Messaging
Our course will utilize a Telegram group (link to be provided in class) as the primary communication platform for announcements and discussions. This is an ideal space for asking questions that can be answered by anyone. It’s best to use this resource for non-urgent inquiries.
Talk with the Instructor
For any issues at all, please reach out to the instructor:
- Speak with me before class
- Raise your hand or speak up during class
Collaboration Policy
You are encouraged to discuss the content of this course with anyone you like; however, it is essential to maintain academic integrity in your work. All homework assignments, projects, and exams must be completed independently, meaning you are not permitted to copy any part of another student’s solution, collaborate with others on your assignments, or use solutions from unauthorized sources, including the Internet. Therefore, the solution you submit for each assignment must be solely your own, reflecting your understanding and effort.
Related Courses
Other Databases courses
- New York University - Database Design & Implementation
- UC Berkeley - Introduction to Database Systems
- CARNEGIE MELLON UNIVERSITY - Database Systems
- University of Washington - Introduction to Database Systems
- The University of Chicago - Introduction to Database Systems
- University of Waterloo - CS 348: Introduction to Database Systems
- NTHU - CS 471000 Introduction to Database Systems
- The Ohio State University - Introduction to Database Systems
A note on self care.
Please take care of yourself. Do your best to maintain a healthy lifestyle this semester by eating well, exercising, getting enough sleep and taking some time to relax. This will help you achieve your goals and cope with stress.
