P>
Clique aqui para ler todos os artigos desta edição
Desafio SQL Magazine
Consultas em SQL: utilização de relacionamentos n:n, entidades fracas
e funções de agrupamento
Nesta edição iremos propor um conjunto de consultas em SQL baseadas no modelo de dados modificado pelo desafio anterior. Desta vez exercitando a utilização de relacionamentos n:n, entidades fracas e funções de agrupamento.
Antes disso, como de costume, vamos discutir as possibilidades de solução do desafio anterior, lembrando mais uma vez que não existe uma única solução correta.
Vamos discutir primeiro o problema de associação de assuntos às obras. Para isso, deve-se acrescentar ao modelo conceitual uma entidade Assunto, contendo apenas
código e descrição. Como uma obra pode possuir diversos assuntos e um assunto pode estar vinculado a diversas obras, deve-se modificar o modelo conceitual acrescentando um relacionamento n:n entre estas entidades. A Figura 1 representa o fragmento do modelo conceitual para este problema.
Figura 1. Relacionamento n:n entre Obras e Assuntos
Para transformar este modelo conceitual no modelo lógico, necessita-se fazer uma transformação substituindo o relacionamento por chaves estrangeiras. No caso do
sentido da tabela Obra para a tabela Assunto, deveria ser colocado um atributo multivalorado em Obra para apontar para seus diversos assuntos, o mesmo ocorrendo no sentido inverso, da tabela Assunto para a tabela Obra. Entretanto, relacionamentos n:n não são possíveis de serem representados no modelo relacional, uma vez que todos os atributos devem ser atômicos, ou seja, armazenar um único valor. Neste caso, a alternativa é a criação de uma terceira tabela no modelo relacional, conforme ilustrado na Figura 2.
...