Insecurity and Python pickles
Insecurity and Python pickles
Posted Mar 14, 2024 16:54 UTC (Thu) by Wol (subscriber, #4433)In reply to: Insecurity and Python pickles by aragilar
Parent article: Insecurity and Python pickles
Actually, I would argue that tabular data does NOT make sense in a database. It starts with the very definition of data.
Relational data is defined as "coming in rows and columns". If it doesn't fit that definition, it's not data. Relational dictates what is acceptable.
My definition (the one I use in my databases) is "data is what the user gives you". I'm happy with whatever I'm given.
Now let's define metadata. I don't know what the Relational definition of metadata is, probably "it's the schema". My definition (that I use in my databases) is "metadata is data I have inferred about the data the user gave me". And one of my cardinal rules is NEVER EVER EVER MIX data and metadata in the same table !!!!!!
But that's exactly what the job of a relational data analyst is - to infer data about the user data, then promptly mix both data and metadata up in the same table. How else would you represent a list in a 2D table?
> Naturally, higher dimensional data requires different tools (e.g. HDF5).
No. Higher dimensional data requires a multi-dimensional database. Preferably with a query language that is multi-dimensional-aware.
SQL contains huge amounts of database functionality, because it was designed to query unstructured data. So the query had to be able to express the structure. Get a database where the schema can DEscribe the structure, and the query language can be simultaneously more expressive, more powerful, and simpler, because you've pushed a lot of the complexity into the database where it belongs.
SQL puts huge amounts of complexity in the wrong place. Some complexity is unavoidable, but dealing with it in the wrong place causes much AVOIDABLE complexity.
Just look back at my rants here about relational. Just don't set off another one, the regulars here will have their heads in their hands :-)
The best way to let you see roughly where I'm coming from, is I see everything similar to an XML/DTD pair. That is EASY to manipulate with automated tools. And those tools are heavily optimised for fast efficient processing. Okay, that's not an exact description of MultiValue, but it's close. Oh - and if I store one object per XML table, the tool makes it dead easy to link different objects together.
Cheers,
Wol