The course aims to serve as an introduction to concepts and techniques related to managing large amounts of data, mostly---but not exclusively---with the help of Database Managements Systems (DBMS). As far as DBMS are concerned, the course covers those aspects of DBMS that are most relevant to their use; the concepts and techniques related to implementation of DBMS are only convered to the extent that they have a significant impact on the effective use of DBMS. The course mainly focuses on relational DBMS and their query language SQL.
The topics covered include:
- Data-centric computing and DBMS;
- Working with unstructured data: Data wrangling using a genearal-purpose programming language;
- Data models;
- Relational data model;
- Relational algebra;
- Design theory for relational databases.
The above topics are going to be partially covered in the lectures; however, to get a full understanding of the topics, you will have to do the readings. The readings will include chapters from a prescribed textbook as well as research papers.
Prior knowledge assumed
We assume that the student has the ability to write programs in a high-level programming language, is familiar with the fundamental concepts of discrete mathematics such as sets, relations, and first-order logic, and is familiar with the most important algorithms and data structures.
dmitry.shkatov -AT- wits.ac.za
Office: MSB 105
Office hours: Thursdays 13:15--14:15 or by appointment
LecturesThursdays 10:15--12:00 in MSL 111
TutorialsThursdays 12:30--13:15 in MSL 111
GradingMidterm exam -- 20%
Homeworks -- 40%
Final exam -- 40%
Midterm examThe midterm exam will be written in the the week before the Fall study break (i.e., the week starting on 20 March 2017). This is a closed-book exam.
HomeworksThere will be two homework assignments that will be graded and will contribute 40% to the final grade. The assignments will be submitted through the course's GitHub page. Instructions for submission of homework assignments can be found here.
ExamThe course concludes with a final closed-book exam.
Raghu Ramakrishnan and Johannes Gehrke. Database Management Systems. 3rd edition. (R&G)
Jeffrey D. Ullman and Jennifer Widom. A First Course in Database Systems. 3rd edition. (U&W)
You will be using Linux machines in the Mathematical Sciences labs. The machines will be equipped with all the software needed for the course.