Projeto de Bancos de Dados Distribuídos (Parte 01)

Documentos relacionados
14/03/12. Tipos de fragmentação. Projeto de Bancos de Dados Distribuídos (Parte 01) Correção das regras de fragmentação. Grau de fragmentação

14/03/12. Fragmentação Vertical. Projeto de Bancos de Dados Distribuídos (Parte 02) Complexidade. Objetivo. Complexidade. Abordagens Heurísticas

Projeto de Bancos de Dados Distribuídos

23/05/12. Agenda. Introdução. Introdução. Introdução. Álgebra. Relacional. Cálculo. Relacional

23/05/12. Consulta distribuída. Consulta distribuída. Objetivos do processamento de consultas distribuídas

Bancos de Dados III. Projeto de Base de Dados Distribuída

Projeto de Bases de Dados Distribuídas

GES013 Sistema de Banco de Dados Normalização de Relações em Projeto de BD (1FN a FNBC)

Universidade Federal do Maranhão

Arquiteturas para SGBD. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

INF1383 -Bancos de Dados

Exercícios do Curso COS833 Distribuição e Paralelismo em Bancos de Dados Prof ª Marta Mattoso / Prof. Alexandre Assis

Processamento de Consultas. Processamento de Consultas. Processamento de Consultas Distribuídas. Otimização de Consultas

TIN0036 Bancos de Dados Distribuídos e Data Warehousing. PRIMEIRA LISTA DE EXERCÍCIOS Individual GABARITO

Principais Desafios dos SGBDDs. Processamento Distribuído de Consultas. Processamento de Consultas. Componentes do Processamento de Consultas

Modelo Relacional. Modelo Relacional. Modelo Relacional. Banco de Dados. Modelo Relacional. Modelo Relacional. Fernando Fonseca Ana Carolina

GBC043 Sistemas de Banco de Dados Normalização de Relações em Projeto de BD

UNINGÁ UNIDADE DE ENSINO SUPERIOR INGÁ FACULDADE INGÁ CIÊNCIA DA COMPUTAÇÃO PROJETO DE BANCO DE DADOS RELACIONAL. Profº Erinaldo Sanches Nascimento

Modelo Relacional. Gerenciamento de Dados e Informação. Modelo Relacional Sejam os domínios D 1 (D- Pessoa) e D 2 (D- Endereço) Modelo Relacional

Banco de Dados I. Aula 17 - Prof. Bruno Moreno 08/11/2011

Bancos de Dados Distribuídos. Bancos de Dados Distribuídos. Conteúdo. Motivação. Motivação. Introdução aos BDs Distribuídos.

Banco de dados. Conteúdo: Modelo relacional Prof. Patrícia Lucas

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 18. Escola Politécnica da Universidade de São Paulo

Aula 04. Evandro Deliberal

Introdução aos Sistemas de Bancos de Dados 1 a versão - MAC5760 DCC-IME-USP J.E.FERREIRA e O.TAKAI Terceira Forma Normal (3FN)

Modelo Relacional. Banco de Dados 2º trimestre Prof. Patrícia Lucas

Modelagem de dados usando MER. Andre Noel

O que é modelo lógico. Tipos de modelo

Bancos de Dados Distribuídos. Gabriel Resende Gonçalves 4 de fevereiro de 2014

Unidade 4 Projeto de BD Relacional

14/03/12. Formas Básicas de BD Distribuído. Integração de Banco de Dados. Abordagem Top-down. Abordagem Top-down (Distribuição de Dados)

Banco de Dados. Aula 3 - Prof. Bruno Moreno 26/08/2011

UTFPR - Universidade Tecnológica Federal do Paraná. Processamento e otimização de consultas

Bases de Dados Distribuídas

MATA60 BANCO DE DADOS Aula 3- Modelo de Entidades e Relacionamentos. Prof. Daniela Barreiro Claro

Abordagem relacional. Capítulo 4

Sumário. Definição do Plano de Execução

Modelo Lógico de Dados. Modelo Relacional

Projeto de Banco de Dados

Banco de Dados. Aula 8 - Prof. Bruno Moreno 16/09/2011

Projeto de Banco de Dados

