Avançar para a área de conteúdo

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Todas as informações enviadas são seguras.

  • Fechar [x]

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

Ao clicar em Enviar, você concorda com os termos e condições do developerWorks.

Todas as informações enviadas são seguras.

  • Fechar [x]

Modelagem bitemporal com o InfoSphere Data Architect, Parte 2: Modelando requisito temporal de período de sistema

Balaji Kadambi, Advisory Software Engineer, IBM
Photo of Balaji Kalambi
Balaji Kadambi é engenheiro de software consultor no laboratório da IBM em Bengaluru, Índia. Atualmente, ele faz parte da equipe de desenvolvimento de InfoSphere Data Architect e participou do desenvolvimento do recurso bitemporal no InfoSphere Data Architect V7.6.0. Suas áreas de interesse incluem Modelagem de dados e Bancos de dados. Balaji tem mais de 12 anos de experiência trabalhando no segmento de mercado de software comercial.
Rahul Jain, Staff Software Engineer, IBM
Photo of author Rahul Jain
Rahul Jain é engenheiro de software da equipe no laboratório da IBM em Bengaluru, Índia. Atualmente, ele faz parte da equipe de desenvolvimento do InfoSphere Data Architect. Suas áreas de conhecimento incluem Modelagem de dados e tecnologias da plataforma Eclipse. Rahul é mestre em tecnologia da informação pelo IIIT, em Bengaluru, Índia.

Resumo:  Regulamentos do segmento de mercado e pressões competitivas estão fazendo com que departamentos de TI precisem manter mais dados por períodos maiores e fornecer melhores maneiras para usuários corporativos analisarem eventos passados, atuais e futuros. Para alcançar esses objetivos, as firmas estão desenvolvendo aplicativos com conhecimento de tempo e consultas com bancos de dados temporais. A partir do IBM ® InfoSphere® Data Architect versão 7.6, é possível modelar bancos de dados relacionais como bancos de dados relacionais temporais. Esta série de dois artigos mostrará como acelerar a modelagem de dados temporais com banco de dados DB2 para z/OS versão 10, adotando InfoSphere Data Architect 7.6.

Visualizar mais conteúdo nesta série

Data:  15/Dez/2011
Nível:  Introdutório Também disponível em :   Inglês
Atividade:  282 visualizações
Comentários:  


Introdução

Na Parte 1 desta série de artigos, você aprendeu como usar o InfoSphere Data Architect versão 7.6 para modelar dados temporais básicos de período de negócios para o Sample Bank. Nesta continuação da série, você aprenderá como modificar um modelo de dados existente para modelar requisitos bitemporais, usando InfoSphere Data Architect versão 7.6. Modelagem bitemporal oferece muita flexibilidade em design de dados, dando a possibilidade de consultar dados de período do sistema e de período de negócios.


Descrição do problema

Agora que você modelou como controlar mudanças nos juros pela duração de um empréstimo, um novo requisito é definido. O Banco Central divulga uma notificação dizendo que os juros de referência serão alterados duas semanas antes de se tornarem efetivos. O departamento de empréstimo doméstico atualiza manualmente o sistema de empréstimo com a nova taxa de juros, bem como a data na qual a mudança será efetiva.

No entanto, o Banco Central especificou uma taxa de juros incorreta devido a um erro de cálculo, portanto a taxa especificada no Sample Bank também está incorreta agora. O resultado é que a cobrança da parcela gerada automaticamente para os clientes no começo do mês estava incorreta. Infelizmente, o Banco Central só informou o Sample Bank sobre o erro mais de duas semanas após as cobranças de parcela serem geradas. O erro foi corrigido no sistema do Sample Bank, mas cobranças incorretas foram geradas. Pouco antes de serem enviadas aos clientes, o Sample Bank enviou um comunicado a eles informando sobre o problema e especificando que a diferença seria reembolsada na cobrança emitida no mês seguinte.

Naturalmente, alguns solicitantes de crédito entraram em contato com o departamento de empréstimo doméstico com perguntas sobre as cobranças incorretas. O departamento deve poder consultar o sistema e descobrir a taxa de juros correta para o solicitante quando a cobrança foi gerada, para informar aos clientes de quanto será o reembolso na cobrança gerada no mês seguinte.

