Considere que em um Banco de Dados (BD) há duas tabelas: RCLM_CLIENTE (Reclamações de Clientes), com cerca de 30.000 linhas, e TP_MTVO_RCLM (Tipo do Motivo da Reclamação), com 150 linhas, que atendem à área de Ouvidoria de uma organização. Considere ainda que:
− Há uma transação crítica no ambiente online que requer a leitura das duas tabelas em conjunto, pois sempre que recupera uma reclamação, precisa obter a descrição (DS_MTVO) do motivo.
− São cerca de 4.000 usuários concorrentes. Usuários com permissão executam a transação crítica 5 vezes ao dia, em média, sendo que, em uma mesma execução, milhares das linhas da tabela RCLM_CLIENTE são acessadas.
− A tabela de TP_MTVO_RCLM tem perfil estável, quase não há inclusões, alterações e exclusões.
O Administrador, considerando que é necessário que o projeto físico do BD atenda ao requisito de qualidade de alta performance na execução da transação crítica, propôs, corretamente:
- A. Colocar a tabela RCLM_CLIENTE na 3a forma normal não permitindo redundar a coluna DS_MTVO. Assim, ao se fazer o JOIN das tabelas, pode-se eliminar cerca de 20.000 acessos/dia à tabela TP_MTVO_RCLM.
- B. Desnormalizar a tabela RCLM_CLIENTE, ferindo a 3a forma normal, redundando a coluna DS_MTVO. Assim evita-se o JOIN das tabelas, eliminando cerca de 20.000 acessos/dia à tabela TP_MTVO_RCLM. A estabilidade da coluna DS_MTVO foi fundamental para esta decisão.
- C. Colocar a tabela TP_MTVO_RCLM na 3a forma normal, não permitindo redundar a coluna DS_MTVO. Assim, ao se fazer o JOIN das tabelas, pode-se eliminar cerca de 20.000 acessos/dia à tabela RCLM_CLIENTE.
- D. Desnormalizar a tabela TP_MTVO_RCLM, ferindo a 1a forma normal, ou seja, redundar a coluna DS_MTVO. Assim, ao se realizar o JOIN das tabelas, eliminam-se cerca de 20.000 acessos/dia à tabela RCLM_CLIENTE. A estabilidade da tabela TP_MTVO_RCLM foi garantida nesta decisão.
- E. Criar uma 3a tabela através do operador UNION, combinando os resultados da transação crítica em um único result set, inserindo- os como linhas desta tabela, a partir de todas as queries envolvidas na execução. Isso é possível, pois o número e a ordem das colunas não são idênticos em todas as queries.