Os CORREIOS, do Brasil, fornecem uma base de dados de todos os endereços do Brasil organizados por logradouro, bairro, cidade, UF e CEP. Você pode comprar essa base de dados para utilizar em suas aplicações de forma a realizar cadastros de endereços baseados em informações de CEP. Isso ajuda muito a evitar problemas de endereços inválidos.
Para modelar a normalização de UF e Cidade precisamos:
Criar uma entidade UF com uma chave primária e um campo de sigla da UF.
Criar uma entidade de CIDADES com uma chave primária, a chave estrangeira da entidade de UF, para dizer a qual UF a cidade pertence e um campo para o nome da cidade.
Excluir os campos Cidade e UF de todas as tabelas que aparecem esses campos.
Relacionar a tabela de Cidades com todas as tabelas que excluímos os campos de Cidade de UF.
Após realizar essas operações, teremos o seguinte modelo:
Modelo com Cidades e UF normalizados para primeira forma normal