HOME»データベーススペシャリスト掲示板»R3午後Ⅰ問1「再利用されない」の意味
投稿する

[0491] R3午後Ⅰ問1「再利用されない」の意味

 勉強しはじめたばかりさん(No.1) 
R3午後Ⅰ問1、〔ポイントシステムの概要〕、3. 加盟企業商品と横断分析用商品情報、(1)加盟企業商品、③のなかに、「加盟企業商品コードは再利用されないが〜」とあります。
問題文中の「再利用されない」は、「値がユニークである」と理解すればよいですか?
値がユニークであるならば、"加盟企業商品コード"はタプルの一意識別能力を備えており、単独で候補キーになると思うのですが、この問題中ではそのように扱われていません。

確かに、③の上の②には、「加盟企業商品は、加盟企業コードと加盟企業商品コードで識別する」と書かれているため、あたかも「加盟企業商品コードだけでタプルを識別できることは忘れてね」と言われているようにも感じます。
「実際のところはユニークで、タプル一意識別能力を備えているけど、候補キーとしては扱わない」というのは、関係理論的にオッケーなのでしょうか?
"実際のところ"は問題ではなく、値がユニークである属性を候補キーと見なすかどうかは、設計者の味方次第になるのでしょうか?
2023.07.05 22:09
たぶんさん(No.2) 
加盟企業商品コードはB社が一意に割り振ってるわけではなく、加盟企業が勝手に登録するコードなんだと思います。
再利用されないって言うのはあくまでもその会社がおんなじ番号を使わないというだけで、他の会社がおんなじ番号を使おうが問題ないってことだと理解しました。

僕も初学者なんで間違ってたらごめんなさい
2023.07.06 00:33
logres_fanさん(No.3) 
DB ブロンズマイスター
> 問題文中の「再利用されない」は、「値がユニークである」と理解すればよいですか?
  その通りです。
> 値がユニークであるならば、"加盟企業商品コード"はタプルの一意識別能力を備えており、単独で候補キーになる
  例えば、加盟企業『AAA』の加盟企業商品テーブル、加盟企業『BBB』の加盟企業商品テーブルのようになるならば、その通りです。
  間違えがあれば、有志の方、訂正をお願いします。
  

以下、メモ。
加盟企業コードと加盟企業商品コードがある。
組み合わせが重複するのか否か。
同じ加盟企業と複数回契約することはない。
・とある加盟企業商品コードに対して、加盟企業コードは重複しない。
加盟企業商品名は再利用されることがある。加盟企業商品コードは再利用されない。
・とある加盟企業コードに対して、加盟企業商品コードは重複しない。
横断分析用商品名は一意になるとは限らない。横断分析用商品コードで識別する。
・加盟企業商品名、加盟企業商品コードに対応。
2023.07.06 03:01
 勉強しはじめたばかりさん(No.4) 
たぶんさん
ありがとうございます

> 再利用されないって言うのはあくまでもその会社がおんなじ番号を使わないというだけで、他の会社がおんなじ番号を使おうが問題ない
実運用上はそうなっていることの方が多いだろうし、そう理解すればこの問題は納得できるなあと私も思います。

改めて問題文を読み直すと、「加盟企業商品は、加盟企業コードと加盟企業商品コードで識別する」の前に、「加盟企業は、商品をポイントシステムに登録するときに、当該加盟企業の商品コード(以下、加盟企業商品コードという)……を登録する」と書いてありますね。
ここを根拠に、加盟企業商品コードは、ポイントシステム登録時に加盟企業が勝手に決めてると推測することはできそうです。

そうなると、問題文中の「加盟企業商品コードは再利用されない」は、「加盟企業商品コードは(同じ企業のなかでは)再利用されない」ということになり、ちょっとミスリーディングですね・・・…。
2023.07.06 19:39
 勉強しはじめたばかりさん(No.5) 
logres_fanさん
「再利用されない」の意味に関して、回答ありがとうございます。
もし、「加盟企業商品コードは再利用されない」の真意が、「加盟企業商品コードは(同じ企業のなかでは)再利用されない」になるのだとしたら、「再利用されない=この列は値がユニーク」と早合点してはいけないのかなと思い始めました。

> 例えば、加盟企業『AAA』の加盟企業商品テーブル、加盟企業『BBB』の加盟企業商品テーブルのようになるならば、その通りです。
問題文から、企業ごとに加盟企業商品テーブルが作成されるようには読み取れませんでした。
また、加盟企業商品コードの値が(企業の境を超えて)ユニークであるならば、ひとつの加盟企業商品テーブルのなかに、すべての加盟企業ぶんの商品が含まれていたとしても、加盟企業商品コードだけでタプルを識別できるのではないかと思います。
2023.07.06 19:49
logres_fanさん(No.6) 
DB ブロンズマイスター
>8
  受験テクニックとしては、この列は値がユニークだから候補キーと早合点してはいけません。それは横に置いて下さい。
兎にも角にも、関数従属性を確認して下さい。ひたすら網羅的に。
  慣れるしかないので、過去問を周回。出題者の気持ちに寄り添える様に。
2023.07.06 23:51
moneさん(No.7) 
候補キー云々の前に、再利用されないと書いてあるだけでそもそもユニークじゃないです。
問題にも加盟企業側が入力するコードと書いてありますし、たぶんさんの理解で正しいです。
2023.07.08 00:09
logres_fanさん(No.8) 
DB ブロンズマイスター
  XとYの組み合わせが重複しない事を保証するために記載されている、と理解して下さい。同じXの中では、Yは再利用されずユニーク値になる。同じYの中では、Xと再契約することはなくユニーク値になる。
  残念ながら、「列Xは重複するしない?列Yは重複するしない?」という話ではありません。「XとYの組み合わせは重複するしない?」という話の中で、「(列Y固定)列Xは重複するしない?(列X固定)列Yは重複するしない?」としている話です。
2023.07.08 13:19
 勉強しはじめたばかりさん(No.9) 
moneさん
ありがとうございます。
理解しました。

logres_fanさん
説明いただきありがとうございます。
以下のように理解しました。
・「再利用されない」は「その列がユニークである」ことを必ずしも保証しない。発番者視点で再利用されないというだけで、今回のように複数企業によって発番される場合は重複する可能性がある。
・一方で、値がユニークな列があれば、その列は単独で候補キーとなるはず。今回は、加盟企業商品コードがそもそもユニークではないので候補キーではない。
2023.07.09 02:52

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。
© 2016-2024 データベーススペシャリストドットコム All Rights Reserved.

Pagetop