Para lidar com esse novo requisito, você irá modificar a tabela LOAN_INTEREST para controlar os dados de período do sistema e período de negócios, o que permite aos responsáveis pelo atendimento ao cliente consultar os dados quando necessário.

É possível modificar a tabela LOAN_INTEREST de uma das seguintes maneiras.

  1. Modificar o modelo de dados físico Loan_Model.dbm que você desenvolveu na parte 1.
  2. Realizar engenharia reversa no banco de dados para criar e modificar um novo modelo.

Observação: A seção a seguir irá descrever resumidamente como realizar engenharia reversa em um banco de dados, para que você possa alterar as origens de dados existentes. Caso deseje passar para a seção seguinte, clique aqui.


Realizar engenharia reversa no modelo de empréstimo a partir do banco de dados

Siga estas etapas para realizar engenharia reversa no banco de dados de empréstimo para criar um novo modelo de dados físico no Data Project Explorer.

  1. No menu principal, clique em File > New > Physical Data Model. O assistente New Physical Data Model abre.
  2. Na página Model File do assistente, especifique um nome de arquivo e selecione a opção Create from reverse engineering, como mostra a Figura 1, e clique em Next.


    Figura 1. Página de opção Model File


  3. Na página Source, selecione a opção Database, como mostra a Figura 2, e clique em Next.


    Figura 2. Página de opção Source


  4. Na página Select Connection, para criar uma nova conexão, clique no botão New ou selecione uma conexão existente, como mostra a Figura 3, e clique em Next.

    Figura 3. Página Select Connection


  5. Na página Select Objects, selecione LOAN_SCHEMA como mostra a Figura 4, e clique em Next.


    Figura 4. Página Select Objects


  6. Na página Database Elements, garanta que todas as caixas de seleção de elemento de banco de dados estão selecionadas, como mostra a Figura 5, e clique em Finish.


    Figura 5. Página Database Elements



Inspecione o modelo de dados físico

Para visualizar o modelo de dados físico com outros olhos, você pode inspecioná-lo no Data Project Explorer. Observe as tabelas BORROWER, LOAN e LOAN_INTEREST no esquema LOAN_SCHEMA, como mostra a Figura 6.


Figura 6. Visualização do modelo de dados físico no Data Project Explorer


Ativando comportamento temporal do sistema em uma tabela

No modelo atual, as correções feitas nos registros com relação a juros e valor de parcelas na tabela LOAN_INTEREST não podem ser calculadas. Para poder controlar alterações no nível de registro nos juros de um empréstimo, é preciso incluir controle de período do sistema na tabela LOAN_INTEREST.

Faça o seguinte para incluir colunas de período do sistema na tabela.

  1. Selecione a tabela LOAN_INTEREST no Data Project Explorer. As propriedades da tabela são exibidas na visualização Properties.
  2. Clique na guia Columns para incluir colunas do período do sistema na tabela. Selecione a caixa de seleção System time period, como mostra a Figura 7.

    Figura 7. Incluindo colunas de período do sistema na tabela LOAN_INTEREST


  3. Revise as seguintes alterações no modelo de dados físico.
    • Controle de período do sistema não está ativado.
    • Três novas colunas foram incluídas automaticamente: SYSTEM_START_TIME, SYSTEM _END_TIME e TRANS_ID.
    • A tabela de históricos LOAN_INTEREST_HIST foi criada automaticamente, contendo as mesmas colunas que a tabela LOAN_INTEREST.
    Essas modificações são mostradas na Figura 8.

    Figura 8. Visualização do Data Project Explorer do modelo de dados físico de empréstimo modificado


  4. Clique na guia Versioning da visualização de propriedades da tabela LOAN_INTEREST, mostrada na Figura 9, para ver que a nova tabela de históricos LOAN_INTEREST_HIST está vinculada à tabela LOAN_INTEREST.

    Figura 9. Guia Versioning da tabela LOAN_INTEREST



    Observação: A tabela de históricos é automaticamente atualizada sempre que a tabela temporal é atualizada, e qualquer modificação feita na tabela LOAN_HISTORY é automaticamente aplicada em sua tabela de históricos relacionada. A tabela de históricos é excluída automaticamente quando a versão é removida na tabela temporal. Caso deseje remover versão de uma tabela temporal de período do sistema, pode selecionar a opção Do not establish versioning relationship with a history table.
  5. Como foi especificado que a tabela LOAN_INTEREST tem propriedades de período do sistema e período de negócios, ela é considerada uma tabela bitemporal. Para implementar suas alterações, você deve comparar o modelo atualizado com o banco de dados de origem, e gerar o script DDL que pode ser compartilhado com o administrador do banco de dados.

