Nesta edição continuamos o conjunto de desafios iniciados na edição 31 e, além de apresentar a solução do desafio anterior que consistia de um conjunto de consultas utilizando relacionamentos n:n, entidades fracas e funções de agrupamento, também será proposto um novo desafio, desta vez modificando o modelo de dados do sistema de biblioteca para incluir funcionalidades que exercitem a utilização de auto-relacionamentos e relacionamentos ternários.

Antes disso, precisamos discutir as possibilidades de solução do desafio anterior, onde a Figura 1 representa o modelo de dados atual do sistema de biblioteca.

O modelo de dados do sistema de biblioteca
Figura 1. O modelo de dados do sistema de biblioteca

A seguir seguem cada uma das consultas propostas, com suas soluções e comentários.

  1. Listar os títulos de todas as obras cuja descrição do assunto seja “Ficção” ou “Romance” ou “Poesia”, ordenadas por assunto. Resolva esta questão de duas formas diferentes (ver Listagens 1 e 2).
    
    select assunto.descricao_assunto, obra.titulo
    from obra, assunto, obra_assunto
    where obra.cod_obra = obra_assunto.cod_obra and
    assunto.cod_assunto = obra_assunto.cod_assunto and
    (assunto.descricao_assunto = ‘Ficção’ or
    assunto.descricao_assunto = ‘Romance’ or
    assunto.descricao_assunto = ‘Poesia’)
    order by assunto.descricao_assunto
    
    Listagem 1. Primeira resposta do exercício 1
    
    select assunto.descricao_assunto, obra.titulo
     from obra, assunto, obra_assunto
     where obra.cod_obra = obra_assunto.cod_obra and
     assunto.cod_assunto = obra_assunto.cod_assunto and
     assunto.descricao_assunto in (‘Ficção’, ‘Romance’, ‘Poesia’)
     order by assunto.descricao_assunto
    
    Listagem 2. Segunda resposta do exercício 1

    O resultado desta consulta deve exibir a descrição do assunto, que está na tabela Assunto, título da obra, que está na tabela Obra e, como estas duas tabelas estão associadas através de um relacionamento n:n, também deverá envolver a tabela Obra_Assunto. A junção destas três tabelas necessita que suas chaves primárias correspondam às chaves estrangeiras correspondentes, fazendo com que a junção fique um pouco mais extensa. A respeito das condições das descrições dos assuntos, percebe-se que na ...

    Quer ler esse conteúdo completo? Tenha acesso completo