P>

capaSQL26.JPG

Clique aqui para ler todos os artigos desta edição

Explorando o dicionário de dados do Oracle

Uma visão do desenvolvedor

Luiz Alberto Ferreira Gomes

Este artigo descreve a família de visões USER, ALL e DBA do dicionário de dados do servidor de banco de dados Oracle e mostra exemplos práticos da utilização dessas visões. O catálogo, ou dicionário de dados, de um banco de dados relacional é um mecanismo importante da arquitetura de qualquer SGBD. Em um sistema relacional, como o Oracle, o próprio catálogo consiste de tabelas ou, mais precisamente, de tabelas do sistema. Essencialmente, o catálogo armazena meta-informações sobre todos os objetos criados em um banco de dados. Além disso, essa estrutura é utilizada como principal fonte de informações para o software SGBD e, também, pode ser utilizado como uma valiosa documentação online para administradores de banco de dados e desenvolvedores de aplicações.

Catálogo

O catálogo pode ser considerado como um banco de dados do sistema onde informações sobre todos os objetos pertencentes aos diversos esquemas (visões, conceitual e interno) são armazenadas. Dito em outras palavras, a principal finalidade do catálogo é armazenar dados ou metadados que descrevem as estruturas dos objetos criados no banco de dados. Por exemplo, o nome, tipo e tamanho de cada coluna de uma tabela. Os metadados contidos no catálogo são essenciais para que o sistema faça seu trabalho de modo apropriado. Por exemplo, o otimizador utiliza informações do catálogo a respeito de índices e outras estruturas físicas de armazenamento para ajudá-lo a decidir como executar as consultas do usuário de forma mais eficiente.

Os vários produtos de banco de dados comerciais adotam diferentes convenções e terminologias com referência ao seu catálogo do sistema. No entanto, em geral os catálogos contêm metadados similares descrevendo esquemas conceituais (tabelas), internos (estrutura de armazenamento físico do banco de dados) e externos (definições de visões). Informalmente, um esquema é a descrição de um banco de dados que é especificado durante o projeto do banco de dados.

Informações do dicionário de dados do Oracle

No Oracle, a coleção de metadados denomina-se dicionário de dados. O dicionário Oracle é composto de tabelas base (base table) que são acessíveis somente a partir do usuário SYS, criado durante a instalação do Oracle. Este usuário é o dono de todo o catálogo e possui todos os privilégios sobre ele. Por isso, o acesso a ele deverá ser restrito somente ao DBA. Uma operação errada sobre uma tabela do catálogo, como a remoção por engano de uma tabela do catálogo, pode comprometer todo o sistema.

Para permitir a leitura eficiente e segura pelo software do SGBD, as tabelas do catálogo são totalmente normalizadas, utilizam mnemônicos para nomes de tabelas e colunas, e alguns dados são criptografados. Por isso, elas são raramente acessadas diretamente pelo usuário. O acesso ao dicionário de dados, a não ser por razões bem específicas, deverá ser feito por meio de inúmeras visões que foram criadas a partir das tabelas base, para facilitar o acesso por parte dos usuários. Estas visões possuem nomes de colunas descritivos e ocultam complexas junções entre as tabelas base. O Oracle organiza, conforme a Tabela 1, essas visões em três categorias distintas: USER, ALL e DBA (usuário, todos e administrador do banco de dados).

 

Prefixo

Descrição

USER_

As visões USER_ retornam informações a respeitos dos objetos criados pelo usuário conectado.

ALL_

...
Quer ler esse conteúdo completo? Tenha acesso completo