INTERACTIVE LAB · データ活用・DB
リレーショナルデータベース
表をつくる。関係をつなぐ。必要なデータが見えてくる。
このブラウザに自動保存します。
1. 定義 — テーブルをつくる
列の名前と型を決めて、行にデータを入れます。
2. 結合 — 関係をつなぐ
表を増やして結合するには、使う表のカードを追加してから、対応する列を選びます。
- カードを追加下の「追加するテーブル」から使う表を選ぶ
- 結合を追加「+ 結合を追加」で2枚のカードを選ぶ
- 列を対応づける学生IDなど、同じ値でつながる列を選ぶ
線の「1」「多」は、現在のデータで反対側の1行に対応する行数を示します。
基準のテーブルの行を残し、対応するデータをつなぎます(左外部結合)。
3. 射影 — 表示する列を選ぶ
チェックを外すと列を隠します。同じ値の行は通常そのまま残します。
非表示の値も保持するので、次の「選択」で検索できます。重複除去は、選択した後の表示にも適用します。
4. 選択 — 条件に合う行を取り出す
非表示の列も、検索する列に選べます。条件の値を入れると結果が変わります。
「空欄である」以外は、値が未入力の条件を使いません。空欄のセルは値なし(NULL)として扱います。
結合した表
列の見出しのつまみをドラッグして並べ替えられます。
↑で昇順、↓で降順に整列します。同じ値の行は直前の整列順を保ち、空欄は最後に並びます。
この実験について・試してみよう
まずは:初期サンプルは学生24人・部員36件・部活7つです。S02・S19・S22は部活に入っておらず、文芸部は部員が0人です。基準を「学生」「部活」に切り替えて、残る行の違いを確かめましょう。「定義」で三つの表を見比べ、「結合」で三つの表をつなぎます。「選択」は部活名が将棋部の行に絞る設定です。「射影」で氏名だけを表示すると、兼部する学生の名前が繰り返し現れます。重複除去を切り替えて違いを見てみましょう。
テーブルとカード:テーブルにデータを保存し、関係図にはその表を参照するカード(テーブルオカレンス)を置きます。同じ表のカードを複数置けば、自分自身との関係も作れます。行を編集すると、すべてのカードに反映されます。
主キー:行を区別する列です。設定は任意。複数の列を主キーにすると、組合せ全体が重複せず空欄もないことを確かめます。部員表では学生IDと部活IDの組が主キーです。
結合:同じ型・同じ値の列を対応づける等値結合です。1対多、多対多、複数列の対応に使えます。選んだ基準のテーブルの行を残し、対応するデータがない部分は空欄にします。空欄同士は結合しません。
学習用の範囲:関係は結合の設定で、外部キーの制約にはしません。基準のテーブルとつながらない表は結果に含めません。関係の輪は別のカードを使って表します。数値は有限の小数、文字の比較は大文字・小文字や空白を区別します。テーブル8個、各12列・100行、カード12枚、結果2,000行までです。
作業はこのブラウザに自動保存します。「保存」はJSONファイルを書き出し、「読込」で復元できます。入力したデータをラボから外部へ送信することはありません。