• Nenhum resultado encontrado

Sintonia fina baseada em ontologia: o caso de visões materializadas

N/A
N/A
Protected

Academic year: 2021

Share "Sintonia fina baseada em ontologia: o caso de visões materializadas"

Copied!
7
0
0

Texto

(1)

Sintonia fina baseada em ontologia:

o caso de vis˜oes materializadas

Aluno - Rafael Pereira de Oliveira1

Orientador - S´ergio Lifschitz1 1 Departamento de Inform´atica

Programa de P´os-graduac¸˜ao / Mestrado Acadˆemico Pontif´ıcia Universidade Cat´olica do Rio de Janeiro (PUC-RIO)

Rio de Janeiro, RJ - Brasil - Caixa Postal 38097 – 22451-900

{rpoliveira@inf.puc-rio.br, sergio@inf.puc-rio.br}

Defesa de proposta 08/2014 Data prevista de defesa 12/2014

Ingresso no curso 2013.1 – Conclus˜ao prevista 2014.2 Etapas futuras: Defesa de proposta, defesa de dissertac¸˜ao.

Resumo. H´a uma crescente demanda por ferramentas que automatizem tare-fas complexas relacionadas com sistemas computacionais. No caso particular de sistemas de informac¸˜ao e bancos de dados, especificamente no que diz re-speito ao SGBD, podemos citar as tarefas relacionadas `as atividades de sin-tonia fina (database tuning). Existe uma proposta de um framework, chamado Outer-tuning, que serve para apoiar a sintonia fina adicionando semˆantica ao processo. Trata-se de uma abordagem que oferece transparˆencia e confiabi-lidade acerca das alternativas dispon´ıveis para poss´ıveis cen´arios no SGBD, possibilitando a combinac¸˜ao de estrat´egias independentes para solucionar um ´unico problema e permitindo a extrac¸˜ao de justificativas para poss´ıveis ac¸˜oes de sintonia fina. Atrav´es do uso de uma ontologia espec´ıfica para sintonia fina de bancos de dados relacionais, ´e poss´ıvel entender os conceitos envolvidos e gerar, de maneira autom´atica, novas pr´aticas de sintonia fina, que podem ser obtidas a partir das pr´aticas existentes (uso de inferˆencias) ou de novas re-gras e conceitos que venham a surgir no futuro. Essa dissertac¸˜ao de mestrado prop˜oe, inicialmente, a implementac¸˜ao do framework Outer-Tuning para apoiar o DBA (e possivelmente outros usu´arios) nas escolhas envolvidas na atividade de sintonia fina. Para isso ´e formalizada uma arquitetura de software adequada para atender os requisitos funcionais. Este trabalho tamb´em inclui a extens˜ao da ontologia de dom´ınio para contemplar soluc¸˜oes de sintonia fina com o uso de vis˜oes materializadas. Desta forma, ´e poss´ıvel propor o uso de heur´ısticas na ontologia de tarefas para realizar a sintonia fina n˜ao somente por meio de ´ındices mas tamb´em atrav´es do uso de vis˜oes materializadas. Essa ontologia pode ser usada no framework Outer-Tuning de forma a permitir uma avaliac¸˜ao experimental da qualidade dos resultados obtidos utilizando-se um benchmark. Palavras-chave: sintonia fina, vis˜oes, materializac¸˜ao, ontologia, framework.

(2)

1. Fundamentac¸˜ao te´orica

Apresenta-se aqui, os principais conceitos envolvidos no trabalho. Descreve-se breve-mente1 os conceitos de sintonia fina, ontologia e vis˜ao materializada para um melhor

entendimento da proposta de pesquisa apresentada.

As aplicac¸˜oes e os usu´arios que acessam bases de dados demandam cada vez mais que os Sistemas Gerenciadores de Bancos de Dados (SGBDs) respondam `as suas requisic¸˜oes no menor tempo de resposta poss´ıvel, e que tenham uma maior vaz˜ao (n´umero de transac¸˜oes por unidade de tempo)[Shasha and Bonnet 2002]. Para atin-gir esses objetivos, administradores de bancos de dados (DBAs) utilizam estrat´egias de sintonia fina (tuning) sobre o projeto f´ısico do banco de dados, ajustando de suas configurac¸˜oes, parˆametros, projeto f´ısico, selec¸˜ao de estruturas de acesso, duplicac¸˜ao de estruturas f´ısicas, determinac¸˜ao dos objetos a serem particionados e seus respecti-vos tipos de particionamento, de acordo com a carga de trabalho executada no banco [Shasha and Bonnet 2002][Bruno 2012][Ramarkrishnan and Gehrke 2008][Salles 2004]. Uma das ac¸˜oes de sintonia fina poss´ıvel ´e a criac¸˜ao de vis˜oes materializadas (VM). Vis˜oes s˜ao tabelas “virtuais” definidas atrav´es de uma consulta sobre tabelas persisti-das pelo banco de dados. O SGBD armazena as definic¸˜oes da consulta envolvida, mas n˜ao os seus dados retornados. Vis˜ao materializada ´e uma vis˜ao cujo resultado da con-sulta ´e fisicamente armazenado na base de dados e persistido como se fossem tabelas [Silberschatz et al. 2006]. Hoje j´a s˜ao implementadas pelos SGBDs mais populares do mercado como PostgreSQL, SQL Server, Oracle, e outros [Chirkova and Yang 2011].

