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):
Terreno(rua,numero,tipoTerreno,CNPJ,nomeEmpresa,codigoRisco,nomeRisco,probabilidadeRisco)
Empresa(CNPJ,nomeEmpresa,CPFs,nomePessoas)
Ao revisar o trabalho, um segundo desenvolvedor, mais experiente, detectou as seguintes propriedades:
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 é
Terreno(rua,numero,tipoTerreno,CNPJ)
Empresa(CNPJ,nomeEmpresa)
Dono(CNPJ,CPF)
Risco(rua,nome,codigoRisco,probabilidadeRisco)
TipoRisco(codigoRisco,nomeRisco)
PessoaFisica(CPF,nome)
Terreno(rua,numero,tipoTerreno,CNPJ,codigoRisco,probabilidadeRisco)
Empresa(CNPJ,nomeEmpresa)
Dono(CNPJ,CPF)
TipoRisco(codigoRisco,nomeRisco)
PessoaFisica(CPF,nome)
Terreno(rua,numero,tipoTerreno,CNPJ)
Empresa(CNPJ,nomeEmpresa)
Risco(rua,nome,codigoRisco,probabilidadeRisco)
TipoRisco(codigoRisco,nomeRisco)
PessoaFisica(CPF,nome,CNPJ)
Terreno(rua,numero,tipoTerreno,CNPJ,nomeEmpresa,codigoRisco,nomeRisco,probabilidadeRisco)
Empresa(CNPJ,CPF,nomeEmpresa,nomePessoa)
Terreno(rua,numero,tipoTerreno,CNPJ,nomeEmpresa,codigoRisco,probabilidadeRisco)
Risco(codigoRisco,nomeRisco)
Empresa(CNPJ,CPF,nomeEmpresa,nomePessoa)