domingo, 6 de abril de 2008

A figura do administrador do Banco de Dados (DBA)


Bom gente, depois de alguns questionamentos de amigos, resolvi escrever este "artigo" sobre um assunto muito discutido atualmente.Banco de dados.Me conhecendo como sei que muitos conhecem, sei que esperam a explicação de algum recurso novo, algum conceito de banco de dados ou talvez um script. Com certeza todos esses itens são muito importantes, mas resolvi falar sobre um assunto que também merece atenção. Esse artigo fala do profissional que administra o banco de dados mais conhecido como DBA.

O termo DBA é a sigla de DataBase Administrator (Administrador de banco de dados). Esse profissional de uma maneira geral é o responsável pelo banco de dados. Entre algumas das responsabilidades de um DBA estão:

Segurança do banco de dados
É responsabilidade do DBA, garantir que os dados estejam seguros quanto a acessos indesejados atribuindo os níveis de permissões adequados aos usuários de banco de dados.

Recuperação e disponibilidade
O DBA deve seguir procedimentos de cópia (BackUp) como forma de contingência a possíveis desastres (falhas de hardware, invasões, alterações acidentais, etc). É igualmente importante que o DBA realize testes sobre essas cópias para garantir que as mesmas funcionam e estarão disponíveis quando necessárias. Também é responsabilidade do DBA realizar tudo o que estiver ao seu alcance para que o banco de dados fique disponível o maior tempo possível.

Desempenho
Dadas as possíveis limitações, é papel do DBA providenciar o melhor desempenho possível do banco de dados. Isso inclui atividades como otimização de consultas, utilização da infra-estrutura (disco, memória, processador, etc) de forma adequada, monitoração do ambiente, etc

Suporte a equipe de desenvolvimento
É imprescindível que haja uma boa relação entre o DBA e a equipe de desenvolvimento. Através dessa relação é possível a troca de conhecimentos de forma que isso possibilita ao DBA entender melhor as demandas de uma aplicação e propor as soluções mais adequadas para o bom funcionamento do banco de dados. Os desenvolvedores também podem solicitar suporte ao DBA em questões referentes ao banco de dados.

Implementação de Bancos de Dados
O DBA deve realizar uma implementação adequada do banco de dados visando desempenho, escalabilidade, flexibilidade e confiança. Isso inclui ter um bom modelo de dados físico.
Para que o DBA possa exercer adequadamente o seu papel e cumprir com suas responsabilidades é importante que ele detenha algumas competências:

Conhecimentos em Sistemas Operacionais: Um banco de dados é totalmente dependente do sistema operacional onde está instalado. É fundamental que o DBA conheça conceitos ligados ao sistema operacional (processos, threads, gerenciamento de memória, paginação, sistema de arquivos, etc) para poder adequar o máximo possível o sistema operacional ao banco de dados utilizado

Conhecimentos em Redes: Os bancos de dados são em sua esmagadora maioria compartilhados. É desejável que o DBA conheça características da rede (capacidade de tráfego, protocolos, etc). Esse conhecimento pode ajudar a resolver problemas com o banco de dados.

Compreensão em arquitetura em banco de dados: Entender como funciona um banco de dados é um pouco mais do que conhecer uma tecnologia específica (ORACLE, DB2, SQL Server, etc). Entender alguns dos fundamentos de banco de dados (algoritmos de indexação, concorrência, transações, etc) podem ser tão valiosos quanto conhecer as implementações de um produto específico.

Noções do sistema de armazenamento: É importante ao DBA ter conhecimento dos princípios que são utilizados nos sistemas de armazenamento (RAID, SAN, etc). Esse conhecimento pode ajudar o DBA a utilizar a infra-estrutura de armazenamento para um projeto físico eficiente.

A evolução dos bancos de dados atuais está tornando diversos produtos auto gerenciáveis (self tuning). Isso reduz drasticamente o trabalho do DBA. Atividades que anteriormente eram muito trabalhosas hoje podem ser feitas com apenas um clique. Isso muda um pouco o foco de algumas atividades do DBA permitindo-lhe que se preocupe com outras atividades. Em virtude dessa evolução DBAs tem de desenvolver novas competências como por exemplo:

Manuseio do XML: Esse padrão já possui uma forte aceitação e cada vez mais os profissionais de banco de dados têm de conviver com ele. É importante que o DBA conheça XML e suas tecnologias correlatas (XSD, Web Services, etc).

Conhecimentos em desenvolvimento: Muitas vezes o DBA precisa realizar algum script, rotina, procedimento, etc para realizar alguma tarefa rotineira (ou teste) como uma migração de dados, uma pequena aplicação de acesso à base ou um diagnóstico de lentidão por parte da aplicação, etc. Existem ferramentas que fazem isso muito bem, mas nem sempre (quase sempre) elas não estão à disposição do DBA.

Noções de ETL: Com o crescente mercado de Business Inteligence é esperado o aumento de bases multidimensionais utilizando diversas tecnologias de banco de dados (XML, Flat Files, banco de dados relacionais, banco de dados orientados a objeto, etc). É importante ao DBA conhecer meios para dar suporte a rotinas de extração, transformação e carga no projeto de Data Warehouse além de monitoramento das consultas.

Proficiência em alta disponibilidade: A crescente concorrência entre as empresas exige destas a disponibilidade superior aos horários comerciais. Hoje é possível ir a supermercados de madrugada, realizar compras na internet a qualquer horário, bem como efetuar operações bancárias de um celular. Nesse tipo de cenário (cada vez mais comum) é fundamental que o banco de dados esteja disponível o maior tempo possível. Isso exigirá do DBA técnicas de alta disponibilidade como replicação, cluster, espelhamento, etc.

Muitas vezes o cargo de DBA não existe formalmente em uma empresa. É comum em situações como essa que essas atividades estejam sendo exercidas por outros profissionais (rede, desenvolvimento, etc). Em algumas empresas isso se justifica pelo seu tamanho, complexidade e tamanho do banco de dados. Em outras isso pode se dar por restrições orçamentárias. Mesmo que o cargo não exista formalmente, continuam valendo suas responsabilidades e competências.

Bom, é isso...
Epero que tenha passado uma boa noção dessa área da informática que eu particularmente adoro.Qualquer dúvida pode postar que eu respondo.

Abraços a todos...

Nenhum comentário: