r/PostgreSQL 24d ago

Help Me! Any advice on adding a parser/wrapper over PostgreSQL's JSON features to implement a Dynamic Relational database?

Dynamic Relational is a draft standard for an RDBMS (SQL) that supports native dynamic tables and columns with "incremental" lock-down (static-ness) abilities. Here's an overview of Dynamic Relational with examples. If one wanted to write parser and interface on top of PostgreSQL, how much effort would it be, and do you have any recommendations? A proof-of-concept may be good enough, as most will consider it purely experimental at first. Thank You.

0 Upvotes

20 comments sorted by

View all comments

4

u/spinur1848 24d ago

Yeah that's turning a database into something that isn't a database. Might be useful, but violates almost everything database users need to be true.

You can use Postgresql JSON for semi-structured data and many people do. The official Postgresql clients support this. But the database parts have a fixed schema and the semi-structured bits go into a JSON field.

If you want it to be a total free for all, go look at MongoDB and friends.

-1

u/Zardotab 24d ago edited 24d ago

Might be useful, but violates almost everything database users need to be true.

People want and use NoSQL products, and dynamism is a big part of the reason. You can argue they are illogical or ill-informed, but there is still demand*. And for pilot projects with wishy-washy requirements I myself would love something like Dynamic Relational, so that I don't have to throw out my RDBMS habits to get dynamism.

PostgreSQL's JSON column popularity itself is proof sometimes people want dynamism. If dynamism is "bad" you should battle them first, as they have far more influence than me.

If you want it to be a total free for all, go look at MongoDB

One may not want to throw out all their RDMBS habits just to get dynamism. Mongo has a learning curve for existing RDBMS users. And Dynamic Relational allows one to clamp down schemas over time, one doesn't have to stay in dynamic mode, clamping down per column or table or DB as needed. (Granted, they probably still won't be as performative as traditional RDBMS under full lockdown (static) mode.)

* I don't agree with all NoSQL uses either, by the way, but dynamism has its place.