Transformações entre Modelos



Documentos relacionados
Tradução de Entidade. Tradução de Relacionamentos 1:1. Tradução de Relacionamentos 1:1. Empregado. Empregado (CPF, Nome, Salário) CPF Nome Salário

CIn/UFPE Projeto Conceitual de BD - Prof. Robson Fidalgo 1

Modelo Relacional. Modelo Relacional. Tabelas

Roteiro. Modelo de Dados Relacional. Processo de Projeto de Banco de Dados. BCC321 - Banco de Dados I. Ementa. Posicionamento.

Banco de Dados Modelo Conceitual, Lógico, Físico, Entidade- Relacionamento (ER) Hélder Nunes

Disciplina: Unidade III: Prof.: Período:

O Modelo de Entidades e Relacionamentos (MER) é um modelo conceitual usado para projeto de aplicações de banco de dados.

Prof.: Clayton Maciel Costa

Níveis de Abstração. Mundo Real. Transformações entre modelos. Analista. Mini-mundo. Banco de Dados I. Unidade I. Modelo de Banco de Dados.

Técnicas e Linguagens para Banco de Dados I

Processo de Projeto Bottom-Up. esquema conceitual do BD. engenharia reversa do esquema relacional. esquema relacional integrado do BD (esquema global)

Processo de Projeto Bottom-Up. esquema conceitual do BD. engenharia reversa do esquema relacional. esquema relacional integrado do BD (esquema global)

Banco de Dados Transformação Modelo Conceitual para Lógico Relacional. Prof. Juliano Lucas Gonçalves

Profa. Daniela Barreiro Claro

Modelo Entidade-Relacionamento

PROJETO LÓGICO. Passos para transformação ER Relacional: 1) Tradução inicial de Entidades e seus Atributos;

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

Curso Superior em Tecnologia de Análise e Desenvolvimento de Sistemas. Campus Alegrete. Banco de Dados I. Cristhiano Bossardi de Vasconcellos.

Banco de Dados - Senado

Projeto de Banco de Dados

O modelo de dados relacional e as restrições de um banco de dados relacional

GBC043 - Sistemas de Banco de Dados Mapeamento ER, EER para o Relacional

Aula VI -MODELO RELACIONAL

Persistência e Banco de Dados em Jogos Digitais

Computadores e Sistemas de Informação. Bases de Dados Relacionais (linguagem SQL)

Núcleo de Pós Graduação Pitágoras

Curso Superior de Tecnologia em BD

INF Fundamentos de Banco de Dados Exercícios sobre normalização

Modelo Entidade-Relacionamento DCC011. Modelo Entidade-Relacionamento. Processo de Projeto de Bancos de Dados

Funcionários. Funcionários. PrimeiroNome NomesDoMeio ÚltimoNome. CPF Nome Salário. CPF PrimeiroNome NomesDoMeio ÚltimoNome Salário

Unidade II ADMINISTRAÇÃO DE. Prof. Luiz Fernando de Lima Santos

Banco de Dados Lista de Exercícios 01

Capítulo 5 Complemento. 5.1 Laudon, Cap. 5

BANCO DE DADOS. Fixação dos conteúdos Integridade Referencial Normalização Exercícios

Modelo de Entidade e Relacionamento (MER) - Parte 07

Linguagem SQL Sub-linguagem DDL

Banco de Dados I. Prof. Bal. Emerson Meneses Inocente

BANCO DE DADOS PROFESSOR MAURÍCIO - MAURICIO.MELLO@PUCPR.BR AULA 02. O Modelo Entidade-Relacionamento ( MER )

CICLO DE VIDA DE UM BD

Prof. Alexandre Unterstell Banco de Dados I

Banco de Dados para Redes. Cassio Diego cassiodiego.com/bdr

MODELAGEM DE DADOS. Unidade II Arquiteturas do SGBD

Programação SQL. Introdução

PROJETO DE BANCO DE DADOS -PROJETO CONCEITUAL. Prof. Angelo Augusto Frozza, M.Sc.

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br 04/08/2012. Aula 7. Prof. Rafael Dias Ribeiro.


Tecnologias e Linguagens para Banco de Dados I. Expressão do Relacionamento. Expressão do Relacionamento

Prof.: Clayton Maciel Costa

Modelagem dos dados. entendo. Reino Real. Reino. Representação

Modelo Relacional. Aécio Costa

Engenharia de Software

MODELO RELACIONAL - UFMA

Banco de Dados. Modelagem de Dados com MER. Prof. Walteno Martins Parreira Jr

Roteiro. Modelagem de Dados: Usando o Modelo Entidade-Relacionamento. BCC321 - Banco de Dados I. Processo de Projeto de Banco de Dados.

AULA Entidade-Relacionamento

LINGUAGEM DE BANCO DE DADOS

Principal: construir uma base de dados para produção de informações sobre internações hospitalares;

BANCO DE DADOS -PROJETO LÓGICO. Prof. Angelo Augusto Frozza, M.Sc.

Modelo Relacional. Modelo Relacional. Conceitos Gerais: Relação

Conceitos Básicos. Conceitos Básicos. Sistema de Arquivos. Prof. Edilberto Silva - edilms@yahoo.com. Sistemas de Informação Brasília/DF

Lista de exercícios 01

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Fundamentos de Bancos de Dados Prova 3

BANCO DE DADOS. info 3º ano. Prof. Diemesleno Souza Carvalho

Desenho e Modelação de Esquemas de Bases de Dados

Banco de Dados Capítulo 2: Modelo Relacional. Bach. em Ciência da Computação UFPB/CCT Cláudio Baptista, PhD

Modelagem de Dados e Conversão de Modelos. Frederico Damasceno Bortoloti freddb@ltc.ufes.br

Abordagem relacional Capítulo 4

Disciplina de Banco de Dados Parte V

Aula II Introdução ao Modelo de Entidade-Relacionamento

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Banco de Dados. Arquitetura e Terminologia. Prof. Walteno Martins Parreira Jr waltenomartins@yahoo.

Bases de Dados. Parte III: O Modelo Relacional

Introdução à Banco de Dados. Definição

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

DCC011 - INTRODUÇÃO A BANCO DE DADOS : EXERCÍCIOS DE REVISÃO FINAL (1) PROJETO RESPOSTA. (2) PROJETO (a) RESPOSTA. (2) PROJETO (b) RESPOSTA.

APOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL

Modelagem de Dados Usando o Modelo Entidade-Relacionamento

Capitulo 2. Prof.º Espc. Fábio Margarito Martins de Barros - Tecnologia de banco de dados

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Microsoft Access Para conhecermos o Access, vamos construir uma BD e apresentar os conceitos necessários a cada momento

SQL Linguagem de Definição de Dados. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

O modelo Entidade-Relacionamento. Agenda: -Modelagem de dados utilizando O Modelo Entidade-Relacionamento

Oficina. Praça das Três Caixas d Água Porto Velho - RO

MODELAGEM DE DADOS. Banco de Dados I. O uso da análise e do projeto Orientados a Objetos atenuou a separação! Unidade I

BANCO DE DADOS I AULA 6. Wlllamys Araújo willamysaraujo7@gmail.com

Banco de Dados Modelo Entidade-Relacionamento. Frederico D. Bortoloti

ENGENHARIA DA COMPUTAÇÃO BANCO DE DADOS I CONTEÚDO 5 ABORDAGEM RELACIONAL

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

SQL DDL. Frederico D. Bortoloti

Conceitos Básicos de Banco de Dados


GBC043 Sistemas de Banco de Dados. Introdução. Ilmério Reis da Silva UFU/FACOM

Ciclo de Desenvolvimento de Sistemas de BD

MODELO DE DADOS. É uma imagem gráfica de toda a base de informações necessárias para um determinado empreendimento.

Modelagem de dados e uso do SGBD MySQL

Disciplina: Unidade II: Prof.: Período:

Banco de Dados Objeto Relacional

OBJETIVOS. Orientações para Projetos de BD; Dependências Funcionais (DFs): Definição de DF; Regras de inferência para DFs.

Transcrição:

Transformações entre Modelos Maria Claudia Cavalcanti IME Base Bibliog. Projeto de Banco de Dados Carlos Heuser Conceptual Database Design Batini, Ceri, Navathe Qual é o ponto de partida? Esquema Conceitual Engenharia reversa Modelagem lógica Esquema Lógico

Qual é o ponto de partida? Esquema ER Engenharia reversa Mapeamento ER-Relacional Esquema Relacional Mapeamento ER-Relacional Diferentes esquemas relacionais podem ser gerados Refinamentos do esquema relacional gerado são oriundos do conhecimento maior sobre a aplicação, inclusive sobre seu desempenho conhecimento da aplicação Esquema ER Refinamento do esquema relacional Esquema Relacional Mapeamento ER-Relacional

