MÓDULO 12 – ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS Quando falamos em arquitetura, normalmente utilizamos esse termo para referenciar a forma como os aplicativos computacionais são estruturados e os hardwares estão dispostos e são utilizados. Utilizaremos o termo arquitetura no nosso capítulo para descrever a forma que os hardwares que são utilizados pelos sistemas de banco de dados estão dispostos e a forma como os SGBD`s serão utilizados. A indústria da computação está atravessando uma grande evolução atualmente o que proporcionou o barateamento dos equipamentos de hardware, possibilitando que os enormes e caros mainframes fossem substituídos por pequenos, mas potentes computadores. Os sistemas computacionais também acompanharam essa evolução, sendo desenvolvidos sobre arquiteturas flexíveis, eficientes e abertas. A escolha da arquitetura ideal é cercada de perguntas e dúvidas. A pergunta mais comum é: O que é uma arquitetura desse tipo? O que é necessário para promover a sua implementação? Quais são as principais vantagens e desvantagens em utilizar esse tipo de arquitetura? Vamos tirar todas essas dúvidas falando um pouco sobre cada uma das arquiteturas existentes. 12.1 Arquitetura de banco de dados centralizada O modelo computacional que é utilizado durante anos é o chamado sistema centralizado composto por um “host” e vários “terminais” onde os terminais possuem pouco poder de processamento e são compostos apenas pelo monitor e o teclado que ficam conectados a um grande computador “mainframe” que possui a capacidade de processar e armazenar os dados. Esse tipo de arquitetura tem como característica a necessidade de grandes investimentos tanto na aquisição de equipamentos como na manutenção dos mesmos. Considerando a utilização de um sistema de gerenciamento de banco de dados, ele e todos os seus aplicativos são hospedados no host e são acessados pelos terminais “burros” que estão conectados ao host. Dessa forma, todo o processamento dos dados é realizado no computador central. Principais Vantagens: Um único host fornece alto grau de segurança, concorrência e controle de cópias de segurança e recuperação. Não há necessidade de um diretório distribuído, já que todos os dados estão localizados em um único host. Não existe a necessidade de junções distribuídas, já que todos os dados estão em um único host. Principais desvantagens: Todos os acessos aos dados realizados por outro que não seja o host onde o banco de dados está, gera alto custo de comunicação. O host em que o banco de dados está localizado pode criar um “gargalo”, dependendo da quantidade de acessos simultâneos. Podem acontecer problemas de disponibilidade dos dados, se o host onde os dados estão armazenados sair do ar. 12.2 Arquitetura de banco de dados descentralizada Na arquitetura de banco de dados descentralizada os dados são armazenados em pelo menos dois hosts, sendo que a totalidade dos dados são armazenados em um único servidor e em outros servidores são mantidos parte do banco de dados. Todo tipo de transação que é realizada, é feita primeiro no servidor local antes de ser atualizado o servidor central. Principais vantagens: Autonomia local. Custo de comunicação reduzido, pois cada tabela pode ficar localizada no host que mais a usa. Aumento da disponibilidade dos dados. Principais desvantagens: Os diversos locais tem que se preocupar com a segurança, concorrência e cópias de segurança dos dados. 12.3 Arquitetura de banco de dados distribuída A arquitetura de banco de dados distribuída tem como característica a subdivisão dos dados e o seu compartilhamento entre vários computadores e a sua atualização é feita através de um sincronismo entre os computadores pertencentes ao circuito de distribuição. A arquitetura distribuída utiliza vários SGBD`s que são espalhados pelos hosts e contendo dados replicados em vários lugares em que bancos de dados diferentes são consultados ao mesmo tempo por um mesmo usuário. Os dados são distribuídos pela rede e quando é feita uma consulta pelo usuário essa distribuição é transparente, fazendo com que o usuário pense que ele está consultando os dados de apenas um computador e não vários computadores. Principais vantagens: Utilização de diferentes SGBD`s; Utilização de diferentes tipos de computadores; Possibilidade de acessar os dados de vários computadores como se fosse de apenas um só. Principais desvantagem: Esforço computacional para que seja mantida a consistência dos dados e a sua segurança. 12.4 Arquitetura de banco de dados replicada Na arquitetura de replicação, os dados são armazenados em hosts replicados permitindo que a falha de um determinado host possa ser contornada pelo host que irá substituí-lo. O banco de dados primário é igual ao banco de dados secundário. As transações atualizam primeiro o banco de dados primário para depois ser atualizado o banco de dados secundário. Principais Vantagens: Custo de comunicação reduzido para o acesso aos dados apenas para leitura, pois as cópias das tabelas podem estar localizadas nos hosts que mais utilizam. Melhor disponibilidade pois se um host com um banco X sair do ar, o outro host que possui a replicação do mesmo banco entra em ação. Principais desvantagens: O controle de concorrência em diversos bancos quando os dados das tabelas replicadas são atualizados. 12.5 Arquitetura de banco de dados paralela Na arquitetura de banco de dados paralela é utilizado o paralelismo de vários servidores que trabalham simultaneamente sobre os seus respectivos bancos de dados para a obtenção de um rápido resultado. No paralelismo os servidores são alinhados e cada um é responsável pelas sub-tarefas de um banco de dados. Toda unificação e distribuição é realizada por um hardware que tem o papel de roteamento, fazendo com que o particionamento seja de dois tipos: HASH: No particionamento HASH as tabelas são particionadas igualmente segundo uma chave de hashing. A sua utilização é ideal para aplicativos que enfatizam o acesso associado. RANGER: No particionamento RANGER as tabelas são divididas por vários valores de chaves. A sua utilização é ideal para aplicações que enfatizam a busca pela chave de particionamento. ESQUEMA: As tabelas são distribuídas entre vários servidores e a sua utilização é ideal quando se possui grandes quantidades de tabelas pequenas.