• ベストアンサー

外部キー

アクセスのテーブルの主キーは 外部キーとも言うのですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • foitec
  • ベストアンサー率43% (1079/2453)
回答No.1

主キーの元になったテーブルを参照して表示される、他のテーブルのフィールドは外部キーです。

CCBBCCHUBCWVC
質問者

お礼

ありがとうございました。

その他の回答 (1)

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.2

こういう一般用語は、こういうところに質問するより、WEBで「外部キー 」で照会したほうがよい。質問者の波長にあう解説が見つかる可能性が多い。 下記は参考になればと、メモしてみます。 「外部キー」という用語は、リレーショナルデータベース(RDB)の用語で、(MS)アクセスだけに使われる言葉(用語・仕組み・概念)ではない。したがってSQLを使うときに端的に意識される。 参考 http://www.dbonline.jp/mysql/table/index11.html 「主キー」の別称ではない。 RDBではテーブルをできるだけ分割するので、分割された両者の整合性を取るべきというニーズが多いのです。 「参照制約」「参照整合性」という仕組みと関連付けられて、言われることが多い。これを「外部キー制約」といわれる。 >外部キー制約とは、テーブルの指定したカラムに格納できる値を他のテーブルに格納されている値だけに限定するものです。参照される側のテーブルを親テーブル、参照する側のテーブルを子テーブルと呼びます。 http://itdoc.hitachi.co.jp/manuals/3020/3020645240/W4520312.HTM に、仕組みの説明がありますが、ややこしい説明になりますね。 http://blog.livedoor.jp/akf0/archives/51003441.html 参考 主キー制約と外部キー制約 https://msdn.microsoft.com/ja-jp/library/ms179610(v=sql.120).aspx 制約には、主キー制約というのもあります。

CCBBCCHUBCWVC
質問者

お礼

ありがとうございました。

