リレーショナルデータベースについて(情報処理試験用)
現在情報処理の勉強をしているのですが、
データベースが苦手でどうしても理解できないことがあります。
いくつかの項目を表にする際,区分の仕方がわからず,SQLがつくれません。
1.
・学籍番号
・氏名
・住所
・専攻
・科目番号
・科目名
・単位数
・成績
これは,全ての項目を学生表,科目表,履修表の3つに分ける例です。
この場合,
学生表(★学籍番号,氏名,専攻)
科目表(★科目番号,科目名,単位数)
履修表(★学籍番号,★科目番号,成績)
以上のように分けられるというのは,学生なので理解できます。
そして次の問題なのですが,
2.
・品目番号
・品目名
・在庫量
・受注番号
・顧客名
・受注日
・受注残
・納期
これらの項目を「品目表」,「受注表」,「受注明細表」の3つに分ける問題です。この場合どのように区分したらよいでしょうか。
また,区分する際のポイントも教えていただければ嬉しいです。
回答(2件)
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示
No.2ベストアンサー10pt
これはなかなかあいまいな問題で難しいですね。
こういうのが試験に出るんですねえ。
品目というと普通「品物の種類」を意味すると思います。
カップラーメンで言うと
製品名:どんべ 品目:カップうどん
製品名:かっぷぬどる 品目:カップラーメン
製品名:みどりたぬき 品目:カップそば
みたいな感じ?
ここでいう品目って「製品」を意味しているのかなあ?
それならわかるんですが・・・。
不明です。難しいですね。
もしこれが製品を意味していない、つまり、世間一般で言うところの「品目」のことなら、品目単位で受注するなんて世の中(現実の世界)ではありえません。品目単位で在庫量を出すことはありますが、それはテーブルに定義する内容じゃないし、そもそも品目で「受注」なんて絶対にしないです。
前述の例で言うと、「カップうどん100個ちょうだい」となってしまい、「じゃあどれでもいいの?どんべのほかにあかきつねやカレうどんもあるけど?どれでもいい?」という話になってしまいます。
このへんは先生に是非ご質問されるとよいと思います。
あと、受注残が、もし、
http://oshiete1.goo.ne.jp/qa1446140.html
のような意味なら、
受注数、というような項目があってもよさそうなもんですが・・・
それが無いので「在庫量」というものが何を意味しているかもちょっと「?」です。
僕がバカなだけかもしれませんが、なかなか正解が出しにくい問題だなあと思いました。
僕はこの問題は多分解けないです。多分0点です。(笑)
No.1ベストアンサー20pt
データベースの正規化の問題は、まず、各項目が実世界でどのような意味を持っているかが理解できていないと、回答不可能です。
どうも、質問を読んでいると・・・・そこで引っかかってません?
回答をそのまま書いてしまうのは簡単なんですが・・・
各テーブルが何を意味しているかだけを書いておきます。
まず、小さな商店を想像してください。いろいろな商品が並んでいます。「どんな商品が並んでいるのか?」を表現しているのが「品目表」です。当然、商店に各商品が一つしか並んでいないなんてあり得ませんからそれは考慮してくださいね。
さて、お客さんが買い物に来ました。これを表現しているのが受注票です。当然、買う物は一つではないでしょうし、一種類でもないでしょう。複数の品物を一回の買い物で買っていくとすると、素直に買い物を一つのテーブルで表現すると繰り返し項目が発生します。そこで、「**さんが買い物に来た」という事実を「受注票」に書き、何を買っていったかは「受注明細表」に書きます。買っていった人は、「*月*日までに届けてくださいね。」(納期)と頼んで帰って行きます。
「受注残」は何個買っていったかを表していると思ってかまわないでしょう。問題に書いてはいませんが、納品する時に、梱包や在庫の加減で分納することもあり得ますから、項目名としてはこのような表記になるのかな。実世界では、さらに、出荷の事実をどう表現するかというのが、出てくるはずなのですが、これが問題文にはないのでちょっと微妙なところではありますけど。
後は、この流れを考えながら、テーブルの正規化をやってみてください。ご質問の前半の問題がちゃんと理解できているなら大丈夫なはずですよ。がんばってくださいね。
- 最新から表示
- |
- 回答順に表示
- |
- ベストアンサーのみ表示