Propagar as alterações para o banco de dados

  1. Use o Editor de comparação para comparar e fundir suas alterações, e em seguida gere o DDL de delta. Clique com o botão direito no esquema LOAN_SCHEMA e selecione Compare With -> Original Source conforme exibido na Figura 10. Se o modelo de dados não tiver passado por engenharia reversa, selecione a opção Another Data Object durante a comparação e selecione o objeto LOAN_SCHEMA no Data Source Explorer.

    Figura 10. Comparando um modelo com uma origem


  2. Na janela Filtering Criteria, mantenha as opções padrão e clique em OK para comparar o modelo com o banco de dados de origem.
  3. O Editor de comparação é aberto. Inspecione o resultado da comparação no Editor de comparação para ver as seguintes diferenças, também mostradas na Figura 11.
    • A tabela LOAN_INTEREST_HIST é associada com a tabela temporal LOAN_INTEREST. Essa atualização não está presente no banco de dados.
    • A tabela LOAN_INTEREST tem novas colunas de período do sistema, que não estão presentes no banco de dados.


    Figura 11. Comparando um modelo com seu banco de dados de origem


  4. Especifique que deseja fundir as propriedades de período do sistema no banco de dados de origem. Selecione a linha temporalPeriods no Editor de comparação e clique no botão Copy from Left to Right, como mostrado na Figura 12.

    Figura 12. Fundindo alterações no Editor de comparação


    A tabela de históricos e tabelas de período do sistema são copiadas para o lado direito do Editor de comparação.
  5. Clique no botão Generate Right Delta DDL, mostrado na Figura 13.

    Figura 13. Gerando DDL de delta implementável no Editor de comparação


  6. Salve o DDL de delta para que possa compartilhá-lo com o administrador de seu banco de dados. O administrador do banco de dados irá implementar as alterações para você no servidor de banco de dados.

Inspecione o modelo bitemporal implementado no servidor de banco de dados

Após o administrador de banco de dados executar o DDL para implementar suas mudanças, você pode visualizá-las no Data Source Explorer.

  1. Expanda o esquema LOAN_SCHEMA para localizar a nova tabela LOAN_INTEREST_HIST, e verifique as alterações na tabela LOAN_INTEREST. O esquema atualizado é mostrado na Figura 14.

    Figura 14. Verificando alterações no Data Source Explorer


  2. Ao inspecionar as propriedades da tabela LOAN_INTEREST, você vê que as propriedades bitemporais (período de tempo do sistema e período de tempo de negócios) estão ativadas, como mostra a Figura 15.

    Figura 15. Verificando propriedades bitemporais da tabela LOAN_INTEREST


  3. Na guia Versioning, você verifica que a tabela LOAN_INTEREST_HIST está vinculada à tabela LOAN_INTEREST, como mostra a Figura 16.

    Figura 16. Verificando a tabela de históricos da tabela LOAN_INTEREST



Conclusão

Neste artigo, você aprendeu a modelar propriedades bitemporais em tabelas. Com pouco esforço, você pôde incluir um período do sistema em uma tabela e criar uma tabela de históricos associada. Quando você comparou e fundiu as alterações, gerou um script DDL de delta para implementar as alterações no banco de dados de destino.

Com o InfoSphere Data Architect versão 7.6, é possível acelerar o design de dados temporais e o processo de implementação. A curva de aprendizado é reduzida por meio de uma interface simples que ajuda modeladores a entender recursos específicos de banco de dados. É fácil implementar as alterações temporais com um simples gerador de DDL de delta que coloca as alterações em um script simples, que executa no servidor de banco de dados.


