<story><title>Half a century of SQL</title><url>https://www.theregister.com/2024/05/31/fifty_years_of_sql/</url></story><parent_chain><item><author>DaiPlusPlus</author><text>I want to know why there hasn’t been much innovation in the less-sexy parts of ISO SQL. My go-to for this is to point-out how SQL-92 defined the same small set of constraints that we have today (PK, FK, UNIQUE, CHECK, and that’s pretty-much it).&lt;p&gt;It’s been 30+ years and the expressiveness of SQL DDL constraints for data-modelling is completely unchanged. So far, only Postgres has extended it with EXCLUDE constraints; what I’d love to have is a “Non-unique foreign key” constraint and its inverse: a “NOT EXISTS” constraint - these alone would go far.&lt;p&gt;Another huge need is for safe-and-sound data-structure invariants - it’s almost impossible to correctly store a linked-list on a table without running until concurrency issues.</text></item></parent_chain><comment><author>jandrewrogers</author><text>Many constraints are extremely expensive to enforce at scale to the point of being prohibitive. You are essentially turning your relational database into a graph database under the hood, with the infamously poor scalability and performance implied. A legitimate argument for the obsolescence of SQL DDL (independent of the DML) is that it defines some features that inherently scale too poorly to be used in many modern databases and it assumes certain implementation details that aren&amp;#x27;t actually true in some modern database architectures.</text></comment>
<story><title>Half a century of SQL</title><url>https://www.theregister.com/2024/05/31/fifty_years_of_sql/</url></story><parent_chain><item><author>DaiPlusPlus</author><text>I want to know why there hasn’t been much innovation in the less-sexy parts of ISO SQL. My go-to for this is to point-out how SQL-92 defined the same small set of constraints that we have today (PK, FK, UNIQUE, CHECK, and that’s pretty-much it).&lt;p&gt;It’s been 30+ years and the expressiveness of SQL DDL constraints for data-modelling is completely unchanged. So far, only Postgres has extended it with EXCLUDE constraints; what I’d love to have is a “Non-unique foreign key” constraint and its inverse: a “NOT EXISTS” constraint - these alone would go far.&lt;p&gt;Another huge need is for safe-and-sound data-structure invariants - it’s almost impossible to correctly store a linked-list on a table without running until concurrency issues.</text></item></parent_chain><comment><author>tanelpoder</author><text>FWIW, Oracle now has data domains that allow more complex constraints, including JSON schema based ones:&lt;p&gt;&lt;a href=&quot;https:&amp;#x2F;&amp;#x2F;docs.oracle.com&amp;#x2F;en&amp;#x2F;database&amp;#x2F;oracle&amp;#x2F;oracle-database&amp;#x2F;23&amp;#x2F;sqlrf&amp;#x2F;create-domain.html&quot; rel=&quot;nofollow&quot;&gt;https:&amp;#x2F;&amp;#x2F;docs.oracle.com&amp;#x2F;en&amp;#x2F;database&amp;#x2F;oracle&amp;#x2F;oracle-database&amp;#x2F;2...&lt;/a&gt;</text></comment>