MySQL Workbench Planejamento de bancos de dados com · PDF fileMySQL Workbench Planejamento de...

4
50 http://www.linuxmagazine.com.br ANÁLISE MySQL Workbench Planejamento de bancos de dados com o MySQL Workbench M uitos aplicativos necessitam de algum tipo de banco de dados. Quanto mais complexo o projeto, mais compli- cadas, demoradas, tortuosas e com tendência a erros ficam as estruturas dos bancos de dados corresponden- tes. Os fabricantes de softwares estão cientes desse problema, o que explica a enorme quantidade de ferramentas de visualização para planejamento e geração de banco de dados. A escolha de ferramentas de visuali- zação é um tanto restrita no Linux. Os desenvolvedores podem optar entre ofertas gratuitas ou comerciais; as fer- Planejar um pequeno banco de dados no papel é simples, mas a estrutura logo vai se complicando quando mais elementos são adicionados. O MySQL Workbench pode ajudar a manter as tabelas organizadas. por Falko Benthin ramentas gratuitas normalmente são oferecidas pelos próprios fabricantes do banco de dados. As ferramentas comerciais geralmente suportam múltiplos bancos de dados, mas fer- ramentas de vendedores de bancos de dados normalmente destinam-se a seu próprio produto. O MySQL Workbench [1], feito para ser usado com o sistema de banco de dados MySQL, é uma dessas ferramen- tas. É uma ferramenta gráfica para planejar e editar esquemas MySQL. O sistema de gerenciamento de bancos de dados MySQL não é so- mente para desenvolvedores profissio- nais de bancos de dados. Os bancos de dados MySQL são muito usados por webdesigners e administradores de sistemas. Mesmo que você seja apenas um desenvolvedor MySQL ocasional, irá perceber que uma ferramenta como o MySQL Work- bench é muito útil e eficiente. Ele usa a licença GPLv2 e se baseia na experiência e no feedback da fer- ramenta de modelagem de dados DBDesigner 4 [2]. O Workbench está disponível nas versões padrão e comunitária; a edição padrão difere da comunitária pelo custo de 79 € anuais, capacidade de verificar esque- Quadro 1: Instalação Há pacotes binários do MySQL Workbench disponíveis para Ubuntu e Fedora [3]. Com sorte, é possível encontrar o software em repositórios de outras distribuições ou de terceiros. Por exemplo, Norbert Tretkowski criou um pacote do Workbench [4] para o Debian. Se forem necessárias mudanças urgentes, é possível baixar o código-fonte da ferramenta, descompactar o tarball, ir para o diretório criado por ele e ler o arquivo README antes de qualquer coisa. O arquivo lista as dependências do soft- ware, além de outras coisas. É possível, então, montar o software por meio do comando: ./autogen.sh –prefix=caminho && make -j3 install em uma janela de comando. Será preciso substituir caminho pelo nome do diretório onde o software está sendo instalado. Essa instalação demorou bastante no nosso laboratório, mas foi completada com sucesso, pois todas as dependências já haviam sido resolvi- das.

Transcript of MySQL Workbench Planejamento de bancos de dados com · PDF fileMySQL Workbench Planejamento de...

Page 1: MySQL Workbench Planejamento de bancos de dados com · PDF fileMySQL Workbench Planejamento de bancos de dados com o MySQL Workbench M uitos aplicativos necessitam de algum tipo de

50 http://www.linuxmagazine.com.br

AN

ÁLIS

E

MySQL Workbench

Planejamento de bancos de dados com o MySQL Workbench

Muitos aplicativos necessitam de algum tipo de banco de dados. Quanto mais

complexo o projeto, mais compli-cadas, demoradas, tortuosas e com tendência a erros ficam as estruturas dos bancos de dados corresponden-tes. Os fabricantes de softwares estão cientes desse problema, o que explica a enorme quantidade de ferramentas de visualização para planejamento e geração de banco de dados.

A escolha de ferramentas de visuali-zação é um tanto restrita no Linux. Os desenvolvedores podem optar entre ofertas gratuitas ou comerciais; as fer-

Planejar um pequeno banco de dados no papel é simples, mas a estrutura logo vai se complicando quando mais elementos são adicionados. O MySQL Workbench pode ajudar a manter as tabelas organizadas. por Falko Benthin

ramentas gratuitas normalmente são oferecidas pelos próprios fabricantes do banco de dados. As ferramentas comerciais geralmente suportam múltiplos bancos de dados, mas fer-ramentas de vendedores de bancos de dados normalmente destinam-se a seu próprio produto. O MySQL Workbench [1], feito para ser usado com o sistema de banco de dados MySQL, é uma dessas ferramen-tas. É uma ferramenta gráfica para planejar e editar esquemas MySQL.

O sistema de gerenciamento de bancos de dados MySQL não é so-mente para desenvolvedores profissio-

nais de bancos de dados. Os bancos de dados MySQL são muito usados por webdesigners e administradores de sistemas. Mesmo que você seja apenas um desenvolvedor MySQL ocasional, irá perceber que uma ferramenta como o MySQL Work-bench é muito útil e eficiente. Ele usa a licença GPLv2 e se baseia na experiência e no feedback da fer-ramenta de modelagem de dados DBDesigner 4 [2]. O Workbench está disponível nas versões padrão e comunitária; a edição padrão difere da comunitária pelo custo de 79 € anuais, capacidade de verificar esque-

Quadro 1: Instalação

Há pacotes binários do MySQL Workbench disponíveis para Ubuntu e Fedora [3]. Com sorte, é possível encontrar o software em repositórios de outras distribuições ou de terceiros. Por exemplo, Norbert Tretkowski criou um pacote do Workbench [4] para o Debian.

Se forem necessárias mudanças urgentes, é possível baixar o código-fonte da ferramenta, descompactar o tarball, ir para o diretório criado por ele e ler o arquivo README antes de qualquer coisa. O arquivo lista as dependências do soft-ware, além de outras coisas. É possível, então, montar o software por meio do comando:

./autogen.sh –prefix=caminho &&

make -j3 install

em uma janela de comando.

Será preciso substituir caminho pelo nome do diretório onde o software está sendo instalado. Essa instalação demorou bastante no nosso laboratório, mas foi completada com sucesso, pois todas as dependências já haviam sido resolvi-das.

Page 2: MySQL Workbench Planejamento de bancos de dados com · PDF fileMySQL Workbench Planejamento de bancos de dados com o MySQL Workbench M uitos aplicativos necessitam de algum tipo de

51

| ANÁLISEMySQL Workbench

Linux Magazine #67 | Junho de 2010

mas e modelos de bancos de dados e incluir documentação.

A versão comunitária do MySQL Workbench inclui uma grande co-leção de recursos. Administrado-res e desenvolvedores de banco de dados podem usá-lo para planejar tabelas, views, índices, stored proce-dures e triggers; parsear esquemas de bancos de dados existentes para visualizá-los (“engenharia reversa”); sincronizar esquemas com bancos de dados existentes (“gerenciamento de mudanças”) e exportar e imprimir modelos de diagramas. O MySQL Workbench é uma ferramenta para estruturar um banco de dados; ele não suporta buscas ou alterações de dados (para isso, a Oracle oferece o MySQL Query Browser). Este artigo usa a versão estável 5.1 do MySQL Workbench.

Primeira vezApós instalar o MySQL Workbench (veja o quadro 1), inicie a ferramenta digitando mysql-workbench na linha de comando (figura 1). Com isso, será possível criar um novo modelo de banco de dados visualmente, através de diagramas EER (Extended Entity

Relation – Entidade-Relacional Es-tendido) ou entrar no esquema. O método visual é mais simples para a maioria dos usuários; por esse moti-vo, será o foco deste artigo. Graças a controles intuitivos, o aprendizado é simples. O espaço de trabalho possui áreas bem deli-mitadas: à esquerda, há a caixa de ferramentas com os passos usados com maior frequência; à direita, o navegador (muito útil no caso de um grande banco de dados), o catálogo (que pode ser usado para acessar tabelas, views e procedures) e uma caixa de informações. Na base da janela do aplicativo ficam os edito-res de objetos para os objetos criados ou abertos.

Vamos supor que queiramos criar um simples banco de dados de contatos para manter um con-trole do que emprestamos a nossos amigos. Começaremos criando a tabe-la Amigos, que

incluirá seus nomes e sobrenomes, e uma coluna (atributo) com valo-res inteiros para a chave primária. Para criar a tabela, clique no ícone no lado direito da janela ou apenas tecle [T]. Após posicionar a tabela, é possível usar as abas do editor de tabelas para definir seu nome, os nomes das colunas e dos tipos, qual-quer chave estrangeira, os gatilhos e as partições.

Cada um desses itens leva a mais diálogos que permitem definir os tipos dos dados, condições, chaves primá-rias ou opções, caso se esteja usando chaves estrangeiras. O software lista os atributos abaixo do nome da tabe-la no espaço de trabalho. Para cada atributo, há um ícone colorido que permite identificar com facilidade seu tipo. O ícone da chave aponta para uma chave primária, por exem-plo. Em nosso laboratório, levou um certo tempo para o ícone mudar após alteramos as colunas; em caso de dúvida, é sempre uma boa ideia checar o editor de tabelas.

Chaves estrangeiras e camadasApós criar a primeira tabela, é possível criar outras e definir as chaves estrangeiras, que mos-tram a relação entre os campos de várias tabelas. Para criá-las, use a caixa de ferramentas ou o editor de tabelas. O programa ficou um pouco instável em nos-so laboratório quando tentamos

Figura 1 O MySQL Workbench inicia em um espaço organizado.

Figura 2 As camadas ajudam a controlar grandes projetos.

Page 3: MySQL Workbench Planejamento de bancos de dados com · PDF fileMySQL Workbench Planejamento de bancos de dados com o MySQL Workbench M uitos aplicativos necessitam de algum tipo de

52 http://www.linuxmagazine.com.br

ANÁLISE | MySQL Workbench

criar chaves estrangeiras com a caixa de ferramentas; recomen-damos o uso do editor. Agora, vá para a aba Foreign Keys e crie uma chave estrangeira apontando para a primeira tabela. Para isso, basta clicar na caixa correspondente: o MySQL Workbench irá sugerir um nome para a chave estrangei-ra e apresentará uma lista para selecionar as tabelas existentes no banco de dados. O software exibirá as candidatas na área ao lado do nome da chave estrangeira e tabelas referenciadas. Ao fazer isso, ele apenas sugere campos com tipos de dados possíveis.

O Workbench normalmente cria relações que combinam com os tipos de dados. Por exemplo, um registro Pessoas poderia apontar para vários registros de endereços e de números de telefones – isso é chamado de re-lação um-para-muitos. Se o tipo de relação não estiver correto, clique na relação com o botão direito do mouse e faça ajustes no editor de relações. Quando uma tabela con-tém múltiplas chaves estrangeiras, o programa irá realçá-las em cores

diferentes quando o mouse passar por cima delas.

Para controlar as áreas relacio-nadas em grandes bancos de dados, o MySQL Workbench introduz o conceito de camadas. Uma camada permite destacar com o uso de cores várias tabelas, para agrupá-las visual-mente. Para usar as camadas, basta ir à barra de ferramentas ou digitar L e passar o mouse por cima de todos os objetos que devem ser incluídos na camada (figura 2).

RotinasÉ possível usar diagramas EER para criar visualizações de modo similar à criação de tabelas, mas os proce-dimentos e funções armazenados precisam ser definidos no esque-ma físico, não em um diagrama. O MySQL Workbench também se refe-re a procedures e funções armazena-dos como rotinas. Este exemplo usa uma pequena procedure que conta o número de objetos emprestados no momento.

Para isso, iremos do diagrama EER para o modelo MySQL. Chegando lá, clique em Add Routine, abaixo

de Routines. O editor de rotinas irá iniciar na base da janela, onde será possível escrever a procedure (figura 3). O diagrama EER mostra apenas grupos de rotinas. Crie um grupo e arraste e solte as rotinas desejadas para o Routine Group Editor (Editor de Grupos de Rotina).

