arrow_back

外部キーとインターリーブされたテーブルを使用して関係を管理する

ログイン 参加
700 以上のラボとコースにアクセス

外部キーとインターリーブされたテーブルを使用して関係を管理する

ラボ 1時間 universal_currency_alt クレジット: 1 show_chart 入門
info このラボでは、学習をサポートする AI ツールが組み込まれている場合があります。
700 以上のラボとコースにアクセス

SCBL004

概要

このラボでは、複数のテーブルを含むデータベースを作成し、主キーおよび外部キーの制約と、インターリーブされたテーブルの両方を使用して関係を管理します。

目標

このラボでは、次の方法について学びます。

  • 適切な主キーと Spanner 向けに最適化された関係を使用して、リレーショナル データベースを作成します。

設定と要件

[ラボを開始] ボタンをクリックする前に

こちらの説明をお読みください。ラボには時間制限があり、一時停止することはできません。タイマーは、Google Cloud のリソースを利用できる時間を示しており、[ラボを開始] をクリックするとスタートします。

このハンズオンラボでは、シミュレーションやデモ環境ではなく実際のクラウド環境を使って、ご自身でラボのアクティビティを行います。そのため、ラボの受講中に Google Cloud にログインおよびアクセスするための、新しい一時的な認証情報が提供されます。

このラボを完了するためには、下記が必要です。

  • 標準的なインターネット ブラウザ(Chrome を推奨)
注: このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。
  • ラボを完了するための時間(開始後は一時停止できません)
注: すでに個人の Google Cloud アカウントやプロジェクトをお持ちの場合でも、このラボでは使用しないでください。アカウントに追加料金が発生する可能性があります。

Google Cloud Shell の有効化

Google Cloud Shell は、デベロッパー ツールと一緒に読み込まれる仮想マシンです。5 GB の永続ホーム ディレクトリが用意されており、Google Cloud で稼働します。Google Cloud Shell では、コマンドラインで GCP リソースにアクセスできます。

GCP Console の右上のツールバーにある [Cloud Shell をアクティブにする] ボタンをクリックします。

Cloud Shell アイコン

[続行] をクリックします。

cloudshell_continue

環境のプロビジョニングと接続には少し時間がかかります。接続すると、すでに認証されており、プロジェクトは PROJECT_ID に設定されています。例えば:

Cloud Shell 端末

gcloud は Google Cloud Platform のコマンドライン ツールです。このツールは、Cloud Shell にプリインストールされており、タブ補完がサポートされています。

次のコマンドを使用すると、有効なアカウント名を一覧表示できます。

gcloud auth list

出力:

ACTIVE: *
ACCOUNT: student-01-xxxxxxxxxxxx@qwiklabs.net
To set the active account, run:
    $ gcloud config set account `ACCOUNT`
	

次のコマンドを使用すると、プロジェクト ID を一覧表示できます。

gcloud config list project
	

出力:

[core]
project = <project_ID>
	

出力例:

[core]
project = qwiklabs-gcp-44776a13dea667a6
	

タスク 1. Orders データベースを作成する

  1. これまでのラボでは、Google Cloud コンソール、gcloud CLI、Terraform を使用して、Spanner のインスタンス、データベース、テーブルを作成する方法を学びました。ここでは、任意の方法を使用して、 リージョン内のインスタンスと次の条件を満たすデータベースを作成します。

  2. 注: このラボの目的は、詳細な手順に従うことなく自身でデータベースとテーブルを作成することです。ヒントが必要な場合は、前のラボをご覧ください。

データベース名: orders-db

テーブル: Customers、Orders、OrderDetails

Customers テーブル

フィールド データ型
CustomerID UUID
CompanyName STRING
Name STRING
Region STRING
Address STRING

Orders テーブル

フィールド データ型
OrderID UUID
OrderDate DATE
CustomerID STRING

OrderDetails テーブル

フィールド データ型
OrderID UUID
Product UUID
Qty INT64
Price FLOAT64

主キー

各テーブルの主キーを必ず作成してください。

自動生成された UUID を使用して主キーのデフォルト値を設定します。

関係