Trabalho de Banco de Dados. 1) Considere a distribuição de banco de dados abaixo, nos quais os fragmentos nos sites 2 e 3, e também no site 1.

Restrições do modelo relacional

Informática. Banco de Dados Relacional. Professor Julio Alves.

MODELAGEM DE DADOS MODELO RELACIONAL

Banco de Dados - Senado

Aula 01 Conceito de Banco de Dados e SGBD

Base de Dados. Sistemas de Informação. Base de Dados - Índice Introdução Componentes Base de Dados. Introdução. Introdução. Introdução.

Metodologia para projeto de fragmentação de dados XML sobre bases distribuídas

modelo introduzido por E. F. Codd Meados da década de 70: protótipos. INGRES (UC Berkeley, 73 77) System R (IBM Research at San Jose, 74 78)

- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.

Normalização: Noções Básicas

NORMALIZAÇÃO. Lílian Simão Oliveira

Modelagem semântica permite aproximar o modelo obtido do mundo real Exemplo de modelos:

Aula 3 - Modelo Entidade-Relacionamento

Modelagem Conceitual e o Modelo Entidade-Relacionamento

Bancos de Dados Aula #2 - Modelos Conceituais de Dados

Modelo Relacional e Normalização de Dados. ENG1518/3VC Sistemas de Informação Gerenciais Prof. Marcos Villas

Unidade 2 Modelo Conceitual

Bancos de Dados. 7. Mapeamento ER/ERE para Relacional

O Modelo e a Álgebra Relacional

Processamento da Consulta. Processamento da Consulta

ÁLGEBRA E CÁLCULO RELACIONAL

Aula 12 BD1 Dependências Funcionais e Normalização. Profa. Elaine Faria UFU

04/03/12. Revisão: conceitos básicos de BD. MoAvação para distribuição. Processamento Distribuído. Arquitetura de um SBD Centralizado

Sumário. Etapas do Processamento de Consultas

Arquitetura Genérica do SGBDD

PCS3413 Engenharia de Software e Banco de Dados

. Um modelo que represente fielmente a realidade. Um modelo capaz de responder às funcionalidades que se pretendem

3 Plano de Execução de Consultas

Projeto de Banco de Dados. Componentes de um Sistema de Informação. Arquitetura de SI. Sistema de Informação (SI) SI nas Organizações

Parte II Modelo de Dados Relacional. Evandro E. S. Ruiz

ROTEIRO Introdução Álgebra e Cálculo Relacional Operações da Álgebra Relacional Classificação de Operadores da Álgebra Relacional Mapeamento AR -> SQL

Tornou-se um padrão de fato para aplicações comerciais, devido a sua simplicidade e performance.

MATA60 BANCO DE DADOS Aula: Otimização. Prof. Daniela Barreiro Claro

Subconsultas ou Consultas Aninhadas

Modelagem de Dados. Modelagem Conceitual

Transformação de Diagramas MER em Diagramas DR

Banco de Dados. Dependências Funcionais e Normalização de Bancos de Dados Relacionais. João Eduardo Ferreira Osvaldo Kotaro Takai Marcelo Finger

Modelo Relacional. Josino Rodrigues

Projeto de Banco de Dados Distribuído Proj o e j to t o de d B a B nc n o o d e d Da D do d s o D i D str t ibu b í u do d s

MC536. Modelo Relacional

Modelo Relacional. Aula 02

Banco de Dados Prof. Célio R. Castelano Página 1 de 9. Álgebra Relacional

PROJETO DE BANCO DE DADOS

MODELO ENTIDADE RELACIONAMENTO

Ano: 2014 Banca: FCC Órgão: TJ-AP Prova: Analista Judiciário - Área Apoio Especializado - Tecnologia da Informação

Roteiro. Normalização. BCC321 - Banco de Dados I. Ementa. Para que serve a normalização? Posicionamento

Aula 4 SBD Modelo Entidade Relacionamento Parte 2. Profa. Elaine Faria UFU

Uma base de dados está num estado de integridade se contém apenas dados válidos. Os dados armazenados devem estar de acordo com a realidade

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

MODELO DE BANCO DE DADOS RELACIONAL

Professor Eros Moura, DSc

