This course is intended to give students a solid background in relational DBMS. Furthermore is 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 two main parts: the first part explains how to use a DBMS, the second part looks at how the DBMS works internally .
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.
At the end of the course we will talk about non-relational (NoSQL) data models and their: 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.
In this course you will
Detailed Topic List (each topic between 2 and 4 lectures):
Prerequisites: COMP-206, COMP-251 and COMP-302: Knowledge of data structures, algorithms, programming languages and basics of program development. Knowledge in operating systems is of advantage.
likely Marking Scheme: There are 3-4 written assignments, four
project deliveries, one midterm, and
final. The scheme will be
In assignments the students have to solve concrete
problems. In some cases, late turn-in
might not be possible (e.g., if I want to post the solution before the
midterm/final). Otherwise, a late turn-in will result in
a penalty of 10% per day (e.g. if an assignment has in total 100
a student achieves 80 points but turns in the assignment a day too
then he/she will receive 80-10=70 points.
The first three assignments count 5% each. The fourth assignment can replace the grade in one of the three previous assignments.
The first three programming deliveries build a project in which students have to develope and build database application for a real-world domain. The students will design a schema, create a database using DB2, maintain, query and update the data, and develop a application programs. The last deliverable will be on map-reduce on large data sets. The students will work in teams of three on the programming project. All team members are supposed to work together and participate equally in the project development.Course Book: