ARA7129 Banco de Dados I Segundo Semestre - 2014 Terceira Lista de Exercı́cios 1. (GMUW) Considere as seguintes relaçoes: - Produto (fabricante, modelo, tipo) - PC (modelo, velocidade, ram, hd, preço) - Laptop (modelo, velocidade, ram, hd, tela, preço) - Impressora (modelo, cor, tipo, preço) A relação Produto fornece o fabricante, o numero do modelo e o tipo (PC, laptop, ou impressora) de vários produtos. Assumimos por conveniência que os números dos modelos são únicos sobre todos os fabricantes e tipos de produto; esta hipótese não é realı́stica, e um banco de dados real deveria incluir um código para o fabricante como parte do número do modelo. A relação PC fornece para cada número de modelo que é um PC a velocidade (do processador, em gigabytes), a quantidade de RAM (em megabytes), o tamanho do disco rı́gido (hd, em gigabytes), e o preço. A relação Laptop é similar, exceto que o tamanho da tela (em polegadas) está também incluı́da. A relação Impressora registra para cada modelo de impressora se a impressora produz saı́da colorida (true, se sim ou false, caso contrário), o tipo (laser ou jato de tinta, tipicamente), e o preço. Crie uma tabela usando os comandos de SQL-99 (SQL padrão de 1999) para cada relação citada. Cada tabela deve ter uma chave. Use o SGDB PostgreSQL para popular cada tabela com os seguintes dados das Tabelas 1, 2, 3 e 4. a. Escreva expressões da algebra relacional para responder as seguintes consultas. • Quais modelos de PC’s têm velocidade pelo menos 3.00? • Quais fabricantes produziram laptops com um disco rı́gido de pelo menos 100 gigabytes? • Encontre o número do modelo e o preço de todos os produtos (de qualquer tipo) produzido pelo fabricante B? • Encontre os números dos modelos de todas as impressoras laser coloridas. • Encontre aqueles fabricantes que vendem laptops mas não PC’s. • Encontre aqueles tamanhos de disco rı́gido que ocorrem em dois ou mais PC’s. • Encontre aqueles pares de modelos de PC’s que têm a mesma velocidade e memória RAM. Um par deve ser listado somente uma vez; por exemplo, liste (i,j) mas não (j,i). • Encontre aqueles fabricantes de pelo menos dois diferentes computadores (PC’s ou laptops) com velocidades de pelo menos 2.80. • Encontre o(s) fabricante(s) do computador (PC ou laptop) com a mais alta velocidade disponı́vel. • Encotre os fabricates de PC’s com pelo menos três diferentes velocidades. • Encontre os fabricantes que vendem exatamente três modelos diferentes de PC. b. Escreva em SQL-99 as consultas correspondentes para cada expressão. Use o tipo FLOAT (ou REAL) para precisão simples ou DOUBLE PRECISION para precisão dupla onde achar conveniente. Use o PostgreSQL para verificar suas consultas. fabricante A A A A A A B B B B C D D D D D E E E E E E E E E F F G H H modelo 1001 1002 1003 2004 2005 2006 1004 1005 1006 2007 1007 1008 1009 1010 3004 3005 1011 1012 1013 2001 2002 2003 3001 3002 3003 2008 2009 2010 3006 3007 tipo pc pc pc laptop laptop laptop pc pc pc laptop pc pc pc pc impressora impressora pc pc pc laptop laptop laptop impressora impressora impressora laptop laptop laptop impressora impressora Tabela 1: Uma instância para a relação Produto modelo 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 velocidade 2.66 2.10 1.42 2.80 3.20 3.20 2.20 2.20 2.00 2.80 1.86 2.80 3.06 ram 1024 512 512 1024 512 1024 1024 2048 1024 2048 2048 1024 512 hd 250 250 80 250 250 320 200 250 250 300 160 160 80 preço 2114 995 478 649 630 1049 510 770 650 770 959 649 529 Tabela 2: Uma instância para a relação PC modelo 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 velocidade 2.00 1.73 1.80 2.00 2.16 2.00 1.83 1.60 1.60 2.00 ram 2048 1024 512 512 1024 2048 1024 1024 512 2048 hd 240 80 60 60 120 80 120 100 80 160 tela 20.1 17.0 15.4 13.3 17.0 15.4 13.3 15.4 14.1 15.4 preço 3673 949 549 1150 2500 1700 1429 900 680 2300 Tabela 3: Uma instância para a relação Laptop modelo 3001 3002 3003 3004 3005 3006 3007 cor true false true true false true true tipo jato de tinta laser laser jato de tinta laser jato de tinta laser preço 99 239 899 120 120 100 200 Tabela 4: Uma instância para a relação Impressora