A figura do administrador de banco de dados (DBA)
Autor: Israel Pinheiro | Publicado: 2009-09-09T07:02:00-03:00

O termo DBA é o acrônimo de DataBase Administrator (Administrador de banco de dados). Esse profissional de uma maneira geral, assim como o nome indica, é o responsável pelo banco de dados.Segurança do banco de dadosA segurança é uma questão muito ampla e certamente envolve profissionais de diversas áreas e conhecimentos interdisciplinares. Um banco de dados totalmente seguro é algo que o DBA sozinho dificilmente consegue garantir, mas é responsabilidade do DBA fazer todo o possível 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çãoO DBA deve planejar e implementar procedimentos de cópia (BackUp) para garantir que na ocorrência de possíveis desastres (falhas de hardware, invasões, alterações não planejadas, acidentes naturais, etc) os dados possam ser recuperados. É igualmente importante que o DBA realize testes sobre essas cópias para garantir que as mesmas são íntegras que realmente funcionarão quando forem necessárias.DisponibilidadeBanco de dados são recursos compartilhados e existem porque é necessário que sejam acessados. O DBA deve realizar tudo o que estiver ao seu alcance para que o banco de dados fique disponível o maior tempo possível e o acesso aos dados não seja comprometido.DesempenhoUm bom desempenho depende de diversos fatores (Hardware, SO, codificação, rede, etc). Quase sempre o DBA não tem controle sobre todos esses fatores, mas dada as limitações, o DBA deve 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 equipes de desenvolvimento e arquitetura de softwareO banco de dados é um componente importante para qualquer software. Uma boa relação entre o DBA, os programadores, os analistas de negócio e os arquitetos é fundamental. Através dessa relação é possível a troca de conhecimentos acerca do negócio, a elaboração de boas práticas no manuseio do banco de dados, o consenso sobre a melhor solução de um projeto de software e o devido suporte em banco de dados para os codificadores. É também através dessa relação que o DBA poderá coletar informações negociais para planejar e evoluir a infra-estrutura de banco de dados.Implementação de banco de dadosO DBA deve realizar uma implementação adequada do banco de dados visando desempenho, escalabilidade, flexibilidade. Isso certamente influencia diretamente a escolha adequada da tecnologia de banco de dados, mas ainda mais importante que a escolha adequada da tecnologia é a elaboração adequada de um bom modelo de dados físico. Existem muitas aplicações que embora usem um SGBD robusto, rodem em um hardware poderoso e sejam codificadas em uma plataforma de desenvolvimento de primeira linha, fracassam por ter um projeto físico de banco de dados de má qualidade.Competências RequeridasPara conseguir cumprir com suas responsabilidades, o DBA naturalmente deve deter algumas competências. Ele não necessita dominá-las (até porque é pouco provável que ele consiga ser especialista em todas elas), mas deverá conhecer mais ou menos dependendo do ambiente em que atue. Algumas dessas competências são:Conhecimentos em Sistemas Operacionais: Ainda que existam SGBDs que rodem em mais de um banco de dados, eles são dependentes do sistema operacional onde estão instalados. É importante que o DBA conheça conceitos ligados ao sistema operacional (processos, threads, gerenciamento de memória, paginação, sistema de arquivos, etc) bem como a implementação e otimização desses conceitos no Sistema Operacional que hospeda o banco de dados. Isso auxilia na configuração e otimização do sistema operacional ao banco de dados utilizado.Conhecimento em Redes: Os bancos de dados são em sua esmagadora maioria compartilhados. Se são compartilhados é certo que o acesso será feito vida rede (Intranet, Internet e Extranet) e conhecer como essa transmissão ocorre é importante. É desejável que o DBA conheça características da rede (capacidade de tráfego, protocolos, etc). Esse conhecimento pode ajudar a resolver problemas e otimizar o acesso ao 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. Bons DBAs não são aqueles que conhecem todos os comandos de um produto, mas certamente aqueles que sabem o que acontece nos "bastidores".Noções do sistema de armazenamento: A persistência dos dados é realizada em algum local próprio para armazenamento. É importante ao DBA ter conhecimento dos princípios que são utilizados nos sistemas de armazenamento (RAID, SAN, NAS, etc). Esse conhecimento pode ajudar o DBA a utilizar a infra-estrutura de armazenamento para um projeto físico eficiente.Novos desafiosÀ medida em que os bancos de dados mudam, que a tecnologia utilizada em conjunto com eles evolui e que isso motivado pelas necessidades crescentes dos usuários oferecem novas possibilidades, surgem novos desafios para o DBA. Alguns deles são: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.Conhecimentos em outras tecnologias e padrões: A área de banco de dados torna-se cada vez mais interdisciplinar. Anteriormente os bancos de dados estavam restritos ao armazenamento e recuperação de dados. Hoje, em virtude da forte competição dos fornecedores, é cada vez mais comum que um produto de banco de dados apresente outras tecnologias e padrões além desse escopo. Stored Procedures, XML, mensageria, são exemplos de implementações que o DBA cada vez mais tem de assimilar.Implementações não convencionais: Os produtos de banco de dados estiveram por muitos anos focados na implementação relacional que se baseia em tabelas. Essa é e será por muito tempo, o carro chefe da maioria dos fabricantes, mas cada vez mais outras implementações aparecem. Bancos de dados geográficos, bases multidimensionais, XML, banco de dados orientados a objeto e bancos de dados textuais já fazem parte do portifólio de implementações e é importante que o DBA entenda como elas funcionam e se integram.Noções de ETL: A heterogeneidade de implementações presentes em um ambiente de banco de dados e o crescente mercado de Business Inteligence faz com que inevitalvemente dados de uma plataforma tenham de ser transportados para outra plataforma. Isso pode se dar por uma simples troca de produto, pela construção de uma base analítica ou pela elaboração de uma base de contigência. É importante ao DBA conhecer meios para dar suporte a rotinas de extração, transformação e carga quando houver movimentações de dados.Ainda que as tarefas desempenhadas pelo DBA sejam de extrema importância, muitas vezes esse cargo não existe formalmente em uma organização sendo desempenhado por outros profissionais (rede, desenvolvimento, etc).Há organizações pequenas que dispensam um DBA por questões orçamentárias enquanto outras podem ter não apenas um DBA, mas um equipe de administração de banco de dados. Existem ainda aquelas que simplesmente não possuem DBA por não achar que o seu papel seja de fato necessário deixando suas atribuições em segundo plano (infelizmente isso é realidade em muitos lugares).Independente de haver uma equipe de administração de banco de dados ou não haver um profissional nomeado para realizar as tarefas de um DBA, continuam valendo suas responsabilidades e competências. É preciso que suas tarefas sejam desempenhadas para que os dados possam ser acessados, estejam seguros e disponíveis.