Base de Dados, 2005/2006

Aula prática 5: Álgebra Relacional

Exercício 1

(ex. 4.1.1, pag. 187, Ullman, first edition). Considere o seguinte esquema de relações:

Escreva expressões em algebra relacional para responder às seguintes perguntas:

  1. Quais modelos de PC têm uma velocidade de pelo menos 150 MHz?
  2. Quais fabricantes produzem laptops com um disco rígido de pelo menos 1 Gbyte?
  3. Encontre o número de modelo e preço de todos os produtos (de qualquer tipo) produzidos pelo fabricante B
  4. Encontre o número de modelo de todas as impressoras laser
  5. Encontre os fabricantes que vendem laptops e que não vendem PC's
  6. Encontre os tamanhos de disco que ocorrem em 2 ou mais PC's
  7. Encontre os pares de modelos que têm a mesma velocidade e capacidade de memória. Cada par deve ser listado só uma vez
  8. Encontre os fabricantes do computador (PC ou laptop) com a máxima velocidade
  9. Encontre os fabricantes de PC's com pelo menos 3 velocidades diferentes
  10. Encontre os fabricantes que vendem exactamente 3 modelos diferentes de PC

Para a resolução das alíneas se tornar mais fácil, é útil pensarem numa possível instância das relações. Por exemplo,

Product

maker model  type
====  =====  ====
 A    1001   pc  
 A    1002   pc  
 A    1003   pc  
 B    1004   pc  
 B    1006   pc  
 B    3002   printer  
 B    3004   printer  
 C    1005   pc  
 C    1007   pc  
 D    1008   pc  
 D    1009   pc  
 D    1010   pc  
 D    2001   laptop  
 D    2002   laptop  
 D    2003   laptop  
 D    3001   printer  
 D    3003   printer  
 E    2004   laptop  
 E    2008   laptop  
 F    2005   laptop  
 G    2006   laptop  
 G    2007   laptop  
 H    3005   printer  
 I    3006   printer  

PC

model speed  ram   hd    cd    price
===== =====  ===  ===   ===    =====
1001   133   16   1.6    6x    1595 
1002   120   16   1.6    6x    1399 
1003   166   24   2.5    6x    1899 
1004   166   32   2.5    8x    1999 
1005   166   16   2.0    8x    1999 
1006   200   32   3.1    8x    2099 
1007   200   32   3.2    8x    2349 
1008   180   32   2.0    8x    3699 
1009   200   32   2.5    8x    2599 
1010   160   16   1.2    8x    1495 

Laptop

model speed  ram   hd   screen  price
===== =====  ===  ===   ======  =====
2001   100   20   1.10    9.5   1999 
2002   117   12   0.75   11.3   2499 
2003   117   32   1.00   10.4   3599 
2004   133   16   1.10   11.2   3499 
2005   133   16   1.00   11.3   2599 
2006   120    8   0.81   12.1   1999 
2007   150   16   1.35   12.1   4799 
2008   120   16   1.10   12.1   2099 

Printer

model  color    type     price
=====  =====    ====     =====
3001   true    ink-jet    275 
3002   true    ink-jet    269 
3003   false   laser      829 
3004   false   laser      879 
3005   false   ink-jet    180 
3006   true    dry        470 

NOTA: os dados acima estão obviamente obsoletos :) Mas para efeitos deste exercício isso é irrelevante.

Exercício 2

(Teste de Nov/2000).
Considere a base de dados relacional com o seguinte esquema:

Escreva expressões em álgebra relacional para responder às seguintes perguntas (podes utilizar relações e expressões intermédias se for caso disso):

  1. Que tipo de produtos são vendidos pela loja 'Valentim de Carvalho'?
  2. Qual o nome e tipo dos produtos com preço superior a 20000 vendidos na(s) lojas de Lisboa?
  3. Quais os produtos que são vendidos em Lisboa mas que não são vendidos em Faro?
  4. Qual o nome das lojas que vendem televisões com preço inferior a 30000 ou leitores de video com preço inferior a 40000? ('televisão' é um tipo de produto, 'leitor de video' também).
  5. Quais as cidades que têm 2 ou mais lojas?
  6. Qual o nome do(s) produto(s) mais caros?