MySQL Workbench (Modelagem de banco de dados)


1 Estrelas2 Estrelas3 Estrelas4 Estrelas5 Estrelas (10 votos, média: 4.90 de 5)
Loading ... Loading ...

Olá pessoal.

Hoje vou falar de uma ferramenta muito útil para ‘desenhar’(modelar) banco de dados. Tenho utilizado o MySQL Workbech para fazer minhas DER(Diagrama de entidade de relacionamento – Wiki).

Diagrama de entidade de relacionamento é um modelo diagramático que descreve o modelo de dados de um sistema com alto nível de abstração. Ele é a principal representação do Modelo de Entidades e Relacionamentos. Sua maior aplicação é para visualizar o relacionamento entre tabelas de um banco de dados, no qual as relações são construídas através da associação de um ou mais atributos destas tabelas.

O MySQL Workbech é um software gratuito que veio substituir o DBDesigner4(nunca utilizei).

Para fazer o download do MySQLWorkbench acesse o seguinte site: http://dev.mysql.com/downloads/workbench/5.1.html

Gostei: Free, tem versão para Linux, pode-se salvar um PNG ou PDF do diagrama, ele gera o código SQL(schema), pode-se definir registros para as tabelas e quando rodar o SQL ele ja faz o INSERT(útil para fazer instações de sistema, ou quando libera o sistema para o cliente testar… fica fácil zerar o banco depois).
Não gostei
: Depende do Microsof t .NET Framework [update]no caso de Windows[/update].

Fiz um exemplo bem simples, abaixo tem a imagem do diagrama e em seguida o SQL gerado por ele:

der1 300x244 MySQL Workbench (Modelagem de banco de dados)

  1. SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
  2. SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
  3. SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=‘TRADITIONAL’;
  4.  
  5. CREATE SCHEMA IF NOT EXISTS `mydb` DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci ;
  6. USE `mydb`;
  7.  
  8. – —————————————————–
  9. – Table `mydb`.`user_types`
  10. – —————————————————–
  11. CREATE  TABLE IF NOT EXISTS `mydb`.`user_types` (
  12.   `id` INT NOT NULL AUTO_INCREMENT ,
  13.   `name` VARCHAR(45) NULL ,
  14.   `created`  NULL ,
  15.   PRIMARY KEY (`id`) )
  16. ENGINE = InnoDB;
  17.  
  18. – —————————————————–
  19. – Table `mydb`.`users`
  20. – —————————————————–
  21. CREATE  TABLE IF NOT EXISTS `mydb`.`users` (
  22.   `id` INT NOT NULL AUTO_INCREMENT ,
  23.   `name` VARCHAR(45) NOT NULL ,
  24.   `email` VARCHAR(45) NULL ,
  25.   `username` VARCHAR(45) NOT NULL ,
  26.   `password` VARCHAR(45) NOT NULL ,
  27.   `created` DATETIME NULL ,
  28.   `user_types_id` INT NOT NULL ,
  29.   PRIMARY KEY (`id`) ,
  30.   INDEX `fk_users_user_types` (`user_types_id` ASC) ,
  31.   CONSTRAINT `fk_users_user_types`
  32.     FOREIGN KEY (`user_types_id` )
  33.     REFERENCES `mydb`.`user_types` (`id` )
  34.     ON DELETE NO ACTION
  35.     ON UPDATE NO ACTION)
  36. ENGINE = InnoDB;
  37.  
  38. – —————————————————–
  39. – Table `mydb`.`new_types`
  40. – —————————————————–
  41. CREATE  TABLE IF NOT EXISTS `mydb`.`new_types` (
  42.   `id` INT NOT NULL AUTO_INCREMENT ,
  43.   `name` VARCHAR(45) NOT NULL ,
  44.   `created` DATETIME NULL ,
  45.   PRIMARY KEY (`id`) )
  46. ENGINE = InnoDB;
  47.  
  48. – —————————————————–
  49. – Table `mydb`.`news`
  50. – —————————————————–
  51. CREATE  TABLE IF NOT EXISTS `mydb`.`news` (
  52.   `id` INT NOT NULL AUTO_INCREMENT ,
  53.   `title` VARCHAR(45) NOT NULL ,
  54.   `description` VARCHAR(250) NOT NULL ,
  55.   `created` DATETIME NULL ,
  56.   `clicks` INT NULL ,
  57.   `new_types_id` INT NOT NULL ,
  58.   `users_id` INT NULL ,
  59.   PRIMARY KEY (`id`) ,
  60.   INDEX `fk_news_new_types` (`new_types_id` ASC) ,
  61.   INDEX `fk_news_users` (`users_id` ASC) ,
  62.   CONSTRAINT `fk_news_new_types`
  63.     FOREIGN KEY (`new_types_id` )
  64.     REFERENCES `mydb`.`new_types` (`id` )
  65.     ON DELETE NO ACTION
  66.     ON UPDATE NO ACTION,
  67.   CONSTRAINT `fk_news_users`
  68.     FOREIGN KEY (`users_id` )
  69.     REFERENCES `mydb`.`users` (`id` )
  70.     ON DELETE NO ACTION
  71.     ON UPDATE NO ACTION)
  72. ENGINE = InnoDB;
  73.  
  74. – —————————————————–
  75. – Table `mydb`.`profile`
  76. – —————————————————–
  77. CREATE  TABLE IF NOT EXISTS `mydb`.`profile` (
  78.   `id` INT NOT NULL ,
  79.   `website` VARCHAR(45) NULL ,
  80.   `msn` VARCHAR(45) NULL ,
  81.   `gtalk` VARCHAR(45) NULL ,
  82.   `phone` VARCHAR(45) NULL ,
  83.   `users_id` INT NULL ,
  84.   PRIMARY KEY (`id`) ,
  85.   INDEX `fk_profile_users` (`users_id` ASC) ,
  86.   CONSTRAINT `fk_profile_users`
  87.     FOREIGN KEY (`users_id` )
  88.     REFERENCES `mydb`.`users` (`id` )
  89.     ON DELETE NO ACTION
  90.     ON UPDATE NO ACTION)
  91. ENGINE = InnoDB;
  92.  
  93. USE `mydb`;
  94.  
  95. – —————————————————–
  96. – Data for table `mydb`.`users`
  97. – —————————————————–
  98. SET AUTOCOMMIT=0;
  99. INSERT INTO `users` (`id`, `name`, `email`, `username`, `password`, `created`, `user_types_id`) VALUES (1, ‘admin’, , ‘admin’, ‘pwdadmin’, ’0′, 1);
  100.  
  101. COMMIT;
  102.  
  103. – —————————————————–
  104. – Data for table `mydb`.`user_types`
  105. – —————————————————–
  106. SET AUTOCOMMIT=0;
  107. INSERT INTO `user_types` (`id`, `name`, `created`) VALUES (1, ‘Administrador’, NULL);
  108. INSERT INTO `user_types` (`id`, `name`, `created`) VALUES (2, ‘Usuário’, NULL);
  109.  
  110. COMMIT;
  111.  
  112. SET SQL_MODE=@OLD_SQL_MODE;
  113. SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
  114. SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;

Outra coisa que gostei bastante é que você não cria os campos com os relacionamentos, ao definir um relacionamento o Mysql Workbench cria sozinho.

Bem, eu não tinha custume de trabalhar com diagramas e nem modelar o banco.
Estou mudando sériamente meu conceito. Modelar o banco ajuda muito, te da uma visão ‘macro’ do todo! é muito melhor do que ficar olhando para o Phpmyadmin e clicando nas tabelas para lembrar os nomes dos campos e etc…