Mapeamento do E-R para Relacional Metodologia Eliminação dos identificadores externos; Eliminação de atributos compostos e multi-valorados; Tradução de cada entidade em uma relação; Tradução de cada relacionamento : (a) relacionamentos n:m requerem uma relação separada (b) relacionamentos 1:n, 1:1 podem ser modelados pela adição de atributos às relações já existentes. Tradução de Generalização/Especialização Eliminação de Identificadores Externos Transformá-los em identificadores internos no modelo relacional Universidade Código_Universidade Nome Cidade Universidade Código_Universidade Nome Cidade Matrícula Código_Universidade Estudante Número_Estudante Nome_Estudante Idade Estudante A chave da entidade externa foi importada para ESTUDANTE Número_Estudante Nome_Estudante Idade

Eliminação de Atributos Compostos Pessoa Nome Idade Endereço Rua CEP Estado Pessoa Nome Idade Rua CEP Estado Eliminação do nível intermediário Pessoa Nome Idade Endereço Detalhes são deixados para a aplicação Eliminação de Atributos Multivalorados Entidades Produto Código_Produto Códigos_de_Materiais (1,n) Preço Produto + Código_Produto Preço Introdução de nova entidade. Uma para cada atributo multi-valorado. Produto Material Código_Produto Código_de_Material

Instrutor (0,m) Eliminação de Atributos Multivalorados Relacionamentos Código_Instrutor Departamento Telefone Instrutor (0,m) Código_Instrutor Departamento Telefone Oferece Número_Max_Estudantes Trimestre (1,n) Oferece Número_Max_Estudantes (1,m) (1,n) Curso Número_Curso Curso + Número_Curso Oferta_de_Cursos Código_Instrutor Número_Curso Trimestre Tradução de Entidade Empregado CPF Nome Salário Empregado (CPF, Nome, Salário)

Tradução de Relacionamentos 1:1 Cliente tem Carregamento Nome Código_Cliente Endereço Código_Cliente Agrupando numa mesma relação CLIENTE_CARREGAMENTO (Código_Cliente, Nome, Endereço) Ambas as entidades têm o mesmo identificador E se as entidades tiverem diferentes identificadores? Tradução de Relacionamentos 1:1 CLIENTE (0,1) POSSUI CARTÃO_DE_ CRÉDITO LIMITE_CRÉDITO NÚMERO_CARTÃO NOME TIPO_CARTÃO CÓDIGO_CLIENTE Agrupando em relações distintas * CLIENTE (CÓDIGO_CLIENTE, NOME) CARTÃO_DE_CRÉDITO (TIPO_CARTÃO, NÚMERO_CARTÃO, LIMITE) POSSUI (TIPO_CARTÃO, NÚMERO_CARTÃO, CÓDIGO_CLIENTE) As entidades têm identificadores diferentes (Qual seria ainda outra alternativa neste caso?) Uma das entidades tem participação opcional

Tradução de Relacionamentos 1:1 DATA REGIME HOMEM (0,1) (0,1) CASAMENTO MULHER MLH_CPF NOME HOM_CPF NOME HOMEM (HOM_CPF, NOME) MULHER (MLH_CPF, NOME) * Ambas as entidades têm participação opcional CASAMENTO (HOM_CPF, MLH_CPF, DATA, REGIME) Que observação pode ser feita sobre a chave primária de CASAMENTO? Tradução de Relacionamentos 1:n CIDADE PERTINÊNCIA NOME_CIDADE POPULAÇÃO Ambas entidades têm participação obrigatória (1,n) ESTADO NOME_ESTADO GOVERNADOR POPULAÇÃO CIDADE (NOME_CIDADE, NOME_ESTADO, POPULAÇÃO) ESTADO (NOME_ESTADO, GOVERNADOR, POPULAÇÃO)

Tradução de Relacionamentos 1:n VENDEDOR NOME TELEFONE (1,n) PREENCHE DESCONTO (0,1) PEDIDO NÚMERO_PEDIDO DATA participação opcional VENDEDOR (NOME_VEND, TELEFONE) PEDIDO (NÚMERO_PEDIDO, DATA) PREENCHE (NÚMERO_PEDIDO, NOME_VEND, DESCONTO) Tradução de Relacionamentos n:m ESTUDANTE NÚMERO_ESTUDANTE NOME_ESTUDANTE (1,n) MATRÍCULA (1,m) CURSO SEMESTRE GRAU NÚMERO_CURSO NOME_CURSO Independe das! cardinalidades ESTUDANTE (NÚMERO_ESTUDANTE, NOME_ESTUDANTE) CURSO (NÚMERO_CURSO, NOME_CURSO) MATRÍCULA (NÚMERO_ESTUDANTE, NÚMERO_CURSO, SEMESTRE, GRAU)

