Dataduplicatie verminderen
Een voormalig medewerker van de Small Business Administration heeft een eerste versie van de database ontwikkeld. Locatie-informatie wordt in de hele database gebruikt voor leners, banken en projecten. In elk van de bijbehorende tabellen voor deze entiteiten komen de kolommen city, state en zip_code terug, wat leidt tot redundante data. Jij bent verantwoordelijk voor het normaliseren van deze locatiegegevens. Je gaat je kennis van normalisatie toepassen door een place-tabel te maken om locatiegegevens te consolideren.
Deze oefening maakt deel uit van de cursus
PostgreSQL-databases maken
Oefeninstructies
- Maak de
place-tabel metzip_codeals vijf-tekenPRIMARY KEY,cityals een teksttype met maximaal 50 tekens, enstateals een kolom van twee tekens. - Verwijder de kolommen
city,stateenzip_codeuit de definitie van de tabelborrowerdoor de SQL-code die de kolommen definieert te verwijderen. - Voeg een kolom
place_id(een vreemde sleutel) toe aan de tabelborrowerdie verwijst naar de kolomzip_codevan de tabelplace.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
-- 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
___ ___(___) ___ ___(___)
);