Metodologias e Processos para Projeto Conceitual de Banco de Dados Erica Teixeira Gomes de Sousa ([email protected]) Prof: Drº Robson do Nascimento Fidalgo Roteiro •Motivação •Introdução •Esquema de Transformação •Primitivas •Top-down •Bottom-up •Metodologias •Top-down •Bottom-up •Mista •Inside-out •Processos •Conclusão •Referências Motivação • Estudo da fase mais crítica de projeto de banco de dados. • Entendimento da importância do usuário do banco de dados em relação ao sucesso do projeto conceitual. • Criação do projeto inicial. • Criação do projeto final a partir de refinamentos no projeto inicial. Introdução A construção de um esquema ER é um processo incremental: nossa visão da realidade é progressivamente refinada e enriquecida, o esquema é gradativamente desenvolvido. •Primitivas de refinamento São um conjunto de transformações que podem ser aplicadas ao esquema inicial e produzir um esquema final. Tornam a construção do esquema mais simples e confiável. •Top-down •Bottom-up Introdução •Estratégias baseadas nas primitivas •Top-down Refina conceitos abstratos em conceitos concretos. •Bottom-up Refina conceitos concretos em conceitos abstratos. •Mista •Inside-out As estratégias e primitivas são blocos de construção utilizados na metodologia de projeto conceitual. A metodologia de projeto conceitual deve obedecer a dois aspectos: •Rigorosa •Flexível Introdução Rigorosa Deve sugerir uma estratégia para todas as decisões importantes feitas durante o projeto. As estratégias devem ser baseadas numa abordagem formal onde cada processo de decisão deve corresponder a um algoritmo. Flexível Deve ser aplicada a uma variedade de situações e cenários. Esquema de Transformação O esquema do projeto conceitual é resultado de uma análise complexa de suas exigências. O esquema inicial passa por processos interativos ou transformações até atingir o processo final. Características •Começa com um esquema inicial que é transformado e resulta em um esquema final. •Cada esquema de transformação mapeia nomes de conceitos do esquema inicial em nomes de conceitos do esquema final. •Conceitos do esquema final devem ter todas as conexões lógicas definidas para os conceitos do esquema inicial. Esquema de Transformação Esquema Inicial Esquema Final Esquema de Transformação Transformação Primitivas As primitivas de refinamento são responsáveis pelas transformações. O tipo de transformação usada durante a fase de projeto está relacionada a qualidade da atividade de projeto. Deve-se usar o menor conjunto de transformações para atender as exigências de modelagem. Uso de um conjunto de estruturas simples ou transformações primitivas que não podem ser decompostas. Primitivas •Top-down Refinamento puro que é um refinamento aplicado a um conceito simples e produz mais detalhes descritivos sobre o conceito. •Bottom-up Introduz um novo conceito e propriedades que não aparecem num esquema anterior. Primitivas Top-down •Propriedades •Tem uma estrutura simples: O esquema inicial é um conceito simples e resulta em um esquema final composto de um pequeno conjunto de conceitos. •Todos os nomes são refinados em novos nomes descrevendo o conceito original com um menor nível de abstração. •As conexões lógicas do esquema final devem ser obtidas do conceito simples. Primitivas Top-down Primitivas Top-down Primitiva T1 Esquema Inicial Esquema Final Refinamento de uma entidade em um relacionamento entre duas ou mais entidades. Primitiva T1 Esquema Inicial Esquema Final Refinamento de uma entidade em um relacionamento entre duas ou mais entidades. Primitiva T1 Transformação Refinamento de uma entidade em um relacionamento entre duas ou mais entidades. Primitiva T2 Esquema Inicial Esquema Final Refinamento de uma entidade em uma generalização. Primitiva T2 Esquema Inicial Esquema Final Refinamento de uma entidade em uma generalização. Primitiva T2 Transformação Refinamento de uma entidade em uma generalização. Primitiva T3 Esquema Inicial Esquema Final Refinamento de uma entidade em um conjunto de entidades independentes. Primitiva T3 Esquema Inicial Esquema Final Refinamento de uma entidade em um conjunto de entidades independentes. Primitiva T3 Transformação Refinamento de uma entidade em um conjunto de entidades independentes. Primitiva T4 Esquema Inicial Esquema Final Refinamento de um relacionamento em dois (ou mais) relacionamentos entre as mesmas entidades. Primitiva T4 Esquema Inicial Esquema Final Refinamento de um relacionamento em dois (ou mais) relacionamentos entre as mesmas entidades. Primitiva T4 Transformação Refinamento de um relacionamento em dois (ou mais) relacionamentos entre as mesmas entidades. Primitiva T5 Esquema Inicial Esquema Final Refinamento de um relacionamento em entidade e relacionamentos Primitiva T5 Esquema Inicial Esquema Final Refinamento de um relacionamento em entidade e relacionamentos Primitiva T5 Transformação Refinamento de um relacionamento em entidade e relacionamentos Primitiva T6 Esquema Inicial Esquema Final Refinamento de uma entidade (ou relacionamento) com a introdução de atributos. Primitiva T6 Esquema Inicial Esquema Final Refinamento de uma entidade (ou relacionamento) com a introdução de atributos. Primitiva T6 Transformação Refinamento de uma entidade (ou relacionamento) com a introdução de atributos. Primitiva T7 Esquema Inicial Esquema Final Refinamento de uma entidade (ou relacionamento) com a introdução de atributos compostos. Primitiva T7 Esquema Inicial Esquema Final Refinamento de uma entidade (ou relacionamento) com a introdução de atributos compostos. Primitiva T7 Transformação Refinamento de uma entidade (ou relacionamento) com a introdução de atributos compostos. Primitiva T8 Esquema Inicial Esquema Final Refinamento de um atributo simples em um atributo composto ou em um grupo de atributos. Primitiva T8 Esquema Inicial Esquema Final Refinamento de um atributo simples em um atributo composto ou em um grupo de atributos. Primitiva T8 Transformação Refinamento de um atributo simples em um atributo composto ou em um grupo de atributos. Primitivas Bottom-up Introduz novos conceitos e propriedades que não aparecem em um esquema anterior, ou modifica os conceitos existentes. Usadas no projeto de um esquema quando descobrimos features do domínio de aplicação que não podem ser capturadas por esquemas anteriores em qualquer nível de abstração. Usadas quando diferentes esquemas são integrados em um esquema global. Primitivas Bottom-up Primitivas Bottom-up Primitiva B1 Esquema Inicial Geração de uma nova entidade Esquema Final Primitiva B1 Esquema Inicial Geração de uma nova entidade Esquema Final Primitiva B1 Transformação Geração de uma nova entidade Primitiva B2 Esquema Inicial Esquema Final Geração de um novo relacionamento entre entidades. Primitiva B2 Esquema Inicial Esquema Final Geração de um novo relacionamento entre entidades. Primitiva B2 Transformação Geração de um novo relacionamento entre entidades. Primitiva B3 Esquema Inicial Refinamento de entidades em uma generalização. Esquema Final Primitiva B3 Esquema Inicial Refinamento de entidades em uma generalização. Esquema Final Primitiva B3 Transformação Refinamento de entidades em uma generalização. Primitiva B4 Esquema Inicial Esquema Final Geração de um atributo e a agregação dele a uma entidade. Primitiva B4 Esquema Inicial Esquema Final Geração de um atributo e a agregação dele a uma entidade. Primitiva B4 Transformação Geração de um atributo e a agregação dele a uma entidade. Primitiva B5 Esquema Inicial Esquema Final Geração de um atributo composto e a agregação dele a uma entidade. Primitiva B5 Esquema Inicial Esquema Final Geração de um atributo composto e a agregação dele a uma entidade. Primitiva B5 Transformação Geração de um atributo composto e a agregação dele a uma entidade. Primitivas Propriedades •Completo O conjunto de primitivas é completo se qualquer esquema pode ser construído a partir de um esquema inicial pela aplicação de uma seqüência de primitivas. •Mínimo O conjunto de primitivas é mínimo se não existe primitiva do conjunto que possa ser expressada usando outras primitivas. Primitivas Primitivas Propriedades As primitivas top-down não são completas. Basta verificar que há esquemas que não podem ser gerados com uso apenas de primitivas top-down. As primitivas bottom-up são mínimas ou seja cada primitiva introduz um conceito diferente do modelo. As primitivas bottom-up são completas ou seja cada esquema pode ser gerado primeiro com a introdução de entidades e então com a inserção de todos os outros conceitos com o uso das primitivas apropriadas. Todos os esquemas podem ser gerados a partir das primitivas bottom-up mas somente alguns esquemas podem ser gerados a partir das primitivas top-down. Metodologias •Top-down •Bottom-up •Inside-out •Mista Top-down A estratégia top-down deve ser aplicada quando o projetista tem uma visão high-level de todos os requisitos de projeto. O esquema é obtido aplicando a primitiva de refinamento top-down onde cada primitiva introduz um novo detalhe no esquema. O processo termina quando todas os requisitos de projeto são representadas. O cone representa abstratamente o processo de projeto: a cada transformação top-down, o projetista move de um plano para outro do cone indicando uma nova etapa do projeto. Todos os conceitos representados no esquema final devem estar presente em cada plano de refinamento. Top-down Domínio de Aplicação Plano do Primeiro Refinamento Plano do Refinamento Genérico Plano do Refinamento Final Projeto Exemplo: Designação do banco de dados do censo representado pelas propriedades das pessoas e áreas geográficas. Propriedades das pessoas: •Nome •Idade •Altura •Lugar de nascimento •Data de nascimento •Endereço residencial •Tempo de moradia •Número de reservista Projeto Exemplo: Designação do banco de dados do censo representado pelas propriedades das pessoas e áreas geográficas. Propriedades dos lugares: •Nome •População •País de origem •País estrangeiro. •O estado brasileiro referente ao país de origem. •O continente referente ao país estrangeiro. Projeto Top-down Primeiro Esquema Segundo Esquema Refinamento de uma entidade em um relacionamento entre duas ou mais entidades. Projeto Top-down Terceiro Esquema Refinamento de uma entidade em uma generalização. Refinamento de uma entidade (ou relacionamento) com a introdução de atributos. Projeto Top-down Bottom-up O esquema é obtido aplicando a primitiva de refinamento bottomup. O esquema inicial começa com conceitos elementares e a cada transformação conceitos mais complexos são obtidos. Os requisitos de projeto são decompostos,conceituados independentemente e organizados em um esquema global. No processo de projeto mostrado na figura, os conceitos elementares pertencentes ao esquema são produzidos; então as estruturas provindas pelo modelo conceitual são agregadas para formação de um esquema final. Bottom-up Domínio de Aplicação Produção de Conceitos Elementares Coleta de Conceitos Elementares Agregação de Conceitos Elementares Esquema Final Bottom-up A vantagem da estratégia bottom-up é que vários fragmentos do problema são produzidos por vez então vários esquemas intermediários são produzidos, rapidamente. A desvantagem da estratégia bottom-up é a necessidade de reestruturar o esquema. Quando esquemas complexos são integrados, uma apropriada reestruturação é sempre difícil e crucial. A soma da observação de conceitos concretos e semânticas de relacionamentos são obtidos no fim do processo de projeto. Podem ser obtidos diferentes esquemas do resultado do projeto top-down e bottom-up. Projeto Exemplo: Designação do banco de dados do censo representado pelas propriedades das pessoas e áreas geográficas. Propriedades das pessoas: •Nome •Idade •Altura •Lugar de nascimento •Data de nascimento •Endereço residencial •Tempo de moradia •Número de reservista do homem. Projeto Exemplo: Designação do banco de dados do censo representado pelas propriedades das pessoas e áreas geográficas. Propriedades dos lugares: •Nome •População •País de origem •País estrangeiro. •O estado brasileiro referente ao país de origem. •O continente referente ao país estrangeiro. Projeto Bottom-up Primeiro Esquema Nome Idade Altura Segundo Esquema Serviço Militar Data Nascimento Anos Estado Continente Nome Local População Geração de um atributo e a agregação dele a uma entidade. Projeto Bottom-up Terceiro Esquema Refinamento de entidades em uma generalização. Projeto Bottom-up Inside-out A estratégia inside-out é um caso especial da estratégia bottomup. Inicialmente, os conceitos considerados mais importantes são determinados e gradativamente conceitos periféricos são adicionados. Na estratégia inside-out, os refinamentos são ordenados como na estratégia top-down. Entretanto, os níveis de abstração introduzidos nas sucessivas versões dos esquemas são similares. Não há vantagem na criação dos esquemas pelo nível de abstração. Inside-out Domínio de Aplicação Seleção do Conceito mais Importante Esquema Inicial Esquema Intermediário Procede movendo como uma mancha de óleo Esquema Final Projeto Exemplo: Designação do banco de dados do censo representado pelas propriedades das pessoas e áreas geográficas. Propriedades das pessoas: •Nome •Idade •Altura •Lugar de nascimento •Data de nascimento •Endereço residencial •Tempo de moradia •Número de reservista do homem. Projeto Exemplo: Designação do banco de dados do censo representado pelas propriedades das pessoas e áreas geográficas. Propriedades dos lugares: •Nome •População •País de origem •País estrangeiro. •O estado brasileiro referente ao país de origem. •O continente referente ao país estrangeiro. Projeto Inside-out Mista Envolve as vantagens das estratégias top-down e bottom-up, permitindo o particionamento dos requisitos. Os esquemas são particionados em grupos baseados em sua similaridade. Cada grupo é integrado separadamente. Este processo é repetido até a geração de um esquema final. Um esquema esqueleto representa o conceito mais importante do domínio de aplicação. Misto Domínio de Aplicação Domínio de Aplicação 1 Domínio de Aplicação 2 Esquema Esqueleto Esquema 1 Esquema 2 Esquema Integrado Projeto Exemplo: Designação do banco de dados do censo representado pelas propriedades das pessoas e áreas geográficas. Propriedades das pessoas: •Nome •Idade •Altura •Lugar de nascimento •Data de nascimento •Endereço residencial •Tempo de moradia •Número de reservista do homem. Projeto Exemplo: Designação do banco de dados do censo representado pelas propriedades das pessoas e áreas geográficas. Propriedades dos lugares: •Nome •População •País de origem •País estrangeiro. •O estado brasileiro referente ao país de origem. •O continente referente ao país estrangeiro. Projeto Mista Esquema Esqueleto Esquema Pessoas Projeto Mista Esquema Locais Projeto Mista Comparação entre as estratégias Processos Análise de requisitos. •Análise de requisitos para descoberta das ambigüidades e entendimento do significado dos termos. •Particionamento das sentenças em conjuntos homogêneos onde cada conjunto corresponde a um conceito específico. •Projeto Inicial. •Construção de um esquema esqueleto global baseado nos grupos de sentenças. •Projeto do esquema - para cada conceito no esquema esqueleto, aplicar •Primitiva Top-down •Primitiva Bottom-up até todos os requisitos terem sido expressos no esquema. Análise de Requisitos Escolha do apropriado nível de abstração para os termos. Exemplos: Lugar → Cidade Período → Número de anos •Evitar o uso de instâncias ao invés de conceitos gerais. Maior especificação dos termos que o necessário. Exemplo: “Diariamente, eu preciso saber a quantidade de chips no estoque” O conceito é componente e não chips. •Evitar expressões repetidas. Exemplo: Olhe a pessoa sentada no setor de reservas fazendo reservas de vôos. Olhe o atendente fazendo reservas de vôos. Análise de Requisitos •Checar a existência de sinônimos e homônimos. •Fazer referências explícitas entre termos . Exemplo: O Número do telefone é do departamento ou professor. •Construção de um glossário de termos. Para eliminar ambigüidades dos requisitos e entender o significado dos termos. Apenas os termos do glossário devem ser usados para descrever os requisitos. Análise de Requisitos Termos ambíguos. Requisitos do banco de dados de uma universidade Fonte:Batini,Ceri e Navathe Análise de Requisitos Particionamento das sentenças em grupos homogêneos. Fonte:Batini,Ceri e Navathe Projeto Inicial Primeiro Esquema Esqueleto Projeto Inicial Refinamento do Esquema Esqueleto Projeto do Esquema Transformação Top-down Projeto do Esquema Refinamento do Esquema Esqueleto Projeto do Esquema Transformação Bottom-up Projeto do Esquema Transformação Inside-out Projeto do Esquema Transformação Inside-out Projeto do Esquema Esquema Final Conclusão • O uso das metodologias para o projeto conceitual de banco de dados evitam falhas no desenvolvimento de sistemas de informação. • A análise dos requisitos com entendimento dos termos e filtragem das ambigüidades para posterior agrupamento dos termos de forma de acordo com os conceitos que representam. • Criação de um projeto inicial baseado nas sentenças. • Criação de um projeto esquema com o uso das metodologias de projeto conceitual de banco de dados. Referências •Batini C., Ceri S., Navathe S. Conceptual Database Design: An Entitiy Relationship Approach. The Benjamin/Cummings Publishing Company, Inc. 1992. •Heuser, C. Projeto de Banco de Dados. Instituto de informática da UFRGS, 4º Edição,1998. •Cameira R. e Caulliraux H. Engenharia de processos de negócios: Considerações, Metodologias com vistas à Análise e Integração de Processos.