Why is moving data the hardest thing to do in the world?
All databases/database apps should have:
- Easy connection for raw data. Not a web service connection, but a permissioned, live, SQL interface that requires no special software other than maybe a driver. The data should be in a readily accessible, universal format once it gets to the app, not converted to Excel or CSV or XML (but these should continue to be options).
- Fast data transfer. If my data is bigger than X, it should be compressed before transferring. Both sides of the connection should handle this seamlessly.
- Some method for persisting application views of data between apps/users/computers — for example, if my Ajax app pulls out a bunch of data for a table, my Protovis app should be able to read it with minimal (or zero) data movement.
- For extra credit, my database should have an easy to use semantic layer that can dynamically generate queries (based on a data model I build), and my apps can interface with this to create queries, but use the “easy connection” mentioned above for extracting data.
SAP and Oracle and Microsoft don’t understand this. Or, if they do, they hide it because they want to sell you more software. The problem is that the more complicated the chain of software to get the data, the more likely something fails or the data is bad. Please — someone build an app-friendly database!
(as an aside, I wonder how much programming would be required to get some of these things built as interfaces to MySQL or PostGres? Do the pieces exist, but they just need to be interconnected properly?)