Problema de Projeto Projeto de Bancos de Dados Distribuídos Fernanda Baião baiao@cos.ufrj.br Definição geral Tomar decisões sobre localização de dados e programas nos nós de uma rede de computadores, assim como possivelmente projetando a rede em si. Em SBDD, a localização das aplicações engloba localização do software SGBDD; e localização das aplicações que executam sobre a base de dados 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 2 Dimensões do Problema Estratégias Alternativas de Projeto de Distribuição Abordagem Descendente na maior parte das vezes no projeto de sistemas a partir do zero na maior parte das vezes em sistemas homogêneos Abordagem Ascendente quando a base de dados já existe em alguns nós 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 3 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 4 Processo de Projeto Descendente Projeto Conceitual Esquema Conceitual Global Entrada do Usuário feedback Análise de Requisitos Requisitos do Sistema (objetivos) Entrada do Usuário Integração de visões Informações de Acesso Projeto de Distribuição Projeto Físico Observação e Monitoramento Projeto de Visões Definições do Esquema Externo Esquemas Conceituais Locais feedback Esquema Físico 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 5 Questões do Projeto de Distribuição Por que devemos fragmentar? Como devemos fragmentar? O quanto devemos fragmentar? Existe algum modo de testar a correção da decomposição? Como devemos alocar? Quais são as informações necessárias para a fragmentação e a alocação? 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 6 1
Fragmentação Fragmentação Não podemos apenas distribuir relações? Qual é a unidade apropriada de distribuição? relações? visões são subconjuntos de relações localidade de acesso comunicação extra fragmentos de relações? (sub-relations) Execução concorrente de um número de aplicativos que acessam porções distintas de uma relação Visões que não podem ser definidas sobre um fragmento único vão requerer processamento extra Controle semântico dos dados (especialmente manutenção de integridade) mais difícil 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 8 Alternativas de Fragmentação - Horizontal Alternativas de Fragmentação - Vertical 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 9 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 10 Grau de Fragmentação Correção da Fragmentação número finito de alternativas tuplas ou atributos relações Encontrar um nível adequado de fragmentação neste intervalo em relação aos aplicativos que atuarão sobre a base distribuída Completude Decomposição de uma relação R em fragmentos R 1, R 2,..., R n é completa sse cada item de dados em R pode ser encontrado em pelo menos um fragmento R i Reconstrução Se uma relação R é decomposta em fragmentos R 1, R 2,..., R n, deve ser possível definir um operador relacional (ou de objetos) tal que: R = 1 i n R i Disjunção Se uma relação R é decomposta em fragmentos R 1, R 2,..., R n, e o item de dados di está em R j, então di não está em qualquer outro fragmento R k (k j ). 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 11 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 12 2
Alternativas de Alocação Comparação entre alternativas de replicação Não replicado Particionado: cada fragmento reside em apenas um nó da rede Replicado Totalmente replicado: cópias de cada fragmento em cada nó Parcialmente replicado : cópias de cada fragmento em alguns nós Regra : Se (consultas de leitura/ consultas de atualização) >= 1, a replicação é vantajosa, caso contrário pode causar problemas Processamento de Consultas Gerenciamento de Diretórios Controle de Concorrência Confiabilidade Realidade Replicação Total Fácil Fácil ou inexistente Moderado Muito alta Aplicação possível Replicação Parcial Difícil Alta Realista Particionamento Mesmo grau de dificuldade Mesmo grau de dificuldade Fácil Baixa Aplicação possível 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 13 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 14 Requisitos de Informação para o Projeto de Distribuição 4 categorias: Informações da base de dados Informações de aplicativos Informações da rede de comunicação Informações de sistemas de computadores Técnicas de Fragmentação Fragmentação Horizontal Relacional: distribui as tuplas da relação entre os fragmentos Fragmentação Vertical (FV) Relacional: distribui os atributos da relação entre os fragmentos Atributos chave devem estar presentes em todos os fragmentos Fragmentação Híbrida 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 15 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 16 Fragmentação Horizontal FHP - Requisitos de Informação Primária (FHP) Técnicas Faixa de Valores Função de Hashing Circular facilita operações de seleção Derivada (FHD) função da fragmentação de outra classe ou relação. facilita operações de junção e navegação entre fragmentos Informações da base de dados esquema conceitual global relações, relacionamentos, cardinalidades ( card(r) ) dono(l1) = SKILL membro(l1) = EMP 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 17 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 18 3
FHP - Requisitos de Informação Informações de aplicativos predicados simples : Dada uma relação R[A 1, A 2,, A n ], um predicado simples p j é p j : A i θ Valor onde θ {=,<,,>,, }, Valor D i e D i é o domínio de A i Para a relação R definimos P r = {p 1, p 2,, p m } o conjunto de todos os predicados simples definidos sobre R Ex: PNAME = "Maintenance, BUDGET 200000 FHP - Requisitos de Informação Exemplo m 1 : PNAME="Maintenance e BUDGET 200000 m 2 : NOT(PNAME="Maintenance") e BUDGET 200000 m 3 : PNAME= "Maintenance e NOT(BUDGET 200000) m 4 : NOT(PNAME="Maintenance") e NOT(BUDGET 200000) predicados minterm: Dada uma relação R e P r = {p 1, p 2,, p m }, definimos o conjunto de predicados minterm M = {m 1,m 2,,m r } como M = { m i m i = p j Pr p j * }, 1 j m, 1 i z onde p j * = p j ou p j * = (p j ). 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 19 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 20 FHP - Requisitos de Informação Informações de aplicativos seletividade de minterm: sel(m i ) quantidade de tuplas da relação que seria acessada por uma consulta do usuário especificada de acordo com um dado predicado minterm frequências de acesso: acc(q i ) a frequência com o que um aplicativo q i do usuário acessa os dados frequência de acesso minterm também pode ser definida Fragmentação Horizontal Primária Definição operação de seleção sobre uma relação proprietária R j = σ F j (R ), 1 j w onde F j é a fórmula de seleção, que é (preferencialmente) um predicado minterm Então... Um fragmento horizontal R i da relação R consiste de todas as tuplas de R que satisfazem o predicado minterm m i Dado um conjunto de predicados minterm M, existem tantos fragmentos horizontais da relação R quantos forem os predicados minterm. Conjunto de fragmentos horizontais também é referido como conjunto de fragmentos minterm 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 21 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 22 FHP - Algoritmo P r tem que ser completo... Dados: Uma relação R, o conjunto de predicados simples P r Saída: O conjunto de fragmentos de R = {R 1, R 2,,R w } que obedecem as regras de correção da fragmentação Sendo que : P r deve ser completo P r deve ser mínimo Um conjunto de predicados simples P r é considerado completo sse existe uma probabilidade igual de acesso de cada aplicativo a qualquer tupla pertencente a qualquer fragmento minterm definido de acordo com P r Exemplo: Considere que a relação PROJ[PNO,PNAME,BUDGET,LOC] tem 2 aplicativos definidos sobre ela: Encontre os orçamentos dos projetos de cada localidade (1) Encontre os projetos com orçamento menor do que $200000 (2) 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 23 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 24 4
P r tem que ser completo... P r tem que ser mínimo... De acordo com (1), P r ={LOC= Montreal,LOC= New York,LOC= Paris }...que não é completo com respeito a (2). Modifique P r ={LOC= Montreal, LOC= New York, LOC= Paris, BUDGET 200000, BUDGET>200000}...que é completo Se um predicado influencia o modo como a fragmentação é efetuada (faz com que um fragmento f seja ainda mais fragmentado em, digamos, fi e fj) deve haver pelo menos um aplicativo que acesse fi e fj de maneira diferenciada Cada fragmento simples deve ser relevante na determinação de uma fragmentação Se todos os predicados de um conjunto Pr são relevantes, Pr é mínimo 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 25 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 26 P r tem que ser mínimo... PHF - Exemplo Exemplo: Pr ={LOC= Montreal,LOC= New York, LOC= Paris, BUDGET 200000,BUDGET>200000} é minimo (e completo). No entanto, se adicionarmos então Pr não é mínimo. PNAME = Instrumentation 2 relações : PAY e PROJ Fragmentação da relação PAY Aplicativo: Verifica as informações sobre salário e determina um aumento adequado Registros de funcionários são administrados em 2 nós (aplicativo executado em 2 nós) Predicados simples p 1 : SAL 30000 p 2 : SAL > 30000 P r = {p 1,p 2 }, que é completo e mínimo Predicados minterm m 1 : (SAL 30000) m 2 : NOT(SAL 30000) = (SAL > 30000) 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 27 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 28 PHF - Exemplo PHF - Exemplo Fragmentação da relação PROJ Aplicativos Procura nomes e orçamentos de projetos dadas suas localizações executado em 3 nós Acessa informações de projetos de acordo com o orçamento information according to budget Um nó acessa 200000 e outro acessa > 200000 Predicados simples Aplicação 1 p 1 : LOC = Montreal p 2 : LOC = New York p 3 : LOC = Paris Aplicação 2 p 4 : BUDGET 200000 p 5 : BUDGET > 200000 P r = {p 1,p 2,p 3,p 4,p 5 } 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 29 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 30 5
PHF - Exemplo PHF - Exemplo Fragmentação da relação PROJ Fragmentos minterm restantes após eliminação dos contraditórios m1 : (LOC = Montreal ) e (BUDGET 200000) m2 : (LOC = Montreal ) e (BUDGET > 200000) m3 : (LOC = New York ) e (BUDGET 200000) m4 : (LOC = New York ) e (BUDGET > 200000) m5 : (LOC = Paris ) e (BUDGET 200000) m6 : (LOC = Paris ) e (BUDGET > 200000) 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 31 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 32 PHF - Correção Fragmentação Horizontal Derivada Completude Já que Pr é completo e mínimo, os predicados de seleção são completos Definida sobre uma relação membro de uma ligação de acordo com uma operação de seleção especificada sobre sua dona Cada ligação é uma junção Reconstrução Se a relação R está fragmentada em F R = {R 1,R 2,,R r } R = para todo Ri FR R i Disjunção Predicados minterm que formam a base da fragmentação têm que ser mutuamente exclusivos 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 33 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 34 DHF - Definição Dada uma ligação L onde dono (L)=S e membro(l)=r, Os fragmentos horizontais derivados de R são definidos como R i = R S i, 1 i w DHF - Exemplo Dada a ligação L1 onde dono(l1)=skill e membro(l1)=emp EMP1 = EMP SKILL1 FHD EMP2 = EMP SKILL2 onde SKILL1 = σ SAL 30000 (SKILL) SKILL2 = σ SAL>30000 (SKILL) FHP Onde w é o número de fragmentos definidos sobre R e S i = σ Fi (S) Onde F i é a fórmula segundo a qual o fragmento horizontal primário S i é definido 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 35 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 36 6
DHF - Correção Fragmentação Vertical Completude Integridade referencial Reconstrução Mesmo que a fhp Disjunção Grafos de junção simples entre fragmentos Tem sido estudada dentro do contexto de BD centralizados Metodologias de projeto Agrupamento físico Duas abordagens agrupamento Atributos para fragmentos Fragmentos sobrepostos divisão Relações para fragmentos Fragmentos não sobrepostos Atributos chave replicados não são considerados sobrepostos Facilidade para garantir dependências funcionais (verificação de integridade, etc.) 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 37 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 38 FV - Requisitos de Informação Informações de aplicativos Afinidade de atributos Indica a proximidade com que os atributos estão relacionados Obtida a partir da dados mais primitivos Valores de uso de atributos Dado um conjunto de aplicativos Q = {q 1, q 2,, q q } executadas sobre a relação R[A 1, A 2,, A n ] use(q i,a j ) = 1 se o atributo Aj é referenciado pela consulta qi 0 caso contrário VF Definição de use(q i,a j ) Considere as 4 consultas (aplicativos) sobre a relação PROJ use(q i, ) podem ser definidos de acordo 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 39 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 40 VF Afinidade de atributos aff(a i,a j ) A medida de afinidade de atributos entre dois atributos Ai e Aj de uma relação R[A 1, A 2,, A n ] com respeito ao conjunto de aplicativos Q = (q 1, q 2,, q q ) é definida como: aff (A i, A j ) = todos os aplicativos que acessam Ai e Aj (acesso do aplicativo) acesso do aplicativo = todos os nós frequência acesso aplicativo * (n acessos/execução) VF Cálculo de aff(a i,a j ) Suponha que cada consulta do exemplo anterior acessa os atributos 1 vez durante cada execução Suponha as frequências de acesso : Então aff(a 1, A 3 ) = 15*1 + 20*1 + 10*1 = 45 e a matriz de afinidades de atributos AA: 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 41 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 42 7
VF Algoritmo de agrupamento BEA - Exemplo Considere a matriz de afinidade de atributos AA e reorganize a ordem dos atributos par formar grupos onde os atributos em cada grupo têm alta afinidade entre si Bond Energy Algorithm (BEA) Maximiza a função de afinidade global AM = i j (afinidade de Ai e Aj com seus vizinhos) 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 43 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 44 VF - Algoritmo Como dividir um conjunto de atributos agrupados {A 1, A 2,, A n } em 2 (ou mais) conjuntos {A 1, A 2,, A i } e {A i,, A n } tal que nenhum (ou um número mínimo de) aplicativos que acessam dois (ou mais do que um) conjuntos VF - Algoritmo Sejam TQ = conjunto de aplicativos que acessam apenas TA BQ = conjunto de aplicativos que acessam apenas BA OQ = conjunto de aplicativos que acessam tanto TA quanto BA e CTQ = num. total de acessos a atributos por aplicativos que acessam apenas TA CBQ = num. total de acessos a atributos por aplicativos que acessam apenas BA COQ = num. total de acessos a atributos por aplicativos que acessam tanto TA quanto BA Encontre o ponto na diagonal que maximize CTQ * CBQ - COQ 2 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 45 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 46 VF - Algoritmo 2 problemas : Grupo formado no meio da matriz agrupada Desloque uma linha para cima e uma coluna para a esquerda e aplique o algoritmo para encontrar o melhor ponto de divisão Repita para todos os possíveis deslocamentos Custo O(m 2 ) Mais de 2 grupos Divisão m-caminhos Tente 1, 2,, m-1 pontos de divisão sobre a diagonal e tente encontrar o melhor ponto para cada um deles Custo O(2 m ) VF - Correção Uma relação R, definida sobre o conjunto de atributos A e chave K, fragmentada verticalmente F R = {R 1, R 2,, R r } Completude A = A Ri Reconstrução R = K R i, Ri FR Disjunção Ids, quando presentes, não são considerados sobrepostos pois são mantidos pelo sistema (transparente ao usuário) Chaves duplicadas não são consideradas sobrepostas 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 47 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 48 8
Fragmentação Híbrida Alocação 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 49 Alocação de fragmentos Descrição do problema Dados F = {F1, F2,, Fn } fragmentos S ={S1, S2,, Sm } nós da rede Q = {q1, q2,, qq } aplicativos Encontre a distribuição ótima de F em S Otimalidade Custo mínimo Comunicação + armazenamento + processamento (leitura & atualização) Custo em termos de tempo (geralmente) Desempenho Tempo de resposta e/ou vazão do sistema Restrições Por nó (armazenamento e processamento) 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 51 Requisitos de Informação Informações do banco de dados Seletividade dos fragmentos Tamanho dos fragmentos Informações de aplicativos Tipos e números dos acessos Localidade dos acessos Informações dos nós Custo unitário de armazenamento de um dado em um nó Custo unitário de processamento em um nó Informações da rede Largura de banda Latência Overhead de comunicação 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 52 Alocação De arquivos (PAA) versus de Bancos de Dados (PABD) Fragmentos não são arquivos individuais Relacionamentos têm que ser mantidos Acesso aos BD é mais complicado Modelo de acesso a arquivos remotos não é aplicável Relacionamento entre alocação e processamento de consultas Custos adicionais que devem ser considerados Manutenção da integridade Controle de concorrência 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 53 Modelo de alocação Forma Geral Min(custoTotal) Sujeito às restrições De tempo de resposta De armazenamento De processamento Variável de decisão X ij = 1 se fragmento F i é armazenado no nó S j 0, caso contrário 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 54 9
Modelo de Alocação Alocação Exemplo de Algoritmo Métodos de solução PAA é NP-completo PABD também NP-completo Heurísticas baseadas em Problema da mochila Técnica de otimização branch and bound Tentativas de reduzir o espaço de soluções Ignorar replicação Algoritmo de Huang e Chen 2 passos: Aloca réplicas em cada nó com consulta de leitura Retira réplicas para minimizar custo consultas de atualização 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 55 1998 M. Tamer Özsu e Patrick Valduriez (tradução livre e adaptações Fernanda Baião) 56 10