# Course Info

### Introduction

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;
- SQL;
- 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.

### Course instructor

dmitry.shkatov -AT- wits.ac.za

Office: MSB 105

Office hours: Thursdays 13:15--14:15 or by appointment

### Lectures

Thursdays 10:15--12:00 in MSL 111### Tutorials

Thursdays 12:30--13:15 in MSL 111### Assessment

#### Grading

Midterm exam -- 20%Homeworks -- 40%

Final exam -- 40%

#### Midterm exam

The 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.#### Homeworks

There 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.#### Exam

The course concludes with a final closed-book exam.### Textbooks

#### Prescribed

##### Raghu Ramakrishnan and Johannes Gehrke. Database Management Systems. 3rd edition. (R&G)

#### Recommended

##### Jeffrey D. Ullman and Jennifer Widom. A First Course in Database Systems. 3rd edition. (U&W)

### Computing Resources

You will be using Linux machines in the Mathematical Sciences labs. The machines will be equipped with all the software needed for the course.