This document provides an introduction to parallel processing algorithms in shared nothing databases. It discusses scaling databases through a shared nothing architecture where data is sharded across multiple independent nodes. Examples are given of single table processing and join processing across the sharded database. Execution plans are shown for queries involving filtering, aggregation, sorting and joins on single and multiple tables both when the tables are distributed by the same key and different keys.