始める無料で始める

スノーフレークスキーマの拡張

この会社は、カナダとアメリカの書店にとどまらず、事業を拡大することを検討しています。特に、新たな大陸への展開を視野に入れており、その準備として、店舗の住所に continent(大陸)フィールドを追加することにしました。

今回のシナリオではスノーフレークスキーマを使用しています。動画でも説明したように、スノーフレークスキーマはデータの整合性を保ちながら拡張しやすい構造です。dim_country_sf に加え、dim_continent_sf というテーブルも用意されています。このテーブルには、現在必要な大陸である North America と主キーが含まれています。この演習では、dim_country_sf を拡張して dim_continent_sf を参照できるようにしましょう。

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

データベース設計

コースを見る

演習の手順

  • continent_id を、デフォルト値1の dim_country_sf列に追加してください。NOT NULL DEFAULT(1)は、値がnullになることを禁止し、デフォルト値を 1に設定する制約です。
  • 追加した列を、dim_continent_sfcontinent_idを参照する外部キーに設定してください。

実践的なインタラクティブ演習

このサンプルコードを完成させて、この演習に挑戦してみましょう。

-- Add a continent_id column with default value of 1
ALTER TABLE ___
ADD ___ int NOT NULL DEFAULT(1);

-- Add the foreign key constraint
ALTER TABLE ___ ADD CONSTRAINT country_continent
   FOREIGN KEY (___) REFERENCES ___(___);
   
-- Output updated table
SELECT * FROM dim_country_sf;
コードを編集して実行