Relational and Non-relational Databases: Difference between revisions

From Gridkaschool
Jump to navigationJump to search
(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...")
 
Line 1: Line 1:
= Overview =
= Overview =
Author: Mario Lassnig, CERN PH-ADP-CO, [mailto:mario.lassnig@cern.ch]
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 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

Revision as of 10:33, 8 September 2015

Overview

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