Planejamento de bancos de dados com o MySQL

Propaganda
MySQL Workbench
ANÁLISE
Planejamento de bancos
de dados com o
MySQL Workbench
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
M
uitos aplicativos necessitam
de algum tipo de banco
de dados. Quanto mais
complexo o projeto, mais complicadas, demoradas, tortuosas e com
tendência a erros ficam as estruturas
dos bancos de dados correspondentes. 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 visualização é um tanto restrita no Linux. Os
desenvolvedores podem optar entre
ofertas gratuitas ou comerciais; as fer-
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 ferramentas 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 ferramentas. É uma ferramenta gráfica para
planejar e editar esquemas MySQL.
O sistema de gerenciamento de
bancos de dados MySQL não é somente 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 Workbench é muito útil e eficiente. Ele
usa a licença GPLv2 e se baseia na
experiência e no feedback da ferramenta 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 software, 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 resolvidas.
50
http://www.linuxmagazine.com.br
MySQL Workbench | ANÁLISE
Figura 1O MySQL Workbench inicia em um espaço organizado.
mas e modelos de bancos de dados
e incluir documentação.
A versão comunitária do MySQL
Workbench inclui uma grande coleção de recursos. Administradores e desenvolvedores de banco de
dados podem usá-lo para planejar
tabelas, views, índices, stored procedures 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 vez
Apó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
Linux Magazine #67 | Junho de 2010
incluirá seus nomes e sobrenomes,
e uma coluna (atributo) com valores 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, qualquer 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 tabela 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 exemplo. 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.
Relation – Entidade-Relacional Estendido) ou entrar no esquema. O
método visual é mais simples para a
maioria dos usuários; por esse motivo, será o foco deste artigo.
Graças a controles intuitivos, o
aprendizado é simples. O espaço
de trabalho possui áreas bem delimitadas: à esquerda, há a caixa de
ferramentas com os passos usados
com maior frequência; à direita, o Após criar a primeira tabela, é
navegador (muito útil no caso de um possível criar outras e definir as
grande banco de dados), o catálogo chaves estrangeiras, que mos(que pode ser usado para acessar tram a relação entre os campos
tabelas, views e procedures) e uma de várias tabelas. Para criá-las,
caixa de informações. Na base da use a caixa de ferramentas ou
janela do aplicativo ficam os edito- o editor de tabelas. O programa
res de objetos para os objetos criados ficou um pouco instável em nosou abertos.
so laboratório quando tentamos
Vamos supor
que queiramos
criar um simples
banco de dados
de contatos para
manter um controle do que
emprestamos a
nossos amigos.
Começaremos
criando a tabela Amigos, que Figura 2As camadas ajudam a controlar grandes projetos.
Chaves estrangeiras e
camadas
51
ANÁLISE | MySQL Workbench
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 reversa
Figura 3O editor de rotinas aparece na base da janela.
criar chaves estrangeiras com a
caixa de ferramentas; recomendamos 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 estrangeira 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 relaçã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 contém múltiplas chaves estrangeiras,
o programa irá realçá-las em cores
52
diferentes quando o mouse passar
por cima delas.
Para controlar as áreas relacionadas 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 visualmente. 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 procedimentos e funções armazenados
precisam ser definidos no esquema físico, não em um diagrama. O
MySQL Workbench também se refere a procedures e funções armazenados 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
Caso haja um modelo de banco de
dados pronto para ser usado, é possí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 finalmente 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 modelos de bancos de dados já existentes
(“engenharia reversa”) também é
bem simples. É possível executar
Figura 4Alguns cliques permitem
especificar o que o MySQL
Workbench deve incluir no
script.
http://www.linuxmagazine.com.br
MySQL Workbench | ANÁLISE
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 esquema 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 informaçõ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 modificar esquemas existentes e sincronizar os bancos de dados resultantes
(Database | Synchronize Model, ou
File | Export | Synchronize with SQL
Create Script).
Conclusões
O 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 automaticamente em intervalos regulares seria uma boa ideia.
O MySQL Workbench não foi feito 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 Database 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 dados MySQL, o MySQL Workbench
é uma boa opção. Ele possui bons
recursos que facilitarão a vida dos
desenvolvedores e administradores
Linux Magazine #67 | Junho de 2010
Figura 5Importar um grande número de tabelas pode deixar o diagrama ERR
um tanto embaralhado.
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
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
development/powerdesigner
ling-
Gostou do artigo?
Queremos ouvir sua opinião. Fale conosco em
[email protected]
Este artigo no nosso site:
http://lnm.com.br/article/3530
53
Download