Modelagem e projeto de banco de dados com o DBDesigner – Parte 02

Por Willian Bolzan

Dando continuidade aos artigos que tratam de ferramentas de modelagem e projeto de banco de dados, onde foram discutidas as ferramentas ERwin e PowerDesigner, o objetivo deste artigo é apresentar a ferramenta DBDesigner.


Gerando o modelo físico com o DBDesigner

Para implementarmos o banco de dados, devemos elaborar o que chamamos de modelo físico de banco de dados. Para gerarmos o modelo físico, devemos primeiramente criar uma conexão com o SGBD, no caso, o MySQL. Isso pode ser feito da seguinte forma: escolha o menu Database | Connect to Database, será aberta a janela de diálogo apresentada pela Figura 1.

 

27-01-2008pic01.JPG 

Figura 1. Janela de conexão ao banco de dados.

 

A janela de conexão com o SGBD é dividida em duas principais áreas, à esquerda visualizamos a estrutura de hosts e á direita as conexões com os banco de dados. Como ainda não temos um banco de dados, temos que criá-lo, para depois fazermos a conexão com ele. Isso pode ser feito da seguinte forma:

1.           clique em Localhost para criarmos um banco de dados na máquina local. Veja na Figura 2 onde aparecem os banco de dados existentes e uma opção para criá-lo.

 

27-01-2008pic02.JPG 

Figura 2. Exibindo/criando banco de dados.

 

2.           Clique no ícone rotulado com [...];

3.           Será apresentada uma tela para a entrada do nome do banco de dados. Digite o nome do banco e confirme. No nosso exemplo, definimos o nome do banco como sendo LOCADORA.

 

Com o banco criado, podemos nos conectar a ele. Para criar uma nova conexão, basta arrastar o banco de dados LOCADORA para o lado direito da janela, onde definimos as conexões. Feito isto, teremos um resultado como o apresentado na Figura 3.

 

27-01-2008pic03.JPG 

Figura 3. Estabelecendo conexão ao banco.

 

Tendo definido o banco de dados e sua conexão, basta clicar no botão Connect para conectarmos ao SGBD MySQL e ao banco de dados LOCADORA. Para se certificar que a conexão foi estabelecida, verifique a extremidade inferior direita da barra de status.

Após essa fase de conexão podemos realizar uma importante função da ferramenta DBDesigner, a sincronização.

Sincronização

Até aqui criamos um banco de dados (LOCADORA) e estabelecemos uma conexão com ele. Para realizarmos a implementação do banco propriamente dita, ou seja, a criação das tabelas, relações, etc, temos que efetuar o processo chamado sincronização (Sysnchronisation). Ela permite que todas as alterações feitas no modelo sejam refletidas no banco de dados.

Para realizar a sincronização com o banco de dados, basta escolher o menu Database | Database Sysnchronisation. Se já estivermos conectados ao SGBD, a tela apresentada pela Figura 4 surgirá.

 

27-01-2008pic04.JPG 

Figura 4. Sincronização com o banco de dados.

 

Clicando no botão Execute, todas as tabelas, campos, índices, relações serão implementados no banco de dados LOCADORA.

Exportando o script

Uma opção interessante da ferramenta DBDesigner é a possibilidade de exportarmos o script gerado. Para fazê-lo, escolha o menu File | Export | SQL Create Script. A Figura 5 apresenta as opções para a exportação.


27-01-2008pic05.JPG 

Figura 5. Opções de exportação.

 

Após salvar o script clicando no botão Save Script to file, podemos visualizar o conteúdo do arquivo para analisar como a ferramenta gerou o script de nosso projeto. A Listagem 1 apresenta parte do script gerado referente à tabela FILME.


27-01-2008pic12.JPG

Listagem 1. Script para criação da tabela FILME.

Manipulação de dados

Para manipularmos os dados em nosso banco de dados, devemos clicar no botão correspondente na paleta de ferramentas, para trocar do modo de projeto (Designer Mode) para o modo de consultas (Query Mode). Veja a Figura 6. Nesta tela, consultas podem ser facilmente construídas por apenas comandos de arrastar e soltar.

 

27-01-2008pic06.JPG 

Figura 6. Modo de manipulação de dados (Query Mode)

 

Inserindo dados

A maneira mais fácil para realizarmos a inserção de dados é a seguinte: clique com o botão direito do mouse sobre a tabela na qual deseja inserir dados e escolha a opção Edit Table Data. Surgirá a janela apresentada na Figura 7 na qual será possível escolher a tabela e inserir os dados, sem o uso de instruções SQL.

 

27-01-2008pic07.JPG 

Figura 7. Janela de manipulação de dados.

 

