© Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara

Slides:



Advertisements
Apresentações semelhantes
Sistemas Distribuídos
Advertisements

Checkpoint SGBD com alta demanda de transações Checkpoint
Sistemas distribuídos Metas de Projeto Prof. Diovani Milhorim
Sistemas Distribuídos
Curso: Banco de Dados I Análise de Sistemas PUC Campinas
Funcionalidades de um SGBD
SISTEMAS DE INFORMAÇÃO
© Marcelo Bezerra de AlcântaraBanco de Dados II – Controle de Concorrência - 1 Disciplina Banco de Dados II Introdução ao Controle de Concorrência Msc,
© Marcelo Bezerra de AlcântaraBanco de Dados II - Transação - 1 Disciplina Banco de Dados II Gerenciamento de transações Msc, Marcelo Bezerra de Alcântara.
Disciplina Banco de Dados II Gerenciamento de transações
© Marcelo Bezerra de AlcântaraBanco de Dados II - Revisão - 1 Disciplina Banco de Dados II Revisão da Matéria VP3 Msc, Marcelo Bezerra de Alcântara
Bloqueios partilhados
SGBD.
Transações Atômicas Distribuídas
Modelos de Comunicação em Sistemas Distribuídos
Sistemas Distribuídos
Sistema Gerenciador de Banco de Dados SGBD
Sistema Gerenciador de Banco de Dados SGBD
Sumário 1 SQL Embutida 2 Processamento de Consultas
Professora: Aline Vasconcelos
Fundamentals of Database Processing
Conceitos Básicos Dado: fato do mundo real que está registrado e possui um significado implícito no contexto de um domínio de aplicação Exemplos: endereço,
1 Sistemas Distribuídos - SDI Caracterização de Sistemas Distribuídos. Introdução. Exemplos de Sistemas Distribuídos. Desafios.
Prof. Alexander Roberto Valdameri
Prof. Alexander Roberto Valdameri
Fundamentos de Banco de Dados Prof. Alexander Roberto Valdameri
Banco de dados distribuídos
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Sistemas Operacionais I
Sistemas Distribuídos
Gerência de Transações em Sistema de Banco de Dados Móvel
Processamento Distribuído de Consultas
Banco de Dados II Prof. Antônio Cordeiro.
Tópicos em redes e sistemas distribuídos
Sistemas Distribuídos
Otimizador de consultas
Projeto de Banco de Dados
Controle Distribuído da Concorrência
Introdução a Banco de dados
FUNDAMENTOS DE REDES DE COMPUTADORES
Exercícios SGBD - CESPE
Controle de concorrência
Sistemas Distribuídos
BD Distribuído Conceitos Iniciais.
Contexto da disciplina
Universidade Federal de Campina Grande Centro de Engenharia Elétrica e Informática – CEEI Departamento de Sistemas e Computação Programa de Pós-Graduação.
SGBD Distribuído Lílian Simão Oliveira.
Banco de Dados Aplicado ao Desenvolvimento de Software
Objetivos do Capítulo Explicar a importância da implementação de processos e tecnologias de gerenciamento de dados numa organização. Explicar as vantagens.
Bancos de Dados Estrutura e Funcionamento de um SGBD
PROGRAMAÇÃO DISTRIBUÍDA Aula 02 Prof. Henrique Mongelli
Definição um sistema de BD distribuído consistem em uma rede de várias ocorrências de bases de dados interligadas. característica principal para o usuário,
Modos de Desconexão para BD’s Móveis Sandberg Marcel Santos Baseado no artigo “Disconnection Modes for Mobile Databases”, de Holliday, Agrawal e El Abbadi.
Integração de Ferramentas CASE
Arquitetura P2P (Integração de Dados) Luciana Pereira Oliveira Professora: Valéria Times Professora: Valéria Times.
Sumário 1 SQL Embutida 2 Processamento de Consultas
Serialização Relaxada em Banco de Dados Múltiplos Andressa Sebben
Sumário 1 Processamento de Consultas 2 Introdução a Transações
Sumário 1 Processamento de Consultas 2 Introdução a Transações
Bancos de Dados Distribuídos
Sumário 1 Processamento de Consultas 2 Introdução a Transações
Transações Banco de Dados II Aline S Costa 1. TRANSAÇÕES Conjunto de operações que formam uma única unidade lógica de trabalho; Conjunto de instruções.
Projeto e Implementação de Sistemas de Arquivos
UCSal – Bacharelado em Informática
UCSal – Bacharelado em Informática Banco de Dados Profa. Semíramis Assis
UCSal – Bacharelado em Informática Banco de Dados Profa. Semíramis Assis
Professora: Kelly de Paula Cunha
Redes e Sistemas Distribuídos II – Cód Prof. MSc. Ronnison Reges Vidal.
Leandro Clementino Almeida.  Anos 50 - Sistemas Operacionais tipo Lote:  Aumentar a capacidade de processamento de programas  Usuário ia ao computador.
Banco de Dados Distribuídos Sílvia Cristina de Matos Soares
Transcrição da apresentação:

© Marcelo Bezerra de AlcântaraBanco de Dados II – BDD - 1 Disciplina Banco de Dados II Banco de Dados Distribuído Msc, Marcelo Bezerra de Alcântara

© Marcelo Bezerra de Alcântara BD Distribuído (BDD) Definição –coleção de múltiplos BDs logicamente inter- relacionados e dispersos sobre uma rede de computadores Motivação –organizações sofisticadas estrutura geograficamente distribuída e necessidade de compartilhar dados –avanço da computação distribuída e das redes maior eficiência de acesso e processamento paralelo –integração de dados acesso unificado a dados heterogêneos

© Marcelo Bezerra de Alcântara BDC x BDD BD Centralizado –BD único acessado por uma ou mais aplicações locais e/ou remotas através de transações centralizadas BD Distribuído –vários BDs autônomos; aplicações o acessam através de transações distribuídas (executam em um ou mais BDs) rede nodo 1 nodo 2 nodo 3... nodo n BD rede nodo 1 nodo 2 nodo 3... nodo n BD 1 BD 3 BD 2 BD n

© Marcelo Bezerra de Alcântara BDD - Classificação BD Homogêneo –BDs são idênticos à nível de modelo e SGBD BD Heterogêneo (BDH) –pode apresentar diferenças a nível de SGBD modelo e esquema de dados DML –se o BDH é o resultado de um processo de integração de dados, ele pode ser classificado em BD Federado (BDF) –há um esquema global compartilhado –mapeamento de instruções globais para cada BD BD Múltiplo (multidatabase) –não há esquema global –mapeamento de instruções entre pares de BDs

© Marcelo Bezerra de Alcântara BDF - Arquitetura Esquema Local 1 Esquema Componente 1 Esquema Exportação 1 Esquema Global Esquema Externo 1 BD Local 1 Esquema Externo 2Esquema Externo m Esquema Exportação 2Esquema Exportação n... Esquema Local 2 Esquema Local n... BD Local 2 BD Local n Esquema Componente 2Esquema Componente n... esquema local no modelo canônico porção do esquema local a ser integrada resultado da integração semântica de esquemas de exportação (EG) visões do esquema global arquitetura fortemente acoplada oferece transparência de dados e esquemas locais –visão uniforme de dados e esquemas locais heterogêneos overhead para geração/manutenção do EG + tradução DML

© Marcelo Bezerra de Alcântara Multidatabase - Arquitetura Esquema Local 1 Esquema MultiDB 1 BD Local 1 Esquema Correspondência 1... Esquema Local 2 Esquema Local n... BD Local 2 BD Local n Esquema MultiDB 2 Esquema MultiDB n... equivalente a um esquema de exportação define mapeamentos entre 2 esquemas MultiDBs arquitetura fracamente acoplada não há overhead para geração/manutenção de um EG overhead para definição e manutenção de múltiplos mapeamentos entre BDs trabalha com uma DML multidatabase (permite acesso ao BD local ou a outros BDs (expansão da DML)) –perde-se a transparência quanto a BDs participantes do BDD Esquema Correspondência m

© Marcelo Bezerra de Alcântara BDD - Vantagens Transparência –omite detalhes sobre a distribuição dos dados transparência de localização e nomeação –uma instrução DML não se preocupa onde está o dado –uma vez informado um dado, ele é buscado em todos os locais onde está definido, mesmo tendo nomes diferentes transparência da forma de acesso –define-se uma consulta sem se preocupar com futuras transformações sobre ela para alcançar os dados desejados »transparência de dialeto DML - consulta não se preocupa com a DML de cada BD »transparência de fragmentação/replicação - decomposição da consulta - busca-se o nodo mais próximo onde está o dado um catálogo robusto é requerido (DDD)

© Marcelo Bezerra de Alcântara BDD - Vantagens Confiabilidade e Disponibilidade –se um nodo falha, outros nodos podem processar transações –dados são encontrados em diversos nodos Melhor Desempenho –mantém-se dados mais próximos do local onde são mais necessários –BDs locais são independentes e menores que um grande BDC menor overhead para transações menos transações executando do que em um BDC –consultas globais podem ser desmembradas e executadas em paralelo em diferentes nodos Facilidade de Expansão –arquitetura de um BDD permite a inclusão de novos BDs

