URL study guide

https://studiegids.vu.nl/en/courses/2024-2025/E_EDS2_DFA

Course Objective

The course is focused on relational databases. By the end of this course, youcan describe what a database is, and what the general challenges for database systems are;can describe unstructured, semi-structured, and structured data, and their respective advantages and disadvantages;can describe what is meant by the ACID properties,a. why maintaining those properties has implications for transaction processing, concurrency, scalability, and availability, and b. in which cases it may desirable to disregard some of these properties;can explain what a relational database is, and what the role of structured query language (SQL) is in such databases;can explain the advantages and disadvantages of relational databases;can explain whether or not a relational database is appropriate to use in a given context;can explain the workings of data structures that are involved in efficient retrieval of data from relational databases;can write and carry out SQL statements toa. obtain desired data from an existing database, b. insert, update, drop data in an existing database, and c. define new database schemas;can interface with a relational database in various ways (e.g. using MySQL Workbench and Python);can query a self-contained SQLite database using DB Browser;can break down a data-analytic question into a statistical part (e.g. linear regression), best tackled in high-level programming languages such as Python and R, and a data-integration part (e.g. joining and aggregating data), best tackled using SQL; andcan design and evaluate database schemas usinga. entity/relationship diagrams, b. design theory, and c. database normalisation.

Course Content

In an increasingly data-driven world, database systems play a central role in data retrieval, manipulation, and storage. When you use services provided by companies such as Google and Amazon you are in fact a user of advanced database systems. The reach of such systems goes well beyond the online world. Most businesses use one or more databases to keep track of important data (e.g. on their personnel, clients, payments, sales, and so on). Obviously, these systems need to be robust and efficient, in terms of handling simultaneous queries, internal consistency, and durability of information stored by the database. This course is aimed at teaching you about the theoretical fundamentals of databases systems. Special attention is paid to a deep understanding of relational databases, database design, and the structured query language (SQL). In addition, you will learn about several advanced topics, such as concurrency, ACID properties, B-trees, JSON format, and alternatives to SQL. Alongside the theory, you will get hands-on experience with database systems, by setting up your own databases using a MySQL Server and SQLite, and by interfacing with existing databases in various ways (e.g. using Python).

Teaching Methods

Lectures (4 hours a week) and tutorials (2 hours a week).

Method of Assessment

Written or digital exam (55% of the final grade), group assignments (45% of the final grade).

Literature

Garcia-Molina, H., Ullman, J.D., and Widom, J. (2013). Database Systems, The Complete Book (2nd international edition; ISBN-10: 1-292-02447-X; ISBN-13: 978-1-292-02447-9). Essex, UK: Pearson Education Limited.
Academic year1/09/2431/08/25
Course level6.00 EC

Language of Tuition

  • English

Study type

  • Bachelor