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.