da aula prática 8 de Bases de Dados

Documentos relacionados
Disciplina : Gerência de Banco de Dados Semestre Professora : Sandra de Amo. Lista de Exercícios 4 - Consultas SQL

UNIVERSIDADE FEDERAL DE. Programa de Mestrado em Ciência da

SQL. Agregações e agrupamentos. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

Bases de Dados BDDAD. Linguagem SQL. Comando SELECT Divisão Algébrica. Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/9

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

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

Memória de aula Aulas 11 e 12

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

Banco de Dados - SQL. Prof. Carlos Bazilio

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

Fundamentos de Bancos de Dados Prova 2

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

ANÁLISE E PROJETO DE BANCO DE DADOS

Rápida revisão do Modelo Relacional

SQL Consultas Básicas

Ordenação de tuplos order by

Introdução ao PostgreSQL

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

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Projeto de Banco de Dados

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

1º Teste Sem consulta

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

A cláusula order by permite ordenar tuplos exemplo: listar por ordem alfabética os nomes dos clientes com empréstimo na agência de Perryridge

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

Comandos de Manipulação

Sumário Introdução Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL A Composição deste Livro 3

Á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:

1º Teste Sem consulta

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

IMPLEMENTAÇÃO DE BANCO DE DADOS

SQL Comandos para Relatórios e Formulários. Laboratório de Bases de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

PROGRAMA. Aquisição dos conceitos teóricos mais importantes sobre bases de dados contextualizados à luz de exemplos da sua aplicação no mundo real.

Época de Recurso Sem consulta

Bases de Dados. Álgebra Relacional II Junções, agregações, vistas. P. Serendero,

Prova de Fundamentos de Bancos de Dados 2 a Prova

MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.

Sintaxe do comando SELECT

Banco de Dados. Otimização de consultas. Prof. Joao Eduardo Ferreira Prof. Osvaldo Kotaro Takai. Última atualização: 15 de maio de 2006

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

BCD29008 Banco de dados

Projeto e Implementação

Banco de Dados - SQL. Profa. Flávia Cristina Bernardini

Prova de Fundamentos de Bancos de Dados 2 a Prova

Fundamentos de Bancos de Dados Prova 2

Projeto de Banco de Dados

Banco de Dados. José Antônio da Cunha CEFET RN

Prova de Fundamentos de Bancos de Dados 2 a Prova

- Um "query block" permite a implementação das operações de selecção, projecção e junção da álgebra relacional.

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

Banco de Dados I Linguagem SQL Parte 2. Autor: Prof. Cláudio Baptista Adaptado por: Prof. Ricardo Antonello

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

Banco de dados Continuação das consultas em SQL... 3º trimestre Prof. Patrícia Lucas.

SQL DML. Frederico D. Bortoloti

Agenda. Linguagem de Consulta SQL. 1. Introdução Histórico. 1. Introdução BD Relacionais

Arquitectura interna de um computador. Organização de um computador. Organização de um computador. Organização de um computador

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

Definida pelo American National Standard Institute (ANSI) em 1986

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Sumário SELECT + FROM

Structured Query Language (SQL) SQL é uma linguagem normalizada (ANSI) para consultas e actualizações de bases de dados relacionais.

Avisos. SQL: Visões. Roteiro SELECT. Suporte de SQL para OLAP SQL DML CONTINUAÇÃO CONSULTAS AVANÇADAS. Cronograma das próximas aulas

António Rocha Nuno Melo e Castro

Banco de Dados II Aula 05. Prof. Érick de Souza Carvalho

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

SQL - Perguntas. André Restivo. Faculdade de Engenharia da Universidade do Porto. February 24, 2012

12. Considere o trecho de planilha eletrônica mostrado com os preços unitários e totais de três itens para o cabeamento de um laboratório.

Licenciatura em Informática

Tópicos da aula. Histórico e Evolução dos Computadores. Noções Básicas de Arquitetura de Computadores

Fundamentos de Bases de Dados e-fólio B Resolução e Critérios de Correção

Aula 10 BD 1 SQL Parte 2. Profa. Elaine Faria UFU

PCS3413. Engenharia de So-ware e Banco de Dados. Aula 17. Escola Politécnica da Universidade de São Paulo

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

SQL Consultas Básicas

SUBCONSULTAS E TIPOS DE JUNÇÃO. Banco de Dados Profa. Ana Paula Wauke

Jornalismo Hacker. Analisando bancos de dados com SQL. Leonardo Leite

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

PROGRAMA. Objectivos Gerais :

PostgreSQL Introdução

Unipar Universidade Paranaense Disciplina: Banco de Dados II 3ª Série Profª: Késsia Marchi Profa. Késsia Marchi

SQL. Subqueries. Cristina C. Vieira Departamento de Engenharia Eletrónica e Informática

UTFPR - Universidade Tecnológica Federal do Paraná. Processamento e otimização de consultas

Pontifícia Universidade Católica do Rio de Janeiro PUC-RIO

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

BANCO DE DADOS II Prof. Ricardo Rodrigues Barcelar

Álgebra Relacional e SQL operações de interesse

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

U.C Fundamentos de Bases de Dados Resolução e Critérios de Correção INSTRUÇÕES:

Banco de Dados Notas de Aula Consultas em SQL Prof. Dr. Daniel A. Furtado

