Modelagem de Dados com o MySQL WorkBench 5.0 – Parte 1

Banco de Dados 6 julho 2009 | 42 comentários

MySQL Workbench 5Fala galera, tudo tranquilo?

Bom esse é oficialmente o primeiro de muitos post’s que ainda vou escrever e compartilhar com vocês.

Vamos lá então o assunto que vou tratar agora é um item que pra muitos pode parecer simples mas existem muitos programadores hoje em dia que ainda tem o velho costume de pegar um phpMyAdmin ou um SQLYog e fazer uma modelagem mental e sair criando tabelas e já colocando tudo pra rodar e daí já começar a programar com aquilo mesmo e tudo bem seja o que DEUS quiser, bem banco é bacana e tudo mais, porém alguns cuidados devem ser tomados no início para que se evite retrabalho posteriormente.

E pra evitar isso é sempre indicado usar uma ferramenta gráfica para projetar o seu banco de dados mesmo sendo simples é sempre bom fazer a modelagem corretamente porque se um banco é mal modelado ele afeta o desempenho do website/aplicação.

Interface:

Interface MySql Workbench 5

Interface MySql Workbench 5

Na interface dele temos várias guias que nos ajudam a ter o controle sobre todas as operações da nossa modelagem.

Guias:

EER Diagram: Apresenta todos os diagramas disponíveis para o banco de dados em questão, algumas pessoas preferem fazer tudo modularizado inclusive os diagramas então essa seria uma utilidade de suportar múltiplos diagramas.

Physical Schemata: Apresenta todo os objetos disponíveis para criarmos, bem como também lista os que já criamos de acordo com seu tipo, se for uma tabela irá aparecer na parte de “Tables”, as Views na parte de “Views” e assim por diante.

SQL Script’s: É uma área onde você pode ou criar um SQL Script Adicional para o seu banco ou carregar um arquivo externo criado anteriormente, pode ser bem útil pq por exemplo vc carrega o seu banco uma vez e cadastra alguns usuários depois vc quer zerar o banco mas quer que os usuários que estavam lá continuem, basta você exportar o SQL dos inserts e carregá-lo nesta área e pronto quando gerar o script final ele vai ser colocado junto.

Model Notes: é uma área onde você tem uma espécie de bloco de notas sobre o banco de dados onde pode ir anotando várias coisas que possam ser úteis posteriormente, como regras de campos, exemplo: Campo Sexo vai receber valor 1 para masculino e 2 para feminino.

Visualização total do Dashboard: é uma espécie de miniatura de todo o projeto, onde poderá navegar entre todas as páginas que compõem o seu diagrama com facilidade e rapidez.

Catálogo do Banco de dados: Apresenta de forma hierárquica os objetos que compõem o banco de dados em produção, na mesma guia pode ser encontrada lingüetas na parte inferior que possuem a finalidade de controlar os Layers que são grupos de objetos dentro do diagrama demarcados por uma área colorida, contamos também com o User Types caso você venha a precisar de um tipo de dado específico que não tenha nas opções do programa nesta guia podemos criar um novo tipo de dado totalmente personalizado de acordo com cada nescessidade.

Informações Gerais sobre o Objeto selecionado: traz informações obre o objeto que estiver selecionado naquele exato momento seja ele uma tabela, view ou rotina.

Criando Tabelas:

Você pode criar uma nova tabela clicando 2 vezes sobre o ícone “+ Add Table” no Physical Schemata ou clicar no ícone create_table_diagram durante a criação do diagrama.

Não importando a forma como você solicitou a criação da tabela a tala abaixo irá aparecer no canto inferior do programa.

create_table

create_table

Nele podemos alterar o nome da tabela, o Collation dela a Engine na qual ela irá trabalhar, bem como mais embaixo pode-se notar os controles para columns, Indexes, Foreign Keys, Triggers, e a guia INSERTs que é simplesmente se você quiser adicionar um insert ou outro para que seja feito automaticamente na tabela, diferentemente do SQL Script que aceita scripts externos e tudo mais e essa guia é mais direcionada a tabela em questão e não ao banco de dados como um todo.

