Difference between revisions of "Relational and Non-relational Databases"
From Gridkaschool
(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...") |
m (→Overview) |
||
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]