P R O J E T O: C A R N A V A L. 2. Informações Básicas sobre o Sistema a ser Desenvolvido

BANCO DE DADOS I/MODELAGEM DE DADOS Prof. Ricardo Rodrigues Barcelar

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

Bancos de Dados Distribuídos. Lucas Henrique Samuel Queiroz

Extensões do Modelo Entidade-Relacionamento

Transcrição:

Projeto de Bancos de Dados Distribuídos (Parte 01) IF694 BD Distribuídos e Móveis Bernadette Farias Lóscio bfl@cin.ufpe.br Tipos de fragmentação n n Fragmentação vertical 1

Grau de fragmentação n É preciso encontrar um nível adequado de fragmentação que mantenha um compromisso entre os dois extremos Nenhuma fragmentação Fragmentação até o nível de tuplas ou de atributos n Este equilíbrio pode ser determinado de acordo com as aplicações que farão uso do banco de dados e com um conj. de parâmetros que caracterizam essas aplicações Correção das regras de fragmentação n Fragmentação vertical e normalização são processos semelhantes n São necessárias regras para assegurar que o BD não sofrerá nenhuma mudança semântica durante a fragmentação Completeza Reconstrução Disjunção 2

Completeza n Se uma instância da relação R é decomposta em fragmentos R 1, R 2,, R n, cada item de dados que pode ser encontrado em R também pode ser encontrado em um ou mais fragmentos R i n Propriedade idêntica a decomposição sem perdas da normalização n Os dados em uma relação global serão mapeados em fragmentos sem perdas n um item = tupla n Fragmentação vertical um item = atributo Reconstrução n Se uma relação R é decomposta em fragmentos R 1, R 2,, R n, deve ser possível definir um operador relacional tal que: n R = R i, R i F R n O operador dependerá do tipo de fragmentação n Esta regra garante que as restrições definidas sobre os dados na forma de dependências serão preservadas 3

Disjunção n Se uma relação R é decomposta horizontalmente em fragmentos R 1, R 2, R n, e o item de dados d 1 está em R j, ele não está em qualquer outro fragmento R k (k j) n Os fragmentos horizontais são disjuntos n No caso da fragmentação vertical, a disjunção só é definida para os atributos que não fazem parte da chave primária Se a relação é decomposta verticalmente, os atributos que compõem a chave primária se repetem em todos os fragmentos Alternativas de alocação n Quando os dados são alocados, eles podem ser replicados ou mantidos como uma única cópia n As razões para a replicação são a confiabilidade e a eficiência de consultas somente de leitura n A decisão sobre replicação é um compromisso que depende da proporção entre consultas de leitura e consultas de atualização 4

Alocação n Banco de dados não replicado é chamado de BD particionado Fragmentos alocados a sites e só existe uma cópia de cada fragmento na rede n O BD existe por inteiro em cada site (totalmente replicado) ou os fragmentos estão distribuídos pelos sites de maneira que cópias de um fragmento podem residir em mais de um site (parcialmente replicado) n No caso de ser parcialmente replicado, o número de cópias de cada fragmento pode ser uma entrada para um algoritmo de alocação Requisitos de informações n As informações necessárias para o projeto de distribuição podem ser divididas em quatro categorias: n Informações do BD n Informações de aplicativos n Informações da rede de comunicações n Informações de sistemas computacionais Os dois últimos tipos são de natureza quantitativa, sendo utilizadas apenas para a alocação e não em algoritmos de fragmentação 5

n Versões de fragmentação horizontal: primária e derivada n primária de uma relação é executada com o uso de predicados definidos sobre esta relação n derivada é o particionamento de uma relação que resulta da definição de predicados sobre outra relação - Informações do BD n Esquema conceitual global Como as relações do BD estão conectadas entre si, em especial as junções n É preciso identificar a origem e o destino de um vínculo(isto é, ligação, relacionamento, relação) n A informação quantitativa exigida sobre o BD é a cardinalidade de cada relação R, denominada card (R) 6