Outro conceito importante para esta pesquisa ´e a ontologia. Na ´area de computac¸˜ao define-se ontologia como sendo um conjunto de primitivas representacionais, que modelam um dom´ınio de conhecimento ou discurso. As primitivas s˜ao tipicamente classes (ou conjuntos de objetos), atributos (ou propriedades) e relacionamentos (ou relac¸˜oes entre membros de classes) [Gruber 2009].

2. Caracterizac¸˜ao da contribuic¸˜ao

Encontrar uma configurac¸˜ao ´otima do projeto f´ısico de banco de dados para uma carga de trabalho de forma manual n˜ao ´e uma tarefa trivial. A sintonia fina de banco de dados tem se tornado uma atividade extremamente complexa para as aplicac¸˜oes atu-ais. ´E necess´ario um profundo conhecimento acerca dos detalhes de implementac¸˜ao dos sistemas gerenciadores de banco de dados (SGBDs) e da carga de trabalho submetida [Monteiro et al. 2008].

Faz parte do trabalho de um DBA descrever todas ou, se invi´avel, a maioria das soluc¸˜oes dispon´ıveis e avaliadas em uma atividade de sintonia fina. Al´em da complexi-dade na selec¸˜ao das soluc¸˜oes de sintonia fina o DBA enfrenta o desafio de justificar as decis˜oes tomadas para melhorar o desempenho da execuc¸˜ao de uma determinada carga de trabalho. N˜ao h´a uma ferramenta integrada que o auxilie com argumentos suficientes para justificar as soluc¸˜oes escolhidas pelas ferramentas de sintonia fina, sejam autom´aticas ou semiautom´aticas. Entretanto, um software que realize a sintonia fina de banco de da-dos, que apresente as alternativas que foram pensadas e, ao mesmo tempo, fundamente

(3)

a escolha de cada uma, trar´a uma maior confianc¸a em relac¸˜ao ao uso de ferramentas au-tom´aticas, e facilitando o trabalho do DBA.

Existe uma proposta de um framework, chamado Outer-tuning, que serve para apoiar a sintonia fina adicionando semˆantica ao processo, atrav´es da execuc¸˜ao de heur´ısticas para este fim. O framework outer-tuning procura capturar a carga de trabalho e, com o apoio de uma ontologia de aplicac¸˜ao e do uso de uma m´aquina de inferˆencias sobre os conceitos definidos, realizar a tarefa de sintonia fina (autom´atica ou semiau-tom´atica, de acordo com a decis˜ao do DBA) para a criac¸˜ao, remoc¸˜ao ou reindexac¸˜ao de ´ındices em bancos de dados relacionais [Almeida 2013].

Cabe observar que o outer-tuning n˜ao foi implementado e tˆem-se apenas o modelo conceitual desse framework, envolvendo a ontologia de aplicac¸˜ao de sintonia fina e evi-denciando heur´ısticas de manutenc¸˜ao de ´ındices [Almeida 2013]. Por ser um framework definido sobre a ontologia de aplicac¸˜ao, basta que a mesma seja estendida para contemplar outras opc¸˜oes de soluc¸˜oes de sintonia fina.

Diante disso, o presente trabalho prop˜oe o projeto e a implementac¸˜ao do frame-work outer-tuning, o refinamento da sua ontologia de tarefa e a extens˜ao da sua ontologia de dom´ınio para contemplar os conceitos envolvidos no uso e execuc¸˜ao de heur´ısticas que realizem a sintonia fina de banco de dados com vis˜oes materializadas.

Espera-se que a ferramenta possa recomendar, e executar se solicitada, as poss´ıveis alternativas de soluc¸˜oes para sintonia fina (semi)autom´atica ao mesmo tempo que tenha o poder semˆantico necess´ario para justificar as decis˜oes tomadas. O DBA poder´a ter transparˆencia, semˆantica e confiabilidade acerca das alternativas poss´ıveis, por meio de justificativas concretas para as decis˜oes que foram tomadas.

Al´em disso, o framework outer-tuning ser´a capaz de realizar mais de um tipo de sintonia fina, combinando e comparando soluc¸˜oes distintas como ´ındices e vis˜oes materi-alizadas e ter um maior espac¸o de poss´ıveis soluc¸˜oes.

As principais contribuic¸˜oes esperadas dessa dissertac¸˜ao s˜ao: a) projeto arquite-tural e implementac¸˜ao do framework outer-tuning; b) definic¸˜ao de um processo para extens˜ao da ontologia de dom´ınio, que seja capaz de ser reutilizado em extens˜oes para outros tipos de sintonia fina; c) execuc¸˜ao da extens˜ao da ontologia de dom´ınio para con-templar soluc¸˜oes de sintonia fina com o uso de vis˜oes materializadas; d) definic¸˜ao de uma heur´ıstica para realizar sintonia fina atrav´es de vis˜oes materializadas que pode ser usada no framework; e) avaliac¸˜ao experimental da qualidade dos resultados obtidos a partir da execuc¸˜ao do framework para execuc¸˜ao de sintonia fina utilizando um benchmark.

3. Estado atual do trabalho

Nesta sess˜ao, s˜ao apresentados o estado de todas as tarefas da pesquisa, a situac¸˜ao do desenvolvimento do framework e a extens˜ao da ontologia.

3.1. Tarefas

A presente pesquisa j´a concluiu as seguintes tarefas:

! Pesquisa de ferramentas de sintonia fina autom´aticas e semiautom´aticas;

! Pesquisa e classificac¸˜ao dos principais m´etodos de selec¸˜ao de vis˜oes materializa-das utilizados em ferramentas de sintonia fina autom´atica e semiautom´atica;

(4)

! Pesquisa de m´aquinas de inferˆencia que se integrem `a linguagem Java; ! Implementac¸˜ao da estrutura base e do agente de captura da carga de trabalho; ! Integrac¸˜ao da m´aquina de inferˆencia escolhida JESS2;

! Controle de execuc¸˜ao das regras SWRL3da ontologia atrav´es da API do JESS;

! Instanciac¸˜ao dos conceito de dom´ınio atrav´es da captura da carga de trabalho; Segundo o planejamento de pesquisa, ainda est˜ao abertas as seguintes tarefas:

• Instanciar os demais conceitos da ontologia de dom´ınio;

• Implementar m´etodo de instanciac¸˜ao dos conceitos pr´e-condic¸˜ao das heur´ısticas; • Implementar um m´etodo para execuc¸˜ao das ac¸˜oes de heur´ısticas de sintonia fina,

que v˜ao resultar em comandos DDL sobre o banco de dados [Almeida 2013]; • Realizar a extens˜ao da ontologia de dom´ınio para contemplar VM;

• Definir a heur´ıstica de selec¸˜ao de vis˜oes materializadas baseadas na heur´ıstica de benef´ıcios proposta por [Carvalho 2011] na ontologia de tarefa do framework; • Realizar testes de validac¸˜ao do framework para a execuc¸˜ao de sintonia fina com a

selec¸˜ao de vis˜oes materializadas, usando o benchmark. • Escrita, revis˜ao e defesa da dissertac¸˜ao.

Em resumo, a arquitetura base do framework j´a foi montada e as referˆencias bib-liogr´aficas levantadas.

3.2. Arquitetura da implementac¸˜ao

O framework Outer-Tuning foi projetado com a arquitetura descrita na Figura 1:

Figure 1. ArquiteturaFramework Outer-tuning

O componente CapturadorCargaDeTrabalho ´e o respons´avel por adquirir a carga de trabalho em tempos pr´e-determinados e alimentar o ExecutorDeFuncoes com o resul-tado da captura.

2Jess, the Rule Engine for the JavaTM Platform. http://www.jessrules.com/jess/index.shtml 3SWRL Language. http://www.w3.org/Submission/SWRL

(5)

As bibliotecas foram projetadas para conter func¸˜oes destinadas a extrair informac¸˜oes da carga de trabalho de acordo com as pr´e-condic¸˜oes das heur´ısticas uti-lizadas. Esse desmembramento foi realizado para que, ao se estender uma ontologia para um novo tipo de sintonia fina, o framework seja capaz de absorver novas func¸˜oes sem a ne-cessidade da alterac¸˜ao de seu c´odigo fonte. A ontologia torna-se independente da vers˜ao do framework, podendo ser estendida com a inclus˜ao de biblioteca(s) de func¸˜oes(s).

O componente ExecutorDeFuncoes recebe a) uma carga de trabalho do compo-nente CapturadorCargaDeTrabalho; e b) uma lista de func¸˜oes que s˜ao pr´e-condic¸˜oes de uma heur´ıstica, fornecida pela m´aquina de inferˆencia. A partir da´ı, ele adquire as func¸˜oes da lista atrav´es das bibliotecas de func¸˜oes, executando-as utilizando a carga de trabalho como parˆametro de entrada para cada func¸˜ao. Feito isso, recebe o retorno das func¸˜oes que ser˜ao sempre conceitos previstos na ontologia (ainda n˜ao instanciados na m´aquina de inferˆencia) e os repassa para o componente InstanciadorDeConceitos.

O componente InstanciadorDeConceitos recebe os conceitos adquiridos e os ins-tancia na m´aquina de inferˆencia.

A m´aquina de inferˆencia ´e respons´avel por ler a ontologia de um arquivo, fornecer a lista de func¸˜oes que s˜ao pr´e-condic¸˜ao das heur´ısticas contidas na ontologia, e ap´os ter todos os conceitos pr´e-condic¸˜oes instanciados, inferir as ac¸˜oes de sintonia fina previstas nas heur´ısticas, repassando-as para o componente ExecutorDeAcoes.

O componente ExecutorDeAcoes ´e respons´avel por receber da m´aquina de in-ferˆencia as ac¸˜oes de sintonia fina inferidas, e execut´a-las no banco de dados.

3.3. Extens˜ao da ontologia

Planeja-se implementar a heur´ıstica de selec¸˜ao de vis˜oes materializadas como uma ex-tens˜ao da ontologia de [Almeida 2013]. Como o escopo dessa pesquisa n˜ao prevˆe a criac¸˜ao de uma nova heur´ıstica de selec¸˜ao de vis˜oes materializadas, dever´a utilizar-se uma heur´ıstica j´a descrita e validada na literatura.

A heur´ıstica escolhida para a extens˜ao foi a heur´ıstica de benef´ıcios, originalmente proposta para ´ındices [Salles 2004] e posteriormente adaptada para vis˜oes materializadas [Carvalho 2011]. Os motivos que levaram a essa escolha foram: trata-se de uma heur´ıstica j´a utilizada para a tarefa de selec¸˜ao de vis˜oes materializadas; ´e a base da heur´ıstica de ´ındices que foi implementada na ontologia de [Almeida 2013]; e tem-se a ferramenta de selec¸˜ao de vis˜oes materializadas [Carvalho 2011], implementada e pronta para ser uti-lizada como base de comparac¸˜ao com os resultados do framework Outer-Tuning.

A ideia b´asica da heur´ıstica de benef´ıcios ´e atribuir um determinado valor a uma vis˜ao materializada, seja ela hipot´etica (n˜ao existe fisicamente no banco de dados) ou real. Esse valor ´e a diferenc¸a entre os custos obtidos atrav´es do plano de execuc¸˜ao de uma determinada consulta da carga de trabalho com, e sem, a presenc¸a da vis˜ao materializada. Esse custo pode ser positivo, caso o uso da vis˜ao traga benef´ıcio na execuc¸˜ao de uma consulta, ou negativo, em caso de malef´ıcio.

Esse custo ´e recalculado sempre que uma consulta da carga de trabalho ´e cap-turada. Caso o valor de uma vis˜ao materializada hipot´etica chegue a um valor maior que o custo de criac¸˜ao da mesma, a heur´ıstica determina que a vis˜ao materializada seja criada fisicamente no banco de dados, e tem-se ent˜ao uma ac¸˜ao de sintonia fina.

(6)

4. Trabalhos relacionados na ´area

Existem muitas ferramentas para a selec¸˜ao autom´atica e semiautom´atica de vis˜oes materializadas que utilizam diferentes m´etodos de selec¸˜ao do conjunto de consultas para a criac¸˜ao de vis˜oes materializadas. Entre elas, podemos citar: a) pesquisas que utilizam heur´ısticas gulosas como [Kumar and Kumar 2012], [Aouiche et al. 2006], [Chan et al. 2001]; b) m´etodos de selec¸˜ao baseados em heur´ısticas randˆomicas como apresentados em [Kumar and Kumar 2013],[Yuhang et al. 2010], [Gao and Song 2010], [Sun and Wang 2009]; c) abordagens baseadas em heur´ısticas gen´eticas e evolucion´arias como as apresentadas por [Kumar and Kumar 2012], [Talebian and Kareem 2010], [Lawrence 2006]; d) heur´ısticas h´ıbridas como [Yuhang et al. 2010] que apresenta uma mistura de abordagens gen´etica e randˆomica; e) heur´ısticas espec´ıficas como a de [Carvalho 2011].

Apesar de utilizarem a soluc¸˜ao de vis˜oes materializadas para realizar sintonia fina, nenhuma das abordagens se prop˜oe a fornecer ao DBA uma justificativa das decis˜oes e tornar expl´ıcito o racioc´ınio utilizado na atividade de sintonia fina.

Outra diferenc¸a ´e que ao contr´ario das pesquisas citadas, o framework outer-tuning tem a capacidade de combinar e comparar heur´ısticas atrav´es de inferˆencias. Com isso, pode-se avaliar n˜ao apenas as soluc¸˜oes espec´ıficas de um mesmo tipo de estrutura de acesso, mas comparar soluc¸˜oes de tipos diferentes de t´ecnicas de sintonia fina como a criac¸˜ao de ´ındices, vis˜oes, particionamento e qualquer outra t´ecnica de que esteja prevista na ontologia.

5. Avaliac¸˜ao dos resultados

Para validar a proposta, planeja-se a execuc¸˜ao do framework Outer-Tuning utilizando o benchmark TPC-H4, Ap´os obtidas as sugest˜oes de vis˜oes materializadas do framework,

elas dever˜ao ser comparadas com soluc¸˜oes propostas por outras ferramentas, que sugerem ac¸˜oes de sintonia fina atrav´es de vis˜oes materializadas.

Espera-se que as soluc¸˜oes sugeridas pelo framework Outer-Tuning tragam um benef´ıcio para a execuc¸˜ao da carga de trabalho, t˜ao bom quanto `as ferramentas dispon´ıveis e que n˜ao utilizam semˆantica para a selec¸˜ao de vis˜oes materializadas.