Uma outra forma de inserir dados é construindo comandos em SQL. Vamos considerar neste exemplo a tabela CLIENTE. Clique e segure o botão sobre a tabela desejada (CLIENTE) e em seguida mova o cursor para baixo. Dessa forma surgirá um menu onde várias instruções SQL estarão disponíveis, como mostra a Figura 8.


27-01-2008pic08.JPG 

Figura 8. Menu para manipulação de dados.

 

Assim que o cursor do mouse estiver sobre a instrução desejada, no caso a instrução INSERT, libere o botão e veja que a estrutura da instrução INSERT será visualizada na área de edição de comando. Com isso, podemos inserir os dados desejados. Após digitarmos o comando, devemos clicar no botão Execute SQL Query para que a instrução seja aplicada ao banco de dados.

 

Consultando dados

Veremos agora como consultar os dados existentes em nosso banco de dados. Proceda da mesma forma explicada na seção anterior, ou seja, clicando sobre a tabela e mantendo o botão pressionado, em seguida mova o cursor para baixo até que o menu apareça. Solte o botão sobre a instrução desejada, no caso a instrução SELECT.

Engenharia reversa

Até aqui, estamos seguindo o processo normal de desenvolvimento de banco de dados, ou seja, a construção do modelo conceitual, lógico e físico. No processo de engenharia reversa, a seqüência é inversa, ou seja, a partir do modelo físico chega-se ao modelo lógico.

Para exemplificar, vamos criar um banco de dados chamado LIVRARIA através do script da Listagem 2, no qual temos a definição de três tabelas: EDITORA, AUTOR e LIVRO.

 

27-01-2008pic13.JPG
Listagem 2.
Script para a criação das tabelas EDITORA, AUTOR e LIVRO.

 

Para que as relações entre as tabelas sejam também definidas no modelo lógico, devemos criar os respectivos campos que são estrangeiros à tabela como sendo chaves primárias, que é o caso, no nosso exemplo, dos campos cod_autor, cod_editora da tabela LIVRO que referenciam as respectivas tabelas AUTOR e EDITORA, além, é claro do campo cod_livro que identifica a tabela LIVRO, mas NÃO devemos especificar que são chaves estrangeiras com a clausula FOREIGN KEY (<NOME_CAMPO>) REFERENCES <NOME_TABELA>, dessa forma, deixamos para a ferramenta, durante o processo de reengenharia, definir as relações baseando-se nas chaves primarias das tabelas.

 

Tendo o script para a criação das tabelas de nosso banco, podemos fazer a implementação de duas formas:

·               digitarmos o script na área destinada à codificação de comandos SQL e o executarmos, ou;

·               criando um arquivo com o script acima utilizando qualquer editor de texto simples e depois carregando-o.

 

Utilizando qualquer uma das formas de criação do banco listadas acima, o processo de engenharia reversa pressupõe os seguintes passos:

1.           Geralmente o processo de engenharia reversa deve ser feito partindo-se de um modelo vazio, ou seja, devemos criar um novo modelo e então dar início ao processo;

2.           Altere para o modo de consulta, clicando no botão Change Query Mode na barra de ferramentas;

3.           Digite ou carregue (clique com o botão direito do mouse sobre área de codificação e escolha a opção Load SQL Script From File) o script criado anteriormente referente à criação das tabelas do banco de dados LIVRARIA. Feito isto, clique no botão Execute SQL Query (ver Figura 9);

4.           A janela Connection Database será visualizada. Crie um novo banco de dados e defina sua conexão. Neste exemplo, vamos criar um banco de dados novo com o nome de LIVRARIA (conforme explicado anteriormente na seção). Após criarmos o banco de dados e definirmos suas tabelas, devemos, então, escolher menu Select | Reverse Engineering. A janela de diálogo Database Connection será apresentada. Selecione a conexão com o banco de dados a partir da qual será feita a reengenharia e estabeleça a conexão;

 

27-01-2008pic09.JPG 

Figura 9. Criando o modelo físico.

 

5.           Após estabelecer a conexão com o banco de dados, você verá uma janela conforme a Figura 18.

 

27-01-2008pic10.JPG 

Figura 10. Janela com opções para engenharia reversa.

 

Esta janela oferece algumas opções para realizar o processo. Considerando os mais importantes neste pequeno exemplo, marque as tabelas (Tables) que serão convertidas (por padrão todas já são automaticamente marcadas) e sobretudo, a opção denominada Build Relations e em seguida, marque também, a opção Build Relations base don Primary Keys. Essa opção estabelece que as relações entre as tabelas serão criadas conforme as chaves primárias das tabelas, conforme dito anteriormente.

Após clicar no botão Execute teremos o resultado da engenharia reversa como podemos ver na Figura 11.


27-01-2008pic11.JPG 

Figura 11. Resultado da engenharia reversa.