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?
Sql when you should put flat number before house.. this is not good for autocomplete and not intuitive.. general idea was use it by accountant.. but they wasn't happy with this instead devs are struggling.
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
The intro theme doesn't need to go this hard
😂 true that
But damn is it worth.
harder
But it does
A love letter 💌 to NYC 🗽
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.
💯 Intro and Advanced Database Systems are great. Andy and the rest of the CMU Database Group does such a great job.
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.
If you wish to check out all his papers (ordered in release date): thaumatorium dot com/articles/the-papers-of-ef-the-coddfather-codd/
No ads, nor tracking on Thaumatorium BTW.
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.
this truly conveys that idea that databases are literally just shared space.
Datalog is a fantastic query language.
Conversational transactions == State
the problem is micro services sold to masses - that's the bad abstraction
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?
Sql when you should put flat number before house.. this is not good for autocomplete and not intuitive.. general idea was use it by accountant.. but they wasn't happy with this instead devs are struggling.
This makes me think of the RethinkDB query language with explicit index range.
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).
Clickhouse has something called Domains. I wonder kf that is the same.
This is all true for transactional workloads
This talk really glosses over a bunch of important details
heresy! boo hsss
12 minutes in. so far nothing was said.
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
Git is a example of terrible abstractions.
Explain?
@@mattmurphy7030 Well, perhaps the Git CLI. Its verbs don't help at all until you learn the underlying structure and use gitk a couple of times.