| ▲ | zarzavat 4 hours ago | |
Filesystems have a property that changes preserve locality. A change made to one branch of the tree doesn't affect other branches (except for links). Databases lack this property: any UPDATE or DELETE can potentially affect any row depending on the condition. This makes them powerful but also scary. I don't want that every time I delete a file it potentially does a rm -rf / if I mistype the query. The best compromise is what modern OSs have: a tree-like structure to store files but a database index on top for queries. | ||
| ▲ | JoeAltmaier 3 hours ago | parent [-] | |
You can create the tree structure from a relation. Not a primitive data store operation at all. Just add the attribute: parent directory and voila. So often we want to look up 'the last file I printed' or 'that message I got from Bob'. Instead of just creating that lookup, we have to go spelunking. Hell, every major app creates it's own abstractions because the OS/Filesystem doesn't have anything useful. Email systems organize messages and tags; document editors have collections of document aspects they store in a structured blob. Instead of asking the OS to do that. | ||