Diagrama Entidade-Relacionamento com Dia e tedia2sql para o PostgreSQL

Esse artigo procura demonstrar como é fácil criar uma diagrama de Entidade-Relacionamento com o Dia e gerar o SQL DDL para criar as tabelas através do tedia2sql para o banco de dados PostgreSQL.

[ Hits: 45.355 ]

Por: Rogério Sousa Guimarães em 05/11/2008 | Blog: http://rojeryo.dyndns.org


Sobre o Dia



Dia é um software de diagrama desenvolvido em GTK+ sobre licença GPL. Ele é uma ferramenta similar ao Microsoft VISIO, porém cada um com suas particularidades.

O Dia oferece recurso para a construção de diversos diagramas, tais como: diagrama de Entidade-Relacionamento, diagramas UML, fluxogramas, diagramas de rede dentre outros.

Para mais informações: site oficial do dia

Sobre o tedia2sql

O tedia2sql é uma ferramenta que permite criar base de dados através do Dia, ele converte um diagrama de Entidade-Relacionamento (ERD - entity-relationship model) para SQL DDL "script" para vários bancos de dados, como por exemplo: Sybase 95%; Postgres; Oracle; DB/2; MS-SQL; MySQL; Informix; Ingres 75%; SAS.

Para mais informações: site oficial do tedia2sql

Linux: Dia - caixa de ferramentas

Instalação no Debian

Instalando o dia:

# apt-get install dia

Instalando o tedia2sql:

# apt-get install tedia2sql (no Debian versão de testing e unstable)

Acessando o Dia

1. Acesse o Dia;

2. Selecione o tipo de diagrama tedia2sql, conforme figura ao lado;

Abaixo da seção do tedia2sql foram apresentados 4 objetos, sendo o 1° para criação de tabela, 2° para ligação entre tabelas, 3° seqüência e o 4° para inserir valor.

Criando o Entidade-Relacionamento

Para facilitar o entendimento serão criadas duas tabelas que se relacionam, conforme a figura abaixo:
Linux: Dia e relacionamento entre tabelas
Como podemos verificar na figura acima, um registro da tabela ufs (Unidade Federativa) pode relacionar-se com o registro da tabela cidades.

Para criar uma tabela, selecione o objeto tabela e clique dentro da área de desenvolvimento, para acessar as propriedades dê um duplo clique sobre a tabela desejada.

Para criar a tabela ufs (Unidade Federativa):

1. Crie a tabela, acesse as propriedades e selecione a aba Classe, no campo Nome da Classe (informe ufs).

2. Para criar o campo uf, acesse a propriedade e selecione a aba atributos, clique em novo, no campo nome informe o uf, no campo tipo informe varchar(2), no campo visibilidade selecione protegido, o que o definirá como chave primária.

3. Para criar o campo descricao, acesse a propriedade e selecione a aba atributos, clique em novo, no campo nome informe o descricao, no campo tipo informe varchar(30).

Para criar a tabela cidades utilize o exemplo da tabela ufs.

Para informar que o atributo é chave primária, na propriedade do objeto selecione a aba atributos e marque o campo visibilidade como PROTEGIDO, conforme figura abaixo:
Linux: Dia - campo protegido - chave primária
    Próxima página

Páginas do artigo
   1. Sobre o Dia
   2. Gerenciando tabelas
Outros artigos deste autor

Instalando Debian Lenny no laptop Lenovo ThinKPad SL400

Configurando DHCP com DNS (Bind9) na rede local - Debian Linux

Leitura recomendada

Monitorando Banco de Dados Postgres com ZABBIX

Automação comercial livre no Slackware 12

Como migrar banco de dados MySQL para PostgreSQL

PostgreSQL + phpPgAdmin no CentOS 5

Criando um banco de dados espacial com PostgreSQL + PostGIS

  
Comentários
[1] Comentário enviado por kabalido em 05/11/2008 - 17:32h

Muito bom artigo! Valeu!

[2] Comentário enviado por nelson777 em 06/11/2008 - 13:32h

Venho acompanhando várias soluções de software livre para DERs à muito tempo, e o melhor software que encontrei para esta finalidade é o Power*Architect de uma empresa canadense chamada SQLPower. Muito bom, feito em java, portanto multiplataforma. Tem tudo que é necessário, diagramação, engenharia reversa, geração do sql, comparação do diagrama com o banco ou com outro script, entre outras coisas. Licença GPL. Está em: http://www.sqlpower.ca/page/architect

-Nelson Teixeira

[3] Comentário enviado por pedroarthur.jedi em 06/11/2008 - 17:20h

Ei cara, desculpe mas não li o artigo. Porém venho a comentar pois o DIA é uma grande ferramenta! VEnho-o usando para vários fins, desde projeto de redes até modelos ER, porém, sem nunca ter exportado os modelos. PArabéns pelo artigo!

[4] Comentário enviado por silvioadl em 20/11/2008 - 01:24h

Parabéns, belo artigo!

[5] Comentário enviado por rl27 em 05/01/2009 - 09:37h

Nelson, realmente o Power*Architect é bom mesmo, naquilo que se propõe a fazer no momento. Baixei a versão 0.9.12. Tem recursos muito interessantes mesmo.
Mas, por enquanto, não há suporte a views e triggers, por exemplo. Mas isso está previsto para a versão 1.0.0. Aí o Power*Architect vai ficar o bicho!

Estou com a versão 0.96.1 do Dia. Ele não é voltado só para bancos de dados. A especialização nesta área fica por conta do tedia2sql. É "meio gambiarra" (no bom sentido, é claro), pois adapta objetos UML para bancos de dados. Porém já traz suporte a views, triggers e uma penca de coisas.
Ainda só traduzi a metade do documento indicado pelo rojeryo na segunda parte deste artigo: http://tedia2sql.tigris.org/usingtedia2sql.html. Esse documento explica todos os conceitos que fazem o tedia2sql funcionar.

As duas ferramentas são muito boas. Ambas suportam bancos como MySQL e PostgreSQL (entre outros). Cada uma seguindo seu caminho e propondo auxiliar muuuuiiitooooo os DBAs. E são software livre!!! Lembrem-se que esses projetos precisam de ajuda. Espero poder ajudar de alguma forma. O simples fato de usá-los e reportar bugs já é um bom começo.

Estou enviando este comentário com a intenção de ajudar quem estiver escolhendo uma
ferramenta pra esse fim, como eu.

Valeu pelo artigo rojeryo! Foi através dele que comecei a pesquisar mais a fundo sobre a criação de diagramas pra bancos de dados (com geração automática do SQL DDL). Trabalho com desenvolvimento de software, mas por força do destino (ou do xHarbour+DBF!!! rsrsrs), só agora estou me aprimorando na administração de bancos SQL.

[6] Comentário enviado por rojeryo em 05/01/2009 - 22:36h

Rodrigo é isso ai, seu comentário foi muito pertinente... E com certeza ira ajudar alguém a se decidir sobre qual ferramenta a utilizar...

Abs,

R. Guimarães

[7] Comentário enviado por franciscosouza em 30/07/2009 - 00:01h

Excelente artigo, parabéns. Mas eu fico com o Power Architect também, é uma ferramenta extremamente profissional! ;)

Um abraço, e sucesso!

[8] Comentário enviado por rojeryo em 30/07/2009 - 12:16h

Francisco,

Obrigado...

Abs,

R. Guimarães

[9] Comentário enviado por juin em 09/11/2010 - 16:43h

Rpz, cada dia me fascino mais e mais com software livre, a apenas 2 anos me dedicando exclusivamente em aprender software livre, já estou mais que satisfeito, cada dia descubro mais uma maravilha..e este artigo é uma delas. sempre usei o dia para projeto de rede, e agora vou usar para projetar meus bds também! muito bom o artigo.

Parabém ao rojeryo pelo artigo! muito bom mesmo!

[10] Comentário enviado por rojeryo em 09/11/2010 - 20:16h

Olá Júnior,


Obrigado....

Quanto a sua solicitação "Queria pedir sua autorização para citar seu artigo no meu blog e aqui no site" pode utilizar sem problema!!!

Abs,

R. Guimarães


Contribuir com comentário