© Marcelo Bezerra de Alcântara Funções de um SGBDD Controle da Transparência de Armazenamento –uso de um DDD para controle da estrutura, RIs, distribuição, replicação e fragmentação de dados nos nodos Processamento de Consultas Distribuídas –capacidade de transmissão de consultas a nodos remotos (com possível tradução) –planejamento de estratégias de acesso quais dados de quais nodos serão acessados?, qual a ordem e a sincronização para execução da consulta nestes nodos?,... Gerenciamento de Transações Distribuídas –técnicas adaptadas de controle de concorrência e recovery consideração de falhas em nodos e falhas de comunicação, garantia de ACID distribuído,...

© Marcelo Bezerra de Alcântara Projeto de BDD Projeto de BDC –definir e estruturar dados persistentes relevantes para um domínio de aplicação levantamento de requisitos, modelagem conceitual, modelagem lógica e modelagem física Projeto de BDD (do zero) –modelagem lógica definir adicionalmente a alocação do esquema lógico nos BDs dos nodos –decisão sobre quais dados serão armazenados em quais nodos –leva em conta fragmentação e replicação de dados

© Marcelo Bezerra de Alcântara Fragmentação de Dados Separação dos dados de uma relação para fins de armazenamento nos nodos –definição de um esquema de fragmentação Princípios da fragmentação –completude dada uma relação R, não pode haver perda de dados de R quando R for fragmentada em vários nodos –reconstrução deve ser sempre possível reconstruir R a partir da sua coleção de fragmentos Tipos de fragmentação –horizontal, vertical e mista

© Marcelo Bezerra de Alcântara Fragmentação Horizontal (FH) Separação de R a nível de tupla Cada fragmento horizontal fh i de R (fh i (R)) é definido através de uma seleção – fh i (R) = c (R) R é obtida através da união de todos os seus fragmentos (princípios da fragmentação) –R = fh 1 (R) fh 2 (R)... fh n (R) FH com fragmentação derivada –tuplas de uma relação secundária S (com referência à R) são também fragmentadas

© Marcelo Bezerra de Alcântara FH - Exemplo rua Q, 52Fpolis5 rua K, 87Fpolis4 rua E, 18Blumenau3 rua H, 55Blumenau2 rua X, 10Fpolis1 endereçocidadenúmero 21300,00vendedor15/05/74rua Q, 52Ana filial 14/01/73 13/08/72 12/04/71 11/11/70 DN 1000, , , ,00 salário caixa vendedor caixa vendedor cargo rua K, 87Carlos4 rua E, 18Paulo3 rua H, 55Maria2 rua X, 10João1 endereçonomecódigo Filiais Funcionários cidade = Fpolis (Filiais) cidade = Blumenau (Filiais) fh 1 fh 2 (derivada para Funcionários) rua E, 18Blumenau3 rua H, 55Blumenau2 endereçocidadenúmero rua Q, 52Fpolis5 rua K, 87Fpolis4 rua X, 10Fpolis1 endereçocidadenúmero filial... rua E, 18Paulo3 rua H, 55Maria2 rua X, 10João1 endereçonomecódigo

© Marcelo Bezerra de Alcântara Fragmentação Vertical (FV) Separação de R a nível de atributo Cada fragmento vertical fv i de R (fv i (R)) é definido através de uma projeção – fv i (R) = a1,..., aj (R) R é obtida através da junção natural de todos os seus fragmentos –R = fv 1 (R) fv 2 (R)... fv n (R) –requer a mesma chave candidata em todos os fragmentos

© Marcelo Bezerra de Alcântara FV - Exemplo 21300,00vendedor15/05/74rua Q, 52Ana filial 14/01/73 13/08/72 12/04/71 11/11/70 DN 1000, , , ,00 salário caixa vendedor caixa vendedor cargo rua K, 87Carlos4 rua E, 18Paulo3 rua H, 55Maria2 rua X, 10João1 endereçonomecódigo Funcionários código, cargo, salário, filial (Funcionários) fv 2 (dados profissionais) 21300,00vendedor ,00caixa filial 1300,00vendedor3 1200,00caixa2 1500,00vendedor1 saláriocargocódigo código, nome, endereço, DN (Funcionários) fv 1 (dados pessoais) 15/05/74rua Q, 52Ana5 14/01/73rua K, 87Carlos /08/72 12/04/71 11/11/70 DN rua E, 18Paulo3 rua H, 55Maria2 rua X, 10João1 endereçonomecódigo

© Marcelo Bezerra de Alcântara Fragmentação Mista (FM) Separação de R a nível de tupla e atributo R é obtida através da execução de operações de reconstrução de fragmentos horizontais e verticais –exemplo 1.Funcionários são separados por filial 2.para cada filial, separar dados pessoais e profissionais de funcionários ordem de reconstrução 1.junção natural dos FVs de funcionários em cada filial 2.união de dados de funcionários por filial

© Marcelo Bezerra de Alcântara Esquema de Alocação Definição dos nodos onde serão armazenados os fragmentos (ou relações completas) –definição de associações fragmento – nodo Se associação é Fragmento [1,N] – 1 Nodo –não há replicação Se associação é Fragmento N – M Nodo –há replicação Possibilidades de replicação –total, nula ou parcial

© Marcelo Bezerra de Alcântara Possibilidades de Replicação Total –desempenho bom para consultas não há necessidade de acesso remoto –muita redundância de dados e desempenho ruim para atualizações manutenção de cópias consistentes (uso de triggers, por exemplo) scheduler e recovery mais complexos –bloqueios em todos os nodos e com interferências diferentes –UNDO e REDO em todos os nodos Nula –inverte-se as vantagens e desvantagens Parcial –meio termo entre as opções anteriores

© Marcelo Bezerra de Alcântara Projeto do Esquema de Alocação Considera basicamente –metas de desempenho no acesso ao BDD ex.: rapidez nas atualizações (baixa distribuição) X confiabilidade (alta distribuição),... –freqüência de transações em cada nodo pode ser o gargalo do BDD, se distribuição foi mal definida (ex.:muitos dados concentrados em um nodo) Uso de replicação deve ser avaliado –maior disponibilidade de dados –maior concorrência de transações –overhead para integridade de cópias

© Marcelo Bezerra de Alcântara Projeto do Esquema de Alocação Ponderações sobre replicação –deseja-se alta disponibilidade; transações podem ser submetidas a qualquer nodo; grande parte das transações é de leitura replicação total –transações que acessam determinados dados partem geralmente dos mesmos nodos replicação parcial destes dados nestes nodos –atualizações ocorrem em dados cadastrados localmente replicação nula (apenas fragmentação dos dados de interesse local)

© Marcelo Bezerra de Alcântara Processamento de Consultas em BDD BDC –estimativas de custo baseiam-se principalmente no número de acessos a disco BDD –consultas podem requisitar dados em vários nodos, logo há outros fatores a estimar custo do volume de dados transmitido na rede –deve ser o menor possível! processamento paralelo de partes da consulta em diferentes nodos –DDD mantém a localização e as filtragens H e V que indicam em quais nodos estão os fragmentos de dados

© Marcelo Bezerra de Alcântara Dada uma consulta que envolva uma relação R, investiga-se como R está armazenada no BDD – –R está replicada em nodos remotos escolhe-se o nodo com menor custo de transmissão – –R está fragmentada em vários nodos deve-se realizar transformações na consulta – –transformação é feita com base nas informações do DDD – –R está replicada e fragmentada ambas as ações devem ser consideradas Processamento de Consultas em BDD

© Marcelo Bezerra de Alcântara Exemplos de Dados no DDD Nodo filialFpolis.empresa.br fragmento FFp relação global: Filiais predicado FH: cidade = Fpolis atributos FV: * fragmento FuncFp relação global: Funcionários predicado FH: filial IN (select código from FFp) atributos FV: código, nome, endereço, cargo, DN Nodo filialBlumenau.empresa.br fragmento FBlu...

© Marcelo Bezerra de Alcântara Duas categorias de transações – –locais manipulam apenas dados locais não replicados – –globais (ou distribuídas) manipulam dados de outros nodos Cada BD local possui um gerente de recovery e de scheduler – –capaz de coordenar a recuperação e o escalonamento de requisições de dados de transações locais – –pode ser capaz de realizar a mesma coordenação para transações distribuídas Transações em BDD

© Marcelo Bezerra de Alcântara Replicação e Fragmentação de dados – –scheduler deve manter cópias consistentes em caso de atualização – –recovery deve manter atomicidade de valores de cópias e de fragmentos em caso de falha Novos tipos de falhas – –falha em um nodo (ou no BD do nodo) – –falha de comunicação (na rede ou em mensagens) Problemas Adicionais com Gerência de Transações Distribuídas

