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



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

Integridade dos Dados

Exercícios de Lógica Exercícios de Fixação 08

Introdução ao SQL. Aécio Costa

Disciplina de Banco de Dados Parte V

Linguagem SQL. Comandos Básicos

Prof.: Clayton Maciel Costa

Comandos de Manipulação

SQL Avançado Continuação. Renata Viegas

Banco de Dados. Marcio de Carvalho Victorino Exercícios SQL

UNIVERSIDADE FEDERAL DO MARANHÃO - UFMA. Banco de Dados II. Integridade. Carlos Eduardo Portela Serra de Castro

Correção da 1a Prova de GBD1 2010/1. Profa. Sandra de Amo

A linguagem SQL

Faculdade Lourenço Filho - ENADE

Principais Comandos SQL Usados no MySql

BDII SQL Junção Revisão 8

4.6. SQL - Structured Query Language

CICLO DE VIDA DE UM BD

Tarefa Orientada 16 Vistas

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

SQL. Autor: Renata Viegas

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

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

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

BANCO DE DADOS I. Exercícios

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

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

NOME SEXO CPF NASCIMENTO SALARIO

Banco de Dados I Módulo II: Modelagem Entidade- Relacionamento versus Relacional. (Aula 3) Clodis Boscarioli

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

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

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

Tarefa Orientada 15 Manipulação de dados

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

SQL DML. Frederico D. Bortoloti

Prova de Fundamentos de Bancos de Dados 2 a Prova

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

Profa. Daniela Barreiro Claro

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

Bancos de Dados I. Integridade semântica

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

Banco de Dados Lista de Exercícios 01

Introdução à Engenharia da Computação. Banco de Dados Professor Machado

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

LINGUAGEM DE BANCO DE DADOS

1. Domínio dos Atributos

Modelagem de Banco de Dados através do ERwin

Gatilhos (Triggers) Prof. Márcio Bueno Elaborado por Maria Lígia B. Perkusich

PHP INTEGRAÇÃO COM MYSQL PARTE 1

GEE051 - Banco de Dados (BD) Plano de Curso. Ilmério Reis da Silva ilmerio@facom.ufu.br UFU/FACOM /2

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

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

Banco de Dados I Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli

Modelagem de dados e uso do SGBD MySQL

Linguagem SQL Parte I

Hoje é inegável que a sobrevivência das organizações depende de dados precisos e atualizados.

MODELO RELACIONAL - UFMA

Chaves. Chaves. O modelo relacional implementa dois conhecidos conceitos de chaves, como veremos a seguir:

Banco de Dados I. 1. Conceitos de Banco de Dados

AULA 6 INTEGRIDADOS DOS DADOS - CRIANDO RESTRIÇÕES

Diagrama de Entidade e Relacionamento

Departamento de Ciências de Computação SCC Instituto de Ciências Matemáticas e de Computação ICMC Universidade de São Paulo USP

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

Gestão de Tecnologia da Informação

Modelo de Dados Relacional Restrições de um Banco de Dados Relacional

Fundamentos do Sistema Gerenciador de Banco de Dados

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

Prof. Alexandre Unterstell Banco de Dados I

Structured Query Language (SQL)

Uma expressão básica em SQL consiste em três cláusulas: select, from e where.

Banco de Dados. Maurício Edgar Stivanello

14/08/2008. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

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

Banco de Dados I Introdução

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Banco de Dados Geográficos

04/08/2012 MODELAGEM DE DADOS. PROF. RAFAEL DIAS RIBEIRO, MODELAGEM DE DADOS. Aula 2. Prof. Rafael Dias Ribeiro. M.Sc.

Persistência e Banco de Dados em Jogos Digitais

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

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

Tarefa Orientada 19 Triggers

Introdução às Bases de Dados

Lógica e Bases de Dados. Prof. Elaine Faria e Hiran Nonato Programação Lógica UFU 2012

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

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

Fundamentos de Bancos de Dados Prova 3

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

PROCEDIMENTOS ARMAZENADOS (Stored Procedures)

Linguagem SQL - Structured Query Language

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

SISTEMA GERENCIADOR DE BANCO DE DADOS

Projeto e Implementação

Linguagem SQL - Structured Query Language

Esquema da Relação. Modelo Relacional. Instância da Relação. Exemplo. Uma base de dados é uma colecção de uma ou mais relações com nomes distintos

Introdução Banco de Dados

GOVERNO DO ESTADO DO RIO DE JANEIRO SECRETARIA DE ESTADO DE CIÊNCIA, TECNOLOGIA E INOVAÇÃO FUNDAÇÃO DE APOIO À ESCOLA TÉCNICA

PLANO DE ENSINO. PRÉ-REQUISITO: Modelagem e Programação Orientada a Objetos. PROFESSOR RESPONSÁVEL : Josino Rodrigues Neto

Transcriçã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 2ª. Avaliação de Banco de Dados 1º. Sem de 2008 Prof.: Carlos Bazilio Aluno: Matrícula: 1. (4.0 ptos) Considere o diagrama ER da Figura 1, representando o esquema conceitual, bastante simplificado, de um banco de dados de publicações, onde: Pessoa, esquema de entidade representando as pessoas envolvidas, com os seguintes atributos: CPF, que é a chave Nome da pessoa Tipo de pessoa, entre Docente, Discente, Outros Trabalho, esquema de entidade representando os trabalhos publicados, com os seguintes atributos: Codigo interno do trabalho, que é chave Titulo do trabalho Ano em que o trabalho foi publicado Autor, esquema de relacionamento entre Pessoa e Trabalho, indicando os trabalhos que uma pessoa publicou Pessoa n Autor m Trabalho Figura 1 - Diagrama ER do banco de dados. a. (0.4) Construa expressões SQL que definam um modelo relacional para o diagrama apresentado, indicando em que forma normal este se encontra. CREATE TABLE Pessoa ( CREATE TABLE Trabalho ( CREATE TABLE Autor (

b. (0.4) Caso não esteje na 3ª. forma normal, realize decomposições sucessivas até que o modelo relacional obtido respeite a 3ª. formal normal. Caso esteja, justifique sua resposta. O modelo relacional já está na 3FN. Não há nenhum atributo que dependa parcialmente da chave primária (2FN) e não há nenhum atributo que tenha dependência transitiva da chave primária. c. (0.4) Crie uma consulta SQL que liste o nome dos discentes que publicaram trabalhos em 2006. From Pessoa p, Trabalho t, Autor a Where p.cpf = a.cpf AND t.codigo = a.codigo AND p.tipo = Discente AND t.ano = 2006; Select distinct aa.cpf d. (0.4) Forneça outra consulta que liste o CPF das pessoas que foram coautoras do Prof. Jose. From Pessoa p, Autor a, Autor aa Where p.nome = 'Jose' and p.tipo = 'Docente' and p.cpf = a.cpf and a.codigo = aa.codigo and aa.cpf <> p.cpf; e. (0.4) Liste o nome das pessoas que não publicaram em 2006. Select distinct Nome From Pessoa P From Autor A, Trabalho T Where A.CPF = P.CPF and A.Codigo = T.Codigo and T.Ano = '2006' f. (0.4) Liste os nomes dos co-autores do trabalho que possui maior número de co-autores.

Select p.nome From Pessoa p, Autor a, ( Select t.codigo as codigo, count (*) as qtd From Trabalho t, Autor a2 Where t.codigo = a2.codigo Group by t.codigo Order by qtd Limit 1 ) maior Where a.codigo = maior.codigo AND p.cpf = a.cpf; g. (0.4) Liste o código e o título dos trabalhos com pelo menos 2 coautores. (não utilize o operador group by). Select distinct t.codigo, t.titulo From Trabalho t, Autor a1, Autor a2 Where t.codigo = a1.codigo AND t.codigo = a2.codigo AND a1.cpf <> a2.cpf; Select distinct p.nome From Pessoa p h. (0.4) Liste o nome dos autores que tenham participado de todos os trabalhos publicados. From Trabalho t From Autor a Where a.codigo = t.codigo AND a.cpf = p.cpf ) i. (0.8) Suponha que desejamos inserir a seguinte publicação: autores são os professores Elmasri e Navathe; o título é Sistemas de Banco de Dados, e; ano da publicação foi 2005. Defina valores aleatórios para os cpfs e código do livro. Forneça a seqüência de comandos SQL a serem fornecidos para que a publicação seja registrada no banco. Forneça esta seqüência de forma a evitar que a integridade referencial do banco não seja infringida.

INSERT INTO Pessoa VALUES (001, Elmasri, Docente INSERT INTO Pessoa VALUES (002, Navathe, Docente INSERT INTO Trabalho VALUES (00001, Sistemas de Banco de Dados, 2005 INSERT INTO Autor VALUES (001, 00001 INSERT INTO Autor VALUES (002, 00001 2. (2.5 ptos) Em bases de dados manipuladas por SGBDs podemos definir restrições, as quais garantem que estas bases estão sendo corretamente manipuladas. No exercício anterior foram utilizadas algumas restrições: a. Quais foram estas restrições? Chaves Primárias e Estrangeiras b. Como garantimos que o tipo de pessoa armazenada somente seja Docente, Discente ou Outros? Operador CHECK na definição da tabela Pessoa c. Suponha que exista uma regra de negócio que proíba que uma publicação tenha mais de 10 autores. Como podemos inserir esta restrição na definição do banco de dados? Podemos criar um gatilho (trigger) para cada inserção de autor em publicação. Antes de fazermos a inserção, verificamos se o número máximo já foi atingido. Caso não tenha, a inserção é realizada. d. Para esta última restrição, imagine que, para as publicações com mais de 10 autores, não faz sentido termos apenas os 10 primeiros registrados. Ou seja, ou temos todos os autores, ou nenhum. Como podemos implementar esta característica? Na tentativa de inserção, caso o máximo tenha sido atingido, podemos disparar a remoção das tuplas já inseridas modificando o gatilho. e. A inserção de uma publicação pode gerar um estado parcialmente inconsistente do banco. Por exemplo, poderíamos ter uma publicação sem autores. Como podemos proceder para garantir que este estado não ocorra? Podemos criar uma transação que compreenda todas as operações para a inclusão de uma publicação, como a seqüência fornecida no item 1.i) 3. (2.0 ptos) Considere a seguinte relação: Venda_Carro (NumCarro, Data_Venda, NumVendedor, Comissão, Desconto) Suponha que um carro possa ser vendido por diversos vendedores. Ou seja, {NumCarro, NumVendedor} é a chave primária. Outras dependências existentes na relação são: Data_Venda Desconto NumVendedor Comissão

Baseado na chave primária dada, essa relação está em qual forma normal? Justifique sua resposta e aplique decomposições sucessivas, caso necessário, para que esta relação esteja na 3FN. Apresente todos os passos intermediários, se existirem. Esta relação está na 1FN (não há atributos multivalorados). Não está na 2FN pois há dependências parciais com respeito à chave primária. Por exemplo, NumVendedor Comissão. Venda_Carro (NumCarro, NumVendedor, Data_Venda, Desconto) Vendedor (NumVendedor, Comissão) Esta está na 2FN, mas não está na 3FN, pois existem atributos que dependem transitivamente da chave primária ({NumCarro, NumVendedor } Data_Venda Desconto). Venda_Carro (NumCarro, NumVendedor, Data_Venda) Data (Data_Venda, Desconto) Vendedor (NumVendedor, Comissão) 4. (1.5 ptos) Resuma cada um dos trabalhos apresentados (excetuando o seu próprio) em, no máximo, 3 parágrafos. Apresente a idéia geral, vantagens, desvantagens, importância, etc.