顧客が 0 件以上の注文を行った

  • Customers テーブルと Orders テーブルの間に主キーと外部キーの関係を使用します。

注文に 1 つ以上の詳細がある

  • Orders テーブルと OrderDetails テーブルの関係に、インターリーブされたテーブルを使用します。

ヒント

以下は、前に使用した Pets データベースの DDL ステートメントのサンプルです。データベース作成の参考にしてください。

Owners テーブル

CREATE TABLE Owners ( OwnerID STRING(36) NOT NULL DEFAULT (GENERATE_UUID()), OwnerName STRING(MAX) NOT NULL ) PRIMARY KEY (OwnerID);

主キーと外部キーを含む Pets テーブル

CREATE TABLE Pets ( PetID STRING(36) NOT NULL DEFAULT (GENERATE_UUID()), OwnerID STRING(36) NOT NULL, PetType STRING(MAX) NOT NULL, PetName STRING(MAX) NOT NULL, Breed STRING(MAX) NOT NULL, CONSTRAINT FK_OwnerPet FOREIGN KEY (OwnerID) REFERENCES Owners (OwnerID), ) PRIMARY KEY (PetID);

Owners テーブルとインターリーブされた Pets テーブル

CREATE TABLE Pets ( OwnerID STRING(36) NOT NULL, PetID STRING(36) NOT NULL DEFAULT (GENERATE_UUID()), PetType STRING(MAX) NOT NULL, PetName STRING(MAX) NOT NULL, Breed STRING(MAX) NOT NULL ) PRIMARY KEY (OwnerID,PetID) , INTERLEAVE IN PARENT Owners ON DELETE CASCADE ;

これで完了です。複数のテーブルを含むデータベースを作成し、主キーおよび外部キーの制約と、インターリーブされたテーブルの両方を使用して関係を管理しました。

ラボを終了する

ラボでの学習が完了したら、[ラボを終了] をクリックします。ラボで使用したリソースが Qwiklabs から削除され、アカウントの情報も消去されます。

ラボの評価を求めるダイアログが表示されたら、星の数を選択してコメントを入力し、[送信] をクリックします。

星の数は、それぞれ次の評価を表します。

  • 星 1 つ = 非常に不満
  • 星 2 つ = 不満
  • 星 3 つ = どちらともいえない
  • 星 4 つ = 満足
  • 星 5 つ = 非常に満足

フィードバックを送信しない場合は、ダイアログ ボックスを閉じてください。

フィードバック、ご提案、修正事項がございましたら、[サポート] タブからお知らせください。

Copyright 2024 Google LLC All rights reserved. Google および Google のロゴは、Google LLC の商標です。その他すべての社名および製品名は、それぞれ該当する企業の商標である可能性があります。

始める前に

  1. ラボでは、Google Cloud プロジェクトとリソースを一定の時間利用します
  2. ラボには時間制限があり、一時停止機能はありません。ラボを終了した場合は、最初からやり直す必要があります。
  3. 画面左上の [ラボを開始] をクリックして開始します

シークレット ブラウジングを使用する

  1. ラボで使用するユーザー名パスワードをコピーします
  2. プライベート モードで [コンソールを開く] をクリックします

コンソールにログインする

    ラボの認証情報を使用して
  1. ログインします。他の認証情報を使用すると、エラーが発生したり、料金が発生したりする可能性があります。
  2. 利用規約に同意し、再設定用のリソースページをスキップします
  3. ラボを終了する場合や最初からやり直す場合を除き、[ラボを終了] はクリックしないでください。クリックすると、作業内容がクリアされ、プロジェクトが削除されます

このコンテンツは現在ご利用いただけません

利用可能になりましたら、メールでお知らせいたします

ありがとうございます。

利用可能になりましたら、メールでご連絡いたします

1 回に 1 つのラボ

既存のラボをすべて終了して、このラボを開始することを確認してください

シークレット ブラウジングを使用してラボを実行する

このラボの実行には、シークレット モードまたはシークレット ブラウジング ウィンドウを使用してください。これにより、個人アカウントと受講者アカウントの競合を防ぎ、個人アカウントに追加料金が発生することを防ぎます。