1. 学ぶ
  2. /
  3. コース
  4. /
  5. PostgreSQL データベースの作成

Connected

演習

正規化のやりすぎ

loan テーブルの定義を思い出してください。

CREATE TABLE loan (
    borrower_id INTEGER REFERENCES borrower(id),
    bank_id INTEGER REFERENCES bank(id),
    approval_date DATE NOT NULL DEFAULT CURRENT_DATE,
    gross_approval DECIMAL(9, 2) NOT NULL,
    term_in_months SMALLINT NOT NULL,
    revolver_status BOOLEAN NOT NULL DEFAULT FALSE,
    initial_interest_rate DECIMAL(4, 2) NOT NULL
);

1NF を満たすための新しい設計が提案されました。改訂版のテーブル定義では、approval_date を approval_month、approval_day、approval_year に置き換えています。

CREATE TABLE loan (
    ...
    approval_month SMALLINT,
    approval_day SMALLINT,
    approval_year SMALLINT,
    ...
);

この演習では、正規化をやりすぎると不正なデータの挿入を許してしまうことがある、という点を実演します。

指示

100 XP
  • 実行されるとテーブルに不正なデータが挿入されてしまう、その INSERT INTO 文を削除してください。