Bancos de Dados III Fragmentação de Tabelas Rogério Costa rogcosta@inf.puc-rio.br 1 Projeto de Base de Dados Distribuída Top-down Projeto de um novo sistema / ambiente Sistemas homogêneos Bottom-up O banco de dados já existe em diversos sites possivelmente utilizado / carregado por diferentes sistemas 2 1
Projeto de Bases de Dados Distribuídas Posso simplesmente distribuir as relações pelos nós? Posso replicar todas as relações em todos os nós? Posso colocar parte das relações em nós diferentes? 3 Projeto de Bases de Dados Distribuídas Posso simplesmente distribuir as relações pelos nós? Devo considerar fatores como: localização dos usuários, tipos (leitura / escrita) de acessos, quantidade de acessos, freqüência de acessos, existência de hot spots, importância das dados e grau de disponibilidade necessário, segurança das informações, desempenho esperado (existência de SL e QoS Requirements), confiabilidade da rede, configurações dos equipamentos, sistemas concorrentes à base de dados, integridade dos dados,... 4 2
Projeto de Bases de Dados Distribuídas Posso replicar todas as relações em todos os nós? Muitas vezes é difícil para ambientes OLTP: espaço, integridade, atualização,... Posso colocar parte das relações em nós diferentes? Como? través de técnicas de fragmentação (que serão agora discutidas...) 5 Fragmentação de Relações Dois tipos básicos : Horizontal Vertical Estratégias mistas ou derivadas também podem ser adotadas. lgumas Questões... Como e quanto fragmentar? Como verificar correção da fragmentação? 6 3
Fragmentação de Relações dotando fragmentos como unidade de distribuição... Transações paralelas em fragmentos diferentes Paralelismo e acesso a menor volume de dados => desempenho Visões que necessitam acessar dados de múltiplos fragmentos Processamento extra => possível queda no desempenho Manutenção de integridade mais difícil! 7 Fragmentação Horizontal - Exemplo PROJ1 : projetos com orçamento menor que $200,000 PROJ2 : projetos com orçamento maior ou igual a $200,000 PROJ 1 PNO PNME BUDGET LOC P1 Instrumentation 150000 Montreal P2 Database Develop. 135000 New York PROJ PNO PNME BUDGET LOC P1 Instrumentation 150000 Montreal P2 Database Develop. 135000 New York P3 CD/CM 250000 New York P4 Maintenance 310000 Paris P5 CD/CM 500000 Boston PROJ 2 PNO PNME BUDGET LOC P3 CD/CM 250000 New York P4 Maintenance 310000 Paris P5 CD/CM 500000 Boston 8 4
Fragmentação Vertical - Exemplo PROJ 1 : informação sobre orçamentos PROJ 2 : informações sobre nome e localização PROJ PNO PNME BUDGET LOC P1 Instrumentation 150000 Montreal P2 Database Develop. 135000 New York P3 CD/CM 250000 New York P4 Maintenance 310000 Paris P5 CD/CM 500000 Boston PROJ 1 PNO BUDGET P1 150000 P2 135000 P3 250000 P4 310000 P5 500000 PROJ2 PNO PNME LOC P1 Instrumentation Montreal P2 Database Develop. New York P3 CD/CM New York P4 Maintenance Paris P5 CD/CM Boston 9 Correção da Fragmentação Completitude decomposição de uma relação R em fragmentos R 1, R 2,...,R n é completa se e somente se cada item em R pode ser encontrado em algum R i Reconstrução Se uma relação R é decomposta em fragmentos R 1, R 2,..., R n, então existe algum operador relacional 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 um item de dado d i está em R j, então d i não pode estar em qualquer outro fragmento R k (k j ). 10 5
Estratégias de locação Não-replicada Particionada: cada fragmento reside em um site somente Replicada Totalmente replicada: cada fragmento em cada site Parcialmente replicada: cada fragmento em alguns sites Regra geral Replicação é vantajosa se: read-only queries update queries 1 11 Fragmentação Fragmentação Horizontal Fragmentação Horizontal Primária (FHP) Fragmentação Horizontal Derivada (FHD) Fragmentação Vertical Fragmentação Híbrida 12 6
FHP Modelo Exemplo SKILL TITLE, SL EMP L 1 PROJ ENO, ENME, TITLE PNO, PNME, BUDGET, LOC SG L 2 L 3 ENO, PNO, RESP, DUR 13 FHP Dado R[ 1, 2,, n ], um predicado simples p j é: p j : i θ Valor onde: θ {=,<,,>,, }, Valor D i e D i é o domínio de i. Para cada R definir Pr = {p 1, p 2,,p m } Exemplo PNOME = manutenção ORCM 200000 14 7
FHP Predicados Minterm Conjunção de predicados simples, que podem aparecer na forma natural ou na negação Examplos m 1 : PNME="Maintenance" BUDGET 200000 m 2 : NOT(PNME="Maintenance") BUDGET 200000 m 3 : PNME= "Maintenance" NOT(BUDGET 200000) m 4 : NOT(PNME="Maintenance") NOT(BUDGET 200000 15 FHP Seletividade do predicado: sel(p i ) Número de tuplas de uma relação que seriam acessadas por uma consulta de usuário especificada de acordo com o predicado pi Freqüência de acesso: acc(q i ) freqüência de acesso aos dados por uma aplicação q i Pode ser definida também a freqüência de acesso de um predicado 16 8
FHP Definição: R j = σ Fj (R ), 1 j w onde F j é uma condição de seleção, que é (preferencialmente) um predicado ssim: Uma fragmentação horizontal R i de uma relação R consiste de todas as tuplas de R que satisfazem o predicado P i Logo: Dado um conjunto de predicados P, há tantos fragmentos horizontais possíveis de R quando o número de predicados 17 FHP Exemplos: Duas relações candidatas: PY e PROJ plicação: verifica salário e determina aumentos Registro de funcionários é mantido em dois sites => aplicação executada em dois sites Predicados simples: p 1 : SL 30000 p 2 : SL > 30000 Pr = {p 1,p 2 } é completa e mínima 18 9
FHP - Exemplo PY 1 PY 2 TITLE SL TITLE SL Mech. Eng. 27000 Elect. Eng. 40000 Programmer 24000 Syst. nal. 34000 19 FHP Exemplos: Relação PROJ plicação 1: verifica dados de acordo com local plicação 2: verifica dados de acordo com orçamento Passo 1- montar predicados simples Passo 2- montar predicados minterm Passo 3- eliminar fragmentos desnecessários 20 10
FHP Exemplo Fragmentos Minterm deixados após eliminação m 1 : (LOC = Montreal ) (BUDGET 200000) m 2 : (LOC = Montreal ) (BUDGET > 200000) m 3 : (LOC = New York ) (BUDGET 200000) m 4 : (LOC = New York ) (BUDGET > 200000) m 5 : (LOC = Paris ) (BUDGET 200000) m 6 : (LOC = Paris ) (BUDGET > 200000) 21 FHP Corretude Completitude Cada item existente em uma relação R deve ser encontrado em um de seus fragmentos R i Reconstrução Se uma relação R é fragmentada em F R = {R 1,R 2,,R r } R= Ri FR R i Disjunção Predicados minterm que formam a base da fragmentação devem ser mutuamente exclusivos 22 11
Fragmentação Horizontal Derivada FHD: Definida em uma relação membro de uma ligação (L i ) de acordo com uma operação de seleção especificada no proprietário SKILL TITLE, SL EMP L 1 PROJ ENO, ENME, TITLE PNO, PNME, BUDGET, LOC SG L 2 L 3 ENO, PNO, RESP, DUR 23 FHD - Exemplo Dada uma ligação L 1 onde proprietário(l 1 )=SKILL e EMP membro(l 1 )=EMP 1 Onde EMP 1 = EMP semijoin SKILL 1 EMP 2 = EMP semijoin SKILL 2 SKILL 1 = σ SL 30000 (SKILL) SKILL 2 = σ SL>30000 (SKILL) ENO ENME TITLE E3. Lee Mech. Eng. E4 J. Miller Programmer E7 R. Davis Mech. Eng. EMP 2 ENO ENME TITLE E1 J. Doe Elect. Eng. E2 M. Smith Syst. nal. E5 B. Casey Syst. nal. E6 L. Chu Elect. Eng. E8 J. Jones Syst. nal. 24 12
locação de Fragmentos Problema: Dados F = {F 1, F 2,, F n } S ={S 1, S 2,, S m } Q = {q 1, q 2,, q q } => fragmentos => sites => aplicações Encontrar a alocação ótima de F em S. locação ótima envolve: Custo mínimo Comunicação + armazenamento + processamento(leitura e atualização) Tempo (muitas vezes) Desempenho Tempo de resposta e/ou throughput Restrições Restrições em cada site. Ex: limite de armazenamento e processamento 25 Resquisitos de Informação Informação de BD Seletividade dos fragmentos Tamanho dos fragmentos Informação de aplicação Número de leituras de uma consulta a um fragmento Número de modificações de uma consulta a um fragmento Matriz indicando quais consultas lêem quais fragmentos Matriz indicando quais consultas modificam quais fragmentos Site de origem de cada consulta 26 13
Resquisitos de Informação Informação de rede Custo de comunicação por pacote entre dois sites Tamanho do pacote Informação de site Custo unitário de armazenamento dos dados Custo unitário de processamento dos dados 27 Modelo de locação Modelo Geral min(custototal) Sujeito a x ij = 1 se fragmento F i é armazenado no site S j 0 caso contrário Restrição de tempo de resposta Restrição de armazenamento Restrição de capacidade processamento Variável de decisão: 28 14
Modelo de locação Custo Total todas consultas todos sites Custo de processamento + Custo de armazenamento no site todos fragmentos Custo de armazenamento (do fragmento F j em S k ) (custo unitário de armazenamento S k ) (tamanho de F j ) x jk Custo de processamento (para uma consulta) componente processamento + componente transmissão 29 Modelo de locação Custo de processamento de consulta Componente processamento custo acesso + custo integridade + custo concorrência Custo de acesso (núm. acessos de atual. + núm acessos de leit.) todos sites todos fragmentos x ij custo de processamento local no site Custo manutenção de integridade e controle concorrência Podem ser calculados de forma equivalente 30 15
Modelo de locação Custo de processamento de consulta Componente transmissão custo processar atualizações + custo processar recuperações Custo de atualizações todos sites todos fragmentos todos sites todos fragmentos Custo de recuperações. Custo da mensagem de update + Custo da mensagem de ck min todos sites (custo de comando de recuperação + todos fragmentos custo de enviar o resultado de volta) 31 Modelo de locação Restrições Tempo de resposta Tempo resposta consulta max. tempo resposta aceitável para a consulta rmazenamento em um site S i todos fragmentos Processamento em um site S i Requisito de armazenamento de fragmento no site capacidade de armazenamento no site. Carga de processamento de consulta no site todos fragmentos capacidade de processamento no site 32 16
Modelo de locação Problema NP-Completo Problema similar a localização de armazéns de commodities (pesquisa operacional) Heurísticas; Técnicas de branch-and-bound; lgoritmos de fluxo de rede;... 33 Fragmentação Vertical Informação da aplicação finidade de atributos Medida que indica associação entre atributos Pode ser calculada a partir do padrão de uso dos dados Padrão de uso de atributos Dado um conjunto de consultas Q = {q 1, q 2,...,q q } sobre uma relação R[ 1, 2,... n ], uso(qi,j) = { 1 se j é referenciado em q j 0 senão 34 17
Fragmentação Vertical Considere as 4 consultas sobre a relação PROJ q 1 : SELECT BUDGET q 2 : SELECT PNME,BUDGET FROM PROJ FROM PROJ WHERE PNO=Value q 3 : SELECT PNME q 4 : SELECT SUM(BUDGET) FROM PROJ FROM PROJ WHERE LOC=Value WHERE LOC=Value 1 = PNO 2 = PNME 3 = BUDGET 4 = LOC q 1 q 2 q 3 q 4 1 2 3 4 1 0 1 0 0 1 1 0 0 1 0 1 0 0 1 1 35 Fragmentação Vertical finidade medida de afinidade de atributo entre 2 atributos i e j de uma relação R[ 1, 2,, n ] com respeito a um conjunto de consultas Q = (q 1, q 2,, q q ) é definida como: aff ( i, j ) = (acesso) Todas as queries que acessam i e j acesso = Freq acesso de uma consulta (Qtde acesso por execução) todos sites 36 18
Fragmentação Vertical ssumindo cada consulta no exemplo anterior faz acesso aos atributos uma vez a cada execução ssumindo as seguintes freqüências de acesso aff( 1, 3 ) = 15*1 + 20*1+10*1 = 45 matriz de afinidade será: q 1 q 2 q 3 q 4 1 2 3 4 S 1 S 2 S 3 15 20 10 5 0 0 25 25 25 3 0 0 1 2 3 4 45 0 45 0 0 80 5 75 45 5 53 3 0 75 3 78 37 lgoritmo de Clusterização Dada uma matriz de afinidade, reorganiza a ordem dos atributos para formar clusters onde atributos em cada cluster demonstram alta afinidade uns com os outros Exemplo: lgoritmo de energia de ligação (BE). BE acha a ordem dos atributos tal que a medida de afinidade global é maximizada 38 19
BE Dada a matriz obtida no exemplo anterior, após a aplicação do BE teremos a matriz abaixo 1 3 2 4 45 45 1 3 2 4 0 0 45 53 5 3 0 5 80 75 0 3 75 78 39 20