BD DISTRIBUÍDO Conceitos Iniciais Conceitos de BD Um banco de dados é uma coleção de dados interrelacionados. Um sistema gerenciador de banco de dados é um pacote de software projetado para armazenamento e gerenciamento de bancos de dados. Acesso Controle de Concorrência Recuperação Armazenamento Banco de Dados Centralizados Motivação para a criação de BD distribuídos Qual foi a principal motivação? Cenário Histórico SGBD Centralizado Reside em um único sistema computacional Hardware (CPU+Memória+Disco) S.O. Cenário década de 80 Empresa globalizada –Departamentos/filiais distribuídos pelo mundo Grande volume de dados Principais Motivos Um dos importantes objetivos da tecnologia De bancos de dados distribuídos é… alcançar integração sem ter centralização • Por que distribuir? organização inerentemente distribuída Dividir para conquistar Sistema Computacional distribuidos Conjunto de dispositivos computacionais Interconectados por uma rede de comunicação Cooperam na execução de suas tarefas São capazes de executar programas de fomas autônomas Banco de Dados Distribuidos Uma coleção de vários bancos de dados logicamente inter-relacionados e distribuídos por uma rede de computadores. Tipos de BD distribuídos Homagêneo: Todos os nós rodam o mesmo SGBD Heterogêneo: Diferentes nós rodando diferentes SGBDs ( relacionais ou mesmo não relacionais) Principais Características do SGBD Distribuído(12) Autonomia local: cada nó participante de um sistema distribuído (cada SGBDD) deve ser independente dos outros nós e prover mecanismos de segurança, bloqueio, acesso, integridade e recuperação após falha; Independência de um nó central: um SGBDD não deve depender de um nó central. Se a dependência ocorrer, o sistema fica menos robusto, já que possui um único ponto de falha. Isso afetaria todos os outros nós. Um nó central pode acarretar perda de desempenho do sistema, já que tende a ficar muito “carregado”; Operação contínua: um sistema distribuído não deve necessitar desativação. As operações de backup e a recuperação devem ter suporte on-line. As operações devem ser rápidas o bastante para não afetarem o funcionamento do sistema (backup incremental, por exemplo); Transparência e independência de localidade: os usuários do sistema não precisam ter ciência do local onde os dados estão armazenados. Para o usuário, os dados devem ser vistos como se fossem locais. Independência de fragmentação: as tabelas do sistema de banco de dados distribuído podem estar fragmentadas e localizadas fisicamente em diferentes nós, de forma transparente para o usuário. Usuários e aplicações não devem saber que as tabelas estão armazenadas em nó diferente do nó onde são feitas as operações. A fragmentação pode ser horizontal (fragmentação em linhas) ou vertical (fragmentação em colunas). Independência de replicação: dados replicados em vários nós da rede, de forma transparente. Assim como nas regras de independência de localização e fragmentação, a independência de replicação é projetada para livrar os usuários de preocupações relacionados com o local onde os dados estão armazenados. No caso da replicação, os usuários e as aplicações não precisam saber que réplicas de dados são mantidas e sincronizadas automaticamente pelo SGBDD; Processamento de consultas distribuído: o desempenho de uma consulta deve ser independente do local onde a mesma é executada. O SGBDD deve possuir um otimizador que possa 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 e I/O e ainda o tráfego da rede; Gerenciamento de transações distribuídas: Em um sistema distribuído, uma única transação pode envolver a execução de código de vários sites. A transação, nesse caso, consiste em vários agentes. O sistema precisa saber quando dois agentes são partes da mesma transação; esses agentes não devem ter impasses entre eles (deadlock). Independência de hardware: é uma característica desejável que um SGBDD não dependa de um determinado hardware, nem deve ser limitado a uma determinada plataforma; Independência de SGBD: um SGBDD ideal deve possuir capacidades para se comunicar com outros sistemas de banco de dados executando em nós diferentes, ainda que heterogêneos.