COMP-421: Database Systems (Winter 2024)


Names and Numbers:

Below is more an overview than an outline. A detailed outline will be available on myCourses at the beginning of the semester.

Overview:

With the raise of e-commerce all of us use complex information systems on a daily basis -- by accessing the Minerva university system, by banking online, by buying a book online. Database management systems (DBMS) build the backbone software systems that store all mission-critical data of these information systems. The big DBMS vendors like Oracle, IBM (DB2) or Microsoft (SQL Server) are well known players on the IT market; Linux distributions (for instance Red Hat), include an open source database management system in their distribution package; even the Microsoft Office suite contains kind of a database management system. And recently, the NoSQL movement has shown that data management has become important in many new domains and markets. As a result, knowing at least the basic concepts behind these systems and how to use them is becoming an essential skill for IT specialists.

This course is intended to give students a solid background in relational DBMS. Furthermore, it outlines non-relational solutions. If you are interested in becoming an effective user of a DBMS, or a DBMS professional, this is a good introduction to the topic. The course has three main parts: the first part explains how to use a relational DBMS, the second part looks at how a relational DBMS works internally . A third, shorter part, looks at other data models

The first part will discuss the design of databases and how to write queries that extract the data you are looking for. Or in other words: how can you squeeze your "real world" data (the product information of a bookstore, the student and activity information of a students association) into the relational data model of the database system and how can you retrieve the data later.

The second part of the course is system-oriented and discusses the internals of a DBMS. Using a DBMS is one issue, using it efficiently and correctly is a different story. DBMS are designed to work for very different application areas and present a general purpose software. In order to be able to tune a DBMS to your specific requirements you must know how your database application is executed by the DBMS.
This second part will cover two main areas: Transaction management is important to keep data consistent when updates occur. Query execution is the process that efficiently finds the small set of data the user wants to see out of a possibly huge database.

The last part will look at graph-based database systems and at least one other programming interface to access relational data.

Objectives:

In this course you will

Preliminary Topic List

(each topic between 2 and 4 lectures):

Delivery format:

This is an in-person class. Lecturers will likely be recorded but the instructors will regularly use the blackboard, which will limit the usability of the recordings.

Prerequisites:

The official pre-requisites are COMP-206, COMP-251 and COMP-302. In general, you have to have taken a good set of COMP courses. Which ones exactly is not that relevant but you have to have a good general undstanding of UNIX, data structures, algorithms, programming languages and basics of program development. Also, how programs are executed and run on modern computer systems. Knowledge of operating systems is of advantage.

Marking Scheme: TBD

It will likely be 3-4 assignments, a project split into 3 deliverables, a midterm and a final. The project will likely be done in groups of four. Assignments will either be done individually or in groups of two. Expect around 40% (plus/minus 10%) of the grade be made up of assignment and project deliverables, and 60% (plus/minus 10%) for exams.

Course Book: 

This is a good textbook but starts to be a bit outdated. The fundamentals are well covered, but the advanced topics are missing. I haven't yet found a textbook that would cover both well.

Alternative Literature

A note on academic integrity

McGill University values academic integrity. Therefore all students must understand the meaning and consequences of cheating, plagiarism and other academic offences under the Code of Student Conduct and Disciplinary Procedures . (Approved by Senate on 29 January 2003) (See McGill’s guide to academic honesty for more information.)
L'université McGill attache une haute importance à l’honnêteté académique. Il incombe par conséquent à tous les étudiants de comprendre ce que l'on entend par tricherie, plagiat et autres infractions académiques, ainsi que les conséquences que peuvent avoir de telles actions, selon le Code de conduite de l'étudiant et procédures disciplinaires. (Énoncé approuvé par le Sénat le 29 janvier 2003) (pour de plus amples renseignements, veuillez consulter le guide pour l’honnêteté académique de McGill.)

French/English

In accord with McGill University's Charter of Students' Rights, students in this course have the right to submit in English or in French any written work that is to be graded. This does not apply to courses in which acquiring proficiency in a language is one of the objectives. (Approved by Senate on 21 January 2009)
Conformément à la Charte des droits de l’étudiant de l’Université McGill, chaque étudiant a le droit de soumettre en français ou en anglais tout travail écrit devant être noté, sauf dans le cas des cours dont l’un des objets est la maîtrise d’une langue. (Énoncé approuvé par le Sénat le 21 janvier 2009)