Esta série de artigos está dividida em duas partes. Este artigo (Parte 1) descreve a modelagem de dados temporais de período de aplicativo e mostra como é possível usar o InfoSphere Data Architect 7.6 para realizar as seguintes tarefas.
- Criar um modelo de dados lógicos temporal.
- Transformar o modelo de dados lógicos temporal em um modelo de dados físico temporal para DB2® para z/OS® versão 10 (modo Nova Função).
- Gerar DDL com sintaxe temporal específica para DB2 para z/OS versão 10 (modo Nova Função) que pode ser executado no servidor de banco de dados.
A Parte 2 desta série descreve modelagem bitemporal que exige modificações em um modelo existente, e mostra como é possível usar o InfoSphere Data Architect versão 7.6 para incluir suporte bitemporal em um modelo de dados físico.
Você é membro da divisão de TI do Sample Bank. Sua equipe quer desenvolver um aplicativo para o departamento de empréstimo doméstico. O departamento de empréstimo doméstico especificou os seguintes requisitos que o aplicativo deve ter.
- O banco oferece empréstimos domésticos a juros variáveis associados a uma taxa de referência que é especificada pelo Banco Central, pela duração que o cliente especificar.
- O banco revisa os juros do empréstimo doméstico sempre que recebe uma notificação de que a taxa de referência será modificada.
- A notificação de mudança na taxa de referência é emitida pelo Banco Central duas semanas antes da data em que a mudança será efetivada de fato. Os juros do empréstimo doméstico são então calculados com base na nova taxa de referência e inseridos manualmente no sistema.
- A parcela mensal é baseada no valor do empréstimo e nos juros do momento.
- As mudanças de juros devem ser controladas durante a duração do empréstimo.
Como mostra a Figura 1, você cria uma versão simplificada do modelo de dados lógicos chamada Loan_Model.ldm, que contém entidades, atributos e relacionamentos que modelam os requisitos não temporais listados na descrição anterior do problema.
Figura 1. Modelo de dados lógicos simplificado do sistema de empréstimo
A entidade LOAN modela informações sobre um empréstimo em particular, incluindo:
- LOAN ID: código identificador exclusivo para um empréstimo cedido pelo banco.
- BORROWER ID: código identificador exclusivo para o solicitante de crédito.
- LOAN AMOUNT: valor do empréstimo concedido pelo banco ao solicitante de crédito.
A entidade BORROWER modela informações sobre um solicitante de empréstimo, incluindo:
- BORROWER ID: código identificador exclusivo do solicitante de crédito.
- BORROWER NAME: nome do solicitante de crédito.
- BORROWER ADDRESS: endereço do solicitante de crédito.
A entidade LOAN INTEREST modela as informações sobre os juros e as mensagens esperadas de um solicitante de empréstimo, incluindo:
- LOAN ID: código identificador exclusivo para um empréstimo cedido pelo banco.
- INTEREST: juros variáveis do empréstimo, calculados com base em uma taxa de referência.
- INSTALLMENT AMOUNT: o valor da parcela que o solicitante paga, com base nos juros variáveis.
Criando atributos temporais com período de aplicativo em uma entidade
O design atual não permite que as alterações nos juros sejam controladas. Para controlar as mudanças de juros para um empréstimo, você precisa decidir incluir atributos de período de negócios na entidade LOAN INTEREST. Os atributos modelam uma maneira de controlar as alterações nos juros em um período de tempo relevante para os negócios. Você com certeza irá especificar que não há sobreposição nos períodos de negócios, pois há apenas uma taxa de juros associada com um empréstimo durante esse período de negócios.
Observação: Os termos período de aplicativo e período de negócios são usados com o mesmo sentido neste artigo. Ambos os termos descrevem como modelar alterações em um período de tempo que seja relevante para os negócios.
Isso pode ser feito realizando as seguintes etapas.
- Selecione a entidade LOAN INTEREST no Data Project Explorer. As propriedades da entidade são exibidas na visualização Properties.
- Para criar atributos de período de negócios na entidade, faça o seguinte.
- Selecione a caixa de seleção Business time period para incluir um período de negócios.
- Selecione a opção Business period without overlap para especificar que não há sobreposição de períodos de negócios para a entidade LOAN INTEREST selecionada, como mostra a Figura 2.
Figura 2. Incluindo atributos de período de negócios na entidade LOAN INTEREST
Ao selecionar essas opções, os atributos APPLICATION_START_TIME e APPLICATION_END_TIME foram incluídos na entidade LOAN INTEREST que modela a capacidade de controlar e consultar mudanças nos juros.
Observação: Não é possível excluir as colunas de período de aplicativo. O ícone Delete é desativado para atributos de período de aplicativo, como mostrado anteriormente na Figura 2. Ao desativar os atributos de período de negócios, os atributos relevantes são automaticamente removidos. - O modelo de dados lógicos com atributos de período de negócios é mostrado na Figura 3.
Figura 3. Incluindo recursos temporais no modelo atualizado de dados lógicos
Observação: O ícone da entidade temporal é diferente do ícone que indica uma entidade padrão. O ícone de entidade temporal contém uma decoração de relógio, como se pode ver na entidade LOAN INTEREST mostrada anteriormente na Figura 3.
Transformar o modelo de dados lógicos em um modelo de dados físicos
O design de modelo de dados lógicos recebeu aprovação do departamento de empréstimo do Sample Bank. Para modelar o armazenamento físico, é preciso transformar o modelo de dados lógicos em um modelo de dados físico temporal para o DBMS que você usa, DB2 para z/OS versão 10 (modo Nova Função).
Faça o seguinte para transformar o modelo.
- Clique com o botão direito no modelo de dados lógicos e selecione Transform to Physical Model no menu de contexto, como mostra a Figura 4.
Figura 4. Transformando em um modelo de dados físico
- Selecione a opção Create new model na página Target Physical Data Model.
- Na página Physical Data Model File, especifique um nome de arquivo. Em seguida, selecione DB2 for z/OS e V10 (Modo Nova Função) conforme mostrado na Figura 5.
Figura 5. Especificar banco de dados, versão e local para transformação
Observação: A partir da versão 10, o DB2 para z/OS suporta modelos temporais no modo Nova Função. A partir da versão 7.6, o InfoSphere Data Architect suporta modelagem para esse tipo de banco de dados. - Na página Options, especifique LOAN_SCHEMA no campo Schema name, como mostra a Figura 6. Mantenha todas as outras opções com os valores padrão.
Figura 6. Página de opções de transformação
- Na página Output, visualize o status da transformação e clique em Finish para gerar o modelo de dados físico. O modelo de dados físico Loan_Model.dbm é criado a partir do modelo de dados lógicos.
Inspecione o modelo de dados físico no Data Project Explorer, como mostra a Figura 7.
Figura 7. Visualizando o modelo de dados físico
Ao inspecionar o modelo de dados físico, você descobre que os seguintes itens são verdadeiros.
- O esquema LOAN_SCHEMA é criado.
- Três tabelas, LOAN_INTEREST, BORROWER e LOAN são criadas com as colunas que foram transformadas dos atributos do modelo de dados lógicos.
- A tabela LOAN_INTEREST é uma tabela temporal.
- São criados dois relacionamentos de chave estrangeira, LOAN_BORROWER_FK e LOAN_INTEREST_LOAN_FK.
Uma visualização de diagrama do modelo de dados físico do empréstimo é mostrada na Figura 8.
Figura 8. Modelo de dados físico do empréstimo
A tabela LOAN_INTEREST pode ser selecionada no Data Project Explorer para exibir as propriedades da tabela na visualização Properties. Aqui é possível verificar que as opções Business time period e Business period without overlap estão selecionadas, como mostra a Figura 9.
Figura 9. Visualização de propriedades da tabela LOAN_INTEREST
Agora que você verificou o modelo, deve analisá-lo, corrigir erros e gerar o script DDL que pode ser compartilhado com o administrador do banco de dados para implementar suas mudanças.
Antes de o DDL ser gerado, use o assistente Analyze Model para analisar o modelo de dados físico em busca de erros comuns de design. Como o InfoSphere Data Architect versão 7.6 suporta modelagem temporal do DB2 para z/OS versão 10 (Modo Nova Função), o ambiente de trabalho pode analisar modelos em busca de erros comuns de design temporal.
Para analisar o modelo, faça o seguinte.
- Clique com o botão direito no nó local (banco de dados) do modelo de dados físico e selecione Analyze Model, como mostra a Figura 10, para abrir o assistente Analyze Model. Como você selecionou um modelo de dados físico, as opções de modelos de dados físico são selecionadas por padrão.
Figura 10. Analisar Modelo
- Para analisar as propriedades temporais, desmarque a caixa de seleção Physical Data Model.
- Selecione a opção Temporal Check. Clique em Finish.
Agora que você validou o modelo, faça o seguinte para gerar o script DDL para implementar o modelo, e depois compartilhe o script com o administrador do banco de dados para executá-lo no servidor do banco de dados.
- Clique com o botão direito no esquema LOAN_SCHEMA no Data Project Explorer.
- Selecione Generate DDL como mostra a Figura 11.
Figura 11. Gerar DDL para o novo esquema
- Preencha as páginas a seguir do assistente Generate DDL.
- Não altere as configurações padrão na página Options.
- Não altere as configurações padrão na página Objects.
- Na página Save and Run DDL, como mostra a Figura 12, especifique um nome de arquivo. Lembre-se do nome do arquivo para que possa compartilhá-lo facilmente com um administrador de banco de dados, para que ele possa implementar suas alterações.
Figura 12. Página Save and Run DDL
- Se sua organização permitir que você implemente modelos de dados diretamente no servidor, pode selecionar a opção Run DDL on Server antes de clicar em Next.
- Na página Select Connection, selecione uma conexão existente, como mostra a Figura 13, ou especifique uma nova conexão clicando em New.
Figura 13. Selecionando uma conexão
- Verifique as opções selecionadas na página Summary, e clique em Finish para gerar o DDL.
Inspecionar o modelo implementado no servidor de banco de dados
Após o administrador de banco de dados executar o script DDL, é possível inspecionar as alterações implementadas no Data Source Explorer, expandindo os nós até o esquema LOAN_SCHEMA. Ao visualizar o modelo, verifique se as tabelas BORROWER, LOAN e LOAN_INTEREST foram incluídas no esquema LOAN_SCHEMA, como mostra a Figura 14.
Figura 14. Visualizando o modelo de empréstimo implementado
É possível verificar mais algumas das alterações. Na visualização Properties do ambiente de trabalho, selecione a tabela LOAN_INTEREST para exibir suas propriedades. Ao abrir a guia Columns, vê-se que a tabela LOAN_INTEREST é uma tabela de período de negócios que não permite períodos de tempo sobrepostos, como mostra a Figura 15.
Figura 15. Verificando atualizações na tabela LOAN_INTEREST
Neste artigo, você aprendeu a atender requisitos temporais de período de aplicativo para o departamento de empréstimo doméstico de um banco. Você aprendeu como o InfoSphere Data Architect versão 7.6 e o DB2 para z/OS versão 10 (Modo Nova Função) pode fornecer uma maneira conveniente de modelar dados temporais. Com pouco esforço, você transformou um modelo de dados lógicos que incluía uma entidade temporal em um modelo de dados físico com uma tabela temporal. Em seguida, analisou o modelo e gerou o script DDL necessário para implementar essas mudanças no banco de dados de destino.
Na Parte 2 desta série, você aprenderá como o InfoSphere Data Architect versão 7.6 ajuda a modelar requisitos bitemporais para dados.
Agradeço a Erin Wilson pelas sugestões valiosas e pela revisão desse artigo.
Aprender
- Use um feed RSS para solicitar notificação sobre os artigos futuros desta série. (Descubra mais sobre
feeds RSS do conteúdo do developerWorks.)
- Revise o artigo A Matter of Time: Temporal Data Management in DB2 for z/OS.
- Obtenha os recursos necessários na área do InfoSphere Data Architect no developerWorks.
- 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.
- Participe do fórum de discussão.
- Obtenha os recursos necessários na área de Information Management no developerWorks, para melhorar suas habilidades em uma grande variedade de produtos do IBM Information Management.
- Saiba mais sobre Information Management na zona do
Information Management no developerWorks. Encontre documentação técnica, artigos de instruções, treinamento, downloads, informações de produtos, e muito mais.
- Siga o developerWorks no Twitter.
- Acompanhe as demos on demand do developerWorks
que abrangem desde demos de instalação e configuração de produtos para iniciantes até funcionalidade avançada para desenvolvedores experientes.
Obter produtos e tecnologias
- 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
- Confira os
blogs do developerWorks
e participe da
Comunidade do developerWorks.

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 é 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.