Relational and Non-relational Databases

From Gridkaschool
Revision as of 17:12, 14 July 2015 by Mlassnig (talk | contribs) (Created page with "= Overview = Author: Mario Lassnig, CERN PH-ADP-CO, [mailto:mario.lassnig@cern.ch] In this workshop, the students will learn how to use relational and non-relational database...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Overview

Author: Mario Lassnig, CERN PH-ADP-CO, [1]

In this workshop, the students will learn how to use relational and non-relational databases to build multi-threaded applications. The focus of the workshop is to teach efficient, safe, and fault-tolerant principles when dealing with high-volume and high-throughput database scenarios.

A basic understanding of the following things is required:

  • A programming language (preferably Python or any C-like)
  • Basic SQL (CREATE, DROP, SELECT, UPDATE, DELETE)
  • Linux shell scripting (bash or zsh)

The course will cover the following three topics:

  • When to use relational databases, and when not
    • Relational primer
    • Non-relational primer
    • How to design the data model
  • Using SQL for fun and profit
    • Query plans and performance analysis
    • Transactional safety in multi-threaded environments
    • How to deal with large amounts of sparse metadata
    • Competetive locking and selection strategies
  • Building a fault-tolerant database application
    • Distributed transactions across relational and non-relational databases
    • SQL injection and forceful breakage
    • Application-level mitigation for unexpected database issues