Atenção: por essa edição ser muito antiga não há arquivo PDF para download.
Os artigos dessa edição estão disponíveis somente através do formato HTML.
Entrevista – Marta Mattoso
1) Você atua na área de banco de dados na COPPE desde 1984. Como tem sido a evolução desse trabalho?
A linha de banco de dados do Programa de Sistemas e Computação da COPPE foi fundada em 1977. Desenvolvemos um SGBDR ao longo da década de 80, o COPPEREL, projetado pelo Prof. Jano Moreira de Souza, atual coordenador da linha de banco de dados. Em seguida, partimos para o desenvolvimento de um banco de dados orientado a objetos, o GOA, que teve sua primeira versão em 1994. Ele está operacional até hoje, sendo objeto de estudo e desenvolvimento de diversas teses. Hoje trabalho com XML e Web Services junto a SGBDs.
2) Quais linhas de pesquisa você coordena atualmente ?
Coordeno projetos na área de distribuição e paralelismo em banco de dados e na área de bioinformática.
3) O que significa distribuição na área de banco de dados?
É uma coleção de diversas bases de dados, interligadas logicamente através de uma rede de computadores. Cada base é instalada em um nó da rede e as tabelas são fragmentadas e distribuídas entre essas bases. Toda a distribuição deve funcionar de forma transparente, dando a impressão ao usuário de que o banco de dados está unificado.
O objetivo dessa arquitetura é reduzir o volume de dados em aplicações que possuem uma estrutura descentralizada, como companhias aéreas, redes de lojas, cadeias de hotéis, entre outras.
4) Na prática, o que significa fragmentar uma tabela?
Significa dividir uma tabela por linhas, que é o fragmento horizontal, ou por colunas, que é o fragmento vertical. Por exemplo, numa tabela de cem mil registros, podemos armazenar cinqüenta mil registros em um ponto da rede e cinqüenta mil em outro ponto. Isso é uma fragmentação horizontal. Na fragmentação vertical podemos armazenar as colunas mais usadas em um ponto e as menos relevantes em outro ponto.
Não é fácil decidir como as tabelas devem ser fragmentadas e alocadas. O objetivo é que os usuários de cada nó manipulem o menor volume de dados e que os fragmentos fiquem o mais próximo possível de seus usuários potenciais.
Um problema comum é quando alguns pontos de rede compartilham um mesmo fragmento de tabela. Nesse caso, a solução menos custosa é fazer a replicação do fragmento entre os pontos. No entanto, quando o fragmento for compartilhado por muitos nós em processos de alteração, a replicação não é indicada pois o custo para manter a consistência será muito alto.
Essas decisões são um grande desafio para o projetista. Nosso projeto de pesquisa propõe metodologias para que se determine passo a passo a melhor opção para a distribuição do banco de dados.
5) Então é favorável que as tabelas sejam usadas mais para consulta do que para alteração?
A distribuição é ideal quando os dados compartilhados são usados apenas para leitura. As atualizações são problema quando precisam de replicação ou não são restritas a fragmentos isolados. Atualizações que ocorrem em vários fragmentos de uma vez são muito custosas para o sistema, pois a quantidade de controle necessário para garantir a consistência é muito grande.
6) Qual o tipo de fragmentação mais comum?
Hoje, a maioria dos SGBDs que oferecem recursos de distribuição se restringem à fragmentação horizontal. A fragmentação vertical, em geral, deve ser implementada pelo próprio projetista. Mesmo assim vale a pena definir fragmentos verticais, tendo em vista o desempenho que pode ser obtido.
7) Quais as vantagens e desvantagens da distribuição?
A vantagem é o aumento de desempenho e a confiabilidade através da replicação. A principal desvantagem é a complexidade dos controles de integridade e consistência da base de dados como um todo. Por exemplo, é necessário gerenciar cópias múltiplas, falhas locais em nós, falha nas ligações de comunicação, commit distribuído e deadlocks distribuídos.
8) Fale um pouco sobre o projeto ClusterMiner.
O ClusterMiner é financiado pelo CNPQ, dentro do programa de Tecnologia da Informação. A idéia desse projeto é trabalhar com técnicas de data mining em bancos de dados que utilizam paralelismo.
9) O que é paralelismo em banco de dados?
Assim como a distribuição, o paralelismo visa o aumento de desempenho. A idéia é espalhar os dados por todos os pontos da rede e fazer processamento em paralelo. Por exemplo, um único comando SQL, que varre cinco milhões de registros, pode ser executado em cinco processadores ao mesmo tempo. Dessa forma, o tempo de resposta da consulta pode cair pela quinta parte. É a idéia de um cluster de bancos de dados.
10) Na prática, que tipo de aplicação precisa dessa tecnologia?
O paralelismo vem sendo usado e é inevitável no projeto Genoma, por exemplo. Uma das áreas do projeto ClusterMiner trata de aplicações para o Genoma.
11) De que maneira vocês estão trabalhando com paralelismo na UFRJ?
A COPPE possui uma área interdisciplinar em Computação de Alto Desempenho, que desde 1998 possui máquinas paralelas. Estamos desenvolvendo uma camada de paralelismo, para que o desenvolvedor possa migrar sua aplicação do modelo serial para o modelo paralelo com o mínimo de alteração no código-fonte e na base de dados. Se você compra um pacote do fabricante do SGBD para trabalhar com paralelismo, terá que mudar o esquema, regerar a base e fazer algumas mudanças na aplicação. Além disso, esse módulo é um adicional que geralmente custa muito caro. Temos trabalhado para fazer o paralelismo fora do SGDB e tornar essa migração transparente para o desenvolvedor.
12) O conceito de paralelismo em bancos de dados é recente?
Não. No início da década de 80 já havia pesquisas nesse sentido, só que elas abordavam o desenvolvimento de hardware específico para o processamento paralelo. Eram as chamadas ‘máquinas SQL’. Algumas empresas chegaram a investir nesse segmento naquela época, como a Teradata Corporation e a Tandem Computers.
A idéia de bancos de dados paralelos baseados em hardware proprietário foi descartada. Hoje em dia, com o baixo custo dos clusters de PCs, qualquer um pode implementar um sistema de alta capacidade.
13) A COPPE é uma instituição renomada e a cada ano inúmeras pessoas tentam ingressar nos cursos de pós-graduação dentro da área de informática. A concorrência para as vagas tem sido grande?
Sim a concorrência é grande e aumenta a cada ano. Nosso processo de seleção já está aberto e tem duas etapas. A primeira é baseada no exame nacional do POSCOMP, na análise da formação e experiência do candidato, e nas cartas de recomendação. A segunda etapa é uma entrevista com os professores da linha de pesquisa onde o candidato manifestou interesse.