Page tree
Skip to end of metadata
Go to start of metadata

Nessa página veremos um pouco sobre o Diagrama de dados do Cronapp e como montar o diagrama de classe, facilitando posteriormente a geração da camada de persistência e páginas.

Essa página é parte de um tutorial, veja mais detalhes sobre o conteúdo abordado aqui em Diagrama.

Visão Geral

O diagrama de dados (Figura 1.1) descreve a estrutura das classes, seus atributos e relacionamentos no sistema. A partir dele é possível gerar a camada de persistência, as classes das entidades e as telas de CRUD. O diagrama de dados também possui a função de engenharia reversa, onde podemos importar a modelagem de um banco externo e gerar a camada de persistência desse Diagrama.

Na Figura 1 vemos o Diagrama de dados com destaque para algumas áreas que usaremos nesse projeto.


Figura 1 - Tela Exibição Diagrama


  1. Gerar camada de persistência: funcionalidade que cria as classes Java com base no diagrama.
  2. Assistente de view: funcionalidade que cria as páginas CRUD das classes do diagrama.
  3. Bloquear diagrama: bloquear ou desbloquear as classes do diagrama.
  4. Zoom;
  5. Namespace: nome do diretório onde serão criadas as classes Java.
  6. Relacionamentos: seleção dos relacionamentos para ligar as classes;
  7. Nova Classe: clique e arraste o Class para criar uma classe na área de edição.


Com exceção da classe Device, todas as outras possui relação com as Permissões de Segurança do sistema. A classe Securable representa os permissionáveis; a Role, os grupos; User, os usuários e a classe View trata das áreas do sistema com permissão de acesso dos permissionáveis. Classes em amarelo são classes de ligação em relacionamentos N para M (próximo tópico).

Entidades e seus relacionamentos

As classes do diagrama correspondem às entidades do seu sistema com seus respectivos atributos. As classes do sistema interagem entre si e essa interação é chamada de relacionamento. O diagrama serve para especificar como os dados do seu esquema estarão organizados entre si. Veja as definições dos elementos do diagrama de classe na Tabela 1.

Ao criar um projeto, o Cronapp gera automaticamente um diagrama de dados base com as classes exibidas na Figura 1. E caso o projeto seja Mobile, virá também com a classe Device.


Elemento

Definição
ClasseAbstração de um objeto com seu conjunto de atributos.
AtributosElementos que descrevem cada classe.
Relacionamento

Modo como as classes se relacionam:

  • 1to1, a entidade de uma tabela se referência obrigatoriamente apenas uma unidade da outra.
  • 1toN, uma das entidades da tabela A pode referenciar várias unidades da tabela B, porém, do outro lado, cada uma das várias unidades da tabela B só podem estar ligadas a uma entidade da tabela A.
  • NtoM, neste tipo de relacionamento cada entidade, de ambos os lados, pode referenciar múltiplas unidades da outra. Uma tabela intermediária é gerada em relacionamentos desse tipo para permitir os vários relacionamentos.

Tabela 1 - Definição de classe, atributo e relacionamento entre classes.

Atributos

Para configurar a classe, basta dar um duplo clique para abrir sua janela de configuração (Figura 1.2).


Figura 1.2 - Janela de configurações da classe


Destaques da figura 1.2:

  1. Classe: define o nome da classe no Namespace Java.
  2. Database Table: define o nome da tabela no banco de dados.
  3. Auditoria em Log: habilita o sistema de Log de Auditoria para essa classe.
  4. "+": adiciona novo atributo na lista.
  5. Atualizar: atualiza a lista de atributos.
  6. Editar: abre a janela de configuração do atributo selecionado.
  7. Excluir: apaga o atributo selecionado.
  8. Segurança: define quais permissionáveis pode obter, inserir, atualizar, deletar ou filtrar o atributo selecionado.
  • Atributo: define o nome desse atributo na classe Java.
  • Coluna do Banco: define o nome dessa coluna no banco de dados.
  • Rótulo: define o rótulo desse campo nas páginas web ou mobile. Permite internacionalização.
  • Tipo: define o tipo do atributo. Ex.: Texto, Numérico, Lógico, Data etc.
  • Chave: define os campos que serão chave primária na tabela do banco de dados. 
  • Permite Nulo: define se o campo pode ser salvo como nulo no banco.



Passos

Para acessar o diagrama de dados na árvore de arquivos, clique no atalho Ir para Pasta de Diagrama para exibir o diagrama app.umlcd e clique duas vezes para abrir o diagrama de dados. (Figura 2.1)



Figura 2.1 - Acesso ao diagrama de dados.

Classe Livro

Para adicionar uma classe ao diagrama, basta selecionar o ícone "Class" (destaque 1 da Figura 2.3) e arrastá-lo para a área de edição do diagrama (2 da Figura 2.3). Dê dois cliques na classe para abrir a janela de manipulação. Nessa janela é possível editar os nomes gerados para a classe Java e tabela do banco de dados e configurar cada atributo da classe. 


Figura 2.3 - Adicionando nova classe


Preencha os campos da seguinte forma:

3. Classe: informe "Livro" para o nome da classe Java.
4. Database Table: informe "LIVRO" para o nome da tabela do banco de dados. Usaremos o nome em maiúsculo para seguir o padrão das demais tabelas.
5. Novo atributo "+": clique 4 vezes sobre o ícone "+", o primeiro atributo será automaticamente configurado como "id" e os demais como "attribute01", "attribute02" e "attribute03".
6. Coluna Atributo: renomeie os nomes dos campos da coluna Atributo, de "attribute01", "attribute02" e "attribute03" para "nome", "autor" e "isbn" respectivamente.  As colunas "Coluna do Banco" e Rótulo serão renomeados automaticamente.
7. Permitir Nulo: deixe todas as caixas de seleção dessa coluna desmarcadas. 


Vamos aproveitar e criar a internacionalização dos rótulos para os atributos da Classe. Clique no campo da coluna Rótulo para habilitar sua edição, em seguida clique no ícone Internacionalizar para abrir a janela. Não é necessário alterar a chave, apenas informe a tradução nos campos português (Brasil) e inglês (Estados Unidos). Faça esse processo para os rótulos Nome (pt: Nome / en: Name) e Autor (pt: Autor / en: Author).


Figura 2.4 - Internacionalização dos atributos


Resultado após configurar a classe Livro:

AtributoColuna do BancoRótulo (internacionalização)TipoChavePermite Nulo
idididTextoX
nomenome
  • Chave: Nome
  • pt: Nome
  • en: Name
Texto

autorautor
  • Chave: Autor
  • pt: Autor
  • en: Author
Texto

isbnisbnISBNData

Tabela 2 - Configuração dos atributos da classe Livro

Relacionamento entre classes

Agora é preciso adicionar um relacionamento entre as classes. Nesse caso, será um relacionamento NtoM entre a classe User e a classe Livro. Ou seja, um usuário pode reservar vários livros, assim como um livro pode ser reservado por vários usuários.

Seguindo os passos da Figura 2.5, basta clicar no botão NtoM (destaque 1 da Figura 2.5) na área Tools, clicar na classe User (2) e depois clicar na classe Livro (3). O resultado será a criação de uma entidade associativa UserLivro (4), em amarelo, entre as classes User e Livro.


Figura 2.5 - Relacionamento do diagrama

Classe Reserva

Assim como fizemos com a classe Livro, abra a nova classe gerada UserLivro e perceba que ela já possui 3 atributos criados: o identificador da classe chave primária, o identificador da classe User (chave estrangeira) e o identificador da classe Livro (chave estrangeira). (Figura 2.6)


Figura 2.6 - Configurando a classe Reservas


  1. Classe: substitua "UserLivro" por "Reserva" para o nome da classe Java.
  2. Database Table: informe "RESERVA" para o nome da tabela do banco de dados. Usaremos o nome em maiúsculo para seguir o padrão das demais tabelas.
  3. Novo atributo "+": clique 2 vezes sobre o ícone "+", os atributos serão automaticamente nomeados como "attribute04" e "attribute05".


Configure os demais campos como na tabela 3:

AtributoColuna do BancoRótulo (internacionalização)TipoChavePermite Nulo
idididTextoX
livrofk_livro
  • Chave: Livro
  • pt: Livro
  • en: Book



userfk_user
  • Chave: User
  • pt: Usuário
  • en: User



datareservadataReserva
  • Chave: DataReserva
  • pt: Data da reserva
  • en: Booking date
Data

dataemprestimodataEmprestimo
  • Chave: DataEmprestimo
  • pt: Data do empréstimo
  • en: Loan date
Data
X

Tabela 3 - Configuração dos atributos da classe Reserva


Não esqueça de marcar o campo Permite Nulo para o atributo "dataEmprestimo" (destaque 4 da figura 2.6).

Iremos criar o atributo "dataEmprestimo", mas não será usado nesse módulo (Reserva de livros). Esse atributo seria preenchido por outro módulo, o de empréstimo da Biblioteca, informando que o livro foi emprestado ao usuário e retirado da lista de reservas.

Edição avançada do atributo

Precisaremos configurar mais dois campos do atributo datareserva que não existem na tabela inicial de manipulação. Dessa forma, clique com o ícone editar do atributo datareserva para abrir a janela de Edição, no campo Valor padrão, selecione a opção Data Atual (destaque 1 da figura 2.7) e no campo Máscara, selecione a opção Data (destaque 2). O campo Valor Padrão define o valor inicial do atributo assim que a entidade é criada, dessa forma, assim que for feita uma reserva, o atributo "dataReserva" será preenchido com a data atual.


Figura 2.6 - configuração avançada do atributo dataReserva

Resultado

Ao final, o Diagrama estará como na Figura 2.7. Clique em Salvar.


Figura 2.7 - Resultado do diagrama de dados


Pronto! Agora que você já sabe adicionar classes, atributos e relacionamentos em seu diagrama, é hora de fazer a mágica acontecer, com a geração das camadas de persistências, entidade e os CRUDs.



  • No labels