Transações em Bancos de Dados distribuidos Banco de dados em aplicativos WEB Aula 18 09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 1 Agenda • • • • • Conceito Fundamentação – 12 regras Vantagens Desvantagens Exemplo 25/04/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 2 Conceito • • • Banco de dados distribuído (BDD) é uma coleção de várias Base de Dados logicamente inter-relacionadas, distribuídas por uma rede de computadores. Existem dois tipos de banco de dados distribuídos, os homogêneos e os heterogêneos. Os homogêneos são compostos pelos mesmos bancos de dados, já os Heterogêneos são aqueles que são compostos por mais de um tipo de banco de dados. Num banco de dados distribuídos os arquivos podem estar replicados ou fragmentados, esses dois tipos podem ser encontrados ao longo dos nós do sistema de BDD's. Quando os dados se encontram replicados, existe uma cópia de cada um dos dados em cada nó, tornando as bases iguais (ex: tabela de produtos de uma grande loja). Já na fragmentação, os dados se encontram divididos ao longo do sistema, ou seja a cada nó existe uma base de dados diferente se olharmos de uma forma local, mas se analisarmos de uma forma global os dados são vistos de uma forma única, pois cada nó possui um catálogo que contém cada informação dos dados dos bancos adjacentes. A replicação dos dados pode se dar de maneira síncrona ou assíncrona. No caso de replicação síncrona, cada transação é dada como concluída quando todos os nós confirmam que a transação local foi bem sucedida. Na replicação assíncrona, o nó principal executa a transação enviando confirmação ao solicitante e então encaminha a transação aos demais nós 09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 3 Fundamentação – 12 regras Autonomia local Apesar de existirem diversos sites no sistema, para o cliente existe somente um servidor de dados, sendo transparente para o mesmo, a distribuição tanto dos dados como do processamento. Ex. :Para o sistema da Caixa Econômica Federal existem três importantes sites, mas para o cliente existe somente um banco de dados. Inexistência de um site central Em um sistema distribuído não há uma hierarquia de sites, mas todos podem trabalhar independentemente. Com a queda de um site, o sistema continua executando, mas com uma redução de recursos proporcional à representação do potencial computacional do site que caiu em relação ao sistema (Performance). Ex.: Não há um servidor mestre, nem um escravo no sistema da Caixa. Não há uma hierarquia entre eles. Há uma distribuição de atividades que o sistema deve executar de maneira igual. 09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 4 Fundamentação – 12 regras Operação contínua Uma importante característica de um sistema de dados distribuído é a sua alta tolerância a falhas tanto de hardware, software, como de rede. Em um sistema monolítico, havendo falha em qualquer dos quesitos mencionados anteriormente, ocorre a indisponibilidade do mesmo. Em um sistema distribuído, as chances de indisponibilidade são inversamente proporcionais à quantidade de sites. Havendo falha em um site, o sistema poderá continuar processando de forma reduzida ao invés de sair do ar. Há uma queda de performance, e até indisponibilidade de alguns dados, mas não a indisponibilidade do serviço. Ex.: Já houve queda de um ou dois sites do sistema existente da Caixa Econômica, mas o mesmo nunca saiu do ar. É claro que o sistema ficou seriamente comprometido, mas não saiu do ar. 09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 5 Fundamentação – 12 regras Independência de localização Em um sistema distribuído, o cliente solicitará qualquer dado existente no sistema sem a preocupação em acessar o site onde se encontra armazenada cada informação. Para o cliente, todas as informações estarão no site que ele acessa. 09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 6 Fundamentação – 12 regras Independência de fragmentação Um sistema de bancos de dados distribuído deverá acatar a possibilidade fragmentar os dados de forma a manter em um site as informações que seus clientes solicitam mais, distribuindo assim os dados e o processamento das informações. Estes dados são unificados por meio de junções para fragmentações verticais e de uniões para fragmentações horizontais. Para o cliente esta fragmentação não é visível. Exemplo: No sistema da CEF há uma divisão geográfica da informação: dados referentes a clientes de São Paulo estão na base de São Paulo, Rio de Janeiro concentra as informações do centro-sul-brasileiro, e a base de Brasília armazena dados das regiões norte e nordeste. Mas para o usuário do sistema, estas informações estão em um único site. 09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 7 Fundamentação – 12 regras Independencia de replicação Dados podem estar replicados em vários nós da rede, de forma transparente. As réplicas de dados devem ser mantidas sincronizadas automaticamente pelo SGBDD 09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 8 Fundamentação – 12 regras Processamento de consultas distribuído O desempenho de uma consulta deve ser independente do local onde a mesma é submetida. Um SGBDD deve possuir um otimizador capaz de selecionar não apenas o melhor caminho para o acesso a um determinado nó da rede, mas também otimizar o desempenho de uma consulta distribuída, levando em conta a localização dos dados, utilização de CPU, I/O e o tráfego na rede. 09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 9 Fundamentação – 12 regras Gerenciamento de transações distribuído Um sistema distribuído será capaz de conferir atomicidade a uma transação, mesmo que a mesma envolva sites diferentes. Ex. CEF, quando há uma transferência de valores de uma conta armazenada no site São Paulo para outra armazenada site Rio de Janeiro o valor é retirado da conta do site São Paulo e depositada no site Rio de Janeiro, havendo a confirmação desta transação somente no término da mesma. Isto confere atomicidade a uma transação distribuída. 09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 10 Fundamentação – 12 regras Independência de hardware Um sistema de dados distribuído deve operar em cima de uma abstração de software capaz de operar em diferentes arquiteturas – daí o suporte a diversos tipos de hardwares. 09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 11 Fundamentação – 12 regras Independência de sistema operacional Um sistema de dados distribuído assim como deve oferecer tolerância a diversas arquiteturas, deverá oferecer implementação em diversos sistemas operacionais por meio de versões do SGBD capazes de operar em diversos sistemas operacionais. No caso do sistema utilizado na CEF o SGBD utilizado é o DB2 da IBM que pode ser utilizado em diversos sistemas Operacionais. 09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 12 Fundamentação – 12 regras Independência da rede Se o SGBD utilizado para implantação da rede distribuída suporta diversos sistemas operacionais, deverá ser capaz de operar sobre um sistema operacional que tenha suporte a diversos tipos de rede. 09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 13 Fundamentação – 12 regras Independência de SGBD O sistema de bancos de dados distribuído poderá ter sites implementados com SGBDs diferentes. No sistema da CEF, é utilizado somente o DB2, mas se for viável, poderá ser instanciado um site com outro SGBD. 09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 14 Exemplo SGBDD Distribuido geograficamebnte em três sites, interligados em uma WAN. 09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 15 Vantagens Reflete a estrutura organizacional Fragmentos do banco de dados estão localizados nos departamentos que se relacionam com os dados que estes persistem. Autonomia Local Um departamento pode controlar seus dados (já que é o mais familiarizado com estes). Maior disponibilidade Uma falha em um banco de dados afetará somente um fragmento, ao invés do banco de dados inteiro. Melhor performance Os dados estão localizados próximo do local de maior demanda e os sistemas de banco de dados por si só são paralelizáveis, permitindo carregar no banco de dados para o balanceamento entre servidores (a elevada carga em um módulo do banco de dados não irá afetar os outros módulos de banco de dados em um banco de dados distribuído). Econômico Custa menos criar uma rede de pequenos computadores com o mesmo poder que um único computador maior. Modularidade Sistemas podem ser modificados, adicionados ou removidos do banco de dados distribuído sem afetar os outros módulos (sistemas). 09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 16 Desvantagens Complexidade — Trabalho extra deve ser feito pelos DBAs para garantir que a natureza da distribuição do sistema é transparente. Trabalho extra deve ser feito para manter sistemas múltiplos diferentes, ao invés de um único grande. Design de banco de dados extra deve também ser feito para levar em conta a natureza desconectada do banco de dados - por exemplo, joins tornam-se proibitivamente caros quando são rodados entre múltiplas plataformas. Implantação mais cara — Aumento da complexidade e uma infra-estrutura mais extensa significa custo extra de trabalho Segurança — Fragmentos de banco de dados remotos devem ser seguros e, como eles não são centralizados então os lugares remotos também devem ser seguros. A infraestrutura também deve ser segura (por exemplo, pela encriptação dos links de rede entre os lugares remotos). Difícil de manter a integridade — Sistemas distribuídos, reforçar a integridade ao longo de uma rede pode exigir demais dos recursos da rede para ser viável. Inexperiência — Pode ser difícil trabalhar com banco de dados distribuídos e como é uma área relativamente nova ainda não há tantos casos (ou experiências) práticos de seu uso disponíveis como exemplo. Design do banco de dados mais complexo – Além das dificuldades normais, o design de um banco de dados distribuídos tem que considerar a fragmentação dos dados, alocação dos fragmentos em lugares específicos e a replicação de dados. 09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 17 Bibliografia BIBLIOGRAFIA BÁSICA DATE, C.J. Introdução a Sistemas de Bancos de Dados. 8ª Ed. Rio de Janeiro: Campus, 2004. 1 2 NAVATHE, S. B.; ELMASRI, R. E. Sistemas de Banco de Dados, 4ª edição, Editora Pearson Addison Wesley, 2005. SETZER, V. W., SILVA, F.S.C. Banco de Dados. 1ª Ed. São Paulo: Edgard Blucher, 2005. 3 BIBLIOGRAFIA COMPLEMENTAR COUGO, P. Modelagem Conceitual e Projeto de Banco de Dados, Editora Campus. 4 5 KORTH, H. F.; SILBERSCHATZ, A.; SUDARSHAN, S., Sistemas de Banco de Dados, Editora Makron Books, 1999. MACHADO, Felipe Nery Rodrigues: Análise Relacional de Sistemas; São Paulo: Editora Érica, 2001. 6 7 SETZER, V.W., NASSU, E.A. Banco de Dados Orientados a Objetos. São Paulo: Ed. Edgard Blucher, 1999. 09/05/2011 Professor Leomir J. Borba- [email protected] –http://professorleomir.wordpress.com 18