CIeison Santos oIoca-se como de fundamentaI importncia tanto a anIise como a modeIagem de dados para o processo de desenvoIvimento de apIicaes. Esses procedimentos garantem um maior controIe das diversas etapas do projeto desde a denio das regras do negcio at a impIementao e manuteno da apIicao como um todo. Existem no mercado, atuaImente, diversas ferramentas para modeIagem de dados, dentre as quais pode ser destacado o soft- ware ErWin. C O ErWin pode ser usado de uma for- ma simples e prtica possibilitando uma melhor visualizao, controle e documen- tao do que se tem no banco de dados. Atravs dos diversos recursos disponveis (Figura 1) podemos desenhar o nosso banco de dados denindo as entidades de que compe o modelo com seus respec- tivos atributos e relacionamentos, denir caractersticas dessas entidades tornando- as reais em um modelo fsico ou em vrios modelos fsicos se for necessrio o acesso a SGDBs distintos. Podemos ainda criar, de forma automtica, o modelo implemen- tado num banco de dados ou gerar scripts para atualizao de alteraes efetuadas no modelo, sincronizar dois bancos de for- ma a garantir uma estrutura idntica em ambos, e vrios outros recursos. Na parte superior direita, observa-se uma barra de ferramentas com os principais ob- jetos do ErWin, como mostrado na Figura 2, a seguir: Alguns conceitos importantes 1) Entidades - Entidade o local onde cam armazenadas as informaes. Por exemplo, a Entidade CLIENTES pode guardar informaes referentes aos clien- tes, e assim sucessivamente. 2) Subtipos - Podem ser denidos como um espelho de uma ou mais entidades. Por exemplo, pode-se criar um subtipo chamado CLIENTES_RJ que contenha somente os clientes que moram no Rio de Janeiro, poden- do ter ou no todos os Figura 1. Tela inicial do ErWin Modelagem de Dados com ErWin SQL Magazine - 19 atributos da Entidade CLIENTES. 3) Atributos - Os atributos podem ser denidos como identicadores de cada informao contida na entidade. O Cdi- go do Cliente, por exemplo, um atribu- to da Entidade CLIENTES. 4) Relacionamentos - Relacionamentos so denidos como a ligao entre duas ou mais entidades. 5) Cardinalidade - o que caracteriza o relacionamento.Por exemplo: um pai pode ter mais de um lho, porm um - lho s pode ter apenas um pai. Isso quer dizer que a cardinalidade dene o com- portamento do relacionamento, denin- do-o como um para muitos, muitos para um ou at muitos para muitos. Os tipos de modelo Modelo Lgico: o modelo de abs- trao do sistema. Neste, detalhes como qual banco de dados ser usado, o tipo de campo, o tipo de hardware, entre ou- tros aspectos no so relevantes. Aqui, somente as necessidades do processo so denidas, dando uma viso global do sistema. No Erwin, podemos ter uma viso da regra de negcio, ou seja, pode- mos planejar uma estrutura lgica para o banco de dados, onde so denidas as validaes, as restries da regra de neg- cio, a anlise das entidades e dos atribu- tos denidos para a aplicao como um todo. Modelo Fsico: onde os detalhes so denidos. Serve como um espelho de tudo o que est no banco de dados, permitindo controlar caractersticas de tabelas e colunas (conhecidos no mode- lo lgico como Entidades e Atributos) de forma particular para o SGDB utilizado alm de possibilitar a denio de Proce- dures, Triggers e outros processos. Criando o modelo lgico O tipo de modelo que est sendo visu- alizado encontra-se na Combo situada logo acima da barra de ferramentas, mos- trada na Figura 1. O modelo utilizado inicialmente ser o modelo lgico, pois comeando por este ca mais fcil denir o outro. Isso por- que, como j foi visto, no modelo lgico tem-se um melhor controle da aplicao, sendo possvel denir as validaes ne- cessrias, tanto para a regra de negcio como para a implementao de banco de dados no modelo fsico. Posteriormente, podem ser criados modelos fsicos para acessar a diferentes bancos de dados a partir do mesmo modelo lgico. Ser criado um modelo simples, onde deniremos algumas entidades com seus respectivos atributos e relacionamentos mostrando como utilizar alguns dos mui- tos recursos disponveis no ErWin para modelagem de dados. O modelo ser feito com base em um sistema comercial com as tabelas CLIENTES, VENDEDO- RES, PRODUTOS, FORNECEDORES, PEDIDOS E ITENS_PEDIDOS. Criando as Entidades Como j visto, as entidades podem ser criadas atravs do primeiro objeto da barra de ferramentas, clicando nesta, ar- rastando para o modelo e trocando o seu nome, como mostrado na Figura 3. Criando os Atributos Para criar os atributos, basta apenas dar um duplo clique na entidade. possvel criar novos atributos, renomear ou ex- cluir um atributo j existente, como mos- trado na gura 4. Pode-se, tambm, ao lado direito da tela, denir vrias caracte- rsticas do atributo como chave primria na opo Primary Key ou Requerido na opo Required. Figura 2. Barra de ferramenta do ErWin Entidades Criar subtipos de entidades existentes Inserir textos no modelo, como comentrio de entidades, relacionamentos e outros Relacionamento de cardinalidade um para muitos Relacionamento de cardinalidade muitos para muitos Relacionamento de cardinalidade um para um Auxilio para mudar os atributos de posio ou de entidades Figura 3. Criao da Entidade Clientes Figura 4. Editor de Atributos Figura 5. Editor de Relacionamentos entre entidades SQL 20 - Magazine Criando os Relacionamentos Para denir um tipo de relacionamen- to, basta escolher um dos trs objetos j mostrados da barra de ferramentas, clicar na tabela pai e depois na tabela lho. Au- tomaticamente, o relacionamento esco- lhido visualizado. A gura 5 mostra o editor de Relacionamento e suas funcio- nalidades. Ao dar um duplo clique sobre o relacionamento esta tela automati- camente aberta. Nela denimos a car- dinalidade do relacionamento, assim como a nulidade dos campos que esto sendo relacionados. A gura 6 mostra o modelo total- mente criado, com suas entidades, atri- butos e respectivos relacionamentos. Criando o modelo fsico Aps criar todo o modelo lgico ne- cessria a denio dos atributos do mo- delo fsico. Para alternar entre os modelo fsico e lgico basta selecionar na Combo situada logo acima da barra de ferramentas, mos- trada na Figura 1. No modelo fsico iremos denir carac- tersticas das entidades e atributos cria- dos no modelo lgico de acordo com o SGDB utilizado. Neste modelo temos uma viso real das tabelas, colunas, pro- cedures, triggers e outros objetos do nos- so banco. A gura 7 mostra o Editor de Coluna do modelo fsico. Conforme o observado no modelo f- sico, no existem mais Entidades e Atri- butos, e sim Tabelas e Colunas, nomes comuns ao banco de dados. O editor de coluna permite alterar o tipo e tamanho de cada campo, assim como denir se ele pode ou no receber valores nulos. Ain- da pode-se utilizar a aba Comment para comentar cada campo, assim como cada tabela. Criando o banco de dados a partir do Modelo Fsico criado Terminada a implementao neces- srio criar os objetos denidos no ErWin em um banco de dados. Para isso, preci- so fazer o modelo apontar para o SGDB a ser utilizado acessando-se o menu: Ser- ver\Target Server. Alm da seleo do SGDB e da verso do mesmo possvel denir opes referentes ao tipo de da- dos e a nulidade default para as colunas denidas no modelo bem como mscara para nomenclatura automtica de ndices e tabelas. Vide Figura 9. Aps as conguraes do Target Ser- ver, basta acessar o menu Tasks\Forward Engineer/Schema Generation para criar o banco de dados. Vide Figura 10. Utiliza- remos um banco criado no Oracle. Como se pode ver a tela bem intuiti- va. Na pasta Summary indicamos os ob- jetos do nosso modelo ( tabelas, colunas, ndices, triggers, etc.. ) que sero criados no banco. Ao clicar no boto Generate, o banco criado, automaticamente, com todas as tabelas, campos e relacionamen- tos demonstrados no modelo fsico. A Figura 11 mostra os scripts com to- dos objetos gerados no banco de dados a partir do modelo implementado. Criando um modelo a partir de um banco existente Em muitos casos, o banco de dados j est totalmente implementado, sendo necessria a criao do modelo a partir deste. Este processo chama-se Enge- nharia Reversa, e acessado pelo menu Tasks\Reverse Engineer. A primeira tela a ser exibida a ErWin Template Se- lection, onde escolhe-se a opo Blank Diagram para criar o modelo do zero. Ao clicar em Next, depara-se com a tela Select Taget Server, onde informado o tipo de banco de dados a ser utilizado e a sua verso. Clicando-se mais uma vez no boto Next, surge a tela Set Options onde so denidos procedimentos neces- srios realizao da engenharia reversa. Vide gura 12. Figura 6. Modelo lgico com entidades, atributos e relacionamentos. Figura 7. Editor de Coluna Figura 8. Modelo Fsico com Tabelas, Colunas e Relacionamentos Figura 9. Target Server Configurao do Banco de Dados Figura 10. Tela de gerao de banco de dados Modelagem de Dados com ErWin SQL Magazine - 21 Deste modo, as opes da engenharia reversa podem ser denidas como Da- dos de Tabelas, Colunas, TableSpace, Procedure, Triggers e outros. Na opo Table/Views Owned By, foi seleciona- da a opo Current User para importar somente os objetos criados pelo usurio conectado, poderamos importar objetos de todos os usurios do banco ou de um usurio diferente do atualmente conecta- do desde que o mesmo tenha privilgios no banco sucientes para isso. Ainda h possibilidade de se escolher formas de in- dexao e outras coisas mais. Clicando-se no boto Next, visualiza-se a tela de conexo, conforme mostrado na Figura 13. Esta a tela que permite fazer a cone- xo do modelo com o banco de dados denido em Taget Server, mostrado na Figura 9. Esta tela tambm apresentada quando o banco criado a partir do mo- delo. Nela so informados o Nome de Usurio, a Senha e a Connect String que repesenta a instncia onde ser efetuada a conexo, neste caso, com o Oracle. Foi criada uma Connection String, chamada Comercio no TNSNAMES do Oracle apontando para o banco de dados. Feito tudo isso, s clicar no boto Connect que o modelo criado automaticamen- te, conforme mostrado na Figura 14. Foi possvel, a partir de um banco exis- tente, criar um modelo semelhante ao j implementado, conforme j mostrado. No processo de Engenharia Reversa no ErWin, os modelos lgico e fsico so criados automaticamente. Criando vrios modelos fsicos a partir de um nico modelo lgico Ainda se pode, a partir de um modelo lgico, criar modelos fsicos para acessar bancos de dados diferentes do Oracle. Ser criado um modelo fsico que acesse um banco de dados Sql Server a partir do mesmo modelo lgico criado para o Oracle. Para isso basta acessar o Target Server, mostrado na gura 9, mudar o banco para o Sql Server, escolhendo a verso, denindo os padres (como j mostrado) e efetuar os procedimentos mostrados nas guras 10 e 11. A Figura 15 aponta como fica o modelo fsi- co para acessar o banco de dados Sql Server. Observa-se que alguns tipos de campos mudaram, como os campos de valores monetrios, que passaram de Number (7,2) para Money, e os de data, que passaram de Date para Date/Time. Com isso, conclui- se que, a partir de um modelo lgico criado, pode-se criar modelos fsicos para acessar diversos bancos de dados, e este se adapta situao de cada um automaticamente. importante ressaltar que o modelo lgico continua o mesmo. Concluso Estes so apenas alguns dos muitos recursos que o ErWin oferece para mo- delagem de dados. possvel criar Pro- cedures, Triggers, Views, alterar o banco de dados, alterar o modelo a partir de al- guma alterao feita no banco, criar o di- cionrio de dados, etc. A implementao de um modelo antes do incio do desen- volvimento de um sistema garante uma viso ampla e unicada do mesmo, facili- tando em muito a denio da regras de negcio, a implementao, manuteno e anlise dos procedimentos, garantindo inclusive a continuidade do trabalho no caso de alteraes na equipe de desenvol- vimento com pouco ou nenhum retraba- lho uma vez que o modelo disponibiliza de forma clara e objetiva uma documen- tao de toda infra-estrutura do sistema. Figura 11. Script com o cdigo de criao das tabelas de- nidas no modelo. Figura 12. Tela de opes da Engenharia Figura 13. Tela de Conexo com o Oracle. Figura 15. Modelo Fsico para acessar o Sql server. Figura 14. Modelo criado apartir de um banco de dados existente usando a Engenharia Reversa SQLAutor Cleilson Santos Analista de Sistemas, trabalha no Projeto SEP (Sistema de Engenharia de Poo) e SIRR (Sistema de Reserva e Reservatrio) na Petrobrs. Pode ser contatado pelo e-mail cleilsonsantos@uol.com.br