Baixe o app para aproveitar ainda mais
Prévia do material em texto
Plano de Aula: Modelo de Dados Relacional PROJETO DE BANCO DE DADOS - CCT0700 Título Modelo de Dados Relacional Número de Aulas por Semana Número de Semana de Aula 10 Tema Mapeamento do MER para o Modelo Relacional Objetivos Transformar os modelos conceituais para modelo lógico. Utilizar ferramentas CASE para realizar a diagramação do modelo Estrutura do Conteúdo Modelo de Dados Relacional Mapeamento do DER para o Modelo Relacional Mapeamento dos relacionamentos (1:1 ,1:N , N:N) Mapeamento de Auto relacionamento Mapeamento de Agregação Mapeamento de Generalização/Especialização Engenharia Reversa de modelos relacionais Síntese da Aula: 1. Mapeamento dos Relacionamentos Exemplos: Modelo Conceitual - Relacionamento 1:1 Modelo Lógico EMPREGADO ( IdEmpregado Matricula, Nome, CPF, Endereço, Bairro Telefone DEPARTAMENTO( IdDepto Nome, IdEmpregado Onde: Chave Primária - Sublinhada Chave Estrangeira - Pontilhada Modelo Conceitual - Relacionamento 1:N Modelo Lógico CLIENTE( IdCliente Nome, CPF, Endereço, Telefone PEDIDO( NrPedido Data, Valor_Total, IdCliente Onde: Chave Primária - Sublinhada Chave Estrangeira - Pontilhada Modelo Conceitual - Relacionamento 1:N Modelo Lógico EMPREGADO( IdEmp, Nome, CPF, Endereço, Telefone) PROJETO( IdProjeto Nome, Verba ALOCAÇÃO( IdProjeto, IdEmp) Ou ALOCAÇÃO( IdAlocacao, IdProjeto IdEmp) Onde: Chave Primária - Sublinhada Chave Estrangeira - Pontilhada Alocação (IdProjeto, IdEmp) são chaves estrangeiras e formam uma chave composta. Modelo Conceitual - Auto Relacionamento 1:1 Modelo Lógico EMPREGADO (Matricula, Nome, Telefone, Data_Admissao, MatCônjugue) Onde: Chave Primária ? Sublinhada Chave Estrangeira ? Pontilhada Modelo Conceitual - Auto Relacionamento 1:N Modelo Lógico EMPREGADO (Matricula, Nome, Telefone, Data_Admissao, MatSupervisor) Onde: Chave Primária - Sublinhada Chave Estrangeira - Pontilhada Modelo Conceitual - Auto Relacionamento N:N Modelo Lógico DISCIPLINA(Código, Nome, CargaHorária) DISC_PREREQUISITO( CodDisc, CodDiscPreReq ) Onde: Chave Primária - Sublinhada Chave Estrangeira - Pontilhada Disciplina (CodDisc, CodDiscPreReq) são chaves estrangeiras e formam uma chave composta. Agregação Modelo Conceitual Modelo Lógico MÉDICO (CodMedico, CRM, Nome, Especialidade) PACIENTE (CodPaciente, Nome, Telefone) CONSULTA (CodConsulta, CodMedico, CodPaciente, Data) MEDICAMENTO (CodMedicamento, Nome, Laboratório, PrincipioAtivo INDICAÇÃO (CodIndicação, CodConsulta, CodMedicamento, Dosagem Onde: Chave Primária - Sublinhada Chave Estrangeira - Pontilhada Generalização/Especialização - Transformação com preservação de todas as entidades tipos. Modelo Conceitual Modelo Lógico MATERIAL (CodMaterial, DescMaterial) LIVRO (CodLivro, Autor, Editora, CodMaterial) AUDIOVISUAL (CodAudVisual, TempoDuracao, NomeDiretor, CodMaterial Onde: Chave Primária - Sublinhada Chave Estrangeira - Pontilhada Generalização/Especialização - Transformação com preservação das especializações. Modelo Conceitual Modelo Lógico LIVRO (CodLivro, Autor, Editora, DescMaterial) AUDIOVISUAL (CodAudVisual, TempoDuracao, NomeDiretor, DescMaterial Onde: Chave Primária - Sublinhada Generalização/Especialização - Transformação com preservação da generalização. Modelo Conceitual Modelo Lógico MATERIAL (CodMaterial, DescMaterial, Autor, Editora, TempoDuracao, NomeDiretor, Tipo) Onde: Chave Primária - Sublinhada 2. Engenharia Reversa Um processo de Engenharia reversa pode ser definido como um processo de abstração, que parte de um modelo de implementação e resulta em um modelo conceitual, que descreve abstratamente a implementação em questão. O termo engenharia reversa vem do fato de usar-se, como ponto de partida do processo, um produto implementado (o modelo de implementação) para obter sua especificação (o modelo conceitual). [HEUSER, 2009] [HEUSER, 2009] HEUSER, C. Projeto de Banco de Dados. 6ª. Ed, Porto Alegre: Editora Artmed, 2009. Desenvolver passo a passo um exemplo de engenharia reversa. Aplicação Prática Teórica O professor deverá demonstrar ao longa da aula como o assunto abordado se relaciona com no os aspectos aplicados na área de banco de dados. Exercício: 1) [Concurso: Transpetro, Analista de Sistemas Júnior - 2011] Considere o diagrama entidade-relacionamento a seguir, que expressa um modelo conceitual de dados. Nesse modelo, pode-se ler que projetos produzem peças, que pessoas trabalham em projetos e que pessoas coordenam outras pessoas. As participações e cardinalidades correspondentes a cada relacionamento estão indicadas no próprio diagrama. Suponha que, durante o mapeamento do modelo conceitual acima para o modelo relacional, o projetista de banco de dados responsável pela tarefa decidiu mapear cada entidade para uma relação distinta. Ele também decidiu criar o mínimo necessário de relações nesse mapeamento. Sendo assim, as quantidades de chaves primárias e de chaves estrangeiras criadas nesse mapeamento são, respectivamente, (A) 3 e 4 (B) 5 e 5 (C) 4 e 4 (D) 3 e 5 (E) 5 e 4 2) [Concurso: BDMG, Analista de Sistemas - 2011] De acordo com o diagrama do esquema do banco de dados relacional abaixo, responda. De acordo com o diagrama do esquema de banco de dados relacional, analise as seguintes afirmativas. I. Na relação DEPOSITANTE, o atributo id_cliente é chave estrangeira e faz parte da chave primária juntamente com o atributo num_conta. II. Na relação EMPRESTIMO, o atributo num_conta é chave primária. III. Na relação AGENCIA, o atributo id_agencia é chave primária. Marque a alternativa CORRETA: (A) apenas as afirmativas I e II são verdadeiras. (B) apenas as afirmativas I e III são verdadeiras. (C) apenas as afirmativas II e III são verdadeiras. (D) todas as afirmativas são verdadeiras. 3) [Concurso: FINEP, Analista - Desenvolvimento de Sistemas - 2011] A instituição que regula a aviação comercial de um determinado país possui um sistema de informação para controlar as aeronaves utilizadas pelas empresas aéreas. O banco de dados desse sistema é composto por um conjunto de tabelas, cujos esquemas são definidos a seguir. AERONAVE (PREFIXO, COD_MOD, COD_FABR, COD_FAB_TURB, NOME_FAB_TURB, EMPUXO) A tabela AERONAVE contém uma linha para cada aeronave em operação no país. Suas colunas contêm as seguintes informações: PREFIXO - identifica uma aeronave. COD_MOD - identifica o modelo de uma aeronave. Não há dois modelos distintos com o mesmo código, mesmo que os fabricantes sejam diferentes. COD_FAB_TURB - identifica o fabricante das turbinas que equipam a aeronave. Todas as turbinas têm que pertencer a um mesmo fabricante. NOME_FAB_TURB - nome do fabricante das turbinas. EMPUXO - valor do empuxo das turbinas, medido em Kg. EMPRESA (COD, NOME, ENDERECO) A tabela EMPRESA contém uma linha para cada empresa aérea que opera no país. Suas colunas contêm as seguintes informações: COD - identifica a empresa aérea. NOME - nome da empresa aérea. ENDERECO - endereço da empresa aérea. EMP_AER (PRF_AER, COD_CIA_AER, DATA_AQS, ANO_FAB) PRF_AER REFERENCIA AERONAVE COD_CIA_AER REFERENCIA EMPRESA A tabela EMP_AER contém uma linha para cada registro de aquisição de uma aeronave por uma empresa aérea. Vale ressaltar que as empresas aéreas costumam negociar aeronaves entre si. Suas colunas contêm as seguintes informações: PRF_AER - chave estrangeira. Identifica a aeronaveque foi adquirida. COD_CIA_AER - chave estrangeira. Identifica a empresa que adquiriu a aeronave. DATA_AQS - data de aquisição da aeronave. ANO_FAB - ano de fabricação da aeronave. As chaves primárias das tabelas acima foram sublinhadas. A respeito do esquema de banco de dados relacional acima, considere as afirmativas a seguir. I - A tabela AERONAVE não se encontra na segunda forma normal, pois existe uma dependência funcional entre as colunas COD_FAB_TURB e NOME_FAB_TURB; II - A tabela EMP_AER se encontra na terceira forma normal, pois não há dependência funcional entre as colunas DATA_AQS e ANO_FAB. III - A tabela EMPRESA se encontra na terceira forma normal. IV - Para que sistema de informação registre todas as transações de aeronaves ao longo do tempo, a coluna DATA_ AQS deveria fazer parte da chave primária da tabela EMP_AER. Estão corretas APENAS as afirmativas (A) I e III (B) I e IV (C) II e III (D) II e IV (E) III e IV 4) [Concuros: Nossa Caixa, Analista de Sistemas - 2011] Cada analista trabalhando em um projeto tem um e somente um gerente, mas cada gerente de um projeto pode gerenciar muitos analistas e cada gerente de um analista pode gerenciar esse analista em mais de um projeto. A passagem do modelo de dados conceitual para o modelo lógico relacional normalizado derivará em (A) duas tabelas representando: Gerente-Gerencia e Analista-Projeto. (B) duas tabelas representando: Gerente-Analista e Analista-Projeto. (C) três tabelas representando: Gerente-Analista, Gerente-Gerencia e Analista- Projeto. (D) três tabelas representando: Gerente-Projeto, Analista-Projeto e Gerente- Analista. (E) quatro tabelas representando: Gerente, Gerencia, Analista e Projeto. 5) Dado o DER abaixo, desenvolva o modelo lógico relacional. Gabarito 1) 5 e 5 2) apenas as afirmativas I e III são verdadeiras. 3) III e IV 4) quatro tabelas representando: Gerente, Gerencia, Analista e Projeto. 5) Pessoa (idPessoa, nomePessoa, DataNascimento, endPessoa, TelPessoa, SexoPessoa, idApresPessoa) Encontro(idEncontro, data_encontro, idPessoaMarca, idPessoaAtende, idLocal) Local(idLocal, nomeLocal, endercoLocal, telefoneLocal) Preferencia(idPreferencia, descricaoPreferencia) PreferenciaPessoa(idPrefPessoa, idPessoa, idPreferencia)
Compartilhar