RE: Andy Pavlo Carnegie Mellon University has an _excellent_ freely available database course, presented by Andy BTW. "CMU Intro to Database Systems", here on YT.
I can't have you disrespecting The Coddfather (E. F. Codd) like that! The Relational Model was invented in 1969 (nice!) in a paper called "Derivability, Redundancy, and Consistency of Relations Stored in Large Data Banks", and took off in the second paper called "A Relational Model of Data for Large Shared Data Banks" in 1970. He also designed ALPHA in his paper "ALPHA: A Data Base Sublanguage Founded on the Relational Calculus", an unimplemented language that was based on Relational Calculus that could've been used to query data, instead of SQL, but alas. Oracle took SQL as basis and IBM had to follow suit if not to lose market share to Oracle, as the Relational Model was VASTLY superior to existing data types (trees and networks) that were being abused as databases - they were not even official models yet - The Relational Model predates whatever models IMS and IDS later on generated. There. Now I'm much more content.
You won't find us taking Codd's name in vain over here! As far as abstractions go the RDBMS is one of the all-time greats. Transactions, relations, type safety and consistency are evergreen and will hopefully long outlive SQL.
10:59 I think SQL being a *query* language, it is maybe unfair to start off judging it with “hard to express application *behavior*”. It’s like judging a cake for not being savory. The fact that so many have been abusing SQL, which is designed to query for current time snapshot, to write time-varying behavior instead, is a testament to how good an abstraction it is at querying that it forces systems around it to conform to its shape.
24:12 The point about performance predictability is cool, but this code example really does not show any superiority over SQL other than integrating with host language error reporting. The point is supposed to be something better than conversational transaction, but then it goes off into side effect management. Where is the demo for rolling back?
Current Relational Databases also completely ignore the concept of a sharable Domain; some DBs have them, but nobody is using them or teaching them either. For simplicity's sake think of a Domain as a datatype with extra constraints (either a subselection of specific values, or perhaps a range), that can be shared between columns (Column A from table X can have the same domain as column B from table Y).
SQL is indeed a terrible language. I hope that in the next Stack Overflow Survey they'll introduce a separate "Query Language" question, instead of slapping SQL between regular programming languages. BTW, it's terrible because a Relational Query Language should ALWAYS return a Relation (a set of tuples), but SQL can return a table, a row, a column or a cell, which is kind of awful.
but all of table, row, column, cell are indeed relations! lol I’ve come to accept that pragmatic QoL is a valid trade-off against conceptual simplicity speaking of relational language been looking at Alloy, albeit for modeling not querying