Prova de Fundamentos de Bancos de Dados 2 a Prova

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

Prova de Fundamentos de Bancos de Dados 2 a Prova

Prova de Fundamentos de Bancos de Dados 2 a Prova

Prova de Fundamentos de Bancos de Dados 2 a Prova

Prova de Fundamentos de Bancos de Dados 2 a Prova

Rápida revisão do Modelo Relacional

SQL CREATE DATABASE. MySQL, SQL Server, Access, Oracle, Sybase, DB2, e outras base de dados utilizam o SQL.

Introdução ao PostgreSQL

Conceitos básicos. Funcionario SIAPE Nome Lotacao Cargo Salario Admissao

SQL (Tópicos) Structured Query Language

Época de Recurso Sem consulta

Parte I (correspondente à matéria do 1º teste)

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

IMPLEMENTAÇÃO DE BANCO DE DADOS

Banco de Dados I. Aula 16 - Prof. Bruno Moreno 04/11/2011

Comandos de Manipulação

'%'! $!0" $ 8 ' %%! % '! $ $$% + ' %!%$/)!'4!+,"/)!)+,/)% *! +,"0''% * %$!*!$$ #!"%&%'%'%$! "94(# ' %'$%$$$%0%$%' *!% %%%'!**% > %% %%!31?

Utilizando o Postgres - comandos SQL para a manipulação de dados

MySql. Introdução a MySQL. Andréa Garcia Trindade

Avisos. Sumário. Atividade em lab Aula 29. Atividade em lab Aula 29. Programando com SQL Triggers EXERCÍCIO LAB SP. Vista da segunda prova

Linguagem SQL (Parte II)

Prova de Fundamentos de Bancos de Dados 1 a Prova

L Q S m e g a u g n Li A

UNIVERSIDADE FEDERAL DA GRANDE DOURADOS PRÓ-REITORIA DE GRADUAÇÃO PROGRAD FACULDADE DE CIÊNCIAS EXATAS E TECNOLOGIA CURSO DE SISTEMAS DE INFORMAÇÃO

Linguagem SQL. Comandos Básicos

Fundamentos de Bancos de Dados 3 a Prova

BCD29008 Banco de dados

Linguagem de pesquisa declarativa para banco de dados relacional; 1ª Versão - Desenvolvida pela IBM no laboratório de pesquisa de San José;

Tabelas. Banco de Dados I MySQL

SQL BÁSICO. Luiz Antônio Vivacqua Corrêa Meyer

Lista 02 Sistema de Banco de Dados CAP 241 Computação Aplicada I

PostgreSQL Desenvolvedor

Administração de Banco de Dados

Teste Exemplo Revisão da tentativa 1

Aula de SQL Comandos DDL. André Luiz de Oliveira Eduardo Raul Hruschka

Structured Query Language (SQL) Aula Prática

Linguagem SQL. ENG1518 Sistemas de Informação Gerenciais Prof. Marcos Villas

Revisão de Bancos de Dados

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

Exame de Recurso de Base de Dados Universidade do Algarve 03/Fev/2005, (duração: 2 horas)

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

SIG: Sistemas de Informações Geográficas. Adaptado de Gilberto Câmara

SQL-99: Esquema de BD EMPRESA

Uma solução possível para garantir, em ambiente APEX, a consistência duma estrutura ISA, total e disjuntiva.

SQL Básica. Andre Noel

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE INTRODUÇÃO A SQL

Banco de Dados I Introdução SQL

Prova de Fundamentos de Bancos de Dados 1 a Prova

Banco de Dados. Diego Silveira Costa Nascimento. 20 de março de Instituto Federal do Rio Grande do Norte

TRIGGER e SEGURANÇA. Prof. Edson Thizon

SQL (Structured Query Language)

Importar e Exportar Dados

Preparação criar tabela. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 12/11/2018

Abordagem relacional. Capítulo 4

Restrições de Integridade Semântica

Prova de Fundamentos de Bancos de Dados 2 a Prova

Uma breve introdução a Bases de dados

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

SQL Server Desenvolvedor

Conceitos SQL SQL 19/03/2017 O que é dado? O que é BD? O que é uma informação? O que é SGBD? O que é SQL? O que é BD? O que é SGBD?

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

Fundamentos de Bancos de Dados Prova 2

