Prévia do material em texto
Exercícios de Revisão 1. O que são instâncias no contexto de banco de dados? Dê exemplos. 2. O que é um esquema de banco de dados ? 3. Qual a diferença entre garantir integridade de dados e garantir segurança dos dados? 4. Explique a diferença entre banco de dados e sistema gerenciador de banco de dados. 5. Em um modelo ER qual a diferença entre Generalização/Especialização Parcial e Generalização/Especialização Total? 6. Qual o objetivo da chave primária no modelo relacional ? 7. Explique as regras de integridade de identidade e integridade referencial 8. O que são chaves estrangeiras? 9. Por que uma chave primária não pode conter valores nulos? 10. Uma chave estrangeira pode conter valor nulo? 11. Desenvolva um modelo E-R para o problema abaixo: Deseja-se montar uma base de dados que forneça informações sobre museus, obras e autores. Um museu tem código, nome e país onde está situado. Um autor possui nome e país de origem. Um autor pode participar de várias escolas (impressionismo, modernismo etc). Para cada obra existe a identificação do autor, escola e em que museu ela se encontra. Um autor pode possuir diversas obras em diversos museus. Uma obra pertence a uma escola e está em um único museu. 12. Construa o diagrama E-R para uma companhia de seguros de automóveis que tem um conjunto de clientes, cada um deles proprietário de um ou mais carros. Cada carro está associado a nenhum ou vários registros de acidentes. 13. Projete o modelo relacional a partir do modelo ER, utilizando as regras de transformação de modelos ER para modelo relacional. 14. Execute a normalização da seguinte tabela. Até a 3FN matricula (cod_aluno, cod_turma, cod_disciplina, nome_disciplina, nome_aluno, cod_local_nascimento, nome_local_nascimento) cod_aluno – código do aluno matriculado cod_turma – código da turma na qual o aluno está matriculado cod_disciplina – código que identifica a disciplina da turma nome_disciplina - nome de uma disciplina da turma nome_aluno - nome do aluno matriculado cod_local_nascimento – código da cidade de nascimento do aluno nome_local_nascimento – cidade de nascimento do aluno 15. Faça o mapeamento do modelo ER apresentado abaixo para um esquema relacional correspondente. escritório Contrato aluguel cliente veículo Tipo de veículo (1,1) (0,n) (0,n) (1,1) (1,n) (1,1) (0,n) (1,1) (0,n) numero local Nome endereço fone numero data placa código nome ar Num_carteira estado_carteira numero data duração cumpre (0,N) (1,1) Graduação Matricula ID Currículo Pós- Graduação Disciplina Curso Código Nome Nome BolsistaIC Nível Aluno Nohoras (1,1) (1,1) Curso-cur (0,N) (1,N) Cur-Disc Pré-Req Orientador Liberada (0,N) (0,N) Liberadora Cidade Código Nome UF (1,1) (0,N) Mora Código Nome 16. Considere o seguinte esquema relacional: ItemVenda (codVenda, CodProduto, Quantidade) Categoria(CodCategoria, Descrição) Cliente (CodCli, Nome, Endereço, CIC, CodCategoria) Funcionário(CodFunc, Nome, CT, CIC, endereço, telefone) Fornecedor (CodFornec, Nome, Cidade) Produto (CodProduto, CodFornec, Nome, Peso, Valor) Venda (CodVenda, data, CodFunc, CodCli) a) Rescreva o esquema relacional identificando as chaves primárias e. Utilize a seguinte notação para as chaves: primária sublinhada, e estrangeira com um traço acima. b) Explique o que deve ser feito pelo SGBD para garantir a integridade referencial nas seguintes situações: 1. Uma linha é alterada na tabela categoria 2. Uma linha é incluída na tabela Fornecedor 3. O atributo CodVenda, é alterado na tabela ItemVenda 4. Uma linha é excluída na tabela Cliente Respostas: Questão 11 Questão 12 13) Escritório (numero_esc, local) Contrato_aluguel (numero_esc, numero_contrato, data, duração, numeroveic, num_carteira, estado_carteira) Cliente (num_carteira, estado_carteira, nome, endereço, telefone) Veículo (número, data, placa, cód_tipo) Tipo_veículo(cód_tipo, nome, ar) museu obra escolas autor (1,1) (1,n) (1,1) (1,n) (1,1) (1,n) (1,n) (1,1) clientes carros acidentes (1,1) (1,n) (1,n) (0,n) 14) 2FN Matricula(cód_aluno, cód_turma) Aluno(cód_aluno, nome_aluno, cód_local_nascimento, nome_local_nascimento) turma(cód_turma, cód_disciplina, nome_disciplina) 3FN Matricula(cód_aluno, cód_turma) Aluno(cód_aluno, nome_aluno, cód_local_nascimento) Turmas (cód_turma, cód_disciplina) Disciplinas (cód_disciplina, nome_disciplina) 15) Cidade (CodCid, Nome, UF) Disciplina(CodDisc, Nome) Currículo (IdCurriculo, NoHoras, CodCurso, NomeCurso) Aluno (matricula, nome, CodCid, CodCurriculo, tipo, BolsistaTC, Nível, Orientador) CodCid referencia Cidade CodCurriculo referencia Currículo Prerequisito (CodDisc, CodPre) CodDisc referencia Disciplina CodPre referencia Disciplina (CodDisc) Cur_Disc (IdCurriculo, CodDisc) IdCurriculo referencia Currículo CodDisc referencia Disciplina 16) a) ItemVenda (CodVenda, CodProduto, Quantidade) CodVenda referencia venda CodProduto referencia Produto Categoria(CodCategoria, Descrição) Cliente (CodCli, Nome, Endereço, CIC, CodCategoria) CodCategoria referencia Categoria Funcionário(CodFunc, Nome, CT, CIC, endereço, telefone) Fornecedor (CodFornec, Nome, Cidade) Produto (CodProduto, CodFornec, Nome, Peso, Valor) CodFornec referencia Fornecedor Venda (CodVenda, data, CodFunc, CodCli) CodCli referencia cliente CodFunc referencia Funcionário b) 1- O SGBD verifica se a categoria que esta sendo alterada é referida por alguma linha de cliente. Se houver alguma referência então a operação é rejeitada Se for alterada apenas a descrição, nenhuma verificação é necessária. 2- Considerando a integridade referencial, não há problema relacionado a execução desta operação. 3- é necessário verificar se o novo valor do atributo CodVenda existe na tabela venda. Caso não exista a operação é rejeitada. 4- é necessário verificar se o cliente que está sendo excluído não é referido em alguma venda. Caso seja referido a operação é rejeitada.