Utilizando o MySQL Workbench para criação do VoiceHotel Database Model

update 1: english readers can view here the translated version of this post.

Neste post apresentarei o processo para criação da base de dados MySQL utilizada no projeto VoiceHotel, utilizando o MySQL Workbench Community Edition, focando nas funcionalidades oferecidas por esta ferramenta. O projeto VoiceHotel foi vencedor do primeiro lugar no desafio da Sun para Estudantes em 2008, etapa MySQL e Glassfish.

O que é MySQL Workbench?Em linhas gerais podemos dizer que o MySQL Workbench é uma ferramenta que possibilita um DBA ou desenvolvedores em geral, criarem e gerenciarem de forma visual todos os tipos de bases de dados MySQL, desde uma base utilizada em uma simples aplicação web, até bases mais complexas, como as existentes em sistemas de data warehouses ou OLTP.

Destaques da ferramenta

  • Criação/Edição visual da base de dados. Acelera o desenvolvimento, diminuindo a chance de erros em tarefas comuns. Oferece validação de schemas para o modelo criado, auxiliando na utilização das melhores práticas de modelagem de dados e evitando erros na construção de diagramas ER ou criação da base fisicamente.
  • Forward Engineering e Engenharia Reversa. Possibilita a criação de um modelo completo a partir de um script SQL ou de uma base de dados existente, incluindo o diagrama ER com as tabelas pré-dispostas no mesmo. Oferece também a construção do banco de dados fisicamente através da modelagem visual.
  • Rastreamento e gerenciamento de mudanças. MySQL Workbench inclui as funcionalidades de Sincronização de Schemas e utilitários de comparação. Por exemplo, um DBA pode comparar duas bases ativas ou comparar uma modelagem feita no MySQL Workbench e uma base existente, visualizando as diferenças, com a possibilidade de sincronização entre um modelo e uma base ou vice versa.
  • Documentação. O MySQL Workbench inclui o DBDoc que auxilia no processo de documentação dos modelos e objetos existentes. Esta documentação pode apresentar-se em texto puro ou no formato Html.

O MySQL Workbench está disponível em duas versões:

  • MySQL Workbench Community Edition — Sob a licença open source GPL.
  • MySQL Workbench Standard Edition — Disponível através de um contrato anual. Inclui alguns módulos e plugins adicionais. Clique aqui para mais detalhes.

Modelando o Banco de DadosDevido a baixa complexidade apresentada pela base de dados empregada na aplicação, apresentarei aqui as três formas possíveis para a criação da base de dados utilizando o MySQL Workbench Community Edition. Abaixo uma imagem com o modelo ER finalizado. O script completo para criação do banco de dados pode ser encontrado neste link.



Engenharia Reversa de Script SQLCom certeza a forma mais rápida de criar a base de dados, mas obviamente será necessário possuir de antemão o arquivo com as instruções SQL para criação da estrutura do banco de dados MySQL.

Crie um novo modelo de dados (File > New), e inicie a importação das instruções SQL acessando o menu File > Import > Reverse Engineer MySQL Create Script.

Na nova janela, informe o arquivo com as instruções a serem utilizadas para criação do modelo. Ao clicar em continuar (Next) a ferramenta executará algumas validações no script sql e em seguida iniciará a criação da estrutura do modelo. Por último, na última etapa deste wizard é oferecida a opção de criar automaticamente um diagrama ER com as tabelas já dispostas no mesmo.

De posse do modelo de dados recém criado, agora você poderá trabalhar livremente, adicionando novas tabelas, visões, documentando as estruturas existentes, editar a estrutura do modelo, bem como o diagrama ER.

Diagrama ERA criação do modelo de dados através do diagrama ER é uma ótima opção para os casos onde não possuímos uma estrutura prévia para importação e assim iniciar um novo modelo já com alguma estrutura pré-estabelecida, sendo necessário a criação do modelo desde o início.

Para adicionar um novo diagrama ER no modelo de dados acesse o menu Model, opção Add Diagram. Ou se preferir utilize o atalho CTRL + T. Para uma visão detalhada das opções disponíveis no editor de diagrama ER clique na imagem ao lado.

Na medida em que novos objetos forem incluídos no diagrama, você poderá editar todas as suas propriedades relacionadas através de um duplo clique no objeto desejado para abrir o editor de propriedades do objeto.

Quando o objeto inspecionado for uma tabela, além das diversas opções para edição de colunas, chaves primárias, chaves estrangeiras, tiggers, etc, contamos com um editor de dados, onde você poderá gerar comandos de inserção de forma visual, apenas preenchendo os valores para as colunas.

Ainda se tratando de tabelas, os relacionamentos entre as entidades existentes no modelo, podem ser feitos totalmente de forma visual, fazendo uso das opções de relacionamentos, localizados na barra de ferramentas que está disponível no lado esquerdo da interface para edição do diagrama ER.

Edição Esquemática (avançada)A edição esquemática possibilita ao desenvolvedor um acesso rápido às informações e propriedades do objeto (tabelas, visões, rotinas e grupos de rotinas), mas sem o apoio visual do diagrama ER. Torna-se muito útil no momento em que temos uma estrutura já estabelecida no modelo de dados e precisamos dar manutenção em algum dos objetos existentes de forma rápida, fácil e intuitiva, contando com o apoio dos utilitários para validar as alterações prevenindo desta forma possíveis inconsistências na base.

Publicando o Modelo de DadosApós a criação do modelo de dados, você poderá exportar todo o conteúdo do modelo para um script contendo todo os comandos SQL necessários para criação da base de dados fisicamente. Na versão Standard do MySQL Workbench, é possível a criação da base de dados física utilizando o próprio MySQL Workbench, sem sair do ambiente.

Para a versão Community podemos lançar mão da seguinte linha de comando, fazendo uso dos utilitários disponíveis na instalação do MySQL:

mysql -u usuário -p < script_exportado.sql

onde usuário é o usuário do banco de dados e -p solicitará a senha para este usuário.

ConclusãoNessa artigo, apresentei as funcionalidades básicas do MySQL Workbench e existem claramente muitos outros conceitos que podem ainda ser explorados como a criação de procedimentos armazenados (Functions, Triggers e Procedures), criação de Views e trabalhar com criação de índices.

O MySQL Workbench é uma ótima opção para todos usuários MySQL. Desde desenvolvedores até usuários mais experientes, DBAs, etc. Com a opção da licença comercial, isto fica ainda mais evidente pois há um incremento considerável no número de módulos e plugins, oferecendo diversas funcionalidades que encontram-se desabilitadas na versão Community Edition. Contudo, a versão Community Edition está a frente de muitas ferramentas comerciais e não comerciais disponíveis no mercado, oferecendo todos os recursos necessários para modelagem de dados.