I am told that an old-style SQL database can do that just fine. With a lot less overhead.
Am I missing something?
Some types of data are valuable enough to pay miners to validate and store the transactions, but usually it doesn't. To take one of your examples: why should government welfare benefits data be stored on a blockchain? Does it make any sense for a local government to reward foreign miners for storing their data on a global blockchain? In this instance, a replicated SQL database seems much more sensible.
(You might say that a blockchain without proof-of-work mining can also solve this -- but then you have to ask what is the essential difference between a blockchain where you implicitly trust some parties, and a traditional distributed database? Why do it the hard way when you've already compromised on the decentralized part?)
1) you can add hashes etc to a database to verify data integrity. The cost is minimal compared to a distributed consensus mechanism. See https://en.wikipedia.org/wiki/Merkle_tree
2) Consensus mechanisms among untrusted parties open you to the infamous "51% attack" which should disqualify this design for much government data. But if you only allow trusted parties, why bother with proof of work at all?
If you are interested in the relational database approach, the middle of the talk (and the associated example code) might be a fun place to start. https://blog.fauna.com/talk-video-build-a-serverless-distrib...
Visa processes 50000 transactions per second. Imagine each of them of them requires a single byte to store through black magic. If you do the math you will realise that 50kb per second over 10 minutes is 30 megabytes per block. 2MB blocks are not even remotely enough.