The relational database paradigm makes some assumptions about usage of data.
- A relation consists of an unordered set of rows.
- All rows in a relation have the same set of columns.
- Each column has a fixed name and data type and semantic meaning on all rows.
- Rows in a relation are identified by unique values in primary key column(s).
- etc.
These assumptions support simplicity and structure, at the cost of some flexibility. Not all data management tasks fit into this kind of structure. Entities with complex attributes or variable attributes do not, for instance. If you need flexibility in areas where a relational database solution doesn't support it, you need to use a different kind of solution.
There are other solutions for managing data with different requirements. Semantic Web technology, for example, allows each entity to define its own attributes and to be self-describing, by treating metadata as attributes just like data. This is more flexible than the structure imposed by a relational database, but that flexibility comes with a cost of its own.
Overall, you should use the right tool for each job.
See also my other answer to "The Next-gen databases."