Agradecimentos

Agradeço a Erin Wilson pelas sugestões valiosas e pela revisão desse artigo.


Recursos

Aprender

Obter produtos e tecnologias

  • Faça o download de uma versão de avaliação do InfoSphere Data Architect V7.6.0 e saiba como criar um modelo bitemporal eficientemente.

  • Crie seu próximo projeto de desenvolvimento com a versão de teste do software IBM, disponível para download diretamente no developerWorks, ou passe algumas horas no SOA Sandbox aprendendo a implementar Arquitetura Orientada a Serviços de modo eficiente.

Discutir

Sobre os autores

Photo of Balaji Kalambi

Balaji Kadambi é engenheiro de software consultor no laboratório da IBM em Bengaluru, Índia. Atualmente, ele faz parte da equipe de desenvolvimento de InfoSphere Data Architect e participou do desenvolvimento do recurso bitemporal no InfoSphere Data Architect V7.6.0. Suas áreas de interesse incluem Modelagem de dados e Bancos de dados. Balaji tem mais de 12 anos de experiência trabalhando no segmento de mercado de software comercial.

Photo of author Rahul Jain

Rahul Jain é engenheiro de software da equipe no laboratório da IBM em Bengaluru, Índia. Atualmente, ele faz parte da equipe de desenvolvimento do InfoSphere Data Architect. Suas áreas de conhecimento incluem Modelagem de dados e tecnologias da plataforma Eclipse. Rahul é mestre em tecnologia da informação pelo IIIT, em Bengaluru, Índia.

Ajuda para Relatar Abuso

Relatar abuso

Obrigado. Esta entrada foi sinalizada para atenção do moderador.


Ajuda para Relatar Abuso

Relatar abuso

Falha no envio do Relatório de abuso. Tente novamente mais tarde.


developerWorks: Registre-se


Precisa de um ID IBM?
Esqueceu seu ID IBM?


Esqueceu sua senha?
Alterar sua senha

Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Na primeira vez que você efetua sign in no developerWorks, um perfil é criado para você. Informações selecionadas do seu perfil developerWorks são exibidas ao público, mas você pode editá-las a qualquer momento. Seu primeiro nome, sobrenome (a menos que escolha ocultá-los), e seu nome de exibição acompanharão o conteúdo que postar.

Selecione seu nome de exibição

Ao se conectar ao developerWorks pela primeira vez, é criado um perfil para você e é necessário selecionar um nome de exibição. O nome de exibição acompanhará o conteúdo que você postar no developerWorks.

Escolha um nome de exibição de 3 - 31 caracteres. Seu nome de exibição deve ser exclusivo na comunidade do developerWorks e não deve ser o seu endereço de email por motivo de privacidade.

(Deve possuir de 3 a 31 caracteres.)


Ao clicar em Enviar, você concorda com os termos de uso do developerWorks.

 


Classificar este artigo

Comentários

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=80
Zone=Information Management
ArticleID=780706
ArticleTitle=Modelagem bitemporal com o InfoSphere Data Architect, Parte 2: Modelando requisito temporal de período de sistema
publish-date=12152011

Conheça a IBM da sua cidade

Virtual Branch Office Brasil

A IBM está mais perto do que você imagina!


Tags

Help
Use o campo de pesquisa para encontrar todos os tipos de conteúdo no My developerWorks com essa tag.

Use a barra de rolagem para ver mais ou menos tags.

Tags populares mostra as principais tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Minhas tags mostra suas tags para esta zona de conteúdo em particular (por exemplo, Java technology, Linux, WebSphere).

Use o campo de pesquisa para localizar todos os tipos de conteúdo no Meu developerWorks com essa tag. Tags populares mostra as tags principais para essa zona de conteúdo particular (por exemplo, tecnologia Java, Linux, WebSphere). My tags shows your tags for this particular content zone (for example, Java technology, Linux, WebSphere). Minhas tags mostra as suas tags para essa zona de conteúdo em particular (por exemplo, tecnologia Java, Linux, WebSphere).