This course assumes basic ability to use a computer. We also assume that a student is taking an introductory programming course in parallel (otherwise basic programming skills in Java are expected) and is following a discrete math course such as SGDM (or has knowledge of basic discrete math: logic, set theory and proofs).

Læringsmål:

After the course the students should be able to:
1. Write SQL queries, involving multiple relations, compound conditions, grouping, aggregation, and subqueries.
2. Use SQL programming constructs, such as transactions, views, procedures and triggers.
3. Suggest a database design in the E-R model and convert to a corresponding relational data model.
4. Implement a database design according to the relational model, and present it as an SQL schema, using the concepts key, type, and constraint.
5. Analyze and improve database designs using functional dependencies and normal form theory.
6. Analyze/predict/improve query processing efficiency of the designed database using indices.
7. Explain ACID properties of transactions and outline algorithms to enforce isolation, atomicity and durability.
8. Explain the outcome of map-reduce computations.

Fagligt indhold:

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.
• Distributed map-reduce processing.

Læringsaktiviteter:

12 forelæsninger og 12 øvelsesgange

* 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.

Obligatoriske aktivititer:

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.

Be aware: 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.

Eksamensform og -beskrivelse:

A22: Skriftlig eksamen (stedprøve) med restriktioner., (7-scale, external exam)

A22: Written exam on premises with restrictions. (7-scale, external exam)

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.

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