Reduzindo a redundância de dados
Um ex-funcionário da Small Business Administration desenvolveu uma versão inicial do banco de dados. Informações de localização são usadas em todo o banco de dados para tomadores, bancos e projetos. Cada uma das tabelas correspondentes a essas entidades utiliza as colunas city, state e zip_code, criando dados redundantes. É sua responsabilidade normalizar esses dados de localização. Você poderá colocar seus conhecimentos de normalização em prática criando uma tabela place para consolidar os dados de localização.
Este exercício faz parte do curso
Criando bancos de dados PostgreSQL
Instruções do exercício
- Crie a tabela
placecomzip_codecomo umaPRIMARY KEYde cinco caracteres,citycomo um tipo de texto com até 50 caracteres estatecomo uma coluna de dois caracteres. - Remova as colunas
city,stateezip_codeda definição da tabelaborrower, apagando o código SQL que define essas colunas. - Adicione uma coluna chamada
place_id(uma chave estrangeira) à tabelaborrowerque referencie a colunazip_codeda tabelaplace.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
-- Create the place table
___ ___ ___ (
-- Define zip_code column
___ ___(___) ___ KEY,
-- Define city column
___ ___(___) NOT NULL,
-- Define state column
___ ___(___) NOT NULL
);
CREATE TABLE borrower (
id SERIAL PRIMARY KEY,
name VARCHAR(50) NOT NULL,
approved BOOLEAN DEFAULT NULL,
-- Remove zip_code column (defined below)
zip_code CHAR(5) NOT NULL,
-- Remove city column (defined below)
city VARCHAR(50) NOT NULL,
-- Remove state column (defined below)
state CHAR(2) NOT NULL,
-- Add column referencing place table
___ ___(___) ___ ___(___)
);