- Vínculos pagamento cargo, sal funcionário L 1 Expressão de vínculos entre as relações projeto pno, pnome, orçamento, loc fno, fnome, cargo L 3 Exemplo: Proprietária(L 1 ) = pagamento Membro(L 1 ) = funcionário L 2 trabalha fno, pno, resp,, duração - Informações de aplicativos n Informações qualitativas e quantitativas n A qualitativa orienta a atividade de fragmentação (ex: predicados usados nas consultas de usuários) n 20% das consultas de usuários mais ativos respondem a 80% do total de acessos aos dados n Regra 80/20 pode ser uasada como diretriz para a execução dessa análise n A informaçào qualitativa é incorporada nos modelos de alocação 7

n Predicados podem ser simples, envolvendo apenas operadores relacionais, por exemplo n Predicados podem ser mais elaborados, os quais são combinações booleanas de predicados simples n Um predicado minterm é a conjunção de predicados simples Tendo em vista que sempre é possível converter uma expressão booleana para a forma normal conjuntiva, o uso de predicados minterm nos algoritmos de projeto não causa qualquer perda de generalidade n Na lógica booleana, uma fórmula está na forma normal conjuntiva (FNC) se é uma conjunção de cláusulas, onde uma cláusula é uma disjunção de literais. 8

Funcionário FNO FNome Cargo F1 João Engenheiro F2 Paulo Analista F3 Maria Professor F4 Pedro Programador F5 Luiza Analista F6 Luis Engenheiro F7 Beatriz Professor F8 Paula Analista Projeto PNO PNome Orçamento Loc P01 BI 150000 Montreal P02 Des. de BD 135000 Nova York P03 CAD/CAM 250000 Nova York P04 Manutenção 310000 Paris Trabalha FNO PNO Respons. Dur. F1 P1 Gerente 12 F2 P1 Analista 24 F2 P2 Analista 6 F3 P3 Consultor 10 F3 P4 Engenheiro 48 F4 P2 Programador 18 F5 P2 Gerente 24 F6 P4 Gerente 48 F7 P3 Engenheiro 36 F8 P3 Gerente 40 Pagamento Cargo Salário Engenheiro 40000 Analista 34000 Professor 27000 Programador 24000 n Predicado simples p 1 : cargo = Professor p 2 : cargo = Engenheiro p 3 : cargo = Programador p 4 : cargo = Analista p 5 : sal 30000 p 6 : sal > 30000 9

n Alguns predicados minterm n m 1 : cargo = Engenheiro sal 30000 n m 2 : cargo = Engenheiro sal > 30000 n m 3 : not (cargo = Engenheiro ) sal 30000 n m 4 : not (cargo = Engenheiro ) sal > 30000 n m 5 : cargo = Programador sal 30000 n m 6 : cargo = Programador sal > 30000 n Algumas observações: Esses não são todos os predicados minterm que podem ser definidos; esta é apenas uma amostra representativa Alguns predicados podem não ter significado, dada a semântica da relação pagamento 10

n Informações quantitativas sobre aplicativos incluem: Seletividade de minterm: a quantidade de tuplas da relação que seria acessada por uma consulta do usuário especificada de acordo com um predicado minterm. Por exemplo, a seletividade de m 1 é 0 porque não existem tuplas que satisfazem esse predicado. n Informações quantitativas sobre aplicativos incluem: Frequência de acesso: é a frequência com que os aplicativos do usuário acessam os dados. Se Q={q 1, q 2,, q n } é um conj. de consultas do usuário, acc(q i ) indica a frequência de acesso da consulta q i em determinado período. As fequências de acesso minterm podem ser determinadas a partir das frequências de consultas. A fequência de acesso de um minterm m i é denotada por acc(m i ) 11

primária n É definida por uma operação de seleção sobre as relações proprietárias de um esquema do banco de dados n Dada a relação R, seus fragmentos horizontais são determinados por: n R i - σ Fi (R), 1 i w n Se F i está em forma normal conjuntiva então é um predicado minterm(mi) os algoritmos de fragmentação horizontal geralmente consideram F i como sendo um predicado minterm primária n Exemplo: Decomposição da relação Projeto em Projeto1 e Projeto2 Projeto1 = σ orçamento 200000 (Projeto) Projeto2 = σ orçamento > 200000 (Projeto) 12

