Então Metadados é isso??? Acabou??

Propaganda
26/10/2009
O que são Metadados?
Metadados (Dicionário de Metadados ou DMD), ou
Metainformação...
Evandro Ricardo Silvestre
• São informações sobre dados.
• Um item de um Metadado pode dizer do que se trata aquele
dado, geralmente uma informação inteligível por um
computador.
Mas, o que são Metadados?
Quais são os atributos desse telefone?
• Marca
• Modelo
• Cor
• Altura
• Largura
• Data Fabricação
• Peso
CREATE TABLE telefone
(
marca character varying(50)
NOT NULL DEFAULT 'GE',
modelo integer,
cor integer,
altura double precision,
largura double precision,
data_fabricacao date,
peso double precision
)
Quais são os metadados
do atributo marca?
Então Metadados é isso???
Acabou??
• Caracter
• Tamanho 50
• Não pode ser nulo
• Valor padrão ‘GE’
Como acessar Metadados em PostgreSQL
Quer um exemplo???
• Todos os Metadados são armazenados em tabelas do catalog
chamado pg_catalog no seu banco de dados.
• Exemplo de acesso aos metadados do
PostgreSQL
1
26/10/2009
Onde saber mais?
•
Documentação oficial
•
Documentação em pt-br (versão 8.0)
•
Exemplo de consultas ao pg_catalog
–
–
Diagrama para visualizar melhor
http://www.postgresql.org/docs/current/static/catalogs.html
http://pgdocptbr.sourceforge.net/pg80/catalogs.html#CATALOGS-OVERVIEW
– http://pgdocptbr.sourceforge.net/pg80/syscat.sql
– http://pt.wikibooks.org/wiki/PostgreSQL_Pr%C3%A1tico/Metadados
•
No pg_catalog existem algumas views que auxiliam na obtenção dos
metadados e em informações do banco, como por exemplo
–
–
–
–
pg_locks
pg_stat_activity
pg_ts_config
Etc.
Qual é a ideia?
Como eu uso tudo isso?
• A ideia inicial é retirar tudo que é lixo da aplicação
• Você pode alterar as tabelas do pg_catalog
• Maaassss, isso não é nenhum pouco recomendável
• É melhor ter um schema com suas próprias tabelas para
armazenar os metadados
• Essas tabelas devem se relacionar com as tabelas do
pg_catalog através das chaves candidatas
• Por que com as chaves candidatas?
–
–
–
–
–
–
–
Label
Hint
Validações básicas
Lista de valores dos campos
Help
Comandos de Insert, Update e Delete (IUD)
Regras de Negócio
• E colocar no banco de dados em forma de metadados
criando assim um DICIONÁRIO DE METADADOS.
• Por exemplo:
– A Label será um atributo Descrição de uma coluna
– O Hint será um atributo Complemento de uma coluna
– Porque os oid (chave primária) podem varias quando restaura o
banco de dados, diferente das chaves candidatas.
– Dessa forma, as referências serão perdidas.
• E tem outra, quando você tem suas tabelas, você tem mais
liberdade para trabalhar.
• Tudo se tornará metadado...
Simples Diagrama de um DMD
E como funciona?
• Telas de cadastros serão montadas automaticamente
tomando como base os metadados de uma tabela
• O posicionamento do campo na tela será feito através
dos atributos Ordem e Coluna (coluna indica a
posição na horizontal, ordem a posição da vertical)
• Caso o campo não esteja marcado como visível, ele
não aparecerá
• O atributo nome é a descrição que aparecerá no lado
do campo
• O atributo ajuda é o hint, ou, um campo de ajuda
• O atributo regra_validacao indica uma regra que deve
ser validada nesse campo
• Comando de IUD serão automáticos, com base nos
metadados
• O atributo chave_primaria indica quais colunas serão
utilizadas no WHERE do Update e Delete
2
26/10/2009
Continuando...
Quer ver como funciona?
• Comandos de IUD das Telas de movimentos
(por ex: efetuar venda) também serão
montadas automaticamente
• Essas telas são um pouco mais complicadas
de serem montadas automaticamente, mas
nada impede de serem feitas
• Ai vai um exemplo em Java...
Benefícios
Concluindo...
• Você terá um catalogo do seu banco de dados. Facilitando
o trabalho do DBA.
• Montar um sistema baseado em metadados não é fácil,
exigi muito tempo no desenvolvimento da infra-estrutura
• Porém ajuda muito em todo o resto do desenvolvimento
• Com os metadados, as tarefas repetidas relacionadas ao
banco de dados são centralizadas
• Alterações banais como mudar label, ordenação, adicionar
campo, são feitas muito facilmente
• A implantação de regionalização no sistema também é
bem fácil
• É possível adequar o sistema para várias empresas
adicionando apenas um atributo de código da empresa na
tabela de metadado
• Por ex: a Empresa X tem um campo a mais no cadastro de
produto.
• Tudo isso é gerenciando pelo metadados
• Os metadados servem para ajudar a
automatizar tarefas repetidas relacionadas
aos dados em um sistema
• O pg_catalog nos dá acesso as informações
referente a estrutura no nosso banco
• Com base no pg_catalog, podemos agregar
mais informações para adequarmos as nossas
necessidades
DÚVIDAS
Evandro Ricardo Silvestre
[email protected]
3
Download