Sei sulla pagina 1di 5

As vantagens do uso de padronizao em objetos no banco de dados

Ol amigo(a), A padronizao de objetos em banco de dados utilizada em larga escala em projetos onde so utilizados modelos de qualidade como: CMMI, PMI, ISO9005, entre outros. Muitas das empresas que no possuem esse tipo de metodologia implementada, constantemente buscam novas prticas de gerenciamento para diminuir seus custos diretos de desenvolvimento e manuteno de software. Atualmente, o custo com as manutenes feitas nos aplicativos customizveis, isto , aqueles em que os desenvolvedores possuem o cdigo fonte em mos, corresponde a um dos grandes viles no oramento da rea de desenvolvimento de software, deixando muitos gerentes de "cabelo em p". O problema se agrava ainda mais quando estas manutenes so destinadas aos retrabalhos, e no para o desenvolvimento de novas funcionalidades. A idia do artigo dessa semana demonstrar atravs de exemplos prticos como diminuir o custo na fase de desenvolvimento e manuteno do software por meio da definio de padres no modelo de dados fsico. O objetivo a ser alcanado facilitar o entendimento dos desenvolvedores para que na fase de programao; a identificao das tabelas do sistema, seus atributos (colunas), os relacionamentos existentes e as constraints (restries) sejam claras e precisas, facilitando o manuseio aos dados e consequentemente diminuindo o tempo de anlise e programao. O problema Como incio do trabalho, o exemplo abaixo trata de um modelo de dados sem padronizao, que exige anlise por parte do desenvolvedor para realizar a programao da aplicao.

Figura 1. Modelo de dados de vendas sem padronizao dos nomes de tabelas e colunas. Anlise do Problema Parte 1 Analisando cuidadosamente os nomes das tabelas e suas respectivas colunas, percebe-se claramente a dificuldade que o desenvolvedor ir ter para realizar o desenvolvimento da aplicao, ou at mesmo necessite fazer uma manuteno, como a formatao (mscara) de uma coluna na tela. Para iniciar o trabalho, o desenvolvedor ter que verificar cuidadosamente o dicionrio de dados para identificar qual o significado de cada coluna, bem como o nome das tabelas. Indo um pouco mais alm, o script desse modelo de dados executado no ambiente de banco de dados, conforme mostra a figura 2:

Figura 2. Um script que cria tabelas sem utilizar padres. Anlise do Problema Parte 2 O script gerado acima contm um dos principais problemas encontrados atualmente na modelagem de dados: A ausncia de identificar as constraints (Primary Key, Foreign Key, NOT NULL entre outras) Sem as restries (constraints) nomeadas de forma correta, a dificuldade para realizar um suporte em tempo hbil ser muito grande, pois a mensagem de erro exibida no ser significativa. Isso claramente visvel no exemplo da figura 3, que ir inserir 2 linhas na tabela, sendo que a 2 linha tem o mesmo cdigo da chave primria da 1. , ocorrendo em uma mensagem de erro com o nome SYS_COO112132, ou seja, indecifrvel.

Figura 3. Inserindo 2 linhas em uma tabela com o mesmo valor da PK (chave primria) O simples exemplo citado acima demonstra que quando mais tabelas que no estejam utilizando um padro de nomenclatura, a complexidade de se realizar manuteno aumenta consideravelmente, afetando diretamente o custo de manuteno/desenvolvimento do software. A soluo

Modelo de dados utilizando padres Agora utilizaremos o mesmo exemplo da figura 1, porm utilizando uma padronizao simples.

Figura 4. Modelo de dados de vendas com padronizao dos nomes de tabelas e colunas. Analisando cuidadosamente os nomes das tabelas e suas respectivas colunas, percebe-se que o desenvolvedor encontra um nome significativo para as colunas e tabelas, facilitando seu trabalho, para realizar a formatao (mscara) das colunas na tela, bem como realizar a programao para a entrada de dados. Realizando a implementao fsica desse modelo no ambiente de banco de dados, tem-se o seguinte script executado na figura 5:

Figura 5. Um script que cria tabelas utilizando padres nos nomes de : tabelas, colunas e constraints. Apesar do script gerado conter mais linhas do que o exemplo da figura 2, ocorreu uma definio adequada de todos os nomes de tabelas, colunas e restries existentes na aplicao, facilitando a identificao interna dos objetos criados no banco de dados. Para realizar um teste prtico, foi utilizado o mesmo comando insert da figura 3.

Figura 6. Inserindo 2 linhas em uma tabela com o mesmo valor da PK (chave primria) A mensagem de erro exibida na figura 6 (que o mesmo erro da figura 3) est muito mais clara: PK_DEPTO, ou seja, violao da PK (Primary Key). Para realizar o suporte, o desenvolvedor conseguir identificar facilmente o problema somente pela mensagem de erro exibida e resolve-lo em um menor tempo do que o exemplo do modelo com falta de padronizao. Consideraes finais A tabela 1 (abaixo) contm algumas sugestes para criar nomes de colunas e restries no banco de dados na fase de implementao fsica no banco de dados. Sugesto de padres para criar nomes de colunas no modelo fsico Identificao Descrio do atributo Tipo de dado utilizado CD Nome de coluna que ir armazenar valores Numrico numricos inteiros, utilizado em atributos falsos. DT Nome de coluna que ir armazenar valores do Data tipo data DS Nome de coluna que ir armazenar valores String string, ou seja, caracteres que so descritivos (caracteres) e com grande capacidade de armazenamento. NM Nome de coluna que ir armazenar valores String string, ou seja, caracteres. (caracteres) NR Nome de coluna que ir armazenar valores Numrico numricos inteiros, para contedos significativos. ST Nome de coluna que ir armazenar valores do String tipo caracteres com contedo pr-estabelecido. (caracteres) Ex. Coluna ST_Cliente pode ter seu contedo como sendo A ou I e nenhum outro valor a no ser esses estipulados VL Nome de coluna que ir armazenar valores Numrico numricos, ou seja, nmeros que podem possuir casas decimais

Sugesto de padres para criar restries no modelo fsico Identificao Descrio do atributo PK_ Nome da chave primria de uma determina tabela FK_ Nome da chave estrangeira associada a uma determinada tabela IDX_ Nome de ndices associados a uma determinada tabela NN_ Nome de uma restrio do tipo Not Null, ou seja, coluna obrigatria CK_ Nome de uma restrio do tipo check, ou seja, valores prdefinidos. Exemplo: coluna sexo, valores possveis ou ou de armazenamento

Concluso Para que a sua aplicao possa fornecer mensagens claras em um momento de anormalidade, utilize padres para diminuir o tempo total de downtime da aplicao. Tcnicas para definies de objetos no banco de dados garantem o bom atendimento no suporte do software, bem como transmite segurana a todos os envolvidos para manter a aplicao com disponibilidade. No prximo artigo iremos bater um bate-papo com um dos OraSauros mais famosos que atuam no mercado de trabalho, participando de diversas comunidades on-line. Ele trar dicas de como ingressar de forma correta no aquecido mercado das ferramentas Oracle. Agradeceria de corao sugestes e comentrios desse artigo para que seja possvel replicar mais conhecimentos a todos ns. At l, Salvio Padlipskas

Potrebbero piacerti anche