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.

Clique aqui para ler todos os artigos desta edição

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.