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, especially for large-scale data
management, and their implementation in cloud environments.
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.
Throughout the course we will also talk about non-relational (NoSQL)
data models and their implementation: semi-structured data that is better able to handle
document-type data and key-value stores that are better able to store
and query huge amount of data in a distributed fashion.
Objectives:
In this
course you will
- learn the fundamental steps needed to develop a database
application using a commercial DBMS
- apply this knowledge to build a database application for a
specific application domain
- acquire the skills to quickly learn and understand new data
models and DBMS interfaces
- understand some of the internals of a relational DBMS, and with
that,
- get to know the structure and complexity of a large software
system
- see how knowing about the internals of the DBMS can help you
improve your usage of a DBMS as an application programmer
- get an understanding of performance in a DBMS
- conduct a relatively large scale project in a
team
Preliminary Topic List
(each topic between 2 and 4 lectures):
- Introduction
- Entity-Relationship Model
- Relational Model and Data Definition Language
- Relational Algebra
- SQL Queries and Constraints
- SQL: Application Programming
- Essentials of File and Disk Management
- Indexing
- Query Execution
- Query Optimization
- Transactions
- Concurrency Control
- Recovery
- Key-value stores and map-reduce
- Graph-based database systems
Delivery format:
This is an in-person class. Lecturers will be recorded but the instructors willregularly 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 assignments, a project split into 3 deliverables, a set of quizzes and a final.
The project will likely be done in groups of two. 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 quizzes and the final exam.
Course Book:
- Raghu Ramakrishnan and Johannes Gehrke: Database Management
Systems;
McGraw Hill, 3rd Edition, 2003.
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
- Abraham Silberschatz, Henry F. Korth and S. Sudarshan: Database
System
Concepts; McGraw
Hill, 5th Edition, 2006.
- Hector Garcia-Molina, Jeffrey D. Ullman and Jennifer Widom:
Database
systems : the complete book; Prentice Hall, 2002.
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)