[過去ログ] 応用情報技術者 Part129 (1001レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
982
(3): 2014/04/05(土) 10:28:48.14 AAS
主キーは必ずユニークであり、重複するタプルが存在しないこと。

複数の属性を組み合わせて主キーとする場合もある。

この流れがわからん。
複数の属性を組み合わせた一意の属性を作って、それを主キーとしなくてもよいの?
983: 2014/04/05(土) 10:37:46.43 AAS
>>982
複数の列の組み合わせでユニークになるなら構わんだろう
986: 2014/04/05(土) 10:57:12.66 AAS
>>982
主キーは常にそのタプルと一意に特定できればそれが主キーだ
単一だろうが、複数だろうが、代用キーだろうが
987: 2014/04/05(土) 10:59:10.54 AAS
>>982
具体的な例で話をしよう。

例えば一枚の伝票に複数の商品が記載されてるとしよう。ただし、同じ伝票に同じ商品が複数記載されることは無いとする。

これをそのまま非正規形にすると主キーは「伝票番号」だろう。

これを第一正規化すると伝票番号でも商品番号でもユニークにならない。
なぜなら同じ伝票には複数の商品があり、同じ商品が複数の伝票に出てくるからだ。
だから、一つの手段として伝票番号と商品番号のペアを主キーにする事ができる。

それが嫌なら別に通し番号を振ってそちらを主キーにする方法もある。これをサロゲートキーと言う。

では「伝票番号と商品番号を結合ささせた列を作る」というのは何がまずいかと言うと、テーブルを更新した時に主キーと伝票番号、商品番号に矛盾が生じてくる可能性が有るからだ。
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.025s