Faculdades Integradas Campograndenses (FIC)
Professor: Rodrigo Neves
Disciplina: Modelagem Conceitual de Dados
Aula
07
‐
Tutorial
para
o
Software
Toad
Data
Modeller
1) Instalação do Software
Após fazer o download no site, a primeira etapa a se cumprir é a de instalar o “Toad Data Modeller”,
antiga ferramenta “Case Studio”, em seu computador. Para isto basta ter um descompactador de arquivos
(do tipo Winzip ou Winrar) e pouco espaço em disco para gravação.
1º) Procure pelo arquivo zipado e dê um duplo
clique com o botão de ação do mouse para exe‐ cutar o descompactador.
2º) Novamente, dê um duplo clique sobre o se‐ tup do software para iniciar sua instalação. Talvez
seja necessário extrair antes o arquivo setup para
uma pasta predeterminada.
3º) Clique em “Next” para continuar.
5º) Escolha o local do disco rígido em que você deseja instalar o programa (ou use a tecla Brow‐
se para pesquisar) e clique em “Next” para conti‐
nuar.
6º) Marque a opção “Create a desktop icon”
para criar um ícone na área de trabalho e clique em “Next” para continuar.
7º) Clique em “Install” para finalizar a instala‐
ção do programa.
8º) Após instalado, procure na sua área de tra‐
balho (ou desktop) pelo ícone abaixo e dê um du‐
plo clique com o botão de ação do mouse para
2) Execução do Software e Configurações Iniciais
Efetuada a instalação e iniciado o programa, será aberta a tela inicial como mostra a figura a seguir:
O primeiro passo para a utilização do aplicativo será a criação de um novo modelo, para que todas as
funcionalidades do software sejam liberadas ao usuário.
Procure pelo menu “File” (Arquivo) e clique em “New Model” (Novo Modelo). Será iniciada uma tela
para a escolha da linguagem para futuro gerenciamento de banco de dados. Esta escolha é importante para
que o programa possa gerar ao término da modelagem, um script do modelo na linguagem desejada para a
implementação física. Porém, esta escolha pode ser alterada a qualquer momento sem muitas dificuldades.
Para o tutorial, eu escolhi o MySQL 5.0, mas isto não fará diferença no modelo conceitual.
Clique em OK e será aberta a tela abaixo. A coluna a esquerda é a estrutura em menus do modelo e a
Menu Arquivo
Menu Edição
Menu Modelo
Menu Visualização
Menu Ajuda
Acima vemos as printscreens dos menus mais relevantes. Neste tutorial iremos omitir a descrição de
cada um dos subitens dos menus: primeiro porque eles já se encontram facilmente identificáveis na ferra‐ menta de ajuda do software, e segundo porque sua estrutura amigável (compatível com os SO`s da Micro‐
soft e pacotes Office) não introduz dificuldades na interpretação dos mesmos.
Para não gastarmos muita tinta na impressão, espaço na hora de salvar as imagens do diagrama e
nem cansar excessivamente a vista, vamos mudar a cor de fundo do diagrama para uma mais clara, como
por exemplo, a branca.
Clique com o botão direito do mouse na área do diagrama (preta) e escolha “Background Color”. De‐
termine a cor de sua preferência e clique em OK.
Para limpar a área de trabalho e gerar mais espaço para o modelo, devemos desativar a estrutura em
menus (hierárquica) do programa, chamada por ele de “Overview Tree”. Para isto, clique no ícone marcado
na figura abaixo:
As vezes, toda a área de trabalho está subdividida em sub‐modelos de tamanho fixo, dividindo a tela
através linhas tracejadas horizontais e verticais. Estas sub‐seções são classificadas como se fossem planos
cartesianos, com os símbolos [1,1], [2,1], [1,2] e assim sucessivamente.
Caso o programa não tenha efetuado estas subdivisões pule esta etapa (pois nem sempre isto ocor‐
re). Em caso positivo, clique no ícone de ferramentas marcado abaixo, chamado “Enviroment Setup” e des‐
marque a opção “Visible Page boundaries”.
A área de trabalho do programa vai ficar então da seguinte forma, pronta para a modelagem:
3) Manipulando as Entidades
Para desenhar um Diagrama Entidade Relacionamento (DER), o primeiro passo é a marcação das en‐
tidades e de seus atributos. Para introduzir uma nova entidade no diagrama temos três opções: use o menu
modelo e seu sub‐menu inserir; clique no ícone rápido apresentado na figura abaixo ou então utilize a tecla “E” do seu teclado.
Em todos os casos o ponteiro do mouse se transformará em uma mini‐tabela, que se for clicada em
qualquer espaço da área de trabalho irá gerar um retângulo de entidade (tabela), como mostra a figura a
seguir. O objeto que representa a entidade é dinâmico e funciona como se fosse uma pasta ou arquivo, que
pode ser arrastado a qualquer momento pela área, mesmo depois que lhe forem associados os atributos e relacionamentos.
Para classificar as entidades, basta clicar com o botão direito sobre a tabela gerada, como mostra a
primeira figura abaixo e selecionar o sub‐menu “Edit Entity”. Então a tela da segunda figura irá aparecer e
nela será possível se alterar o nome da entidade, adicionar seus atributos, trocá‐los de ordem ou deletá‐los
Clicando duas vezes em qualquer informação de um determinado atributo da entidade criada, temos
o aparecimento de algumas telas onde é possível classificar e trabalhar somente com o atributo seleciona‐
do (e por isto temos que classificar um por vez).
Aqui é possível definir se os atributos são chaves primárias, se eles não podem assumir valor nulo, se são monovalorados ou multivalorados, seu tipo, tamanho, etc...
Após classificar todos os atributos e clicar em OK, a tela inicial da entidade deve ficar assim:
O atributo que simboliza a chave primária é representado pelo símbolo e no diagrama será re‐
presentado em vermelho e com o símbolo (PK) ao final.
Para mudar a cor de fundo de uma entidade e criar um contraste, clique sobre ela novamente com o
botão direito e selecione o sub‐menu “Background Color”.
É possível ainda selecionar as informações referentes à fonte que o programa irá usar para preencher
o diagrama entidade relacionamento. Isto irá influenciar diretamente no tamanho dos retângulos das enti‐
dades no diagrama.
Para tal use o menu de visualização e escolha o sub‐menu “font”. A tela que aparecerá já é bem co‐ nhecida por nós.
Para que a entidade seja exibida no diagrama juntamente com seus atributos, use novamente o me‐
nu de visualização e, em “Display Level” selecione a opção “Attributes”. Como mostra a figura abaixo:
Para o desenvolvimento deste tutorial, vamos mostrar a construção do diagrama do exercício feito
na aula 05, cujo enunciado está descrito a seguir:
“Deseja‐se fazer um banco de dados para gerenciar uma pequena biblioteca local. Sabe‐se que cada
usuário da biblioteca deve ser cadastrado com uma matrícula, nome, email e endereço. Cada livro, que possui um código, título, editora, autor e ano, pode ser reservado por vários usuários (como uma fila), mas
cada usuário pode reservar apenas um livro por vez, apesar de poder pegar emprestado vários livros. Note
ainda que os livros devem ser classificados por gênero (ou assunto) e a biblioteca mantém uma lista de
contato com os autores que deve conter ainda seu telefone, email e nacionalidade.”
Após adicionar todas as entidades encontramos o seguinte diagrama:
Existem outras possibilidades de visualização das entidades no diagrama, que pode ser somente pelo
nome, nome com chave primária e completo. Nesta caso, use o menu rápido da barra de tarefas marcado
abaixo e escolha o modo de visualização desejado.
Para visualizar os tipos e os tamanhos pré‐determinados de dados a qualquer momento, basta usar o
ícone rápido da barra de tarefas, intitulado “Physical View” e ressaltado na figura abaixo.
A área de trabalho então ficará parecida com esta:
Será então inserida no diagrama uma tabelinha como mostrada na próxima figura. Para preenchê‐la
é necessário clicar sobre ela com o botão direito do mouse e selecionar a opção “Edit Stamp”. Consequen‐
temente, surgirá uma nova tela chamada “Model Properties”onde será possível adicionar os dados do
projeto e do Professional que está modelando.
4) Inserindo os Relacionamentos
Para desenhar de forma eficiente os relacionamentos, sugiro que você limpe o máximo possível a
tela de trabalho e que haja um espaço considerável entre as entidades para que seja possível visualizar cor‐ retamente as relações que você irá criar.
Lembre‐se: as entidades funcionam como objetos dentro de pastas no sistema operacional: basta cli‐
car e arrastar para gerar mais espaço.
Um espaço razoável pode ser como este apresentado a seguir:
Os ícones de relacionamentos rápidos são encontrados na barra de ferramenta como marcado ou
apresentado no gráfico abaixo:
Eles podem ser classificados em quatro tipos:
Relacionamentos Identificáveis: Onde é possível se dar nomes ou significados
aos relacionamentos. É altamente recomendado para modelos de iniciantes e
para modelos bem organizados.
Relacionamentos Não Identificáveis: Onde só põem ser usadas as linhas. Mais
limpos e não sobrecarregados.
Relacionamentos M:N (muitos para muitos): Introduzem automaticamente uma
nova entidade associativa.
Relacionamentos Informativos: Marcações para futuros relacionamentos.
Para criar um relacionamento, como por exemplo entre USUARIO e EMPRESTIMO, clique no ícone do
relacionamento desejado (um dos quatro acima listados) primeiramente. Após esta seleção clique nova‐ mente sobre uma das entidades da relação, mantenha o botão pressionado e arraste até que o ponteiro do
mouse esteja sobre a outra entidade da relação, e solte (da mesma forma como se desenha um segmento
de reta no Paint Brush).
O Software irá automaticamente adicionar a chave primária da primeira entidade como chave es‐
Clique com o botão direito do mouse sobre a linha que representa o relacionamento e selecione a
opção “Edit Relationship”. Como mostra a figura abaixo:
Será aberta uma janela que onde será possível se efetuar as classificações e alterações necessárias
como o nome da relação (caso haja necessidade), seu tipo, se é condicional ou incondicional (“opitional” ou
“mandatory”), sua cardinalidade, as chaves primárias e estrangeiras, notas, descrições e etc...
O resultado será:
É muito importante que a relação seja construída da entidade forte (independente) para a entidade
fraca (ou dependente), isto é, que a entidade final seja a que possui a chave estrangeira, pois senão o
programa irá classificar erroneamente a relação.
Por exemplo, se criarmos uma ligação de LIVRO para EMPRESTIMO o programa irá criar a seguinte
relação de forma correta:
Mas se relacionássemos de EMPRESTIMO para LIVRO (nesta direção), teríamos seguinte diagrama
desenhado pelo Toad Data Modeller, em que as chaves primária e estrangeira de EMPRESTIMO seriam adi‐
cionadas como chaves estrangeiras (secundárias, e por isto em verde) na entidade LIVRO:
Que depois de classificada fica da forma abaixo.
Repare que a entidade associativa criada pelo programa não teve seu pano de fundo preenchido da
mesma cor das demais, por uma opção minha (como modelador), para que ela ficasse propositalmente di‐
ferenciada das outras. Note ainda no nome escolhido, duplo que pode representar duas informações dife‐
rentes , dependendo da posição que se tome para ler o relacionamento.
O resultado final do modelo foi
5) Validação do Modelo
Para conferir se o modelo não apresenta erros como falta de chaves primárias ou estrangeiras, rela‐
cionamentos inconsistentes, atributos ou entidades duplicadas; podemos usar a ferramenta de validação
do modelo, chamada de “Model Verification” e marcada na barra de ferramentas abaixo.
Confira se todas as opções estão marcadas na tela que irá aparecer e clique em “Run”. Depois confira
os erros que estão atrapalhando o modelo.
6) Geração de Script para SGBD
Para gerar um script para o Gerenciador de Bando de Dados, use o botão “Generate Script” marcado na barra de ferramentas, marque os campos selecionadods na segunda figura de clique em “Generate”.
Este comando gera um script da em txt, salvo na pasta de instalação do software, na seguinte forma
(para o exemplo desenvolvido neste tutorial):
/*
Created 29/3/2009
Modified 29/3/2009
Project Pequena Livraria
Model Tutorial
Company Disciplina de Modelagem
Author Rodrigo Neves
Version 1
Database mySQL 5
*/
Create table Usuario (
Matricula_Usuario Int NOT NULL, Nome Char(40) NOT NULL,
Email Char(60),
Endereco Char(60) NOT NULL, Idade Int NOT NULL,
UNIQUE (Matricula_Usuario), UNIQUE (Email),
Primary Key (Matricula_Usuario)) ENGINE = MyISAM;
Create table Emprestimo ( Numero_Emp Char(20) NOT NULL, Codigo_Genero Int NOT NULL, Codigo_Livro Int NOT NULL, Matricula_Usuario Int NOT NULL, Data_Retirada Date NOT NULL, Data_Entrega Date NOT NULL,
Primary Key(Numero_Emp,Codigo_Genero,Codigo_Livro,Matricula_Usuario)ENGINE = MyISAM;
Create table Reserva ( Numero_Res Int NOT NULL,
Matricula_Usuario Int NOT NULL, Codigo_Livro Int NOT NULL, Codigo_Genero Int NOT NULL, Data_Reserva Date NOT NULL,
Primary Key (Numero_Res,Matricula_Usuario,Codigo_Livro,Codigo_Genero)) ENGINE = MyISAM;
Create table Livro (
Codigo_Livro Int NOT NULL, Codigo_Genero Int NOT NULL, Titulo Char(80),
Nome_Autor Char(60), Editora Char(30), ISBN Int,
Ano Int,
Primary Key (Codigo_Livro,Codigo_Genero)) ENGINE = MyISAM;
Create table Autor (
Nome_Autor Char(60) NOT NULL, Email Char(60),
Telefones Char(20), Nacionalidade Char(20), Representante Char(20),
Primary Key (Nome_Autor)) ENGINE = MyISAM;
Create table Genero (
Codigo_Genero Int NOT NULL, Nome_Genero Char(20), Descricao Char(100),
Primary Key (Codigo_Genero)) ENGINE = MyISAM;
Nome_Autor Char(60) NOT NULL,
Primary Key (Codigo_Livro,Codigo_Genero,Nome_Autor)) ENGINE = MyISAM;
Alter table Emprestimo add Foreign Key (Matricula_Usuario) references Usuario (Matricula_Usuario) on delete restrict on update restrict;
Alter table Reserva add Foreign Key (Matricula_Usuario) references Usuario (Matricula_Usuario) on delete restrict on update restrict;
Alter table Emprestimo add Foreign Key (Codigo_Livro,Codigo_Genero) references Livro (Codigo_Livro,Codigo_Genero) on delete restrict on update restrict;
Alter table Reserva add Foreign Key (Codigo_Livro,Codigo_Genero) references Livro (Codigo_Livro,Codigo_Genero) on delete restrict on update restrict;
Alter table Livros_ou_Autores add Foreign Key (Codigo_Livro,Codigo_Genero)
references Livro (Codigo_Livro,Codigo_Genero) on delete restrict on update restrict; Alter table Livros_ou_Autores add Foreign Key (Nome_Autor) references Autor (Nome_Autor) on delete restrict on update restrict;
Alter table Livro add Foreign Key (Codigo_Genero) references Genero (Codigo_Genero) on delete restrict on update restrict;