Mesmo sendo essas simples explicações, com elas vocês conseguiram trabalhar com este software sem o menor problema.

Aqui está um diagrama criado com ele:

DER - Diagrama de Entidade Relacional

DER - Diagrama de Entidade Relacional

Código SQL

Código SQL

Download do MySQL WorkBench 5: http://dev.mysql.com/downloads/workbench/5.1.html

Atenção: para rodar o MySQL Workbench você deve ter instalado o .Net Framework

Em breve postarei aqui a parte 2 desse artigo sobre o MySQL WorkBench 5 e espero também que vocês tenham gostado.

Vlw galera, Abração do Maluco, t+!

Tag(s) , , ,

42 comentários em “Modelagem de Dados com o MySQL WorkBench 5.0 – Parte 1”

  1. Maurício disse:

    Aew cara..parabéns pelo blog!!
    Boa iniciativa!!
    Cotinue postando :)

  2. Maluco disse:

    Vlw!

    Pode deixar que vou continuar sim!!! em breve vamos ter muito mais!!!

  3. @lclaudio9651 disse:

    Eh ai…. velhinho
    Muito bom o blog. Continue para o alto e avante hehehe

  4. Maluco disse:

    Opa! Vlw!!
    E pode ter certeza que isso é apenas o início!!

  5. Excelente!!!Parabéns ae pelo trabalho!!!

  6. Maluco disse:

    Vlw! pelo apoio!!

  7. Xorna disse:

    Aí maluco hehehehe, massa o post, já vinha usando há um tempo esse software, depois de “descobrir” ele no mysqlabs, se tivesse um post assim na época seria muito mais fácil! parabéns e mantenha a energia! abraço

  8. Maluco disse:

    Pois é cara, eu escolhi esse tema para o meu primeiro post por isso porque com o passar do tempo trabalhando em vários projetos diferentes sempre via o pessoal modelando o banco de acordo com uma lista de exigencias do cliente e o que ele ia apresentar sem se lembrar que uma má modelagem leva a perda de desempenho de um sistema, mesmo que ele seja simples.

    Vlw!! Abraço do Maluco! :-P

  9. rogerio disse:

    Cara gostei da sua iniciativa, mto bom seu post’s. Eu tenho uma duvida em relação a essa ferramenta, se vc ou alguém puder me ajudar agradeço. É o seguinte, eu consigo fazer a engenharia reversa no servidor localhost sem problema algum, só q quando vou fazer isso no servidor da um erro, eu consigo conectar normalmente no servidor, aparece as tabelas o unico problema e isso a engenharia reversa o erro é ERRO: Unknown column ‘DEFINER’ in ‘field list’ Fetch trigger objects from NOMEDOBANCO

  10. Maluco disse:

    Primeiramente Rogério vlw pelo apoio!

    Bem quanto ao seu problema dá um pouco mais de trabalho pois depende da versão do MySQL que você instalou na sua máquina e a versão que está no servidor. Vou entrar em contato com você por e-mail pra gente poder analizar melhor a sua situação, ok!

    Vlw!! Abraço do Maluco! :P

  11. Jônatas disse:

    Olá Maluco, parabéns pelo blog! Aqui na minha empresa estamos adotando o WorkBench como ferramenta pra gerar a documentação dos nossos sistemas. Infelizmente estamos encontrado o mesmo problema que o Rogério anteriormente relatou. Enfin, vocês acharam alguma solução? Me dá uma dica.
    Abraço! Valeu!

  12. Maluco disse:

    Jonatas,

    como te enviei por email vou responder aqui também para quem estiver com a mesma situação saiba, pelo que andei pesquisando sobre esse problema no fórum de bugs do mysql isso consta como sendo um bug da versão 5.0 e pelo que consta lá foi corrigido na versão 5.1…

    Vlw! Abração do Maluco!!! :-P

  13. kildren disse:

    pow cara gostei muito mesmo, estudo redes mas me ligo em banco adorei o as dicas

  14. Maluco disse:

    Vlw Kildren!!
    Em breve vou estar postando mais, aguarde…

    Abraço do Maluco!!! :-P

  15. camilo lopes disse:

    parabens! realemente excelente post. Fique na duvida dbdesigner ou workbrench..

    abracos,

  16. Maluco disse:

    Vlw Camilo!

    Quanto a questão de qual usar DBDesigner ou Workbench é bem interessante pois os dois tem seus prós e seus contras nesse caso sugiro que faça um teste com o DBDesigner e com o Workbench e veja qual melhor te atende de um modo global, porém em questão de engenharia reversa que é uma das coisas mais procuradas por quem está modelando ou ajustando uma base de dados o DBDesigner tem um desempenho melhor ao do Workbench.

    Abraço do Maluco!!! :-P

  17. Douglas disse:

    E ae meu caro!!! tudo na paz :?
    Andei fazendo umas pesquisas em seu blog e achei muitas coisas interessante que me ajudaram bastante, gostaria pedir a sua permissão para colocar o seu link em meu blog como páginas recomendadas.

    valeu….

  18. Maluco disse:

    Opa! Vlw pelo apoio meu caro!!!

    Claro que pode sim, sem problemas.

    Abraço do Maluco!!! :-P

  19. Oi,

    a iniciativa foi boa quanto ao MySQL Workbench. Só gostaria de fazer um comentário, que acredito que seja necessário. Procure fazer uma revisão do seu texto porque ele não está muito bem escrito. Tem algumas frases que precisam ser refeitas e palavras completamente erradas. A exemplo:

    \"simples mente\"

    Espero ter ajudado.

    Augusto Morais

  20. Maluco disse:

    Olá Augusto,

    Primeiramente obrigado pela dica e realmente fiz uma revisão rápida aqui pelo blog e algumas coisas ficaram erradas realmente, sendo assim vou corrigir esses pontos.

    Mas vlw pelo apoio de qualquer forma.

    Abraço do Maluco!!! :-P

  21. fabio disse:

    VALEU MALUCO!!! PARABÉNS!!!

  22. Maluco disse:

    Vlw Fabio!!!

    Abraço do Maluco!!! :-P

  23. Denis disse:

    Aw tenho um problema de inicialização da work bench que é de
    aplicativo não inicializado corretamente (0×0000135).clique em OK para finalizar a execução

  24. Maluco disse:

    Denis,

    Este tipo de problema geralmente é relacionado a questões de compatibilidade do aplicativo com o seu sistema.

    Abração do Maluco!!! :-P

  25. joelson hermógenes disse:

    Estou com o mesmo problema de inicialização com o work bench, meu sistema operacionla e o windows xp 32 bits, o que devo fazer? Existe alguma versão do word bench compatível com meu sistema? No aguardo de respostas agradeço.
    joelson Brasília-DF.

  26. joelson hermógenes disse:

    Ja achei a resposta, foi so baixar o net framework 2.0 pra funcionar beleza.

  27. Maluco disse:

    Excelente então Joelson!

    Vou adicionar essa sua dica no Post pra quem vier a ter o mesmo problema.

    Abraço do Maluco!!! :-P

  28. Jean disse:

    Olá
    Primeiramente gostaria de parabenizá-lo pelo belo trabalho que vc faz no blog! Gostaria de saber se vc sabe a causa do seguinte problema \"Unknown Exception caught in c:\\documents and settings\\mysqldev\\build\\mysql-workbenk-oss-5.2.22\\backend\\windowa\\wbpublic.wr\\Canvas.h at line 152\". A instalação realiza normalmente, mas quando vou add diagram da esse erro.

    Obrigado pela atenção!

    Jean Minuzzi

  29. Maluco disse:

    Jean,

    Primeiramente vlw pelo apoio!
    Bom esse erro pelo q vi parece ser algo de problema na programação do WorkBench mesmo então posso te recomendar que ao invés de pegar a versão 5.2 pegue a 5.1 que é uma versão mais estável para uso eu mesmo a utilizo aqui.

    Vlw Abraço do Maluco! :-P

  30. Wagner disse:

    Cara, gostei muito do seu trabalho. Está ótimo. Aproveitando o ensejo, estou com um problema que queria ver se você sabe, se já passou por ele ou se mais alguém pode ajudar. Instalei a versão 5.2.30 do Workbench e depois desinstalei e instalei a versão 5.2.25. O fato é que nenhuma das duas versões está me dando acesso aos arquivos no java. Explicando melhor: criei um Banco de Dados, as tabelas, relacionamentos e inseri seus respectivos dados nessas versões e na minha aplicação Java simplesmente o Java não consegue achar o Banco de Dados, mesmo eu tendo colocado o mesmo na mesma pasta onde está o arquivo de projeto e também alterando a variável PATH de modo que esse caminho (onde está o arquivo de projeto do java) esteja na variável. Quando uso o terminal do MySql para criar o Banco de Dados, as tabelas e inserir os dados, o Java encontra o Banco normalmente e executa corretamente. Já, inclusive, peguei o arquivo de Banco de Dados criado no workbench e copiei para dentro da pasta onde o MySql grava seus arquivos (e que a aplicação em java está encontrando). Isso também não funcionou. Desse modo, não sei mais o que fazer. Você acha que se trata da versão do workbench?

  31. Maluco disse:

    Bom Wagner,

    Primeiro me desculpe pela demora para responder mas acabei ficando um pouco ausente do blog, mas agora estou voltando e em breve terei novos posts sobre o Workbench já que percebi que o pessoal tem sentido falta de informação sobre ele, mas vamos ao que interessa.

    O Workbench é somente para você poder modelar o banco e gerar o SQL a ser executado dentro do seu servidor mysql e não ser acessado diretamente pelo java.
    Nesse caso o java iria acessar o servidor mysql identificando o banco de dados a ser acessado e dai sim fazer as operações que forem necessárias. Você numca coloca arquivos sql dentro da pasta do mysql onde ele gera os arquivos referentes ao banco de dados que seria a pasta “data”.

    Resumindo o Sql que o Workbench gera pra você é para ser executado no servidor e não acessado diretamente pelo seu aplicativo.

    Espero ter respondido a sua pergunta.

    Vlw Abraço do Maluco! :P

  32. Boas antes demais dar os parabéns pelo exelente site.
    Agora queria saber se me podem ajudar, neste momento tenho um site dedicado ao jogo Pes2011.Foi um projecto criado recentemente, mas tenho andado a ver umas tabelas criadas através de uma base dados.
    Aonde eu nessa tabela poderia colocar ranking do jogador Vitorias, Empates, Derrotas.
    Umas das opções que tinha pensado era também inserir confrontos entre membros aparecer nessa tabela.

    Se me poderem dar algumas dicas como fazer agradecia.
    Deixo aqui um link do forum: http://www.pesfanportugal.com/forum/index.php

    Obrigado

  33. Maluco disse:

    Olá Ricardo,

    Bom pelo que entendi você quer montar uma espécie de ranking para os seus usuários usando essas informações…
    Bom a melhor solução para esse caso seria vc não criar ranking armazenando em tabela porque você vai sobrecarregar o sistema com inserts, updates para ficar organizando o ranking.
    Ao contrário disso você pode criar uma consulta SQL interna no seu sistema ou em uma function dentro do banco de dados que vai estabelecer a posição da pessoa no ranking.
    Imagino que o seu sistema de forum conte com algum tipo de sistema de cache e com isso ele não vai sobrecarregar de requisições o sistema.
    Agora outra situação é você realmente gravar o ranking da pessoa no banco caso esse ranking não sofra muitas atualizações e nesse caso basta gerar um script interno que será executado via CRON ( sistema de agendamento de processos do servidor ) de X em X tempos ( dias, horas ou minutos ) .

    Outra dica é dar uma pesquisada no site do pessoal que criou o sistema que você usa no forum pois geralmente eles podem ter algum tipo de plugin para ranking ou algo assim que pode facilitar – MyBB.

  34. Samuel Ribeiro disse:

    Muito bom Maluco,,…. Muito instrutivo mesmo.
    Queria que você, ou alguem me ajudasse numa questão, eu tenho 31 tabelas ja feita em DBDesigner, e eu queria transferir para o MySql Workbench 5.2 CE, ja tentei mas infelizmente por ser amador demais não consigo.

    Conto com vocês, podem postar no meu email.

  35. Maluco disse:

    Opa Vlw Samuel!

    Bom vamos lá importar direto do DBDesigner sinceramente eu numca tentei mas se você tiver essas tabelas ja em um banco de dados e com os relacionamentos o que você pode fazer é usar um recurso que o Workbench tem chamado de Engenharia Reversa (Reverse Engineer).

    O que ele faz nesse caso é te apresentar um wizard que vai te guiar passo a passo para conectar ao seu servidor Mysql e determinar o Banco no qual será feito o processo e então ele vai ler o seu banco de dados e montar gerar um DER baseado na estrutura dele.

    Espero que isso te ajude!

    Abraço do Maluco! :-P

  36. Samuel Ribeiro disse:

    É isto mesmo Maluco, o Banco de dados ja esta com os relacionamentos prontinhos, vou seguir as suas instruções, logo posro denovo.

    Muito Obrigado.

  37. Samuel Ribeiro disse:

    Boa tarde Maluco.
    Infelizmente aquela ajuda que vc me deu não funcionou, não consegui transferir a minhas tabelas do DBDesigner para o MySql workbench, mas logicamente existe um jeito. Aguardo a sua ajuda ou dos colegas que seguem o seu blog.

  38. Samuel Ribeiro disse:

    Boa noite Maluco.

    E como eu consigo rodar este banco de dados no firebird. Precisa ter um conversor? Ou através do MySQL Workbench funciona?

    Desde ja te agradeço.

    Samuel Carlos Ribeiro

  39. Antonio Haele Arnaut disse:

    Hei, Maluco Legal!

    Gostei muito dos seus artigos. Estou aprendendo MySQL WokBanch. Por enquanto só sei Access.

    Toda informação é sempre bem-vinda. Se tiver mais artigos, agradeço.

    Antonio.

  40. Sales disse:

    Daeh Maulco!!! Parabéns pela iniciativa! Vamos torcer para o WorkBench tornar-se uma ferramenta consagrada para o MySQL pois o DBdesigner4 está descontinuado, apesar de ser uma ótima ferramenta.

  41. Cesar F Nunes disse:

    Pô, Maluco valeu! Muito obrigado por dispensar parte de seu tempo para passar seus conhecimentos e informações para todos. Imagino que a frase lá de cima “O conhecimento é eminente e coletivo” diz muito sobre você. Um abraço cara e não para com esse blog não.

  42. valdinei disse:

    Bom dia maluco, tô com um problema tento criar uma tabela no Mysql workbench 5.2.40 e não consigo, crio o banco ex: bancovendas mas tabela dá o seguinte erro: ” houve um erro ao aplicar o script sql para o banco de dados “. Já desinstalei e instalei novamente e o erro continua, preciso desenvolver um software simples para apresentar no TCC (Curso de Informática estou tentando usar o Mysql com o netbeans), será que podes me dar uma luz?