Yeah, instead of having one, neat table full of data in a big data center, copied to other big data centers, we split everything up into small, coherent pieces, replicate them, and disperse them, and then we pull it together to be displayed according to some construct. We can pull it together any way we like, so long as we don't store it in a construct. If you store it constructed, you have to programmatically deconstruct and reconstruct it, every time you want to use it. Which is stupid.