340 likes | 456 Views
IN1008 – Projeto Conceitual de BD. Ferramentas Case para projeto de BD DB-Main e DB-Designer Por: Diogo R. Maciel drm@cin.ufpe.br. Roteiro. Conceitos DB-Main Apresentação da Ferramenta Tutorial DB-Designer Apresentação da Ferramenta Tutorial Conclusões Referências.
E N D
IN1008 – Projeto Conceitual de BD Ferramentas Case para projeto de BDDB-Main e DB-Designer Por: Diogo R. Maciel drm@cin.ufpe.br
Roteiro • Conceitos • DB-Main • Apresentação da Ferramenta • Tutorial • DB-Designer • Apresentação da Ferramenta • Tutorial • Conclusões • Referências
Computer Aided Database Engineering • Projeto de Banco de Dados • Parte do domíniodaEngenharia de SW • “Arte de modelar, validar e implementarestruturas de dados corretas e eficientes”. • Construirgrandes bases de dados (200 a 20.000 tabelas) nãopode ser feitosemsuporte de ferramentas CASE. • Exemplos de Ferramentas: • ERWIN • Rational Rose • DataArchitect • … [Introduction to Database Design, J-L Hainaut 2002]
DB-Main • Fruto de um projeto de pesquisa da Universidade de Namur (Bélgica) • Projetada para suportar a maioria dos processos do projeto de BD • Processos Top-Down • Transformações de esquema • Engenharia reversa • Manutenção, evolução e integração • XML
Abordagem prática • Estudo de caso • Modelo de uma biblioteca que fornece livros para seus usuários cadastrados. • Cada livro possui um código, um título, editora e autores. Opcionalmente pode ter um resumo e palavras chave. • Cada livro pode ter diversas cópias. • Um livro pode referenciar e ser referenciado por outros. • Um autor tem nome, uma nacionalidade e pode escrever um ou vários livros. • Cada cópia tem um código seqüencial e uma localização (Seção, corredor, estante) e pode ter um comentário. • É guardada a informação de quais cópias estão emprestadas a qual usuário com a data do empréstimo.
Abordagem prática • Estudo de caso (continuação) • Um usuário é identificado pelo CPF, e possui nome, endereço e um a 5 telefones. • Um usuário pode ser responsável por vários dependentes. • Uma cópia não pode ser emprestada mais de uma vez no mesmo dia
Tutorial DB-Main • Criando um novo projeto no DB-Main • File / New Project • Criamos um novo projetocom o nome BIBLIOTECA
Tutorial DB-Main • Criando o esquema Conceitual • Product / Nem Schema • Nome: “Biblioteca”, Versão: “Conceitual”
DB-Main: Esquema Conceitual • Definindo as entidades e seus atributos • Adicionar entidades com o botão • Duplo clique na entidade • Botão New att. Para adicionar atributos. • Selecionar nome,cardinalidade e tipo
DB-Main: Esquema Conceitual • Entidades e seus atributos
DB-Main: Esquema Conceitual • Relacionamentos • Selecionar ferramenta de criação de relacionamentose ligar as entidades. • Notação: Cardinalidade invertida
DB-Main: Esquema Conceitual • Identificadores • Selecionar os atributos identificadores e clicar
DB-Main: Esquema Conceitual • Relatório do esquema conceitual • Selecionar View/Text standard. • Em File/Report/Textual view, Escolher nome ediretório de destino.
Tutorial DB-Main • Gerando o esquema Relacional • Transformações • Tradução das entidades e seus atributos • Tradução dos relacionamentos
DB-Main: Esquema Relacional • Decompor atributos compostos • Selecionar atributo Localização. • Transform / Attribute / Disaggregation
DB-Main: Esquema Relacional • Transformar atributos multivalorados em entidades • Selecionar o atributo Autor [1-5] • Transform / Attribute / -> Entity type. • Escolher value representation (1-N)
DB-Main: Esquema Relacional • Transformar relacionamentos N-N em N-1 • Selecionar o relacionamento ESCRITO_POR • Transform / Rel-type / -> Entity type
DB-Main: Esquema Relacional • Traduzir relacionamentos 1-N • Selecionar o relacionamento. • Transform / Rel-type / -> Attribute.
Tutorial DB-Main • Gerando esquema físico • File / Generate / Standard SQL
Avaliação DB-Main • Pontos fortes • Suporte a vários tipos de modelagem • Conceitual, Relacional, UML, Casos de Uso... • Transformações automáticas • Suporte a processos de desenvolvimento • Facilita a documentação • Pontos fracos • Poucos tipos de dados • Notação não é tão fácil de entender • Não tem conceito de entidade associativa • Interface pouco intuitiva
DB-Designer • Integra projeto, modelagem, criaçãoe manutenção. • Open Source • Projetado para MySQL • Recursos: • Engenharia reversa • Geração de código • Design / Query mode • Salva o modelo na base de dados
Abordagem prática • Usando o mesmo modelo da Biblioteca
Tutorial DB-Designer • Construindo tabelas • Definir colunas e seus tipos de dado • Chaves primárias, not null, e AutoInc • Indices
Tutorial DB-Designer • Relacionamentos • 1:N, 1:1, N:M • Quatro notações
Tutorial DB-Designer • Esquema Relacional
Tutorial DB-Designer • Esquema físico • File / Export / SQL Create Script
Tutorial DB-Designer • Engenharia Reversa • Extrair um modelo armazenado no MySQL • Criar novo projeto • Database / Reverse Engeneering • Selecionar conexão
Tutorial DB-Designer • Engenharia Reversa (Cont.) • Resultado: • Tabelas extraídas perfeitamente • Alguns Relacionamentos não são identificados • Alguns tipos de dado não correspondem ao modelo original
Avaliação • Pontos fortes • Geração automática de código SQL • Exporta o esquema em XML • Conexão com o SGBD • Fácil de usar • Pontos fracos • Não permite modelagem conceitual • Voltada para um SGBD específico
Conclusões • DB-Main • Indicado para projetos maiores • Mais recursos • Mais complexo • DB-Designer • Indicado para projetos mais simples • Interface mais amigável • Limitado ao SGBD
Referências • Vincent Englebert and Jean-Luc Hainaut. DB-MAIN: A Next Generation Meta-CASE, Information Systems Journal,24(2): Pergamon, 1999. • LIBD - Laboratory of Database Application Engineering – University of Namur: www.info.fundp.ac.be/libd/ • DB-Main: www.dbmain.be • DB-Designer: www.fabforce.net/dbdesigner4/