情報処理基礎論 a 第 12 回 (関係データベースと SQL ) 「解答 その 1」 講義ノート目次

キャラクタと番組
属性
フィールド 1「名前」フィールド 2「番組名」フィールド 3「性別」フィールド 4「キャラクタ」
レコード 1ブラサムパワパフガールズ
レコード 2バブルスパワパフガールズ
レコード 3バタカップパワパフガールズ
レコード 4モジョジョジョパワパフガールズ
レコード 5ミス・キーンパワパフガールズ
レコード 6メイヨールパワパフガールズ
レコード 7プロフェッサパワパフガールズ
レコード 8ジャックサムライジャック
レコード 9アクサムライジャック

演習5-1:候補キーを「キャラクタ」とする。それらのレコードを全て挙げよ。

答え: "善" と "悪"

演習5-2:下の関係表と合せて何か情報を取り出したい(「参照する」という)。 下の 2 つの関係表の属性を取り出すとき、上の関係表のどの属性が外部キーとして適切だろうか?

住んでいる町と趣味・特技
属性
フィールド 1「名前」フィールド 2「住んでいる町」フィールド 3「趣味・特技」
レコード 1ブラサムタウンズビル新しい服
レコード 2バブルスタウンズビル動物と話す
レコード 3バタカップタウンズビルケンカ
レコード 4モジョジョジョタウンズビル発明
レコード 5ジャック未来世界
レコード 6デクスタラボ発明
レコード 7ディディラボバレエ

「住んでいる町と趣味・特技」表では、「名前」が一意に決まっているので、 「名前」を外部キーとして使うとよい。

番組ストーリー
属性
フィールド 1「番組名」フィールド 2「概要」
レコード 1パワーパフガールズ3 人の女の子たちのお話
レコード 2サムライジャック未来世界の侍の話
レコード 3デクスタ研究所姉と弟の兄弟げんかの話
レコード 4快適な生活電気会社の CM 集
レコード 5ウォレスとグルミット犬と発明家の話

「番組ストーリー」については、「番組名」が一意に決っているので、 「番組名」を外部キーとして使うとよい。

演習5-3:下の 2 つの関係表に和演算を施すとどうなるか。

マラソン順位
属性
名前順位
レコード 1カウ1
レコード 2チキン3
レコード 3アル4
レコード 4フレム2
レコード 5レッドガイ5
100 m 走順位
属性
名前順位
レコード 1ウィゼル1
レコード 2カウ3
レコード 3チキン2
レコード 4レッドガイ6
レコード 5フレム4
レコード 6アル4

解答は次のようになる:

属性
名前順位
レコード 1カウ1
レコード 2チキン3
レコード 3アル4
レコード 4フレム2
レコード 5レッドガイ5
レコード 6ウィゼル1
レコード 7カウ3
レコード 8チキン2
レコード 9レッドガイ6
レコード 10フレム4

アルは、両方の競走で、4 等を取ったので、一つのみフィールドが生き残る。

演習5-4:上の「マラソン順位」と「100 m 走順位」に積演算を施すとどうなるか。

属性
名前順位
レコード 3アル4

両方同じ順位を取ったものだけが生き残る。

演習5-5:「マラソン順位」から「100 m 走順位」の差演算を施したものと、 「100 m 走順位」から「マラソン順位」の差演算を施したものと結果を比較せよ。

「マラソン順位」-「100 m 走順位」
属性
名前順位
レコード 1カウ1
レコード 2チキン3
レコード 3フレム4
レコード 4レッドガイ5

重なるレコードである「アル」に関する行が削られる。

「100 m 走順位」-「マラソン順位」
属性
名前順位
レコード 1ウィゼル1
レコード 2カウ3
レコード 3チキン2
レコード 4レッドガイ6
レコード 5フレム4

こちらも重なるレコードである「アル」に関する行が削られる。が、

引かれる方の食い違いのあるレコードのみ残ることに注意。

演習5-6:上記の「キャラクタと番組」表から属性「名前」「番組名」を取り出せ。

属性
名前番組名
レコード 1ブラサムパワパフガールズ
レコード 2バブルスパワパフガールズ
レコード 3バタカップパワパフガールズ
レコード 4モジョジョジョパワパフガールズ
レコード 5ミス・キーンパワパフガールズ
レコード 6メイヨールパワパフガールズ
レコード 7プロフェッサパワパフガールズ
レコード 8ジャックサムライジャック
レコード 9アクサムライジャック

上記の「キャラクタと番組」表から属性「名前」「性別」を取り出せ。

属性
名前性別
レコード 1ブラサム
レコード 2バブルス
レコード 3バタカップ
レコード 4モジョジョジョ
レコード 5ミス・キーン
レコード 6メイヨール
レコード 7プロフェッサ
レコード 8ジャック
レコード 9アク

上記の「住んでいる町と趣味」表から属性「趣味・特技」 「住んでいる町」を取り出せ。

属性
住んでいる町趣味・特技
レコード 1タウンズビル新しい服
レコード 2タウンズビル動物と話す
レコード 3タウンズビルケンカ
レコード 4タウンズビル発明
レコード 5未来世界
レコード 6ラボ発明
レコード 7ラボバレエ

上記の「番組ストーリー」表から属性「概要」を取り出せ。

属性
概要
レコード 13 人の女の子たちのお話
レコード 2未来世界の侍の話
レコード 3姉と弟の兄弟げんかの話
レコード 4電気会社の CM 集
レコード 5犬と発明家の話

演習5-7 上記の「キャラクタと番組」表から属性「性別」が「女」であるものを取り出せ。

属性
フィールド 1「名前」フィールド 2「番組名」フィールド 3「性別」フィールド 4「キャラクタ」
レコード 1ブラサムパワパフガールズ
レコード 2バブルスパワパフガールズ
レコード 3バタカップパワパフガールズ
レコード 4ミス・キーンパワパフガールズ

上記の「住んでいる町と趣味」表から属性「住んでいる町」が「タウンズビル」であるものを取り出せ。

属性
フィールド 1「名前」フィールド 2「住んでいる町」フィールド 3「趣味・特技」
レコード 1ブラサムタウンズビル新しい服
レコード 2バブルスタウンズビル動物と話す
レコード 3バタカップタウンズビルケンカ
レコード 4モジョジョジョタウンズビル発明

上記の「100 m 走順位」表から属性「順位」が「1」「6」であるものを取り出せ。

属性
名前順位
レコード 1ウィゼル1
レコード 2レッドガイ6

上記の「マラソン順位」表から属性「順位」が「4」より小さいものを取り出せ。

属性
名前順位
レコード 1カウ1
レコード 2チキン3
レコード 3フレム2
「より小さい」場合はその数を含まない。

演習5-8: 上記の「キャラクタと番組」表から属性「名前」及び「性別」が「女」 であるレコードを取り出し、 上記の「住んでいる町と趣味」表から属性「名前」及び「住んでいる町」が 「タウンズビル」であるレコードを取り出し、 名前を主キーとして、使用した属性で新たな表を作ると、どのようなものになるか。

まずは両方の選択演算を実行し、二つ並べてみる。

属性
名前性別名前住んでいる町
レコード 1ブラサムブラサムタウンズビル
レコード 2バブルスバブルスタウンズビル
レコード 3バタカップバタカップタウンズビル
レコード 4ミス・キーン

まずは両方にあるレコードのみを取り出す。

これについて重複する属性を取り除くと、完成。

属性
名前性別住んでいる町
レコード 1ブラサムタウンズビル
レコード 2バブルスタウンズビル
レコード 3バタカップタウンズビル