データの冗長性を減らす
Small Business Administration の元社員がデータベースの初期版を作成しました。借り手、銀行、プロジェクトのそれぞれでロケーション情報が使われています。各テーブルには city、state、zip_code 列があり、同じ情報が重複して保存されています。これらのロケーションデータを正規化するのがあなたの役割です。場所情報を集約するために place テーブルを作成し、正規化の知識を活用してください。
この演習はコースの一部です
PostgreSQL データベースの作成
演習の手順
placeテーブルを作成します。zip_codeは5つの文字からなるPRIMARY KEY、cityは最大50文字までのテキスト型、stateは2文字の列とします。borrowerテーブル定義からcity、state、zip_code列を、これらの列を定義している SQL コードを削除することで取り除きます。borrowerテーブルにplace_idという列(外部キー)を追加し、placeテーブルのzip_code列を参照するようにします。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
-- 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
___ ___(___) ___ ___(___)
);