Olás,
No início da aula de hoje, me mostraram um exemplo quase igual esse da Luciana, mas que realmente não funcionava no RelaX. A mensagem de erro exibida era a seguinte: "schemas are not unifiable: types are different or size is different: __schemaA__ and __schemaB__" (mas os esquemas era sim compatíveis para a divisão!).
Depois de muito matutar para tentar entender o erro, descobri o problema: o RelaX faz a correspondência entre os atributos das tabelas "dividendo" e "divisora" não apenas por meio do nome deles, mas também pela posição. Os atributos da "divisora" têm que aparecer como um "sufixo" dos atributos da "dividendo".
Exemplo:
A seguinte consulta funciona no RelaX:
cursosPopulares = π nomeCurso (σ qtdeAlunos > 1 (γ nomeCurso; count(nroAluno)-> qtdeAlunos (Matriculado)))
Matriculado ÷ (cursosPopulares)
Mas se eu inverter a ordem dos atributos da tabela "dividendo" (Matriculado), a operação dará o erro ""schemas are not unifiable: ..." :
cursosPopulares = π nomeCurso (σ qtdeAlunos > 1 (γ nomeCurso; count(nroAluno)-> qtdeAlunos (Matriculado)))
MatriculadoInvertido = π nomeCurso,nroAluno (Matriculado)
MatriculadoInvertido ÷ cursosPopulares
Mais uma da série "Bizarrices do RelaX"!
Kelly