Eu tenho essas tabelas:
Marinheiros sid sname classificação idade --- ------ ------ --- 22 poeira em 7 45 31 João 8 55 58 ben 10 35
Barcos lance bname cor --- --------- ----- 101 interlake azul 102 interlake vermelho 103 cortador verde 104 aparador vermelho
Reservas data do lance --- --- ---------- 22 104 8/10/2014 22 103 05/07/2014 58 103 11/08/2014 31 102 8/11/2014
Estou tentando encontrar marinheiros , sname e rating , que reservaram um barco vermelho e um verde , e preciso escrever isso em notação de álgebra relacional.
Eu tentei isso:
Versão em texto, para fins de cópia/referência:
R1 := Barcos ⋈ Serviços R2 := σ cor='Vermelho' (R1) R3 := σ cor='Verde' (R1) R4 := R2 ∩ R3 R5 := R4 ⋈ Marinheiros R6 := π sname,classificação (R5)
Foi-me dito que estava errado, mas não foi dada uma explicação sobre o porquê. Alguém pode me explicar qual é o problema?
Esta linha foi marcada como errada:
R4 := R2 ∩ R3
Este é realmente o erro:
Se tentarmos obter os resultados intermediários da sua solução, obtemos:
R1:
e depois:
R2: (apenas o 'vermelho')
R3: (apenas o 'verde')
R4
será uma relação vazia porque nada pode ser vermelho e verde. Claro que não é isso que o exercício pede.R4:
O que você precisa fazer é obter
R2'
eR3'
, as projeções deR2
eR3
respectivamente, apenas com o atributosid
. Então pegue sua interseção paraR4
: