Published 7/2024
MP4 | Video: h264, 1920×1080 | Audio: AAC, 44.1 KHz
Language: English | Size: 65.2 MB | Duration: 0h 31m
What happens if we reimagine SQL from first principles?
What you’ll learn
Understand how SQL does not faithfully represent the relational algebra
Learn to use an alternative to SQL: TutorialD
Examine an alternative relational database management system: Project:M36
Understand the value of adhering to mathematical principles in the software space
Requirements
basic SQL knowledge
Description
Have you been bitten by the odd quirks of SQL and wondered if there could be something better? There can- it’s called “TutorialD” which adheres strictly to the mathematics of the relational algebra.This course answers questions such as:is it possible to design a database without NULLs?how does SQL deviate from the relational algebra?what would an SQL alternative look like and why?what do we gain by replacing SQL with a different language?TutorialD is not merely a hypothetical language, but one implemented by Project:M36, a relational algebra engine, which is open-source software which can be downloaded and used for free. Using Project:M36, you will be able to experiment with the new TutorialDÂ language and build real databases of your own. Docker is required to run Project:M36.By the end of this course, you will be aware of the flaws in SQL and how such flaws can reduce the confidence in your query results. At the same time, you will understand how SQL’s flaws and historical baggage are not essential complexity of database systems, as proven by the alternative language: TutorialD.This course is recommended for technologists already familiar with basic SQL who are curious about alternative database languages.
Overview
Section 1: Introduction
Lecture 1 Welcome to TutorialD for SQL Developers
Section 2: Setup Project:M36
Lecture 2 Setup
Section 3: TutorialD with Project:M36
Lecture 3 Why TutorialD?
Lecture 4 TutorialD prompt
Section 4: Relation and Relvars
Lecture 5 Creating Our First Relation
Lecture 6 Relvars: Storing Relation Results For Later
Lecture 7 Relvar Types And Ordering
Section 5: Restriction
Lecture 8 Filtering Results with Restriction
Section 6: Projection
Lecture 9 Projecting to Get the Attributes You Want
Lecture 10 Projecting On Inverted Attributes
Section 7: Relvar Updates
Lecture 11 Create a New Relvar
Section 8: Dealing with Duplicates and Tuples
Lecture 12 Duplicates
Lecture 13 Deleting Tuples
Lecture 14 Updating Tuples and Summary
Section 9: More Relational Operators
Lecture 15 Join
Section 10: Renaming Attributes
Lecture 16 Ensuring Uniqueness in Attributes with Renaming
Section 11: Outer Join Equivalent
Lecture 17 Getting Outer Join Data Without NULL
Section 12: Union
Lecture 18 Self-joins and NULLs
Lecture 19 Union vs. Insert
Lecture 20 x union x = x
Section 13: Group and Ungroup
Lecture 21 Group
Lecture 22 Ungroup
Lecture 23 P7 is Missing
Section 14: Equality
Lecture 24 Relational Expression Equality: True And False
Lecture 25 Does This Relvar Have Any Tuples?
Lecture 26 Equality and Projection
Lecture 27 More Equality
Section 15: Aggregate Functions
Lecture 28 Aggregate Functions
Lecture 29 Aggregate Functions And Their Constituent Data
Lecture 30 Aggregate Functions Compared to SQL
Section 16: Database Constraints
Lecture 31 Database Constraints
Lecture 32 Database Constraints in SQL
Lecture 33 Inclusion Dependencies
Lecture 34 Inclusion Dependency Representation
Lecture 35 Uniqueness Constraints
Section 17: Dataframes
Lecture 36 SQL Tables Always Have An Ordering
Lecture 37 Getting Dataframes From Relational Expressions
Lecture 38 More Dataframe Features
Section 18: Transactions
Lecture 39 Transaction Graph Branching
Lecture 40 Transaction Isolation
Section 19: Good Riddance to Bad Nulls
Lecture 41 Quick Quiz
Lecture 42 How to Represent Missing/Unrepresentable Data
Section 20: Wrapping it Up
Lecture 43 Wrapping it up
Lecture 44 New Optimizations
Lecture 45 Developer Understanding
Lecture 46 Data Type Impedance Fix
Lecture 47 Conclusion
Lecture 48 Thanks!
Programmers who are curious about alternatives to SQL
Homepage