Os resultados obtidos at´e agora mostram a viabilidade no desenvolvimento do framework outer-tuning, visto que a m´aquina de inferˆencia JESS j´a se ´e capaz de inferir todos os conceitos b´asicos da ontologia de dom´ınio proposta, atrav´es das consultas da carga de trabalho capturada.

Como a implementac¸˜ao ainda n˜ao foi finalizada, n˜ao se pode realizar ainda ex-perimentos que apoiem resultados pr´aticos e concretos e executar o ciclo completo da heur´ıstica de criac¸˜ao de vis˜oes materializadas proposta. Por´em a estrutura base j´a proje-tada e implemenproje-tada.

Espera-se nos pr´oximos passos ent˜ao, a finalizac¸˜ao do framework outer-tuning, a extens˜ao da ontologia de dom´ınio e a definic¸˜ao da heur´ıstica de selec¸˜ao de vis˜oes materi-alizadas e, por fim, realizar a avaliac¸˜ao experimental da qualidade dos resultados obtidos pelo framework e da ontologia proposta.

(7)

References

Almeida, A. C. B. d. (2013). Framework para apoiar a sintonia fina de banco de dados. PhD thesis, Pontif´ıcia Universidade Cat´olica do Rio de Janeiro - PUC-RIO.

Aouiche, K., Jouve, P., and Darmont, J. (2006). Clustering-based materialized view se-lection in data warehouses. 10th East European conference on Advances in Databases and Information Systems.

Bruno, N. (2012). Automated Physical Database Design and Tuning. CRC Press, New York, New York, USA.

Carvalho, A. W. (2011). Criac¸˜ao Autom´atica de Vis˜oes Materializadas em SGBDs Rela-cionais. MsC. thesis. Pontif´ıcia Universidade Cat´olica do Rio de Janeiro - PUC-RIO. Chan, G., Li, Q., and Feng, L. (2001). Optimized design of materialized views in a

real-life data warehousing environment. Intl. Journal of Information Technology, 7(1):1–25. Chirkova, R. and Yang, J. (2011). Materialized Views. Foundations and Trends in

Databases, 4(4):296–405.

Gao, L. and Song, X. (2010). An Ant Colony based algorithm for optimal selection of Materialized view. Conf. Intelligent Computing and Integrated Systems.

Gruber, T. (2009). Ontology. Encyclopedia of Database Systems, pages 1963–1965. Kumar, T. and Kumar, S. (2012). Materialized view selection using genetic algorithm.

Contemporary Computing, pages 225–237.

Kumar, T. and Kumar, S. (2013). Materialized view selection using iterative improvement. Advances in Computing and Information Technology, pages 205–213.

Lawrence, M. (2006). Multiobjective genetic algorithms for materialized view selection in OLAP data warehouses. GECCO ’06, page 699.

Monteiro, J. M., Brayner, A., and Lifschitz, S. (2008). Estado da Arte em Auto-Sintonia do Projeto F´ısico de BD. Monografias em Ciˆencia da Computac¸˜ao - PUC-RIO. Ramarkrishnan, R. and Gehrke, J. (2008). Sistemas de gerˆenciamento de banco de dados.

McGraw Hill.

Salles, M. A. V. (2004). Criac¸˜ao autˆonoma de ´ındices em bancos de dados.

Shasha, D. and Bonnet, P. (2002). Database Tuning: Principles, Experiments, and Trou-bleshooting Techniques. Elsevier Science.

Silberschatz, A., Korth, H. F., and Sudarshan, S. (2006). Sistema de banco de dados. CAMPUS - RJ.

Sun, X. and Wang, Z. (2009). An Efficient Materialized Views Selection Algorithm Based on PSO. Intl. Workshop on Intelligent Systems and Applications, pages 1–4.

Talebian, S. H. and Kareem, S. A. (2010). Lexicographic Ordering Genetic Algorithm for Solving Multi-objective View Selection Problem. Intl. Conf. on Computer Research and Development, pages 110–115.

Yuhang, Z., Qi, L., and Wei, Y. (2010). Materialized view selection algo-rithm—CSSA VSP. Intl. Conf. Comput. Intel. and Natural Computing (CINC), pages 68–71.

Referências

Documentos relacionados

O Fórum de Integração Estadual: Repensando o Ensino Médio se efetiva como ação inovadora para o debate entre os atores internos e externos da escola quanto às

De acordo com o Consed (2011), o cursista deve ter em mente os pressupostos básicos que sustentam a formulação do Progestão, tanto do ponto de vista do gerenciamento

No entanto, maiores lucros com publicidade e um crescimento no uso da plataforma em smartphones e tablets não serão suficientes para o mercado se a maior rede social do mundo

No final, os EUA viram a maioria das questões que tinham de ser resolvidas no sentido da criação de um tribunal que lhe fosse aceitável serem estabelecidas em sentido oposto, pelo

Para analisar as Componentes de Gestão foram utilizadas questões referentes à forma como o visitante considera as condições da ilha no momento da realização do

Taking into account the theoretical framework we have presented as relevant for understanding the organization, expression and social impact of these civic movements, grounded on

Neste estudo foram estipulados os seguintes objec- tivos: (a) identifi car as dimensões do desenvolvimento vocacional (convicção vocacional, cooperação vocacio- nal,

Neste tipo de situações, os valores da propriedade cuisine da classe Restaurant deixam de ser apenas “valores” sem semântica a apresentar (possivelmente) numa caixa