•2021•Tecnologia da Informação•Agente de Tecnologia
Ao construir um protótipo que calculava o risco sanitário de um terreno, um desenvolvedor principiante começou a desenhar um modelo relacional, o que o levou a propor as seguintes tabelas (onde o sublinhado representa a chave primária):
1. codigoRisco → nomeRisco;
2. CNPJ → nomeEmpresa;
3. CPF → nomePessoa;
4. {rua,numero} → CNPJ;
5. Uma empresa possui vários donos, cada um com um CPF único, e um dono pode possuir várias empresas;
6. Um terreno pode possuir vários riscos.
Esse segundo desenvolvedor decidiu, então, colocar as tabelas na terceira forma normal, usando o número mínimo de tabelas. O esquema que possui as seis propriedades detectadas pelo segundo desenvolvedor e que representa todas as informações desejadas pelo primeiro desenvolvedor é
Alternativa A está correta
Blue Explica
Alternativa A está correta
Terreno(rua,numero,tipoTerreno,CNPJ) / Empresa(CNPJ,nomeEmpresa) / Dono(CNPJ,CPF) / Risco(rua,nome,codigoRisco,probabilidadeRisco) / TipoRisco(codigoRisco,nomeRisco) / PessoaFisica(CPF,nome)
O esquema da alternativa A satisfaz todas as seis propriedades e está na 3FN: (1) nomeRisco depende apenas de codigoRisco, isolado na tabela TipoRisco; (2) nomeEmpresa depende de CNPJ, isolado em Empresa; (3) nomePessoa depende de CPF, isolado em PessoaFisica; (4) a chave {rua,numero} determina CNPJ na tabela Terreno; (5) a relação muitos-para-muitos entre empresa e dono é representada pela tabela Dono(CNPJ,CPF); (6) um terreno pode ter vários riscos, representado pela tabela Risco com chave composta por {rua,numero,codigoRisco}. Nenhuma dependência funcional transitiva ou parcial permanece nas tabelas.
Por que as outras estão erradas:
B) Manter codigoRisco e probabilidadeRisco na tabela Terreno viola a 3FN, pois um terreno pode ter vários riscos (propriedade 6), o que não é corretamente representado por atributos simples na tabela Terreno.
C) Colocar CNPJ como atributo simples (não chave estrangeira) em PessoaFisica mistura a relação dono-empresa de forma incorreta, não representando adequadamente a cardinalidade muitos-para-muitos da propriedade 5.
D) A tabela Empresa contendo CPF e nomePessoa junto com CNPJ e nomeEmpresa representa uma dependência funcional parcial (CPF → nomePessoa independe de CNPJ), violando a 3FN.
E) Manter nomeEmpresa e nomePessoa juntos na tabela Empresa viola a 3FN pela mesma razão da alternativa D, além de não separar corretamente as entidades.