Official course description:
Full info last published 25/10-19

Introduction to Database Design, BSc

Course info
Language:
English
ECTS points:
7.5
Course code:
BSINDAD1KU
Offered to guest students:
yes
Offered as a single subject:
yes
Price (single subject):
10625 DKK (incl. vat)
Programme
Level:
Bachelor
Programme:
Bachelor of Science in Software Development
Staff
Course manager
Associate Professor
Teaching Assistant
Teaching Assistant (TA)
Teaching Assistant
Teaching Assistant (TA)
Teaching Assistant
Teaching Assistant (TA)
Teaching Assistant
Teaching Assistant (TA)
Teaching Assistant
Teaching Assistant (TA)
Teaching Assistant
Teaching Assistant (TA)
Teaching Assistant
Teaching Assistant (TA)
Course semester
Semester
Efterår 2019
Start
26 August 2019
End
31 January 2020
Abbreviation
20192
Exam
Exam type
ordinær
Internal/External
ekstern censur
Grade Scale
7-trinsskala
Exam Language
GB
Abstract

The course gives an introduction to relational databases as well as an introduction to data analytics, both from a practical and theoretical point of view.

Description

An important problem solved by computers is that of data storage and retrieval: E.g., to store efficiently the grade at every course of every student of the ITU University obtained in the last 5 years; and the ability to query such a database, i.e., find the grades of all students who enrolled after 2016 and who did not take a given course. This problem arises very broadly, in essentially every sector, every industry, and every application.

The course gives an introduction to relational databases as well as an introduction to data analytics, both from a practical and theoretical point of view.

The main part of the course deals with relational databases, including theory and practice for modeling and querying a database. Towards the end of the course the focus will be on techniques for data analytics. 

For relational databases the following topics will be covered: 

  • Programming in SQL, including all basic operations as well as some more advanced constructions (e.g. subqueries).
  • Other basic concepts related to relational databases and SQL, such as views, procedures, triggers, etc.
  • Using SQL in applications, e.g. Java-applications.
  • Database design using E-R modelling.
  • Defining a database design using the relational model and SQL schemas.
  • Normalization of relations.
  • Query processing and optimization basics.
  • Use of different indexes, including hash indexes, B-tree indexes, non-clustered and clustered indexes.
  • Transactional concepts and transaction handling.


For data analytics the following topics will be covered: 

  • Approaches to data analytics (including OLAP and data warehousing).
  • Introduction to data wrangling/processing.
  • Societal context, including ethics concerns.
  • Distributed map-reduce processing.

Formal prerequisites
This course assumes basic ability to use a computer. We also assume that a student has taken an introductory programming course. (otherwise basic programming skills in Java are expected) and a discrete math course such as Foundation of Computing: Discrete Mathamatic for SWU or Discrete Mathematic for SD (or has knowledge of basic discrete math: logic, set theory and proofs). 
Intended learning outcomes

After the course, the student should be able to:

  • Write SQL queries, involving multiple relations, compound conditions, grouping, aggregation, and subqueries.
  • Use SQL programming constructs in a secure manner.
  • Suggest a database design in the E-R model and convert to a relational database schema in a suitable normal form.
  • Analyze/predict/improve query processing efficiency of the designed database using indices.
  • Reflect upon the evolution of the hardware and storage hierarchy and its impact on data management system design.
  • Discuss the pros and cons of different classes of data systems for modern analytics and data science applications.
Learning activities

* Lectures will provide tools and methods for describing, creating and using databases. * Weekly exercises consist of coding exercises, applying techniques, and using them to analyze and improve designs.

Mandatory activities
The course has 4 mandatory assignments. 3 of the assignments need to be completed and approved before you can take the examination. Deadlines will be advertised during the course on LearnIT. Approval will be communicated via LearnIT and general feedback will be given during subsequent exercise sessions. 

The student will receive the grade NA (not approved) at the ordinary exam, if the mandatory activities are not approved and the student will use an exam attempt.

Course literature

Principles of Database Management: The Practical Guide to Storing, Managing and Analyzing Big and Small Data - Wilfried Lemahieu, Seppe vanden Broucke, Bart Baesens Cambridge University Press; 1 edition (August 30, 2018)

Ordinary exam
Exam type:
A: Written exam on premises, external (7-trinsskala)
Exam variation:
A22: Written exam on premises with restrictions.
Exam description:

A22 LearnIT exam with restricted networks

The final grade is based solely on the written examination. 

The duration of the written examination on premises is 4 hours with the following restrictions: 

1. Physical copies of the course textbook and other printed materials are permitted. 

2. e-books on laptops, iPads, and other e-book readers are permitted. 

3. Use of a local DBMS on your laptop is permitted. 

4. Accessing material posted on the course web-page on LearnIT is permitted. 

5. It is *not* permitted that you access any other information from the internet, including newsgroups, social media, email, Facebook, Twitter, etc. or elsewhere that is not in book form. 

6. Use of pocket calculator is not permitted.

Students should bring a computer with wifi and with the MySQL database system installed.