Prévia do material em texto
CURSO: Ciência da Computação e Sistemas de Informação DISCIPLINA: Banco de Dados - Módulo 5 Mapeamento do Modelo Entidade- Relacionamento para o Modelo Relacional Na construção de um modelo de dados, a primeira etapa é a construção do modelo conceitual, onde não existe nenhuma restrição do tipo de SGBD a ser utilizado e principal objetivo é o conhecimento dos dados e os seus relacionamentos. A etapa seguinte é a definição do modelo lógico de acordo com o SGBD a ser utilizado. No caso, SGBD do tipo relacional. No que segue apresentamos os principais princípios no mapeamento de um modelo entidade- relacionamento para o modelo relacional. Entidades x Tabelas Cada Entidade é mapeada como uma Tabela Atributos simples x Campos Atributos simples das Entidades são mapeados como campos das Tabelas Identificador x Chave Primária O Identificador de uma Entidade é também a chave primária da Tabela mapeada. Atributos Multi-valorados Numa entidade Cliente, o atributo telefone pode ser multi-valorado. Uma tabela somente pode conter campos monovalorados. A solução é criar uma tabela para o atributo multi-valorado, tendo a chave primária formada pela composição da chave da tabela/entidade e pelo atributo multi-valorado. Cliente (Código, nome) Telefone Cliente (Código Cliente, telefone) Os campos sublinhados formam a chave primária de cada tabela. Atributos Compostos Converter cada componente do atributo composto em uma coluna da tabela. Mapeamento de Relacionamentos Um relacionamento pode ser mapeado como uma nova tabela ou como atributos em uma das tabelas/entidades relacionadas, ou até mesmo pela fusão das 2 entidades em uma só tabela. Mapeamento de Relacionamento 1:1 Exemplos: Tipo do relacionamento: Opcional nos dois extremos. Alternativa: adição de coluna como chave estrangeira em uma das duas tabelas. Adição na Tabela Homem: Homem ( Ident_H, Nome, Ident_conjuge, data, regime) Mulher ( Ident_M, Nome) Ident_conjuge é uma chave estrangeira que referencia a chave primária Ident_M na tabela Mulher. Adição na Tabela Mulher: Mulher ( Ident_M, Nome, Ident_conjuge, data, regime) Homem ( Ident_H, Nome) Nesta caso, Ident_conjuge é uma chave estrangeira que referencia a chave primária Ident_H na tabela Homem. As duas alternativas são equivalentes. Tipo do relacionamento: Obrigatório em um dos extremos. Alternativa: fusão das tabelas A alternativa de adição de chave estrangeira em uma das tabelas também é aplicável. Nesse caso, o recomendável é que seja na tabela que obrigatoriamente tem que se relacionar com a outra (Cartão Magnético, no exemplo). Correntista (CodCorrent, Nome) Cartão Magnético (CodCartão, DataExp, CodCorrentCartão) CodCorrentCartâo é uma chave estrangeira que referencia a chave primária CodCorrent na tabela Correntista. Mapeamento de Relacionamento 1:n A alternativa deve ser a adição de colunas (chave estrangeira) na tabela que está do lado n do relacionamento. Junto com ela devem também ser incluídas colunas que mapeiam os atributos do relacionamento. Mapeamento de Relacionamento n:n No modelo relacional não há possibilidade de implementar diretamente um relacionamento n:n. Para implementar um relacionamento n:n deve ser criada uma tabela correspondente ao relacionamento, com duas chaves estrangeiras, cada uma referenciando uma das tabelas/entidades e mais os atributos presentes no relacionamento. A chave primária dessa terceira tabela será a composição das duas chaves estrangeiras. Mapeamento de Entidades Especializadas Se a especialização de uma entidade faz sentido no modelo conceitual ela tem que ser preservada no modelo lógico. Entidade Principal: Prestadores de Serviço ( CPF, nome, endereco) Entidades Especializadas: uma tabela para cada uma delas, tendo chave primária equivalente à chave primária da Entidade Principal. Horistas ( CPF Horista, custo hora, horas trabalho) Mensalistas (CPF Mensalista, Salario) CPF Horista, além de ser chave primária de Horistas, também é uma chave estrangeira que referencia a chave primária CPF na tabela Prestadores de Serviço. CPF Mensalista, além de ser chave primária de Mensalistas, também é uma chave estrangeira que referencia a chave primária CPF na tabela Prestadores de Serviço. Bibliografia Cap 5, HEUSER, C. A. Projeto de bancos de dados. Porto Alegre: Sagra-Luzzatto, 2000. Exercício 1: Uma parte do modelo de dados conceitual de uma empresa está apresentado abaixo, mostrando as entidades Empregado e Cargo e os relacionamentos Ocupa e Ocupado que existe entre elas, onde Ocupa indica o cargo que o Empregado ocupa atualmente e o relacionamento Ocupado indica os cargos anteriormente ocupados pelo empregado, se houver. No mapeamento deste modelo conceitual para o modelo relacional, as entidades Empregado e Cargo foram convertidas em tabelas. Escolha a alternativa para converter o relacionamento Ocupa: A) O relacionamento Ocupa deve ser implementado como uma chave estrangeira opcional na tabela Cargo B) O relacionamento Ocupa deve ser implementado como uma chave estrangeira opcional na tabela Empregado C) O relacionamento Ocupa deve ser implementado como uma chave estrangeira obrigatória (not null) na tabela Cargo D) O relacionamento Ocupa deve ser implementado como uma chave estrangeira obrigatória (not null) na tabela Empregado E) O relacionamento Ocupa deve ser implementado por uma nova tabela contendo duas chaves estrangeiras, uma opcional referenciando a tabela Empregado e outra obrigatória referenciando a tabela Cargo Exercício 2: Uma parte do modelo de dados conceitual de uma empresa está apresentado abaixo, mostrando as entidades Empregado e Cargo e os relacionamentos Ocupa e Ocupado que existe entre elas, onde Ocupa indica o cargo que o Empregado ocupa atualmente e o relacionamento Ocupado indica os cargos anteriormente ocupados pelo empregado, se houver. No mapeamento deste modelo conceitual para o modelo relacional, as entidades Empregado e Cargo foram convertidas em tabelas. No mapeamento deste modelo conceitual para o modelo relacional foram apresentadas três possibilidades, descritas abaixo. I) Deverão ser criadas 3 tabelas, uma para cada entidade ( Empregado e Cargo) e uma para o relacionamento Ocupado II) Deverão ser criadas 4 tabelas, uma para cada entidade ( Empregado e Cargo) e uma para cada relacionamento (Ocupado e Ocupa) III) Deverão ser criadas somente 2 tabelas, uma para cada entidade (Empregado e Cargo) Analise as possibilidades apresentadas e escolha a alternativa correta: A) Todas as três possibilidades podem ser utilizadas B) Somente a possibilidade I implementa adequadamente o modelo C) Somente a possibilidade II implementa adequadamente o modelo D) Somente a possibilidade III implementa adequadamente o modelo E) Nenhuma das três possibilidades implementa adequadamente o modelo Exercício 3: Escolha a alternativa correta, considerando a implementação no Modelo Relacional das entidades Professor e Disciplina do Modelo Entidade-Relacionamento de uma Escola, que possuem um relacionamento (0,N):(0,N) que representa o fato de que um Professor pode ministrar várias Disciplinas e uma Disciplina poder ser ministrada por mais de um Professor A) Serão criadas somente duas tabelas (Professor e Disciplina), cada uma delas com uma chave estrangeira opcional referenciando a outra tabela B) Serão criadas somente duas tabelas (Professor e Disciplina), cada uma delas com uma chave estrangeira obrigatória referenciando a outra tabela C) Serão criadas somente duas tabelas (Professor e Disciplina), sem necessidade de chave estrangeira em nenhuma delas D) Serão criadas três tabelas, uma para cada entidade (Professor e Disciplina) e uma para o relacionamento (Ministra) que será formada por duas chaves estrangeiras, referenciando as outras duas tabelas E) Serão criadas somente duas tabelas (Professor e Disciplina), comuma chave estrangeira opcional na tabela Professor referenciando a tabela Disciplina Exercício 4: Escolha a alternativa correta, considerando a implementação no Modelo Relacional do Modelo Entidade-Relacionamento abaixo, onde o relacionamento Atuação indica a participação de Engenheiros em Projetos e a função que exercem em cada um. As tabelas a serem construídas são: A) Engenheiro(Codigo, Nome), Projeto (Codigo, Titulo, CodEngenheiro, Funcao) B) Engenheiro(Codigo, Nome, CodProjeto), Projeto (Codigo, Titulo, CodEngenheiro, Funcao) C) Engenheiro(Codigo, Nome), Projeto (Codigo, Titulo), Atuacao(CodEngenheiro, CodProjeto, Funcao) D) Engenheiro(Codigo, Nome, CodProjeto, Funcao), Projeto (Codigo, Titulo) E) Nenhuma das anteriores, por que um relacionamento N:N não pode ser implementado no modelo Relacional Exercício 5: Uma parte do modelo de dados conceitual de uma empresa está apresentado abaixo, mostrando as entidades Empregado e Cargo e os relacionamentos Ocupa e Ocupado que existe entre elas, onde Ocupa indica o cargo que o Empregado ocupa atualmente e o relacionamento Ocupado indica os cargos anteriormente ocupados pelo empregado, se houver. No mapeamento deste modelo conceitual para o modelo relacional, as entidades Empregado e Cargo foram convertidas em tabelas. Escolha a alternativa para converter o relacionamento Ocupado: A) O relacionamento Ocupado deve ser implementado como uma chave estrangeira opcional na tabela Cargo B) O relacionamento Ocupado deve ser implementado por uma nova tabela contendo duas chaves estrangeiras, ambas obrigatórias, uma referenciando a tabela Cargo e a outra referenciando a tabela Empregado C) O relacionamento Ocupado deve ser implementado por uma nova tabela contendo duas chaves estrangeiras, ambas opcionais, uma referenciando a tabela Cargo e a outra referenciando a tabela Empregado D) O relacionamento Ocupado deve ser implementado como uma chave estrangeira obrigatória (not null) na tabela Empregado E) O relacionamento Ocupado deve ser implementado como uma chave estrangeira opcional na tabela Empregado Exercício 6: Escolha a alternativa correta para a implementação no Modelo Relacional da situação representada abaixo utilizando um Diagrama Entidade-Relacionamento, onde o relacionamento Atuação indica a participação de Atores em Filmes e a Personagem interpretada pelo ator em cada filme: A) Ator(Codigo, Nome), Filme (Codigo, Titulo, CodAtor, Personagem) B) Ator(Codigo, Nome, CodFilme), Filme (Codigo, Titulo, CodAtor, Personagem) C) Ator(Codigo, Nome), Filme (Codigo, Titulo), Atuacao(CodAtor, CodFilme, Personagem) D) Ator(Codigo, Nome, CodFilme, Personagem), Filme (Codigo, Titulo) E) Nenhuma das opções mapeia corretamente o DER por que um relacionamento N:N não pode ser implementado no modelo Relacional Exercício 7: Assinale qual das afirmações abaixo a respeito do modelo relacional ou do mapeamento do modelo lógico de dados para o modelo relacional é FALSA: A) Os relacionamentos do tipo 1 x N são implementados através de Chaves Estrangeiras; B) O modelo relacional não permite que existam relacionamentos entre as tabelas; C) Os atributos simples das entidades do modelo conceitual são convertidos em colunas das tabelas no modelo relacional; D) Para o mapeamento de atributo multi-valorado de entidade do modelo conceitual é necessário criar uma nova tabela E) As entidades do modelo conceitual são convertidas em tabelas no modelo relacional; Exercício 8: Assinale qual das afirmações abaixo a respeito do mapeamento do modelo conceitual de dados para o modelo relacional é FALSA: A) Relacionamentos 1:1 podem ser implementados tanto através de chave estrangeira ou de de fusão de tabelas; B) Os atributos simples das entidades do modelo conceitual são convertidos em colunas das tabelas no modelo relacional; C) Um relacionamento N x N entre duas entidades no modelo conceitual é implementado no modelo relacional através da criação de duas chaves estrangeiras, uma em cada tabela; D) Os relacionamentos do tipo 1 x N são implementados através de Chaves Estrangeiras; E) Atributos multi-valorados são implementados através de uma nova tabela; Exercício 9: Escolha a alternativa correta, considerando a implementação no Modelo Relacional das entidades Fornecedor e Produto do Modelo Entidade- Relacionamento de uma Empresa comercial, que possuem um relacionamento (0,N):(0,N) que representa o fato de que um Fornecedor pode fornecer vários Produtos e um Produto poder ser fornecido por mais de um Fornecedor A) Serão criadas três tabelas, uma para cada entidade (Fornecedor e Produto) e uma para o relacionamento (Fornece) que será formada por duas chaves estrangeiras, referenciando as outras duas tabelas B) Serão criadas somente duas tabelas (Fornecedor e Produto), cada uma delas com uma chave estrangeira opcional referenciando a outra tabela C) Serão criadas somente duas tabelas (Fornecedor e Produto), cada uma delas com uma chave estrangeira obrigatória referenciando a outra tabela D) Serão criadas somente duas tabelas (Fornecedor e Produto), sem necessidade de chave estrangeira em nenhuma delas E) Serão criadas somente duas tabelas (Fornecedor e Produto), com uma chave estrangeira opcional na tabela Fornecedor referenciando a tabela Produto Exercício 10: Escolha a alternativa correta, considerando a implementação no Modelo Relacional das entidades Fabricante e Veiculo do Modelo Entidade-Relacionamento com informações de veículos, que possuem um relacionamento (1,1):(0,N) que representa o fato de que um Fabricante fabrica vários Veículos e um Veiculo tem um e somente um Fabricante: A) Serão criadas três tabelas, uma para cada entidade (Fabricante e Veiculo) e uma para o relacionamento (Fabrica) que será formada por duas chaves estrangeiras, referenciando as outras duas tabelas B) Serão criadas somente duas tabelas (Fabricante e Veiculo), cada uma delas com uma chave estrangeira opcional referenciando a outra tabela C) Serão criadas somente duas tabelas (Fabricante e Veiculo), com uma chave estrangeira obrigatória na tabela Veiculo referenciando a tabela Fabricante D) Serão criadas somente duas tabelas (Fabricante e Veiculo), com uma chave estrangeira obrigatória na tabela Fabricante referenciando a tabela Veículo E) Serão criadas somente duas tabelas (Fabricante e Veiculo), com uma chave estrangeira opcional na tabela Veículo referenciando a tabela Fabricante Exercício 11: O diagrama entidade-relacionamento abaixo é parte do modelo de dados de uma empresa, onde está destacada a especialização da entidade empregado em gerente, secretária ou engenheiro e o relacionamento dessas especializações com Processador de Texto e com Projeto. No mapeamento deste modelo para o modelo relacional, cada uma das entidades Empregado, Departamento, Processador de Texto e Projeto foi convertida em uma tabela. O relacionamento 1:N Lotação foi implementado através da chave estrangeira Cod_Departamento na tabela Empregado. Escolha qual das alternativas abaixo contém as tabelas que implementam corretamente a especialização da entidade Empregado. As colunas sublinhadas indicam as chaves primárias das tabelas. A) Empregado (CIC, Nome, Tipo_Empregado, Cod_Departamento, CIC_Gerente), Gerente (CIC), Secretaria(CIC), Engenheiro (CIC, CREA) B) Empregado (CIC, Nome, Tipo_Empregado, Cod_Departamento, CREA) C) Empregado (CIC, Nome, Tipo_Empregado, Cod_Departamento), Engenheiro (CIC, CREA) D) Empregado (CIC, Nome, Tipo_Empregado, Cod_Departamento), Engenheiro (CREA) E) Nenhuma das anteriores, por que uma especialização não pode ser implementada no modelo Relacional Exercício 12: Considerando as quatro afirmações abaixo sobre o modelo de dados Relacional: I. Um relacionamento N:N entre duas tabelas é estabelecido através de uma nova tabela contendo duas Chaves Estrangeiras, cada uma delas referenciando uma das tabelas e que juntas formam a Chave Primaria dessa nova tabelaII. Um relacionamento 1:N entre duas tabelas é estabelecido por uma Chave Estrangeira na tabela no "lado 1" do relacionamento III. Um relacionamento 1:N entre duas tabelas é estabelecido por uma Chave Estrangeira na tabela no "lado N" do relacionamento IV. Um relacionamento N:N entre duas tabelas é estabelecido incluindo em cada uma das tabelas uma Chave Estrangeira referenciando a outra tabela Pode-se afirmar que: A) Todas as afirmações são verdadeiras B) Somente as afirmações I. e III. são verdadeiras, as demais são falsas C) Somente a afirmação IV. é verdadeira, as demais são falsas D) Somente a afirmação III. é falsa, as demais são verdadeiras E) Todas as afirmações são falsas Exercício 13: Escolha a alternativa correta, considerando as afirmações sobre a implementação no Modelo Relacional do Modelo Entidade-Relacionamento abaixo. I) Para implementar as entidades deverão ser criadas 5 tabelas: Cliente, DVD, Filme, Categoria e Ator II) O relacionamento Emprestimo deverá ser implementado por uma tabela contendo o código do cliente e o número do DVD III) O relacionamento Estrela deverá ser implementado por uma tabela contendo o código do ator e o id do filme IV) O relacionamento entre filme e DVD deverá ser implementado através de uma chave estrangeira Id_filme na tabela DVD Pode-se dizer: A) Todas as afirmações são verdadeiras B) Somente as afirmações I. e III. são verdadeiras, as demais são falsas C) Somente a afirmação IV. é verdadeira, as demais são falsas D) Somente a afirmação II. é falsa, as demais são verdadeiras E) Todas as afirmações são falsas Exercício 14: Considere o Modelo Entidade-Relacionamento com as entidades Turma (Codigo, Turno) e Aluno (RA, Nome) que possuem um relacionamento (1,1):(0,N) que representa o fato de que uma Turma possui vários Alunos e um Aluno pertence a uma e somente uma Turma. Para a sua implementação no Modelo Relacional, além de criar uma tabela representando cada entidade, será necessário: A) Criar uma nova tabela com duas chaves estrangeiras, RA e Cod_Turma B) Incluir uma chave estrangeira RA na tabela Turma C) Incluir uma chave estrangeira Cod_Turma na tabela Aluno D) Incluir uma chave estrangeira RA na tabela Turma e uma chave estrangeira Cod_Turma na tabela Aluno E) Não há necessidade de modificar as tabelas nem de criar novas tabelas