Revisão Banco de Dados

Época de Recurso Sem consulta

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

1º Teste Sem consulta

Subconsulta na Cláusula FROM

Bases de Dados. DML Data Manipulation Language Parte 2

Álgebra Relacional e SQL

PROGRAMA. 3.SQL Básico. 3.1 Criação de tabelas 3.2 Queries simples 3.3 Subqueries 3.4 Agregação. Prof. Dr. Marcos Tsuzuki

Consulta sobre múltiplas relações

DO BÁSICO AO AVANÇADO PARA MANIPULAÇÃO E OTIMIZAÇÃO DE DADOS. Fábio Roberto Octaviano

Transcrição:

Solução dos exercícios da aula prática 8 de Bases de Dados Considerando o seguinte esquema de relações: Productmaker, model, type PCmodel, speed, ram, hd, cd, price Laptopmodel, speed, ram, hd, screen, price Printermodel, color, type, price Reescreva e execute em SQL as queries feitas na aula passada em álgebra relacional. a Quais modelos de PC têm uma velocidade de pelo menos 3.00? SELECT model FROM PC WHERE speed >= 3; b Quais fabricantes produzem laptops com um disco rígido de pelo menos 100 GB? FROM Product NATURAL JOIN Laptop WHERE hd >= 100; c Quais os modelo e respectivos preços de todos os produtos de qualquer tipo produzidos pelo fabricante B. SELECT model,price FROM Product NATURAL JOIN SELECT model,price FROM PC UNION SELECT model,price FROM Laptop UNION SELECT model,price FROM Printer AS Temp WHERE maker= B ; 1

d Quais os números dos modelos das impressoras laser a cores. SELECT model FROM Printer WHERE type= laser AND color=true; e Quais os fabricantes que vendem Laptops mas não vendem PC?s. FROM Product WHERE type= laptop FROM Product WHERE type= pc f Quais os tamanhos de disco que ocorrem em 2 ou mais PC?s. SELECT DISTINCT PC1.hd FROM PC AS PC1, PC AS PC2 WHERE PC1.model <> PC2.model AND PC1.hd = PC2.hd; Com agregações pode ser feito assim, SELECT hd FROM PC GROUP BY hd HAVING count* >= 2; g Encontre os pares de modelos de PC que têm a mesma velocidade e a mesma RAM. Cada par deve ser obtido so uma vez. Isto é, se obtiver x,y não deve obter y,x. Dá jeito criar uma view chamada Computer com informação sobre PCs e Laptops. CREATE VIEW Computer AS, model, speed, ram 2

UNION, model, speed, ram FROM Product NATURAL JOIN Laptop Agora é só fazer um join como na alínea anterior, SELECT C1.model, C2.model WHERE C1.model < C2.model AND C1.speed = C2.speed AND C1.ram = C2.ram; h Quais os fabricantes de pelo menos 2 computadores PC ou Laptop cuja velocidade é pelo menos 2.80. SELECT DISTINCT C1.maker WHERE C1.maker = C2.maker AND C1.model <> C2.model AND C1.speed >= 2.8 AND C2.speed >= 2.8; i Encontre os fabricantes do computador PC ou laptop com a máxima velocidade. Tradução directa da solução feita em álgebra relacional Computer é a view definida na alínea anterior: CREATE VIEW Tempmaker1,model1,speed1,ram1,maker2,model2,speed2,ram2 AS SELECT * WHERE C1.speed < C2.speed 2 FROM 2,speed2 FROM Temp 1,speed1 FROM Temp AS Temp2; Obtém-se uma solução mais simples com uma subquerie e o operador MAX: 3

SELECT DISTINCT maker FROM Computer WHERE speed = SELECT MAXspeed FROM Computer j Quais os fabricantes de PC?s com pelo menos 3 velocidades distintas. CREATE VIEW prodpc AS SELECT * FROM product NATURAL JOIN pc SELECT DISTINCT r1.maker FROM prodpc AS r1, prodpc AS r2, prodpc AS r3 WHERE r1.maker = r2.maker AND r2.maker = r3.maker AND r1.speed < r2.speed AND r2.speed < r3.speed; Utilizando agregações obtém-se uma solução mais simples, GROUP BY maker HAVING COUNTDISTINCT speed >= 3; k Quais os fabricantes que vendem exactamente 3 modelos diferentes de PC. -- vendem pelo menos 3 - vendem pelo menos 4 SELECT r1.maker FROM prodpc AS r1, prodpc AS r2, prodpc AS r3 WHERE r1.maker = r2.maker AND r2.maker = r3.maker AND r1.model < r2.model AND r2.model < r3.model SELECT r1.maker FROM prodpc AS r1, prodpc AS r2, prodpc AS r3, prodpc AS r4 WHERE r1.maker = r2.maker AND r2.maker = r3.maker AND r3.maker = r4.maker AND r1.model < r2.model AND r2.model < r3.model AND r3.model < r4.model A solução com agregações é novamente bem mais simples, GROUP BY maker HAVING count* = 3; 4

Notas finais Algumas das soluções apresentadas utilizam views. Na altura em que fizeram os exercícios ainda não tinham aprendido views. Como tal, muitos de vós criaram tabelas temporárias fazendo SELECT...INTO. 5