n Um fragmento horizontal Ri da relação R consiste de todas as tuplas de R que satisfazem o predicado minterm mi n Dado um conjunto de predicados minterm M, existem tantos fragmentos horizontais da relação R quantos forem os predicados minterm n Conjunto de fragmentos horizontais também é referido como conjunto de fragmentos minterm n A definição de fragmentos horizontais depende dos predicados minterm n O primeiro passo para qualquer algoritmo de fragmentação é definir um conjunto de predicados simples que formarão os predicados minterm 13

primária - algoritmo n Dados: Uma relação R, o conjunto de predicados simples Pr n Saída: O conjunto de fragmentos de R = {R 1, R 2,...,R w } que obedecem as regras de correção da fragmentação n Sendo que : Pr deve ser completo Pr deve ser mínimo Completeza de predicados simples n Um conjunto de predicados simples Pr é considerado completo sse existe uma probabilidade igual de acesso de cada aplicativo a qualquer tupla pertencente a qualquer fragmento minterm definido de acordo com Pr n Cada tupla tem igual probabilidade de ser acessada dentro de um fragmento 14

Completeza de predicados simples n Exemplo: n Considere que a relação Projeto(PNO, PNome, Orçamento, Loc) tem 2 aplicações definidas sobre ela: (1) Encontre os orçamentos dos projetos de cada localidade (2) Encontre os projetos com orçamento < 200000 Completeza de predicados simples n De acordo com (1), Pr = {Loc = Montreal,Loc = New York, Loc = Paris } n Pr não é completo com respeito a (2), pois dentro de um mesmo fragmento uma tupla terá maior probabilidade de ser acessada do que outra Projeto PNO PNome Orçamento Loc P01 BI 150000 Montreal P02 Des. de BD 135000 Nova York P03 CAD/CAM 250000 Nova York P04 Manutenção 310000 Paris 15

Completeza de predicados simples n Modifique Pr ={Loc = Montreal, Loc = New York, Loc = Paris, Orçamento 200000, Orçamento > 200000} n Agora Pr é completo, pois todas as tuplas terão a mesma probabilidade de serem acessadas em cada um dos fragmentos minterm Completeza de predicados simples n Os fragmentos obtidos de acordo com um conjunto completo de predicados são logicamente uniformes n São estatisticamente homogêneos na forma como os aplicativos têm acesso a eles n Um conjunto completo de predicados será usado como base da fragmentação horizontal primária 16

Minimalidade de predicados simples n Se um predicado influencia o modo como a fragmentação é efetuada (isto é, faz com que um fragmento f seja ainda mais fragmentado em, digamos, f i e f j ) deve haver pelo menos um aplicativo que acesse f i e f j de maneira diferenciada n Cada predicado simples deve ser relevante na determinação de uma fragmentação n Se todos os predicados de um conjunto Pr são relevantes, Pr é mínimo Minimalidade de predicados simples n O conjunto Pr ={Loc = Montreal, Loc = New York, Loc = Paris, Orçamento 200000, Orçamento > 200000} é mínimo n Se adicionássemos Pnome = BI ao conjunto Pr ele deixaria de ser mínimo, porque o novo predicado não é relevante com relação a Pr n Este novo predicado não afetaria os fragmentos que já foram criados 17

n Um algoritmo para determinar um conjunto completo e mínimo de predicados Pr dado um conjunto de predicados simples Pr deve adotar a seguinte regra: Regra 1: a regra fundamental de completeza e minimalidade, que estabelece que uma relação ou fragmento é particionado em pelo menos duas partes que são acessadas de maneira diferente por pelo menos um aplicativo n No algoritmo de fragmentação horizontal os fragmentos são determinados de acordo com um predicado minterm definido sobre os predicados de Pr Exemplo 1 n Fragmentação da relação Pagamento 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 p1 : Salário 30000 p2 : Salário > 30000 Pr = {p1}, que é completo e mínimo (p2 não particionaria f1, que é o fragmento minterm formado com relação a p1) Predicados minterm m1 : (Salário 30000) m2 : NOT(Salário 30000) = (Salário > 30000) 18