© Marcelo Bezerra de Alcântara Controles adicionais – –divide uma transação distribuída em sub-transações para execução em outros nodos – –coordena o commit ou o abort distribuído Técnicas de bloqueio são geralmente adotadas – –bloqueios devem ocorrer em todas as cópias e fragmentos de dados desejados por transações – –deve haver nodos responsáveis pela coordenação do escalonamento – –algumas técnicas coordenador central coordenador central e auxiliares coordenação distribuída Scheduler de um BDD

© Marcelo Bezerra de Alcântara Coordenador Central rede nodo 1 nodo 2 nodo 3... nodo n BD 1 BD 3 BD 2 BD n (coordenador de bloqueio) lock-X(Ty,D 1 ) lock-S(Tz,D 1 ); unlock(Tx, D 2 ) lock-S (Tw,D 3 ) Vantagens –controle de concorrência é simples (gerência em um único local, como em BDC) –nodos que não são coordenadores com menor overhead de gerenciamento de transações Desvantagens –sobrecarga de gerência de concorrência em um único nodo –se o coordenador falha... (!)

© Marcelo Bezerra de Alcântara Coordenador Central c/ Auxiliar(es) rede nodo 1 nodo 2 nodo 3... nodo n BD 1 BD 3 BD 2 BD n (coordenador de bloqueio) lock-X(Ty,D 1 ) lock-S(Tz,D 1 ); unlock(Tx, D 2 ) info. bloq. Vantagens –controle de concorrência ainda é simples –se o coordenador falha, o(algum) auxiliar é eleito coordenador Desvantagem –overhead para sincronização das informações de bloqueio entre o coordenador e o(s) auxiliar(es) (auxiliar)

© Marcelo Bezerra de Alcântara Coordenação Distribuída rede nodo 1 nodo 2 nodo 3... nodo n BD 1 BD 3 BD 2 BD n lock-X(Ty,D 1 ) lock-S(Tz,D 1 ); unlock(Tx, D 2 ) Cada nodo coordena os bloqueios dos seus dados Vantagens –nenhum nodo fica sobrecarregado com gerência de bloqueios –se um nodo falha, não compromete todas as transações ativas Desvantagem –difícil prever deadlock distribuído um nodo não tem conhecimento de todos os bloqueios no BDD a menos que se use uma técnica que evite ou detecte deadlock (ex.: 2PL Conservador, grafo de espera global,...) lock-S (Tw,D 3 )

© Marcelo Bezerra de Alcântara Técnicas de prevenção baseadas em timestamp para BDC podem ser adotadas – –cada transação com um TS global gerado por um único nodo coordenador de TS gerado pelo nodo que iniciou a transação – –requer relógios sincronizados Técnicas de detecção baseadas em grafo de espera – –grafo de espera global centralizado – –grafo de espera global distribuído Controle de Deadlock em BDD

© Marcelo Bezerra de Alcântara Controles adicionais para transações distribuídas – –detecção de falhas no ambiente distribuído nodo ou de comunicação (falhas distribuídas) – –tratamento de falhas em transações fica a cargo do nodo que gerou a transação o nodo que gera uma transação T x é o coordenador de recovery de T x Topologia do BDD – –influencia o tratamento de falhas distribuídas – –exemplos BDD com topologia estrela – –menos conexões; disponibilidade zero se nodo central falha BDD totalmente conectado – –mais conexões; alta disponibilidade BDD parcialmente conectado – –número intermediário de conexões; grau de disponibilidade depende do nodo que falhar Recovery em um BDD

© Marcelo Bezerra de Alcântara Detecção e tratamento de uma falha distribuída – –uma transação de um nodo N y deseja acessar um nodo N x que está inacessível problemas na rede ou no próprio nodo N y informa aos demais nodos que N x falhou – –outro nodo pode assumir o controle das transações de N x N y pode abortar as transações advindas de N x – –se ninguém assumir o controle das transações de N x... – –liberando os bloqueios mantidos por transações de N x » »desafoga a quantidade de bloqueios sobre dados – –N y pode assumir o controle das transações de N x que estejam executando nele (em N y ) decidindo por efetivar ou abortar essas transações – –ver técnica 2PC Recovery em um BDD

© Marcelo Bezerra de Alcântara Reintegração de N x após falha – –informa aos demais nodos que está ativo – –atualiza as cópias de seus dados UNDO e/ou REDO de transações locais e distribuídas que atualizaram seus dados – –consulta situação das transações distribuídas nos Logs dos nodos responsáveis por elas Atomicidade e Durabilidade Distribuída – –técnica 2PC (2-Phase Commit) Recovery em um BDD