Não há problema nenhum em fornecer tudo isso em um banco de dados relacional. PostgreSQL não é de classe empresarial, mas é certamente um dos melhores SQLs freeware.
Para ser claro, não estou procurando ajuda descrevendo as fontes de dados ou quaisquer metadados relacionados. Estou especificamente tentando descobrir a melhor forma de armazenar valores de dados (eventualmente de vários tipos).
Esse é o seu maior obstáculo. Ao contrário do projeto de programas, que permite a decomposição e análise/projeto isolado de componentes, os bancos de dados precisam ser projetados como uma única unidade. A normalização e outras técnicas de design precisam considerar o todo e o componente no contexto. Os dados, as descrições, os metadados devem ser avaliados em conjunto, não como partes separadas.
Em segundo lugar, quando você começa com chaves substitutas, o que implica que você conhece os dados e como eles se relacionam com outros dados, isso impede você de uma modelagem genuína dos dados.
Eu respondi um conjunto muito semelhante de perguntas, coincidentemente com dados muito semelhantes. Se você pudesse ler essas respostas primeiro, isso nos pouparia muito tempo de digitação em sua pergunta/resposta.
Answer One/ID Obstáculo
Resposta dois/ Principal
Resposta três/Histórico