Os termos dicionário de dados e repositório de dados indicam uma utilidade de software mais geral do que um catálogo. Um catálogo está intimamente ligado ao software do SGBD. Ele fornece a informação nele armazenada ao utilizador e ao DBA, mas é acedido principalmente pelos vários módulos de software do próprio SGBD, tais como compiladores DDL e DML, o optimizador de consultas, o processador de transacções, os geradores de relatórios, e o constrangedor. Por outro lado, um dicionário de dados é uma estrutura de dados que armazena metadados, ou seja, dados (estruturados) sobre informação. O pacote de software para um dicionário ou repositório de dados autónomo pode interagir com os módulos de software do SGBD, mas é utilizado principalmente pelos designers, utilizadores e administradores de um sistema informático para a gestão de recursos de informação. Estes sistemas mantêm informações sobre o hardware e configuração do software do sistema, documentação, aplicação e utilizadores, bem como outras informações relevantes para a administração do sistema.
Se um sistema de dicionário de dados for utilizado apenas pelos designers, utilizadores e administradores e não pelo Software do SGBD, chama-se um dicionário de dados passivo. Caso contrário, chama-se um dicionário de dados activo ou dicionário de dados. Quando um dicionário de dados passivo é actualizado, é feito manualmente e independentemente de quaisquer alterações à estrutura de um SGBD (base de dados). Com um dicionário de dados activo, o dicionário é actualizado primeiro e as alterações ocorrem automaticamente no SGBD como resultado.
Os utilizadores de bases de dados e os criadores de aplicações podem beneficiar de um documento de dicionário de dados autorizado que cataloga a organização, o conteúdo e as convenções de uma ou mais bases de dados. Isto inclui normalmente os nomes e descrições de várias tabelas (registos ou Entidades) e os seus conteúdos (campos), mais detalhes adicionais, como o tipo e comprimento de cada elemento de dados. Outra informação importante que um dicionário de dados pode fornecer é a relação entre Tabelas. Isto é por vezes referido em diagramas Entidade-Relação, ou se utilizar Descritores de Conjunto, identificando quais os Conjuntos de Tabelas de Base de Dados em que as Tabelas participam.
Num dicionário de dados activo, podem ser colocadas restrições aos dados subjacentes. Por exemplo, um intervalo pode ser imposto ao valor dos dados numéricos num elemento de dados (campo), ou um registo numa tabela pode ser FORÇADO a participar numa relação de conjunto com outro Tipo de registo. Além disso, um SGBD distribuído pode ter certas especificidades de localização descritas no seu dicionário de dados activo (por exemplo, onde as Tabelas estão fisicamente localizadas).
O dicionário de dados consiste em tipos de registos (tabelas) criados na base de dados por ficheiros de comando gerados pelos sistemas, adaptados para cada SGBD back-end suportado. A Oracle tem uma lista de vistas específicas para o utilizador “sys”. Isto permite que os utilizadores consultem a informação exacta que é necessária. Os ficheiros de comando contêm declarações SQL para CREATE TABLE, CREATE UNIQUE INDEX, ALTER TABLE (para integridade referencial), etc., utilizando a declaração específica exigida por esse tipo de base de dados.
Não existe um padrão universal quanto ao nível de detalhe em tal documento.