A figura do administrador de banco de dados (DBA)

Boa Noite Pessoal,

Estou inaugurando esse blog no intuito de divulgar e trocar idéias sobre banco de dados, BI, XML com um foco em SQL Server. Posterei scripts, textos explicativos, arquivos, etc sobre esses assuntos, mas como texto de inauguração, gostaria de falar um pouco sobre o profissional que administra os bancos de dados, o DBA. Inicialmente escrevi esse texto no site onde posto alguns artigos (http://www.plugmasters.com.br). Fiz algumas atualizações que julgo pertinentes em relação ao texto original.

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 dados

A 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ção

O 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.

Disponibilidade

Banco 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.

Desempenho

Um 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 software

O 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 dados

O 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 Requeridas

Para 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.

[ ]s,

Gustavo

12 Respostas para “A figura do administrador de banco de dados (DBA)

  1. Fabiano Neves

    Boa, Gustavo bem vindo ao Spaces, já sou um leitor do seu Blog.
     
    Abraço.

  2. Gustavo, O blog ficou show de bola. Eu estava lendo um artigo seu, sobre "A Impedância, o Mapeamento Objeto Relacional e Implementações", então queria saber se você poderia me ajudar informando algum livro ou artigos sobre "Impedância em banco de dados – a solução de como resolver este problema", pois estou fazendo um T.C.C. sobre esse tema e não achei muitas coisas.obrigado pela atenção,abraço.

  3. Olá Dudu,Que bom que o blog lhe agrada. O assunto "Impedância" não é tão novo assim e você encontrará bastante referências principalmente se procurar pelo sinômino "mapeamento objeto relacional". Nunca achei um livro específico sobre esse tema, mas normalmente se encontra sobre em livros de programação orientada a objetos. Em breve devo publicar mais dois artigos da série.Abs,

  4. Olá Gustavo,Gostaria que em uma próxima oportunidade, comentasse das habilidades "não técnicas" de um DBA.Abraços,Sérgio.

  5. Oi Sérgio,Vou anotar essa sugestão para quando republicar esse artigo.Abs,

  6. Maria Cecilia França

    Gustavo, parabéns pelo blog.
    Como iniciante em Bco de Dados, gostaria de saber se vale a pena fazer Faculdade específica em Banco de Dados, ou agregar conhecimento com cursos individuais?
    Abç,
    MCecilia

    • Oi Maria,

      Essa é uma decisão difícil e muito pessoal. Eu por exemplo sou formado em Administração de Empresas acredita ? Acho que fazer algo específico em banco de dados é apostar em profundidade e algo mais genérico é apostar em amplitude. Se você realmente quer mexer (ou já mexe) só com banco de dados talvez a primeira opção seja interessante, mas ter algo mais genérico pode fazer você se mover melhor caso não goste da área.

      [ ]s,

  7. Pingback: O que preciso saber para ser um bom DBA?! | Vladimir M. B. Magalhães – SQL Server DBA

  8. Silvio Soares

    Legal, estou procurando onde fazer o curso de DBa, pode ajudar ?
    aqui no RJ, superior, tecnólogo ou técnico? valeu e obrigado.

  9. Amigo Obrigado pelas dicas

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s