Engenharia reversaCaso haja um modelo de banco de dados pronto para ser usado, é pos-sível enviá-lo diretamente para seu banco de dados ou usar um arquivo. Para isso, selecione File | Export | Forward Engineer Create SQL Script ([Shift]+[Ctrl]+[G]), digite o nome do arquivo (sem o nome do arquivo, o aplicativo irá exibir o script mas não armazená-lo) e, se for preciso, selecione as opções necessárias. Em um segundo passo, o software perguntará quais objetos devem ser exportados (figura 4) antes de final-mente gerar o script.Para transferir o modelo diretamente para o servidor do banco de dados, é preciso inserir os parâmetros da conexão ao servidor em Database | Manage Connections. Para enviar o esquema recém-criado diretamente para o servidor, selecione Forward Engineering sob Database. Com poucos cliques é possível enviar o banco de dados para o local desejado.

O processo para utilizar mode-los de bancos de dados já existentes (“engenharia reversa”) também é bem simples. É possível executar

Figura 3 O editor de rotinas aparece na base da janela.

Figura 4 Alguns cliques permitem especificar o que o MySQL Workbench deve incluir no script.

Page 4: MySQL Workbench Planejamento de bancos de dados com · PDF fileMySQL Workbench Planejamento de bancos de dados com o MySQL Workbench M uitos aplicativos necessitam de algum tipo de

Figura 5 Importar um grande número de tabelas pode deixar o diagrama ERR um tanto embaralhado.

53

| ANÁLISEMySQL Workbench

Linux Magazine #67 | Junho de 2010

Gostou do artigo?Queremos ouvir sua opinião. Fale conosco em [email protected]

Este artigo no nosso site: http://lnm.com.br/article/3530

Mais informações

[1] MySQL Workbench: http://www.mysql.com/products/workbench/

[2] DBDesigner 4: http://www.fabforce.net/dbdesigner4/

[3] Download do MySQL-Workbench: http://dev.mysql.com/downloads/select.php?id=8

[4] MySQL Workbench para Debian “Lenny”: http://tretkowski. de/blog/categories/3-Debian

[5] Database Visual Architect: http://www.visual-paradigm.com/pro duct/dbva/

[6] Sybase PowerDesigner: http://www.sybase.com/products/mode ling-development/powerdesigner

um script SQL para importar o modelo ou pegá-lo em um servidor de banco de dados ativo. Existe um assistente no menu Databases para auxiliar neste processo. O programa solicita os dados de conexão e o es-quema que será obtido.

Caso o esquema contenha mais de 15 tabelas, a visualização pode ficar um tanto ruim: as 145 tabelas importadas de um sistema de in-formações de um hospital ficaram muito embaralhadas, e foi preciso fazer uma boa limpeza (figura 5).

Graças ao forward engineering e à engenharia reversa, é possível usar o MySQL Workbench para modifi-car esquemas existentes e sincroni-zar os bancos de dados resultantes (Database | Synchronize Model, ou File | Export | Synchronize with SQL Create Script).

ConclusõesO MySQL Workbench oferece vários recursos muito úteis para planejar bancos de dados de larga escala. Porém, o software abusa dos recursos da máquina e ficou bem lento em alguns momentos, no nosso computador não tão potente (Pentium 4 2.5GHz com 1 GB de RAM). Infelizmente, o programa travou várias vezes, portanto, uma função para salvar o trabalho auto-maticamente em intervalos regu-lares seria uma boa ideia.

O MySQL Workbench não foi fei-to para planejar bancos de dados em outros sistemas de gerenciamento de bancos de dados. Caso você trabalhe com outro sistema, considere uma ferramenta diferente, como o Data-base Virtual Architect [5], o Sybase PowerDesigner [6] ou o velhinho DBDesigner 4 [2]. Dito isto, caso você deseje uma ferramenta gratuita para ajudar a projetar bancos de da-dos MySQL, o MySQL Workbench é uma boa opção. Ele possui bons recursos que facilitarão a vida dos desenvolvedores e administradores

de bancos de dados. O MySQL Workbench 5.2, que está para ser lançado, suporta buscas no servidor e tarefas administrativas. Para obter

esses recursos, os desenvolvedores incluíram no aplicativo algumas partes do MySQL Query Browser e do MySQL Administrator. n