Bancos (Bases) de Dados

SQL Linguagem de Manipulação de Dados SQL DML SQL DML. Exemplo Modelo Relacional. Exemplo ME-R SQL DML CONTINUAÇÃO...

ANÁLISE E PROJETO DE BANCO DE DADOS

Escola Secundária de Albufeira. Comandos MySQL. (Páginas Web Dinâmicas: PHP e MySQL) Carlos Nunes

Sistemas de Bases de Dados Relacionais Introdução ao SQL. Interrogações diversas sobre a Base de Dados Northwind - Parte II

Laboratório de Banco de Dados II Aula 04. Prof. Érick de Souza Carvalho

Planificação Anual. Departamento Expressões e Tecnologias

E-BOOK GUIA RÁPIDO DE SQL W W W. T R E I N A W E B.C O M. B R

Sistemas de Informação e Bases de Dados 2012/2013. Linguagem SQL

Prova de Tecnologia da Informação

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Prof. Josenildo Silva

BANCO DE DADOS. Para a criação de um banco de dados, através de scripts SQL, deve-se usar a seguinte sintaxe: CREATE DATABASE <nome_banco_de_dados>

3. Seja a tabela Funcionário abaixo. Com relação ao atributo idade podemos dizer que:

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

Triggers em PostgreSQL. Linguagem de Programação de Banco de Dados. Triggers em PostgreSQL. Triggers em PostgreSQL

Atualização e Inserção de Dados. SQL Avançado. Pedro F. Carvalho OCP Oracle g

Banco de Dados. Professora: Luciana Faria

A linguagem SQL

DDL DML DCL DTL Tipos Numéricos: INT FLOAT DOUBLE Tipos String: CHAR VARCHAR BINARY BLOB TEXT Tipos Data e Hora: DATE TIME TIMESTAMP YEAR

Aula 11 SBD SQL Parte 3. Profa. Elaine Faria UFU

A Linguagem SQL. Introdução a Banco de Dados DCC 011

Múltiplas Tabelas. Disciplina de Banco de Dados

Definição do esquema da base de dados. o esquema da BD é composto pelas definições de todas as tabelas da BD.

Fundamentos de Banco de Dados Postgre com Sql

Prof. Dr. Joaquim Assunção Banco de Dados. SQL (parte 4) DDL Restrições

TLBD II. Continuação (04)

Programando em SQL. Triggers, Stored Procedures e funções. Profa. Késsia Marchi

Fundamentos de SQL. Curso: Técnico em Redes de Computadores Disciplina: Tecnologias e Linguagem de Banco de dados Professor: Rodrigo da Rocha

1º Teste Sem consulta

AULA 8. Ambientes Visuais 8.1. OBJETIVO DA AULA SQL (Structured Query Language)

Revisão Banco de Dados

Programação em Banco de dados

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

Transcrição:

Prova de Fundamentos de Bancos de Dados 2 a Prova Prof. Carlos A. Heuser Junho de 2006 Prova com consulta duas horas de duração 1 Base de dados para as questões A SBC (Sociedade Brasileira de Computação está montando uma biblioteca digital para armazenar dados sobre a produção de pesquisadores em computação. Uma parte desta base de dados corresponde às tabelas abaixo (esta é a mesma base de dados que foi usada na primeira prova. Pesquisador (CodPesq,NomePesq /* tabela com dados dos pesquisadores que têm produção científica */ Artigo (CodArt,TituloArt,VeiculoArt,AnoArt /* tabela com os dados dos artigos publicados - VeiculoArt é o título do veículo de publicação (nome de um congresso ou de um periódico e AnoArt é o ano de publicação */ Referencia (CodArtReferenciador,CodArtReferenciado /* tabela que contém referências bibliográficas - cada linha contém o artigo que faz a referência e o artigo que é referenciado*/ Autoria(CodArt,CodPesq,PosicaoAut /*tabela que liga um artigo com seus vários pesquisadores autores -- a coluna PosicAut contém a ordem do autor dentro do artigo (1, 2,...*/ 1

2 Questões 1. Sobre esta base de dados, expresse as seguintes consultas em cálculo relacional: a Obter os nomes dos pesquisadores que, em 2006, publicaram artigos em veículo intitulado VLDB Journal, constando como primeiro autor. Pesquisador.NomePesq WHERE Autoria ( Autoria.CodPesq = Pesquisador.CodPesq AND Autoria.PosicaoAut = 1 AND Artigo ( Artigo.CodArt = Autoria.CodArt AND Artigo.AnoArt = 2006 VeiculoArt = VLDB Journal b Obter os nomes dos pesquisadores que não foram autores de artigos. Pesquisador.NomePesq WHERE NOT Autoria ( Pesquisador.CodPesq = Autoria.CodPesq c Obter os códigos dos pesquisadores que publicaram todos artigos de 2006. Pesquisador.CodPesq WHERE Artigo ( Artigo.AnoArt = 2006 IMPL Autoria ( Autoria.CodPesq = Pesquisador.CodPesq AND Autoria.CodArt = Artigo.CodArt 2

2. Expresse as seguintes consultas em SQL, usando sub-consultas: a (idem a questão 1b Obter os nomes dos pesquisadores que não foram autores de artigos. SELECT Pesquisador.NomePesq WHERE NOT EXISTS ( SELECT * WHERE Pesquisador.CodPesq = CodPesq ou SELECT Pesquisador.NomePesq WHERE CodPesq NOT IN ( SELECT CodPesq b (idem a questão1c Obter os códigos dos pesquisadores que publicaram todos artigos de 2006. SELECT Pesquisador.CodPesq WHERE NOT EXISTS ( SELECT * FROM Artigo WHERE Artigo.AnoArt = 2006 AND NOT EXISTS ( SELECT * WHERE Autoria.CodPesq = Pesquisador.CodPesq AND Autoria.CodArt = Artigo.CodArt 3

3. Expresse as seguintes consultas em SQL: a Obter os nomes dos autores que publicaram o maior número de artigos. SELECT NomePesq WHERE CodPesq IN ( SELECT CodPesq GROUP BY CodPesq HAVING COUNT(* = (SELECT MAX(NoArtigos FROM (SELECT CodPesq, COUNT(* AS NoArtigos GROUP BY CodPesq b Para cada veículo que têm mais que três artigos publicados, obter seu título, seguido do número de artigos nele publicados. SELECT VeiculoArt,COUNT(* FROM Artigo GROUP BY VeiculoArt HAVING COUNT(*>3 4

c Para cada autor, obter seu nome seguido do número de diferentes veículos em que ele já publicou. Autores sem publicações também devem aparecer no resultado. SELECT NomeArt, COUNT (DISTINCT VeiculoArt FROM (Pesquisador NATURAL LEFT JOIN Autoria NATURAL LEFT JOIN Artigo GROUP BY Pesquisador.CodArt, NomeArt ou SELECT NomeArt, COUNT (DISTINCT VeiculoArt, Autor, Artigo WHERE Pesquisador.CodPesq=Autoria.CodPesq AND Autoria.CodArt=Artigo.CodArt UNION SELECT NomeArt, 0 WHERE CodPesq NOT IN (SELECT CodPesq 4. Da forma como está especificada, a chave primária da tabela Autoria impede que um mesmo autor apareça mais que uma vez no mesmo artigo. Deseja-se especificar a seguinte restrição de integridade: Em um artigo, uma posição (PosicaoAut não pode ser ocupada mais que uma vez. a Esta restrição de integridade pode ser implementada através de uma restrição de domínio, de obrigatoriedade ou de chave, ou ainda na forma de um CHECK CONSTRAINT? Caso afirmativo, fornecer o comando SQL que a define. Solução: Na tabela, não podem aparecer duas linhas com o mesmo para (CodArt,PosicaoAut. Para impedir isso, basta incluir uma restrição de chave única na tabela: ALTER TABLE Autoria ADD CONSTRAINT PosicaoUnica UNIQUE KEY (CodArt,PosicaoAut 5

b Implementar a restrição através de triggers. Especificar a ação informalmente, indicando a mensagem de erro a ser dada. CREATE TRIGGER PosicaoUnica BEFORE INSERT OR UPDATE ON Autoria REFERENCING NEW AS NewAutoria FOR EACH ROW WHEN ( EXISTS (SELECT * WHERE CodArt=NewAutoria.CodArt AND PosicaoAut=NewAutoria.PosicaoAut ( sinalizar erro Já há autor nesta posição no artigo 6