関連するQ&A

  • 外部キーだけのテーブル(主キーがない?)

    データベースのテーブルについておたずねします. 主キーがなくて,そのかわりに外部キー(と主キー以外の列)しか持たない テーブルも可能だと聞きました. テーブルには主キーが必ずあるものだと思っていましたが, どのような使いかたをするのでしょうか. どうやら,最初からデータがあるわけではなく, 追加されるタイミングがわからないデータを格納する場合に作っておく, ということらしいのですが,なんのことかよくわかりません. データベース関連書籍をいくつか調べましたが, 主キーのないテーブルの説明などは見当たりません. また,この悩ましい問題を与えてくれた知り合いに訊ねましたが, テーブル構成などの具体的なことは, 企業内のことなので,教えてもらえませんでした. 何か具体的な例を交えながらご説明いただければと思います.

  • 外部参照してるキーを主キーにすることは可能?

    DB設計について質問なんですが、テーブル1のA列を主キーとし、テーブル2のA列から外部キーでA列を参照したとします。 この時、テーブル2のA列を主キーとして設定することは可能なんでしょうか。 (テーブル2の方で列Aと列Bを組み合わせて主キーにしたいのです。要は二列でデータがユニークになるように設計したい) 使用しているDBはPostgreSQLです。 以上、宜しくお願い致します。

  • 主キーが2つ

    私はアクセス97を仕事に活用したいと思い、勉強している初心者です。そこで質問なのですが、あるアクセスのホームページで参考にしているテーブルに主キーが2つあります。しかし、普通に主キーを設定しようとしても、1つしか設定できません。どうすれば1つのテーブルに2つ主キーを設定することができますか?よろしくお願いします。

  • リレーションシップと外部キー制約について

    ■最終的にやりたいこと ・なるべくコード(SELECT文など)を見ずに、「DB」「テーブル定義者」「ER図」等からテーブル間の関係性を把握したい ■具体例 ・投稿一覧。「userテーブル」「postテーブル」 ・「postテーブル」の「user_id」カラムは、「userテーブル」の「id」カラムに対応 ※簡易な場合はある程度想像は付くのですが、ちょっと複雑な構成になると途端に苦労するので、何か良い方法はないかと思い、質問しました ■質問 ◆「リレーションシップを組む」際、「外部キー制約」はかけるのでしょうか? 例えば、上記「投稿一覧」DBを構築する際では、どうするのでしょうか? 1.普通、「外部キー制約」をかける 2.普通、「外部キー制約」をかけない 3.どちらでも良い ◆「外部キー制約」は何の為にかけるのでしょうか? ・「SELECT&JOIN」でデータ取得出来るのであれば、「外部キー制約」と「リレーションシップ構築」に関係性はないと思うのですが、そういう認識で合っているでしょうか? ・参照先データが削除されたら整合性がとれなくなる場合のみかけるものでしょうか? ◆「リレーションシップを確認」する目的で、「外部キー制約」をかけても良いのでしょうか? ・「データ削除の整合性」ではなく、「リレーションシップを確認」する目的で外部キー制約」をかけても良いのでしょうか? ◆「外部キー制約」以外に、「リレーションシップを確認」する方法はあるのでしょうか? ・コード(SELECT文など)を見ずに、テーブル間の「リレーションシップを確認」する方法としては、「外部キー制約」以外に何かあるのでしょうか? ・そもそも、「外部キー制約確認」=「リレーションシップ確認」という考えは正しいのでしょうか?

    • ベストアンサー
    • MySQL
  • 外部から取り込んだテーブルに主キーを設定するには

    外部から取り込んだテーブルに主キーを設定するには sql server 2000 のデータベースにsqlserver 2008 express editionをインストールしたPCで別のデータベースのテーブルをインポートウィザードにて取り込み、そのテーブルに主キーを設定しようと、新しいログイン名で-ログイン-セキュリティ-ユーザー-プロパティの画面でセキュリティ保護可能なリソースを選択し、オブジェクトの列の権限にて更新、選択、等許可に設定しても、テーブルの変更が(主キーの設定)ができません。 この変更は、もともと無理なことなのでしょうか。そうだとしたら他にテーブルの列設定を変更する方法はないのでしょうか どうかご教授お願いします。宜しくお願いします。 PC os XP pro (sql server 2008 express edition) サーバー WINDOWS 2000 server SQL server 2000

  • 外部キーの設定方法について

    外部キーの設定方法について テーブルCのカラムCについて、テーブルAのカラムA、またはテーブルBのカラムBにある値しか受け付けないように、外部キーの設定を行いたいのですが、方法が分かりません。 テーブルAのカラムAとテーブルBのカラムBとをUNION したビューを作成してみましたが、ビューにはプライマリィキーを設定することが出来なく、外部キーは作成できませんでした。 何か、回避策を教えてください。 よろしくお願いします。 データベースは、ANSI標準サポートのタイプとして、考えてください。

  • ER図の外部キー

    はじめまして ER図の書き方でFK(外部キー)として記載できるもしくは そう呼べるのはinnodbでの環境に限るのでしょうか? mysqlでmyisamにて構築しているのですが 例えば注文テーブルに商品IDや顧客ID、受注スタッフID、発注スタッフID等の カラムがあったとして、そらぞれのカラムは商品テーブル、顧客テーブル、 スタッフテーブルのプライマリーキーです。 この場合、商品IDは外部キーと呼べるのでしょうか。 また発注スタッフIDが必ず登録されているとは限らないのですがこれも外部キー と呼べるのでしょうか。 よろしくお願いします

    • ベストアンサー
    • MySQL
  • 外部キーを切り替えられますか?

    データベースの概念として間違ってるかもしれませんので、そのへんも指摘していただければ幸いです。 以下このような感じです。 正社員 --------- ID,Name,役職, 1,田中,社長 2,山田,部長 3,井上,課長 パート社員 ----------- ID,Name 1,佐藤 2,山口 という2つのテーブルがあったときに、 通勤手段 ---------- ID,手段,(外部キー:正社員、あるいはパート社員のID) 1,車,正社員の1 2,電車,正社員の2 3,バイク,正社員の3 4,車,パート社員の1 5,電車,パート社員の2 というように、外部キーを切り替える感じで テーブルを作ることはできますか? 正社員の通勤方法テーブルとパート社員の通勤方法テーブルを分けて作って、検索時にUNIONするのが正攻法ですか? (項目名、テーブル名は例です。)

  •  テーブルA(主キー有り)とテーブルB(主キー有り)をLEFT OUT

     テーブルA(主キー有り)とテーブルB(主キー有り)をLEFT OUTER JOINで外部結合したテーブルが 読み取り専用になっていて、データの更新ができないのですが、更新出来る方法が解らずに、困っていま す。この結合したテーブルのデータを更新できるようにするにはどのようにすればよいのでしょうか、お助け 願います。 SQL SERVER 2008 EXEPRESS EDITION をインストールしたPCからSQL 2000 serverのデータベースに アクセスしています。

  • キーの目的

    すいませんが、教えてください。データベースに、主キーや外部キーというのがあります。これを設定する目的は、何なのでしょうか?意味は、本によくあるのですが、その目的が理解できないので、教えてください。 仮に、主キーを設定しても、検索でレスポンスが早くなることはないですね。 ユニーク制約をテーブルに付ける目的と同じで、単に整合性を保つだけの目的でしょうか? であれば、整合性を考えなければ、キーを設定する必要はないのでしょうか?

専門家に質問してみよう