What does the workshop cover?
- Grok SQL: Understand how queries are constructed, composed, how joins work, and never again get stuck writing complex queries.
- Constraints, checks, data integrity: Validate your data, and preserve integrity using constraints. Learn about different kinds of constraints, and how, when, and why of using them.
- Domain modelling, schema Design: How to represent your domain information in a relational universe. Tried and tested design patterns, and when to use them. e.g. normalisation and de-normalisation, triggers, event sourcing
- The dev environment: Give yourself a dev setup that gets out of your way and makes you productive. What tools to use? What to keep in your dot-files? etc.
- Go Meta: Peek under the hood. Answer questions like What queries are currently running? How many tables are referenced by this table?
How will we go about it?
Schema design and ancillary topics. We’ll start with a problem space, and come up with a solution for it. Design patterns, datatypes, constraints will help us get there. We will then update the problem space, look at changing requirements and adapting our design for changes. At the end of day one, we will have a well-designed schema and enough data to work with.
We will focus on SQL; learn how queries are constructed and composed. We’ll write large and seemingly complex queries and understand top-down and bottom-up approaches of writing queries. We will also look at common performance concerns and tools to solve them, like indexes and views. We’ll then cover some relational theory like ACID and MVCC.