Exemplo 1 n da relação Pagamento Pagamento Cargo Salário Engenheiro 40000 Analista 34000 Professor 27000 Programador 24000 Salário 30000 Salário > 30000 Pagamento1 Pagamento2 Cargo Salário Professor 27000 Programador 24000 Cargo Salário Engenheiro 40000 Analista 34000 Exemplo 2 n Fragmentação da relação Projeto Suponha que existam dois aplicativos O primeiro aplicativo é executado em 3 sites e procura nomes e orçamentos de projetos dadas suas localizações Select Pnome, Orçamento From projeto Where Loc = valor Predicados simples (aplicativo 1) p1 : Loc = Montreal p2 : Loc = New York p3 : Loc = Paris 19

Exemplo 2 n Fragmentação da relação Projeto (cont.) O segundo aplicativo é emitido em dois sites e está relacionado com a administração de projetos. Os sites administram projetos de acordo com o orçamento Um nó administra projetos com orçamento 200000 e outro administra projetos com orçamento > 200000 n Predicados simples (Aplicativo 2) p4 : Orçamento 200000 p5 : Orçamento > 200000 Exemplo 2 n Fragmentação da relação Projeto (cont.) O conjunto Pr = {p1, p2, p3, p4, p5} é completo e mínimo Com base em Pr, os seis predicados minterm a seguir podem ser definidos (predicados minterm obtidos após a eliminação dos contraditórios) m1 : (Loc = Montreal ) e (Orçamento 200000) m2 : (Loc = Montreal ) e (Orçamento > 200000) m3 : (Loc = New York ) e (Orçamento 200000) m4 : (Loc = New York ) e (Orçamento > 200000) m5 : (Loc = Paris ) e (Orçamento 200000) m6 : (Loc = Paris ) e (Orçamento > 200000) 20

- Exemplo 2 Projeto PNO PNome Orçamento Loc P01 BI 150000 Montreal P02 Des. de BD 135000 Nova York P03 CAD/CAM 250000 Nova York P04 Manutenção 310000 Paris Projeto1 PNO PNome Orçamento Loc P01 BI 150000 Montreal Projeto3 PNO PNome Orçamento Loc P02 Des. de BD 135000 Nova York Projeto4 PNO PNome Orçamento Loc P03 CAD/CAM 250000 Nova York Projeto6 PNO PNome Orçamento Loc P04 Manutenção 310000 Paris derivada n Uma fragmentação horizontal derivada é definida sobre uma relação membro de um vínculo de acordo com uma operação de seleção especificada sobre sua proprietária n Exemplo: pagamento cargo, sal L 1 funcionário fno, fnome, cargo Exemplo: Proprietária(L 1 ) = pagamento Membro(L 1 ) = funcionário Na fragmentação horizontal derivada, um fragmento de funcionário seria definido de acordo com uma seleção em pagamento 21

derivada n Em uma fragmentação horizontal derivada, os fragmentos são definidos considerando operações de semijunção Deseja-se fazer o particionamento de uma relação membro de acordo com uma relação proprietária, porém o resultado da fragmentação dever ser definido somente sobre os atributos da relação membro Um semijunção da relação R definida sobre o conjunto de atributos A pela relação S definida sobre o conjunto de atributos B é o subconjunto das tuplas de R que participam da junção de R com S derivada n Dada uma ligação L onde proprietária(l)=s e membro(l)=r, Os fragmentos horizontais derivados de R são definidos como: R i = R semijoin S i, 1 i w, onde w é o número de fragmentos definidos sobre R e Si = σ Fi (S), onde F i é a fórmula segundo a qual o fragmento horizontal primário S i é definido 22

derivada - exemplo n Dada a ligação L 1 onde: Proprietária(L 1 ) = Pagamento Membro(L 1 ) = Funcionário n A relação funcionário pode ser particionada da seguinte forma: Funcionário1 = Funcionário semijoin Pagamento1 Funcionário2 = Funcionário semijoin Pagamento2 onde: Pagamento 1 = σ salário 30000 (Pagamento) Pagamento 2 = σ salário > 30000 (Pagamento) n É importante notar que é possível ter mais de uma fragmentação candidata para uma relação n A escolha final do esquema de fragmentação pode ser um problema de decisão solucionado durante a alocação 23