Questão FC372750
Considere a seguinte estrutura de dados: Cliente (Cod_Cliente, Nome_Cliente, Endereço_Cliente, Faturas_Cliente (Número_Fatura, Vlr_Fatura, Dt_Venc_Fatura)) Considere os seguintes r
Projeto e Modelagem de Dados
FCC · 2019
Considere a seguinte estrutura de dados:
Cliente (Cod_Cliente, Nome_Cliente, Endereço_Cliente,
Faturas_Cliente (Número_Fatura, Vlr_Fatura, Dt_Venc_Fatura))
Considere os seguintes requisitos técnicos:
− A estrutura
Faturas_Cliente está inserida na estrutura do cliente ao qual pertence.
−
Cod_Cliente é o atributo identificador de Cliente.
−
Número_Fatura é o atributo identificador de Fatura.
− Um cliente é cobrado em uma ou mais faturas e uma fatura cobra um e somente um cliente.
− O mapeamento relacional fará com que os atributos identificadores (grifados nas estruturas apresentadas acima) componham as chaves primárias (
Primary Key – PK), nas tabelas correspondentes dos bancos de dados relacionais.
Após a aplicação da normalização (até a Terceira Forma Normal – 3FN),
- a estrutura Cliente formará uma tabela e terá o Número_Fatura compondo sua chave primária (Primary Key – PK).
- a estrutura Cliente formará uma tabela e terá o Número_Fatura como chave estrangeira (Foreign Key – FK).
- serão criadas três tabelas: Cliente, Faturas_Cliente e Cliente_Faturas cuja chave primária (Primary Key – PK) será uma composição de Cod_Cliente, Número_Fatura e Dt_Venc_Fatura.
- a estrutura Faturas_ Cliente formará uma tabela e terá o Cod_Cliente como chave estrangeira ( Foreign Key – FK).
- a estrutura Faturas_Cliente formará uma tabela e terá o Cod_Cliente compondo sua chave primária (Primary Key – PK).
Mostrar resposta e comentário
Gabarito
D
Comentário do professor
A estrutura aninhada Faturas_Cliente dentro de Cliente viola a 1ª Forma Normal por representar um atributo multivalorado; para chegar à 3FN é preciso extrair Faturas_Cliente para formar uma tabela própria.
Como o enunciado define que um cliente pode ter uma ou mais faturas e cada fatura pertence a um único cliente, o relacionamento é de cardinalidade 1:N. No mapeamento relacional, isso implica colocar a chave estrangeira no lado N do relacionamento.
Assim, teremos: Cliente(Cod_Cliente PK, Nome_Cliente, ...) e Faturas_Cliente(Número_Fatura PK, Vlr_Fatura, Dt_Venc_Fatura, Cod_Cliente FK REFERENCES Cliente(Cod_Cliente)). A presença do Cod_Cliente em Faturas_Cliente garante integridade referencial e preserva a 3FN.
Conteúdo do catálogo FC Concursos · Atualizado em