始める無料で始める

データの冗長性を減らす

Small Business Administration の元社員がデータベースの初期版を作成しました。借り手、銀行、プロジェクトのそれぞれでロケーション情報が使われています。各テーブルには citystatezip_code 列があり、同じ情報が重複して保存されています。これらのロケーションデータを正規化するのがあなたの役割です。場所情報を集約するために place テーブルを作成し、正規化の知識を活用してください。

この演習はコースの一部です

PostgreSQL データベースの作成

コースを見る

演習の手順

  • place テーブルを作成します。zip_code は5つの文字からなる PRIMARY KEYcity は最大50文字までのテキスト型、state は2文字の列とします。
  • borrower テーブル定義から citystatezip_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
  ___ ___(___) ___ ___(___)
);
コードを編集して実行