平々毎々(アーカイブ)

はてなダイアリーのアーカイブです。

わかれ!RDB Part1 リレーショナルって何?

5月だし、新人にむけて書いておくか。

まず、リレーション(関係)という言葉の定義をしたのは、リレーショナルモデル(関係モデル)を考案したコッド博士。あらゆるデータはリレーションという概念で表せるとしたもの。

「じゃんけんの手」という集合を考えよう。これには「グー」「チョキ」「パー」の3つだけが含まれている。

じゃんけんの手1つ
じゃんけんの手
グー
チョキ
パー

じゃあ、「じゃんけんの手」を2つ並べたものの集合は?

じゃんけんの手2つ
じゃんけんの手aじゃんけんの手b
グーグー
グーチョキ
グーパー
チョキグー
チョキチョキ
チョキパー
パーグー
パーチョキ
パーパー

と、9通りある。

でも、これって手aと手bに何の関係性もない場合なわけだ。もし、手aじゃなくて「勝つ手」、手bじゃなくて「負ける手」としたら?

じゃんけんの勝ち負け
じゃんけんで勝つ手じゃんけんで負ける手
グーチョキ
チョキパー
パーグー

はい、知ってのとおり、取りうる組み合わせは3つに限られる。

つまり、これこそがリレーションなわけ。「じゃんけんの勝ち負け」というリレーション。

一つ手前の「じゃんけんの手2つ」というのは、【列と列に何の関係もない】というリレーション。

じゃんけんの例では2列のリレーションにしたけど、実際は1列だってリレーションになる。

「2個~5個の数字の並び」だったら

2個~5個の数字の並び
数字の並び
(多いので省略)

たくさんあるわけだけど、「熊本県の市外局番」だったら

熊本県の市外局番
市外局番
096
0965

2つになる(熊本を選んだのは俺の出身地だから)。これだって、この2つの間には「熊本県の市外局番」という観点で関係がある。

要するに、データ集合に何らかの名前がついている時点で、それはすでにリレーションなんだな。

次回予告

  • Part2. リレーションはテーブル(表)か
  • Part3. リレーションシップ(関連)とは