ustify>
Clique aqui para ler todos os artigos desta edição
Desafio SQL Magazine
Consultas em SQL: Utilização de Subqueries
O objetivo deste desafio é trabalhar com subqueries, ou queries aninhadas, de forma que o resultado de uma consulta seja utilizado em outra consulta, numa mesma expressão SQL. Isso, muitas vezes, permite a realização de consultas mais complexas.
Antes de mais nada, vamos discutir a solução do desafio da edição anterior, que consistia na modificação do modelo de dados para incluir auto-relacionamentos de cardinalidade 1:1 e 1:n, além de relacionamentos ternários.
O primeiro requisito apresentado na edição anterior nos diz que é necessário organizar os assuntos de obras de forma que seja possível associar um determinado assunto a outros relacionados. Por exemplo, ao fazer uma consulta pelo assunto “Modelagem de Sistemas”, seria importante que as obras relacionadas a “Modelagem de Dados” também fossem encontradas. Assim, um assunto pode estar relacionado a diversos outros assuntos. Desta forma, precisa-se efetuar um relacionamento entre dois assuntos, ou seja, um auto-relacionamento na entidade Assunto. Devese tomar cuidado para não criar uma outra entidade no modelo conceitual para os assuntos relacionados, pois isso causaria uma redundância na base de dados, fazendo com
que assuntos fiquem repetidos em duas tabelas. Este relacionamento será de cardinalidade n:n, uma vez que um assunto está relacionado a diversos outros e vice-versa, forçando a criação de uma nova tabela no modelo lógico. A Figura 1 exibe o modelo conceitual para resolução desta questão, bem como sua transformação para o modelo lógico. Percebe-se que a chave primária da tabela Assunto_Relacionamento,
gerada no modelo lógico, é composta por duas chaves estrangeiras, ambas referenciando a tabela Assunto.