25年秋午後 問5
広告
とおりすがりさん
(No.1)
問題には直接関係ないですが
25年秋午後 問5 のデータベースでの質問です。
図1の管理システムのE-R図 なんですがその中に貸出明細というエンティティがあります。この貸出明細は連関エンティティになると思いますが、レンタルビデオマスタ、貸出から多→1←多になっている。
そこで質問なんですが連関エンティティの場合、多側の主キーをそれぞれ連関エンティティの主キー(複合ー)に設定すると記憶していたのですがこの場合は、貸出番号、貸出明細番号が主キーになっています。
貸出番号とレンタルビデオIDが主キーになるのではないでしょうか
こういうケースもあるのでしょうか?
だれかわかる方教えてください
25年秋午後 問5 のデータベースでの質問です。
図1の管理システムのE-R図 なんですがその中に貸出明細というエンティティがあります。この貸出明細は連関エンティティになると思いますが、レンタルビデオマスタ、貸出から多→1←多になっている。
そこで質問なんですが連関エンティティの場合、多側の主キーをそれぞれ連関エンティティの主キー(複合ー)に設定すると記憶していたのですがこの場合は、貸出番号、貸出明細番号が主キーになっています。
貸出番号とレンタルビデオIDが主キーになるのではないでしょうか
こういうケースもあるのでしょうか?
だれかわかる方教えてください
2014.10.15 11:47
げねごすさん
(No.2)
連関エンティティ「貸出明細」を多側とする1対多の関係で、1側になるエンティティは
・レンタルビデオマスタ(主キー:レンタルビデオID)
・貸出期間マスタ(主キー:貸出期間ID)
・貸出(主キー:貸出番号)
の3つになります。
これらの3つのエンティティの主キーを組み合わせれば、連関エンティティ「貸出明細」の主キーは完成すると考えるのは理解としては合っています。とりあえず、連関エンティティ「貸出明細」の主キーをこの時点で、
「貸出番号、レンタルビデオID、貸出期間ID」と一時的に仮確定します。
しかし、これで終了とならない場面は存在します。たとえば「貸出明細番号」などで、主キーに含まれる属性を代替させる場合です。発想としては「貸出伝票4枚目の『風と共に去りぬ』の在庫3本目で貸出期間が7泊8日の行」と言うよりも「貸出伝票4枚目の1行目」と言う方が楽なのと同じです。
このとき、連関エンティティ「貸出明細」の主キーは、
「貸出番号、貸出明細番号」となります。「貸出明細番号」を振ってしまえば、連関エンティティ「貸出明細」の各行は一意に特定できるので、「レンタルビデオID、貸出期間ID」は主キーを構成する属性である必要がなくなります。しかし、「貸出明細番号」と「レンタルビデオID、貸出期間ID」の対応関係は連関エンティティ内で残す必要があるので、「レンタルビデオID、貸出期間ID」は外部キーとして保持しておきます。
仮にエンティティ「貸出明細」の候補キーをすべて挙げるのなら、
1:「貸出番号、貸出明細番号」
2:「貸出番号、レンタルビデオID、貸出期間ID」
の2つになり、上記の一つを主キーに選びますが、問題文の図1から「貸出明細番号」が主キーの属性に含まれる前提のため、1番を採用し、2番で主キーに採用されない「貸出番号」以外の属性は外部キーとして扱います。また、実務でも明細番号を使用するのが現実的です。DB試験で出るような部品構成表関係では明細番号に加えて構成番号がある場合もあります。
かなり問題の本質に近いものです。大事なところに着眼できている点はすばらしいと思いますので、がんばってください。
・レンタルビデオマスタ(主キー:レンタルビデオID)
・貸出期間マスタ(主キー:貸出期間ID)
・貸出(主キー:貸出番号)
の3つになります。
これらの3つのエンティティの主キーを組み合わせれば、連関エンティティ「貸出明細」の主キーは完成すると考えるのは理解としては合っています。とりあえず、連関エンティティ「貸出明細」の主キーをこの時点で、
「貸出番号、レンタルビデオID、貸出期間ID」と一時的に仮確定します。
しかし、これで終了とならない場面は存在します。たとえば「貸出明細番号」などで、主キーに含まれる属性を代替させる場合です。発想としては「貸出伝票4枚目の『風と共に去りぬ』の在庫3本目で貸出期間が7泊8日の行」と言うよりも「貸出伝票4枚目の1行目」と言う方が楽なのと同じです。
このとき、連関エンティティ「貸出明細」の主キーは、
「貸出番号、貸出明細番号」となります。「貸出明細番号」を振ってしまえば、連関エンティティ「貸出明細」の各行は一意に特定できるので、「レンタルビデオID、貸出期間ID」は主キーを構成する属性である必要がなくなります。しかし、「貸出明細番号」と「レンタルビデオID、貸出期間ID」の対応関係は連関エンティティ内で残す必要があるので、「レンタルビデオID、貸出期間ID」は外部キーとして保持しておきます。
仮にエンティティ「貸出明細」の候補キーをすべて挙げるのなら、
1:「貸出番号、貸出明細番号」
2:「貸出番号、レンタルビデオID、貸出期間ID」
の2つになり、上記の一つを主キーに選びますが、問題文の図1から「貸出明細番号」が主キーの属性に含まれる前提のため、1番を採用し、2番で主キーに採用されない「貸出番号」以外の属性は外部キーとして扱います。また、実務でも明細番号を使用するのが現実的です。DB試験で出るような部品構成表関係では明細番号に加えて構成番号がある場合もあります。
>問題には直接関係ないですが
かなり問題の本質に近いものです。大事なところに着眼できている点はすばらしいと思いますので、がんばってください。
2014.10.15 15:38
とおりすがりさん
(No.3)
げねごすさん
詳しい解説本当にありがとうございます。
すごくわかりやすいです。
試験がんばります。
詳しい解説本当にありがとうございます。
すごくわかりやすいです。
試験がんばります。
2014.10.15 16:29
げねごすさん
(No.4)
いま気がつきましたが、「多→1←多」ではなくて、「1→多←1」かなと思います。1側が矢印の根元になります。連関エンティティは多側にまわることがほとんどです(複数の表を組み合わせて必然的に行数が増えるので)。
2014.10.15 18:11
返信投稿用フォーム
スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。