Tradução de Relacionamentos n-ários PEÇA (1,n) COD_PEÇA DESCRIÇÃO COD_FORN NOME ENDEREÇO TELEFONE FORNECEDOR (1,n) (1,n) PROJETO COD_PROJETO NOME DATA_ABERT QTDE PEÇA (COD_PEÇA, DESCRIÇÃO) FORNECEDOR (COD_FORN, NOME, ENDEREÇO, TELEFONE) PROJETO (COD_PROJETO, NOME, DATA_ABERT) FORNECIMENTO (COD_PEÇA, COD_FORNECEDOR, COD_PROJETO, QTDE) E se um dado par peça-projeto só pudesse ser fornecido por um único fornecedor? Tradução de Auto Relacionamentos REG_EMP NOME DATA_NASC EMPREGADO É_COORDENADO É_COORDENADOR COORDENA EMPREGADO (REG_EMP, NOME, DATA_NASC) COORDENA (REG_SUB, REG_COORDENADOR) E se o relacionamento for 1:n?

Chaves Primárias A princípio o atributo identificador da entidade é considerado como chave primária. No entanto, atualmente, há alternativas. A escolha fica entre usar uma chave natural ou uma chave artificial Chave natural (Natural key): chave indicada a partir da análise do domínio (atributo(s) identificadores da entidade) Chave artificial (Surrogate key): chave que pode ser criada artificialmente para identificar unicamente as tuplas de uma relação, sem significado para o domínio em questão. Wieringa and De Jonge (1991) definem Surrogate Key como an object in the database itself. The surrogate is internally generated by the system and is invisible to the user or application. Chaves Primárias Surrogate keys podem também ser chamadas de Internal identifier, system-generated key, database sequence number, synthetic key, factless key, technical key, or arbitrary unique identifier. SURROGATE to put in the place of another: a : to appoint as successor, deputy, or substitute for oneself b : SUBSTITUTE

Chaves Primárias Chave natural (Natural key): Vantagens: identifica naturalmente a relação Buscas normalmente com base em chaves naturais Evita a criação de algo extra Exemplos: CPF, código do título de eleitor Desvantagens: Sujeita a mudanças do negócio ou domínio em questão: ao mudarem os valores da chave natural, todas as referências a cada valor da chave primária (nas demais tabelas) vão precisar ser alteradas; Exemplos: email - usuário pode querer mudar de email, códigoempregado uma empresa identifica seus empregados unicamente por um código, mas ao fundir-se com outra empresa passa a ter outra codificação que respeitar. Chaves Primárias Chave artificial (Surrogate key): Vantagens: Não está sujeita às mudanças de negócio: alterações na chave natural ficam restritas a uma única tabela Desvantagens: Mais um atributo Manutenção de valores únicos é uma preocupação do próprio SGBD ao gerar os números novos a cada inclusão Como não fazem parte do domínio as SK não são entendíveis pelos humanos. Tem-se que manter as chaves candidatas (alternativas) para acesso direto: busca e visualização do usuário. Qual usar?

Chaves Primárias Implementações de Surrogate keys Universally Unique Identifiers (UUIDs) Globally Unique Identifiers (GUIDs) Object Identifiers (OIDs) Sybase or SQL Server identity column Oracle SEQUENCE PostgreSQL serial MySQL AUTO_INCREMENT AutoNumber data type in Microsoft Access AS IDENTITY GENERATED BY DEFAULT in IBM DB2 Chaves Primárias Ao optar por usar chaves artificiais (surrogate keys) como chaves primárias, declarar chaves candidatas Estendendo a notação resumida de C. Heuser Exemplo: Empregado (IdEmp, matrícula,, idcargo, ), idcargo referencia Cargo, matricula é chave candidata (única e não nula);

Tradução de Hierarquias Há duas alternativas principais: Fusão: Fundir todas as entidades em uma única relação Distribuição: Uma tabela para cada entidade específica e uma tabela pra a entidade genérica Tradução de Hierarquias Fusão Chave primária fica sendo a da entidade mais genérica Incluir uma coluna tipo para manter a informação sobre a especialização Passar todos os atributos das entidades especializadas para entidade genérica Fazer o mesmo para os relacionamentos Aplicar as regras já conhecidas

Traduzindo Hierarquias LOTACAO PARTICIPACAO DOMINIO PERTENCE PROJETO SW DEPTO Codigo EMPREGADO Código Código Código Habilitacao Código RAMO ENGENH (1,n) MOTORISTA SECRETARIA ENGENHEIRO CREA Traduzindo Hierarquias - fusão LOTACAO PARTICIPACAO DOMINIO PERTENCE PROJETO SW DEPTO Codigo tipo EMPREGADO Código Código Código CREA Habilitacao Código RAMO ENGENH (1,n)

Traduzindo Hierarquias fusão EMPREGADO(codEmp,, tipo, crea, habilitacao, codramo, coddepto) codramo referencia RAMOENG coddepto referencia DEPTO DEPTO (coddepto,, desc) SW (codsw,, desc) RAMOENG(codRamo,,desc) PROJETO (codproj,, desc) DOMINIO(codSW, codemp); codsw referencia SW codemp referencia EMPREGADO PARTICIPACAO (codemp, codproj) codproj referencia PROJETO codemp referencia EMPREGADO Pergunta-se: Considerando que a especialização de Empregado é total e exclusiva, qual seria o domínio de tipo? O que seria necessário verificar para manter a integridade dos dados em relação às regras de negócio? E se a especialização fosse inclusiva? Tradução de Hierarquias - distribuição Distribuição Chave primária repete-se em cada relação Nas relações específicas, a chave primária é também chave estrangeira para a relação genérica Incluir uma coluna tipo na relação genérica para manter a informação sobre a especialização Aplicar as regras já conhecidas

Traduzindo Hierarquias - distribuição EMPREGADO(codEmp,, tipo, coddepto) coddepto referencia DEPTO MOTORISTA(codEmp, habilitacao) codemp referencia EMPREGADO ENGENHEIRO (codemp, CREA, codramo) codemp referencia EMPREGADO SECRETARIA (codemp) codemp referencia EMPREGADO DEPTO (coddepto,, desc) SW (codsw,, desc) RAMOENG(codRamo,,desc) PROJETO (codproj,, desc) DOMINIO(codSW, codemp); codsw referencia SW codemp referencia SECRETARIA PARTICIPACAO (codemp, codproj) codproj referencia PROJETO codemp referencia ENGENHEIRO Pergunta-se: Porque codemp, nas relações específicas, deve ser chave estrangeira para EMPREGADO? Porque é importante manter o atributo tipo na relação genérica? O que seria necessário verificar para manter a integridade dos dados em relação às regras de negócio? O que ocorre quando a especialização é total e inclusiva? Traduzindo Hierarquias Tabela única Todos os dados em uma única tabela... Não há necessidade de navegação por outras tabelas para se obter todos os dados a respeito de um empregado Economia de espaço por um lado pois a chave primária não é duplicada, mas há desperdício por outro lado com os nulos que os campos das tabelas especificas trazem Várias tabelas Conceitos explicitos em relações próprias Redução de nulos Há uma terceira alternativa? Cada caso é um caso!

Nomes Nomes simples e reduzidos Ex data de nascimento ---> datanasc nao usar o da tabela a não ser em campos parte de chaves primárias Ex:codigo ----> codemp Exercício projetista dealer franchise entrega 12 entidades 13 relacionamentos mes v_max configuração modelo (1,M) côr côr competidor carro carroceria mercado preço título num motor capacidade estilo

Exercício dealer projetista franchise entrega mes v_max configuração modelo (1,M) côr côr competidor carro carroceria mercado preço título num motor capacidade estilo Exercício dealer mes franchise modelo entrega mes modelo projetista modelo (M,N) côr modelo v_max modelo modelo competidor configuração preço Nome carro carroceria título estilo mercado mercado nummotor nummotor estilo título num motor capacidade

Exercício ESQUEMA FINAL: ENTREGA ( mes, modelo ) FRANCHISE ( dealer, mes, modelo ) MODELO ( modelo, projetista ) MODELO-CÔR ( modelo, cor ) CONFIGURAÇÃO ( modelo, motor, v_max ) CARROCERIA ( modelo, estilo, mercado ) MERCADO ( mercado, competidor ) MOTOR ( motor, capacidade ) CARRO ( modelo, estilo, motor, preço )