Abraços!!

  1. 19 Comentários to “MySQL Workbench (Modelagem de banco de dados)”

  2. Muito bom o post cara,
    DER é chato de fazer mas dependendo da ferramenta fica fácil. Já dei uma olhada no MySQL Workbech e realmente é muito bom e fácil de usar.

    Falou…

    ReplyReply

    Por Thiago Tótaro (3 comments) em 14/03/2009

  3. Hi Marcelo,

    Thanks for using and blogging about MySQL Workbench. I posted a link to your blog on our forums :-)

    Just a quick note that only the Windows version depends on MSFT .NET (for the GUI). This is because the GUI is native to each platform.

    Coming this Monday is Beta 1 (feature complete) of MySQL Workbench 5.1 on Mac OS X, Linux (Fedora, Ubuntu, RHEL), and Windows.

    Join the discussions:
    http://forums.mysql.com/index.php?151

    ReplyReply

    Por MySQL Workbench (2 comments) em 15/03/2009

  4. Another example.

    Using MySQL Workbench to design the VoiceHotel Database Model
    http://tomasmuller.com.br/2009/03/14/using-mysql-workbench-to-design-the-voicehotel-database-model/

    [Brazilian] Utilizando o MySQL Workbench para criação do VoiceHotel Database Model
    http://tomasmuller.com.br/2009/03/09/utilizando-o-mysql-workbench-para-criacao-do-voicehotel-database-model/

    ReplyReply

    Por MySQL Workbench (2 comments) em 15/03/2009

  5. Otimo post. MySQL Workbench realmente é uma ferramente muito util. Só falta agora a prometida versão pra linux.

    ReplyReply

    Por Diego Henrique (1 comments) em 16/03/2009

  6. Hi @MySQL Workbench,

    His comments were very well placed. Thank you.

    About the second comment, I was preparing a post for this :P

    But the reference was great!

    Thanks again!!

    ReplyReply

    Por Marcelo Sabadini (109 comments) em 17/03/2009

  7. Fala Diego tudo bem?

    Seguinte, de uma olhadinha neste link: http://dev.mysql.com/workbench/?p=156

    Na verdade ja rola versão para algumas distribuições do Linux.

    Abração kra!!

    ReplyReply

    Por Marcelo Sabadini (109 comments) em 17/03/2009

  8. Marcelo bom dia
    Olhe queria ver com você se vc tem os tutoriais no seu pc deste o começo de como usar um banco de dados tenho instalado aqui o MyQL-WORKBENCH.Se não for tomar muito o seu tempo se poderia me passar ou indigar onde esta suas paginas,deste o inicio.Adorei seus tutoriais parabéns.O Dreamweaver sei trabalhar com ele fiz vários sites para amigas minha.Vi um seu toturial com ele que gostei muito muito bem explicado,outra vez parabéns e obrigada por compartilhar com nós o seus conhecimentos.Estou montando um site de aulas de scrips digital,para passar aqui na net,para quem quser aprender,já tem 20 alunas e nem terminei os tutoriais.
    BJS

    ReplyReply

    Por Berenice (1 comments) em 08/04/2009

  9. “Bem, eu não tinha custume de trabalhar com diagramas e nem modelar o banco.
    Estou mudando sériamente meu conceito. Modelar o banco ajuda muito, te da uma visão ‘macro’ do todo! é muito melhor do que ficar olhando para o Phpmyadmin e clicando nas tabelas para lembrar os nomes dos campos e etc…”

    Disse tudo meu amigo… além das dicas do Mini-curso PHP, onde eu aprendi bastante, uma vez que sou iniciante em desenvolvimento, essa do MySQL Workbench tem me ajudado muito agora.

    ReplyReply

    Por Rogerio J. Gentil (3 comments) em 06/09/2009

  10. Muito Bom mesmo o seu post!
    Eu instalei o workbench no Fedora 12 e postei no meu blog como instalar e gostaria de colocar o link do seu blog no meu post.

    Obrigado.

    ReplyReply

    Por Douglas (1 comments) em 19/01/2010

  11. marcelo..

    primeiramente parabens pela postagen…
    Mas agora vamos as duvidas.. rs
    cara eu ja fiz conforme vc manda acima na postagem, soh que claro eu criei uma banco de dados conforme minha necessidade. Entao gostaria de saber como faço para poder popular este banco de dados…

    Obrigado pela ajuda.

    ReplyReply

    Por Gustavo (1 comments) em 09/02/2010

  12. Olá Gustavo tudo bom?

    Seguinte, quando vc esta modelando a tabela la na barra de propriedades onde tem ‘Table’, ‘Columns’ tem uma aba chamada <b.'Insert'.
    Nesta coluna vc insere todos os registros. Mas lembre-se de clicar no botão ‘Save’ antes de sair desta aba, pois se não clicar vai perder todos os INSERTs hehehe

    um grande abraço!!!

    ReplyReply

    Por Marcelo Sabadini (109 comments) em 09/02/2010

  13. Bom dia, blz?
    tenho uma dúvida. Criei um BD só pra testar a ferramenta e achei bem legal mesmo. Mas depois de criado e inserido alguns registros, se eu alterar o BD (criar mais algum campo, mudar o tipo de algum campo) enfim, qualquer alteração no BD os meus registros vão pro espaço. Tu sabe como eu faço pra atualizar o BD sem perder os registros? Obrigado []s

    ReplyReply

    Por Pablo Diego (1 comments) em 10/02/2010

  14. opa! Entre as ferramentas gratuitas o workbench está bem na frente, mas ainda precisa melhorar muito, principalmente a conexao com o BD, onde alterar no bd era para dar so um refresh no workbench e ele ja atualizar. Pablo eu tive esse problema sorte que criei um schema para teste. Vc deve Fazer a Reserve Enginner primeiro, la vc escolhe as tables, em seguinda vc vai em Synchronize model, e lá vc vai dizer de onde quer atualizar do BD para o workbench ou o contrario. Ai ele atualiza.
    Bom, a ferramenta nao me convenceu de eu sair do mysql maestro que eh uma excelente ferramenta e com um layout bem melhor que o workbench facilitando bastante o trabalho. Tem coisa no workbench que eh melhor ir no mysql query browser e fazer, pela facilidade.
    Parabens pelo post.

    ReplyReply

    Por camilo lopes (1 comments) em 17/02/2010

  15. Gostei muito da interface e da praticidade do Workbench, porem acho que encontrei um erro gravissimo.

    Eu abri um database que havia criado anteriormete. Depois precisei fazer algumas alterações. Por exemplo, um simples rename de campos de uma tabela. Na hora que faço as alterações e exporto para o banco fisico, essas alteraçOEs nao são processadas.

    Isso acontece pq quando ele grava o script do sql (texto) pra envia-lo ao banco, ele grava no formato: IF NOT EXIST ‘database’.'tabela’.
    Assim, como o database já existe (eu apenas estou alterando), as alterações não são processadas. O correto seria fazer um ALTER TABLE.

    Façam os testes ai e postem seus comentários.

    ReplyReply

    Por Giordano Menezes (1 comments) em 28/04/2010

  16. Eu estava procurando por uma ferramenta de modelagem. Achei este artigo e a partir dai instalei o WorkBench e estou gostando da brincadeira. (já utilizei o CA erWin)

    ReplyReply

    Por Humberto (1 comments) em 15/03/2011

  17. Fala moçada!

    Legal o teu post Marcelo! Sou novato no uso do workbench e gostaria de saber, se alguém tem idéia de quantas tabelas eu posso por em um mesmo diagrama (ERR), ou se haveria um jeito de aumentarmos o número de páginas do mesmo. Pois ele começa com duas e ainda não consegui fazer este número aumentar.

    Valeu!

    ReplyReply

    Por Sergio Moraes (1 comments) em 28/05/2011

  18. Olá, apenas uma correção, esse diagrama na verdade é um DTR (Diagrama de TABELA relacional) e não um DER.

    Abs!

    ReplyReply

    Por Tales A. Mendonça (1 comments) em 26/07/2011

  19. This might be the greatest piece of writing to date!

    ReplyReply

    Por fat loss (1 comments) em 11/11/2011

  20. Amador…

    ReplyReply

    Por Mister (1 comments) em 15/11/2011

Coloque um Comentário

Links de comentários deveriam estar livres de nofollow.

Get Adobe Flash playerPlugin by wpburn.com wordpress themes