Prova de Fundamentos de Bancos de Dados



Documentos relacionados
Prova de Fundamentos de Bancos de Dados 1 a Prova

Prova de Fundamentos de Bancos de Dados 1 a Prova

Prova de Fundamentos de Bancos de Dados 2 a Prova

Prova de Fundamentos de Bancos de Dados 1 a Prova

Processamento e Otimização de Consultas

NOME SEXO CPF NASCIMENTO SALARIO

Prova de Fundamentos de Bancos de Dados 2 a Prova

Junções e Índices em Tabelas

Prova de Fundamentos de Bancos de Dados 2 a Prova

BDII SQL Junção Revisão 8

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

Lato Sensu Tecnologia de Desenvolvimento de Sistemas. SENAC Rio Preto

UNIVERSIDADE FEDERAL DE SANTA MARIA - UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN BANCO DE DADOS II

Fundamentos de Bancos de Dados Prova 3

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

Prova de Fundamentos de Bancos de Dados 2 a Prova

Tarefa Orientada 11 Junção Interna

Tarefa Orientada 16 Vistas

IF685 Gerenciamento de Dados e Informação - Prof. Robson Fidalgo 1

Tarefa Orientada 14 Subconsultas

select nome from Médicos where codm in (select codm from Consultas where data = 06/06/13 )

Fundamentos de Bancos de Dados Prova 2

Modelo Relacional - Manipulação

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

Prof. Daniela Barreiro Claro

ÍNDICE. ERP ( Controle de Frotas ) 1 - Bens Móveis - Frota. 2 - Cadastros da Frota. 3 - Abastecimento de Bens. 4 - Cadastro de Bombas

MODELAGEM DE DADOS MODELAGEM DE DADOS. rafaeldiasribeiro.com.br. Aula 3. Prof. Rafael Dias Ribeiro.

Prova de Fundamentos de Bancos de Dados 1 a Prova

UNIVERSIDADE FEDERAL DO RIO GRANDE DO NORTE ESCOLA AGRÍCOLA DE JUNDIAÍ EAJ - PRONATEC / REDE etec MÓDULO III DESENVOLVIMENTO PROFESSOR ADDSON COSTA

LINGUAGEM DE BANCO DE DADOS

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

SQL Uma Visão mais Ampla

TRABALHO DE BANCO DE DADOS POSTGRES MINI-MUNDO: BD PARA GERENCIAMENTO DE UNIDADES DE CONSERVAÇÃO

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

Faculdade Pitágoras 24/10/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

César Cruz Proprietário [18/04]

E&L Controle de Frotas. Perguntas Frequentes

Tarefa Orientada 12 Junção Externa, Auto-Junção e União

Orientação a Objetos

Tarefa Orientada 13 Agrupamento e sumário de dados

Entendendo como funciona o NAT

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

Sistema para Oficina Eletro-mecânica de Veículos

Campo: PREVISÃO Informa uma possível data e hora de entrega do veículo, caso o orçamento seja aprovado.

Tarefa Orientada 15 Manipulação de dados

Banco de Dados I. Aula 9 - Prof. Bruno Moreno 20/09/2011

Análise de Ponto de Função

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

Lista de exercícios 01

Modelo de Dados. Modelo para organização dos dados de um BD

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

1ª Lista de exercícios

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

Casos de teste semânticos. Casos de teste valorados. Determinar resultados esperados. Gerar script de teste automatizado.

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

f. Vocês podem selecionar todos os campos indicando-os, ou seja, sem usar * (boa prática) g. Muito relevante na manutenção de BD e de aplicações.

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)

Roteiro 9 - SQL Básico: chave estrangeira, operadores de comparação e operadores booleanos

Multas. Ordem de Serviço. Sinistro. Estoque

ABA: OFICINA BOTÃO: ORÇAMENTO (CLIENTES)

Engenharia de Software I

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Controle de Agendamento

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Prova de Fundamentos de Bancos de Dados 2 a Prova

Prof. Ronaldo R. Goldschmidt. geocities.yahoo.com.br/ronaldo_goldschmidt

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

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

Sistemas de Informação

UNIVERSIDADE FEDERAL FLUMINENSE PÓLO UNIVERSITÁRIO DE RIO DAS OSTRAS FACULDADE FEDERAL DE RIO DAS OSTRAS CURSO DE CIÊNCIA DA COMPUTAÇÃO

Prova de Fundamentos de Bancos de Dados 1 a Prova

Guia de integração Integração com Pergamum

Exportação e Importação de Orçamentos

SQL DML. Frederico D. Bortoloti

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 17 PROFª BRUNO CALEGARO

Prova de pré-requisito

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan

Orientação a Objetos

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

Prof. Marcelo Machado Cunha

QUALIDATA Soluções em Informática. Módulo CIEE com convênio empresas

Importação de Itens através de Planilha de Dados

Dicas de Projeto Lógico Relacional

TUTORIAL DO ACCESS PASSO A PASSO. I. Criar um Novo Banco de Dados. Passos: 1. Abrir o Access 2. Clicar em Criar um novo arquivo

Treinamento sobre SQL

Operações de Caixa. Versão 2.0. Manual destinado à implantadores, técnicos do suporte e usuários finais

Modelo Entidade-Relacionamento. Modelo Entidade-Relacionamento. Modelo Entidade-Relacionamento

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

Sistema Imobilizador de 4ª Geração Gol

Manual das planilhas de Obras

5 Experiência de implantação do software de roteirização em diferentes mercados

Treinamento. DBA Oracle 11g. Duração: 120 horas

Engenharia de Software III

Terceiro Milênio Informática

Transcrição:

Prova de Fundamentos de Bancos de Dados 1 a Prova Prof. Carlos A. Heuser Setembro de 2008 Nome do aluno: Prova sem consulta duas horas de duração 1. (Peso 2 Deseja-se projetar uma base de dados para uma revenda de automóveis. Nesta base de dados estão armazenadas informações sobre os modelos de automóveis à venda, juntamente com suas configurações e seus preços. Para cada modelo de automóvel, a base de dados informa a sua descrição (algo como "Volkswagen Gol Kit básico". Cada modelo tem um código identificador. Um modelo pode ser comercializado com diferentes motores. Um motor possui uma potência em CV, uma cilindrada em litros e um número de válvulas (algo como <106 CV, 1.8 l, 16 V>. Além disso, cada motor é identificado por um código. Um determinado modelo de automóvel pode ser oferecido com várias motorizações e uma motorização pode aparecer em diferentes modelos. O preço do automóvel é fixado com base no modelo e na motorização escolhida e também deve estar armazenado na base de dados. Projete uma base de dados relacional para armazenar os dados acima sem redundância de dados. Enumere as tabelas, suas colunas, as chaves primárias e a as chaves estrangeiras. Não devem ser criadas colunas artificiais, além das apresentadas no enunciado. Apresente o esquema na notação textual ou diagramática vistas em aula. Modelo (cod_mod, descricao_mod Motor (cod_motor, cv, cc, valve Motorizacao (cod_mod, cod_motor, preco (cod_mod referencia Modelo (cod_motor referencia Motor 1

2. Considere a seguinte base de dados, usada por uma oficina de manutenção de automóveis. /* tabela de clientes cadastrados na oficina */ CLIENTE (cpf, nome_cli /* tabela com dados dos automóveis dos clientes da oficina */ AUTOMOVEL (placa, no_chassis, modelo, cpf; (cpf references CLIENTE /* tabela com as revisões periódicas programadas e feitas para cada automóvel, a oficina cadastra todas revisões programadas Km e data_programada são a quilometragem e a data em que deve ser feita a revisão data_ultim_telef serve para informar quando o pessoal da oficina ligou para o cliente lembrando da provável necessidade de fazer a revisão caso o cliente não tenha sido chamado, este campo contém a cadeia vazia ( data_executada e Km_executada informa a data e a quilometragem de uma revisão que já foi executada caso a revisão não tenha sido chamado, estes campos contém a cadeia vazia ( */ (placa, Km, data_programada, data_ultim_telef, data_executada, Km_executada (placa references AUTOMOVEL /* tabela com as peças usadas em cada revisão */ PECA_ (placa, Km, cod_peca, quantidade (placa, Km references (cod_peca references PECA_ /* tabela com as descrições das peças */ PECA_ (cod_peca, descricao_peca Sobre esta base de dados, resolver as consultas que seguem usando álgebra relacional. Não usar mais tabelas que o estritamente necessário. 2

a (Peso 1,33... Obter os nomes dos clientes cujo automóvel teve uma revisão executada da data 2009-10-07. i. Resolver usando produto cartesiano. π CLIENTE.nome_cli (σ CLIENTE.CPF = AUTOMOVEL.CPF AND AUTOMOVEL.placa =.placa AND.data_executada = 2009-10-07 (CLIENTE AUTOMOVEL ii. Resolver usando junções. Se possível, usar junção natural, senão, usar equi-junção e em último caso usar theta-junção. π CLIENTE.nome_cli (σ.data_executada = 2009-10-07 (CLIENTE (AUTOMOVEL 3

b (Peso 1,33... Obter as placas dos automóveis que não têm manutenções por fazer (não têm manutenções em que a textttdata_executada é a cadeia vazia (. π placa (AUTOMOVEL (π placa (σ data_executada = ( c (Peso 1,33... Foi detetado um problema na base de dados, gerado por um erro de software. Para alguma revisões, erroneamente, está informada que elas usaram todas peças cadastradas na base de dados. Obter os identificadores destas revisões (placa, Km (π placa, Km, cod_peca (PECA_ (π cod_peca (PECA 4

d (Peso 1,33... Obter uma tabela contendo as seguintes colunas: i. Código e nome de cada peça; ii. placa do automóvel, quilometragem da revisão e data de cada revisão, na qual mais que 3 unidades (quantidade da peça tenham sido usadas (se não houver revisão nesta condições para a peça, estas colunas devem aparecer em branco. π PECA.cod_peca, PECA.descricao_peca, PECA_.placa, PECA_.Km,.data_executada (PECA - - ( (σ (quantidade > 3 (PECA_ - - 3. (Peso 1,33... Sobre a base de dados da questão precedente (Questão 2, expresse a seguinte consulta em SQL, sem o uso da sintaxe para junções explícitas, nem sub-consultas (ainda não vistas em aula. Na consulta, devem aparecer apenas as tabelas necessárias. Para cada cliente que possui dois automóveis diferentes, obter o nome do cliente, seguido das placas de cada um dos dois automóveis. SELECT C.nom_cli, A1.placa, A2.placa FROM CLIENTE AS C, AUTOMOVEL AS A1, AUTOMOVEL AS A2 WHERE A1.placa <> A2.placa AND A1.cpf = C.cpf AND A2.cpf = C.cpf 5

4. (Peso 1,33... Considere a seguinte consulta em SQL: SELECT AUTOMOVEL.modelo FROM AUTOMOVEL,, PECA_ WHERE AUTOMOVEL.placa =.placa AND PECA_.placa =.placa AND PECA_.Km =.Km AND.data_executada = 2009-10-07 AND PECA_.quantidade = 2 Mostre a consulta equivalente em álgebra relacional, depois, mostre a representação da consulta em forma de arvore e após, mostre cada um dos passos da otimização algébrica. Resposta: Consulta em álgebra relacional (a ordem dos produtos cartesianos foi arbitrada; outras ordens são equivalente e levam a uma consulta diferente com o mesmo resultado: σ AUTOMOVEL.placa =.placa AND PECA_.placa =.placa AND PECA_.Km =.Km AND.data_executada = 2009-10-07 AND PECA_.quantidade = 2 ( AUTOMOVEL ( PECA_ 6

Representação da consulta em árvore: σ AUTOMOVEL.placa =.placa σ PECA_.placa =.placa σ PECA_.Km =.Km σ.data_executada = 2009-10-07 σ PECA_.quantidade = 2 AUTOMOVEL Passo 1: Mover seleções para as folhas: PECA_ σ AUTOMOVEL.placa =.placa AUTOMOVEL σ PECA_.placa =.placa σ PECA_.Km =.Km σ.data_executada = 2009-10-07 σ PECA_.quantidade = 2 Passo 2: Substituir produtos cartesianos por junções: PECA_ (AUTOMOVEL.placa =.placa AUTOMOVEL (PECA_.placa =.placa AND PECA_.Km =.Km σ.data_executada = 2009-10-07 σ PECA_.quantidade = 2 PECA_ 7

Passo 3: Mover projeções para as folhas: (AUTOMOVEL.placa =.placa π AUTOMOVEL.placa π.placa AUTOMOVEL (PECA_.placa =.placa AND PECA_.Km =.Km π.placa,.km π PECA_.placa, PECA_.Km σ.data_executada = 2009-10-07 σ PECA_.quantidade = 2 PECA_ 8