Sou professor e estou questionando uma solução dada pela nossa banca examinadora. A pergunta é mostrada abaixo e gostaria de pedir ajuda para entender por que minha solução não seria aceitável.
Aqui está a pergunta/cenário original:
Aqui está minha solução:
A Solução, dada pela nossa banca examinadora, é mostrada abaixo. Como você verá, eles indicam a necessidade de uma entidade ‘AssignedSeat’. Entendo que eles estão resolvendo um relacionamento muitos-para-muitos aqui, mas pergunto se minha solução (em azul) seria igualmente válida usando apenas essas 2 entidades?
Sua solução não é igualmente válida, pois possui redundância que pode ser eliminada. Considere um cliente que reserva 10 lugares para um determinado show. No seu caso você tem 10 linhas (cada uma com 3 itens, totalizando 30 itens) para representar esse fato. Na solução mostrada, em vez disso, existem apenas 23 itens para representar a mesma informação (10 linhas com 2 itens e uma única linha com 3 itens). Como a redundância é ruim no projeto de banco de dados, a solução com três relações é melhor que a solução com apenas duas relações.
Do ponto de vista formal, temos que
mas na relação
BOOKING(CustomerId, ShowingId, SeatNumber)
, o par(ShowingId, SeatNumber)
não é uma chave candidata, então a relação não está na Forma Normal de Boyce-Codd (embora esteja na Terceira Forma Normal).