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: 46.261 ]

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

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

Instalando Debian Lenny no laptop Lenovo ThinKPad SL400

Leitura recomendada

Como migrar banco de dados MySQL para PostgreSQL

PostgreSQL: comandos básicos

Programando PostgreSQL + PHP

Autenticação no PostgreSQL - com exemplos

Replicação de dados síncrona com Postgres

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts