A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
RDB(リレーショナルデータベース)とはなんぞやてのわからないと内部結合・外部結合や1対多・1対1はわかんないかもしれませんね。
RDBは表形式のデータベースです。
受注伝票番号、受注日、顧客No、顧客名称、商品ID、商品名、納期、単価数量、合計金額等が受注伝票にあるとします。これをそのまま
受注伝票番号、受注日、顧客No、顧客名称、商品ID、商品名、納期、単価数量、合計金額等
の形式でEXCELシートに記入データとして登録すると受注伝票No等が重複して同じ値を記入することになりますね。
これを正規化という手法を使って重複する項目を無くすとmsystemさんのいうような複数のテーブルに分かれます。これを結合して元の状態に戻すのです。
ということでmsystemさんの補足です。
No.1
- 回答日時:
まずはじめに、内部結合、外部結合は、実際にデータを取得する際に複数のテーブルからデータを持ってくるときに、どのようにデータを持ってくるかによって使い分けます。
1対多、1対1は、テーブル設計の際に、テーブルとテーブルのデータの関係を表現するのに使います。ほとんどは、1対多なので、1対多のときに内部結合を使ってデータを取得したり、外部結合を使ってデータを取得したりすることになります。
例を書いてみます(わかりにくいかも・・・)
内部結合
受注テーブル
受注番号 顧客ID 商品ID 数量
1 111 222 10
2 122 222 5
3 111 111 3
4 123 333 50
顧客テーブル
顧客ID 顧客名 住所
111 A商事 ○○県・・・
122 B製作所 ××県・・・
123 C電気 △△県・・・
124 D事務所 □□県・・・
商品テーブル
商品ID 商品名 単価
111 α 100
222 β 150
333 γ 50
444 δ 80
とテーブルがあったとします。
受注一覧を見るためには、受注テーブルと商品テーブルと結合する必要があります。このときに、受注テーブルの顧客ID、商品IDに番号がある顧客名と商品名だけ表示する必要があります。(つまり、D事務所と商品δは表示する必要がない)そのような場合、内部結合をします。(つまり、両方のテーブルに、データがちゃんとある分だけ結合する。)
外部結合
上記のテーブル構造で、顧客別の受注集計をする時に、受注のなかった顧客名を表示したいとき、全顧客を表示し、受注のある分だけ受注情報を表示します。これが外部結合です。
1対多
上記のテーブル構造で、顧客1件に付き、受注がひとつしかないことは珍しいですよね。つまり、顧客1つに対して受注が多数あるので「顧客テーブル」と「受注テーブル」は「1対多の関係」といいます。(設計時は逆も検討してください、受注1件に対して顧客が複数あると(この場合あまり考えられないが)多対多になります。
1対1
これは、普通あまり使うことはないのですが、あるテーブルのデータ1件に対して他のテーブルのデータ1件が対応する場合、(その逆も成立する場合)1対1の関係になります。
使うのは、たとえばマスター変換テーブルなどで使います。(上記の例だと、このデータベースの顧客IDが別のデータベースの顧客テーブルの顧客IDとが違う場合、その変換のために使います)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
あるフィールドの最大値を条件...
-
Excel 2019 のピボットテーブル...
-
「直需」の意味を教えてください
-
Accessでテーブル名やクエリ名...
-
複数のレコードを1つのレコード...
-
Accessフォームにクロス集計ク...
-
Access VBAで自動連番を振るには
-
空白をそのままインポートする...
-
Accessでコードを入れると名前...
-
accessで重複を防ぎたい
-
アクセスでオートナンバーをリ...
-
Accessでvlookupみたいなことは...
-
ACCESSのクエリで集計で、先頭...
-
APN設定について教えていただけ...
-
ACCESS レーダーチャートのデー...
-
必須入力項目と入力必須項目
-
accessで指定期間の曜日カウン...
-
ACCESSでの改行コード
-
作番ってどういう意味でしょうか?
-
Joy To Keyのマウスやキーボー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
アクセスのテーブルを分ける理...
-
Accessの帳票フォームで重複デ...
-
Accessフォーム全レコードをPDF...
-
Access2021 「ISNULL関数には引...
-
あるフィールドの最大値を条件...
-
ACCESS VBA クエリを開く
-
MS ACCESS 商品価格変更時の該...
-
曜日を表す項目
-
集計結果を別テーブルに更新ク...
-
【Accessクエリ】存在しないデ...
-
usingの意味がわからないのですが
-
SQL EXISTS演算子について
-
Accessについて(DLOOKUP関数、...
-
【Access2000】マシンIDの取得方法
-
正規形の定義
-
Accessでクエリの作成、多対1対...
-
accessでの請求管理について
-
請求先
-
どうやって正規化するかを教え...
-
SQLの作り方
おすすめ情報