外部キー

外部キー(がいぶキー、英語: foreign key、FK)は、コンピュータ関係データベース関係モデルの文脈において、2つの関係変数)の間の参照整合性制約をいう。 外部キーは、参照する側の関係変数で1つの属性(列、カラム)もしくは2つ以上の属性の集合を同定し、参照する側の関係変数は、参照される側の関係変数の1つの属性もしくは2つ以上の属性の集合を参照する。 参照する側の関係変数の属性の1つの(タプル、行)の値は、参照される側の関係変数の組の値として出現しなければならない。 このため、参照する側の関係変数の組には、参照される側の関係変数に現れない値を、含むことはできない。 このような参照関係は、2つの情報の関連づけるために作成され、関係の正規化の本質的な部分をなしている。 参照する側の関係変数の複数の組が、参照される側の関係変数の同一の組を、参照することができる。

参照する側の関係変数と参照される側の関係変数が、同一の関係変数であっても良い。 すなわちこの場合は外部キーは自分自身の関係変数を参照する。 このような外部キーは、データベース言語標準 SQL:2003 では「自己参照」外部キーあるいは「再帰的」外部キーとして規定されている。

一つの関係変数には複数の外部キーを含むことができる。 そしてこのような外部キーのそれぞれが異なる関係変数を参照する。 各々の外部キーは関係データベース管理システム (RDBMS) によりそれぞれ別個に強制適用される。 このため、関係変数間の連鎖した関連を外部キーを使って定義することができる。

外部キー-主キーの関連を本来は設計の観点から存在していてはならない場合に存在していることや、外部キー-主キーの関連が本来は設計の観点から存在しているべきである場合に存在していないことは、関係データベースおよびデータモデリングデータベース設計についての多くの問題の原因となっていることが多い。

外部キーを定義する

外部キーは、データベース言語 ANSI/ISO SQL 標準において、FOREIGN KEY 制約として規定されている。 既に存在する関係変数(表)に外部キー制約を追加する構文は SQL:2003 で次のように規定されている。 なお、属性 (column) のリストを REFERENCES 句で省略すると、外部キーは参照される側の関係変数の主キーを参照することを暗黙に示す。

ALTER TABLE <table identifier> 
   ADD [ CONSTRAINT <constraint identifier> ] 
      FOREIGN KEY ( <column expression> {, <column expression>}... )
      REFERENCES <table identifier> [ ( <column expression> {, <column expression>}... ) ]
      [ ON UPDATE <referential action> ]
      [ ON DELETE <referential action> ]

同様に、外部キーは CREATE TABLE SQL 文の一部としても定義することができる。

CREATE TABLE table_name (
   id    INTEGER  PRIMARY KEY,
   col2  CHARACTER VARYING(20),
   col3  INTEGER,
   ...
   CONSTRAINT col3_fk FOREIGN KEY(col3)
      REFERENCING other_table(UNIQUE(key_col) ON DELETE CASCADE,
   ... )

外部キーが単一の属性だけから構成される場合は、その属性は次の構文を使うことにより外部キーと指定することもできる。

CREATE TABLE table_name (
   id    INTEGER  PRIMARY KEY,
   col2  CHARACTER VARYING(20),
   col3  INTEGER FOREIGN KEY REFERENCES other_table(column_name),
   ... )

参照操作

関係データベース管理システム (RDBMS) あるいは SQL データベース管理システム (SQL DBMS) は参照整合性制約を強制適用するため、DBMSは参照される側の関係変数(表)の組が削除(あるいは更新)される場合でも、データ整合性参照整合性)を維持しなければならない。 その際、参照する側の関係変数に組が残っている場合、参照整合性はよく考慮しなければならない。 データベース言語標準 SQL:2003 ではそのような場合に発生させる5種類の参照操作を規定している。

CASCADE

参照される側の関係変数の組が削除された場合、参照する側の関係変数の対応するすべての組は削除される。 同様に、参照される側の関係変数の組が更新された場合、参照する側の関係変数の外部キーの値は同じ値に更新される。

RESTRICT

参照する側の関係変数の組が残っている場合は、参照される側の組は更新することも削除することもできない。 この場合、データの変更は全く行われない。

NO ACTION

参照される側の関係変数において UPDATE あるいは DELETE SQL 文が実行される。 DBMS は SQL 文の実行の終了時に参照整合性が満たされているかどうかを検査する。 RESTRICT との大きな違いは、トリガもしくはSQL文のセマンティクス[要曖昧さ回避]自体が外部キーの制約を満たすであろうということである。 このとき、SQL 文の実行は成功する。 外部キーの制約が満たされない場合は SQL 文の実行は失敗する。

SET NULL

参照される側の関係変数において組が更新もしくは削除された場合、参照する側の関係変数の組の外部キーの値にはNULLが設定される。 このオプションは参照する側の関係変数の外部キーにNULLを設定できる場合にのみ、定義可能である。 NULLのセマンティクスにより、参照する側の関係変数においてNULLのある組は、参照される側の関係変数の組を必要としない。

SET DEFAULT

SET NULL と似ているが、参照される側の関係変数の組が更新あるいは削除された場合、参照する側の関係変数の外部キーの値は属性の既定値(デフォルト値)が設定される。

例1

外部キーについて説明するための最初の例として、会計データベースがありその中に請求書関係変数(請求書表)があり、請求書関係変数の中の各々の請求書は個別の供給者(サプライヤ)と関連づけられているとする。 供給者の詳細(住所など)の情報は供給者関係変数に格納されているとする。 各々の供給者には、識別子として供給者番号 (SupplierNumber) が割り当てられている。 各々の請求書は、その請求書の供給者番号を属性値としてもつ。 供給者番号(SupplierNumber)は供給者関係変数の主キーである。 請求書関係変数の外部キーは、供給者関係変数の主キーを指し示す(参照する)。 関係モデルスキーマは次のようになる。 主キーは太字で示す。

  Supplier ( SupplierNumber, Name, Address, Type )
  Invoices ( InvoiceNumber, SupplierNumber, Text )

このスキーマに対応するデータ定義言語 (DDL) による定義は次のようになる。

CREATE TABLE Supplier (
   SupplierNumber  INTEGER NOT NULL,
   Name            VARCHAR(20) NOT NULL,
   Address         VARCHAR(50) NOT NULL,
   Type            VARCHAR(10),
   CONSTRAINT supplier_pk PRIMARY KEY(SupplierNumber),
   CONSTRAINT number_value CHECK (SupplierNumber > 0) )
CREATE TABLE Invoices (
   InvoiceNumber   INTEGER PRIMARY KEY,
   SupplierNumber  INTEGER NOT NULL,
   Text            VARCHAR(4096),
   CONSTRAINT invoice_pk PRIMARY KEY(InvoiceNumber),
   CONSTRAINT inumber_value CHECK (InvoiceNumber > 0),
   CONSTRAINT supplier_fk FOREIGN KEY(SupplierNumber)
      REFERENCES Supplier(SupplierNumber)
      ON UPDATE CASCADE ON DELETE RESTRICT )

例2

ある企業にはいくつかの部署があり、その各々の社員はいずれかの部署に属している。 この事象は、関係データベースにおいては社員関係変数(社員表)の外部キーにより強制適用されている。 この外部キーは部署関係変数を参照している。 部署関係変数の各々の部署は、部署名称をもち "部署ID" というその部署の一意識別子をもつ。 社員関係変数は "部署ID" を属性としてもち、"部署ID" 属性は外部キーとして前述の部署関係変数の "部署ID" を参照する。 RDBMSあるいは SQL データベース管理システム (SQL DBMS) は、各々の社員の情報が部署関係変数の部署を参照せずに作成されることを強制的に防ぎ、部署関係変数のある部署を参照する社員が存在するときにその部署が削除されることを強制的に防ぐ。

関連項目

Read other articles:

LBJ

DART Light Rail station in Dallas This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages) This article relies excessively on references to primary sources. Please improve this article by adding secondary or tertiary sources. Find sources: LBJ/Central station – news · newspapers · books · scholar · JSTOR (May 2021) (Learn how and when to remove this templat...

Barrio Militar - Aeropuerto Barrio de Comodoro Rivadavia Barrio Militar - AeropuertoLocalización de Barrio Militar - Aeropuerto en Provincia del ChubutCoordenadas 45°47′40″S 67°28′25″O / -45.7944, -67.4736Entidad Barrio de Comodoro Rivadavia • País  Argentina • País  Argentina • Provincia  Chubut • Departamento Escalante • Municipio Comodoro RivadaviaPoblación (2010)   • Total 321 hab.Gentili...

Cet article est une ébauche concernant une localité anglaise. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. Burton upon Trent Mairie de Burton upon Trent. Administration Pays Royaume-Uni Nation Angleterre Région Midlands de l'Ouest Comté Staffordshire District East Staffordshire Démographie Population 64 449 hab. (2016) Géographie Coordonnées 52° 47′ 58″ nord, 1° 38′...

Ehemaliger Kanton Aix-en-Provence-Centre Region Provence-Alpes-Côte d’Azur Département Bouches-du-Rhône Arrondissement Aix-en-Provence Auflösungsdatum 29. März 2015 Einwohner 41.361 (1. Jan. 2012) Gemeinden 1 INSEE-Code 1347 Der Kanton Aix-en-Provence-Centre war bis 2015 ein französischer Wahlkreis im Arrondissement Aix-en-Provence, im Département Bouches-du-Rhône und in der Region Provence-Alpes-Côte d’Azur. Die landesweiten Änderungen in der Zusammensetzung der Kanto...

جرعة الموز المكافئةمعلومات عامةالنوع وحدة قياس تستخدم لقياس جرعة مكافئة سميت باسم موز تحويلات الوحدةإلى النظام الدولي 9.820E-08 زيفرت[1] تعديل - تعديل مصدري - تعديل ويكي بيانات الموز يحتوي على المواد المشعة التي تحدث بشكل طبيعي في شكل البوتاسيوم -40. جرعة الموز المكافئه هو

العلاقات البريطانية الوسط أفريقية المملكة المتحدة جمهورية أفريقيا الوسطى   المملكة المتحدة   جمهورية أفريقيا الوسطى تعديل مصدري - تعديل   العلاقات البريطانية الوسط أفريقية هي العلاقات الثنائية التي تجمع بين المملكة المتحدة وجمهورية أفريقيا الوسطى.[1][2&...

Nokdu FlowerPoster promosiHangul녹두꽃 GenreDrama periode sejarahDitulis olehJeong Hyun-minSutradaraShin Kyung-sooPemeranJo Jung-sukYoon Shi-yoonHan Ye-riNegara asalKorea SelatanBahasa asliKoreaJmlh. episode48ProduksiPengaturan kameraSingle-cameraDurasi35 menitRumah produksiC-JeS Entertainment[1]DistributorSBSRilisJaringan asliSBS TVFormat gambar1080i (HDTV)Format audioDolby DigitalRilis asli26 April (2019-04-26) –13 Juli 2019 (2019-7-13)Pranala luarSitus web Nokdu...

1985 single by BananaramaDo Not DisturbSingle by Bananaramafrom the album True Confessions B-sideGhostReleased12 August 1985 (UK)[1]RecordedApril 1985GenrePopLength3:25LabelLondon RecordsSongwriter(s)Jolley & SwainProducer(s)Jolley & SwainBananarama singles chronology The Wild Life (1984) Do Not Disturb (1985) Venus (1986) Do Not Disturb is a song recorded by English girl group Bananarama. It was written and produced by the production duo of Steve Jolley and Tony Swain. Origin...

Main article: 1816 United States presidential election 1816 United States presidential election in New York ← 1812 November 1 – December 4, 1816 1820 →   Nominee James Monroe Party Democratic-Republican Home state Virginia Running mate Daniel D. Tompkins Electoral vote 29 Percentage 100% President before election James Madison Democratic-Republican Elected President James Monroe Democratic-Republican Elections in New York State Federal government Pr...

Final Fantasy VII: Advent ChildrenTitolo originaleFinal Fantasy VII: Advent Children (ファイナルファンタジーVII アドベントチルドレン Fainaru Fantajī VII Adobento Chirudoren?) Paese di produzioneGiappone Anno2005 Durata100 min. (Versione DVD)125 min. (Versione Blu-Ray) Genereanimazione, fantascienza RegiaTetsuya Nomura, Takeshi Nozue SoggettoKazushige Nojima, Final Fantasy VII SceneggiaturaKazushige Nojima MontaggioKeiichi Kojima Effetti specialiYoshinori Moriizum...

Defunct railroad in Georgia Waycross Air Line RailroadAtlantic and Birmingham Railroad (1901–1903)Atlantic and Birmingham Railway (1903–1906)A CSX Transportation freight train in Cordele, Georgia on the former Waycross Air Line Railroad mainlineOverviewCurrent operatorCSX TransportationDates of operation1890–1906SuccessorAtlanta, Birmingham and Atlantic RailwayTechnicalTrack gauge4 ft 8+1⁄2 in (1,435 mm) standard gauge Route map vteLegend CSX Manchest...

Краснозобый конёк Научная классификация Домен:ЭукариотыЦарство:ЖивотныеПодцарство:ЭуметазоиБез ранга:Двусторонне-симметричныеБез ранга:ВторичноротыеТип:ХордовыеПодтип:ПозвоночныеИнфратип:ЧелюстноротыеНадкласс:ЧетвероногиеКлада:АмниотыКлада:ЗавропсидыКласс:Пт...

2003 Indian filmWhistleDVD coverDirected byJ. D.–JerryWritten byJ. D.–JerrySujatha(Dialogue)Based onUrban Legend (1998)Produced bySujathaStarringVikramadityaGayathri RaguramSherinCinematographyFowzia FathimaEdited bySuresh UrsMusic byD. ImmanProductioncompanyMedia DreamsRelease date 4 July 2003 (2003-07-04) Running time153 minutesCountryIndiaLanguageTamil Whistle is a 2003 Indian Tamil-language slasher film directed by J. D.–Jerry, which is a remake of Urban Legend (1998)...

Green Bay Packers retired jersey numbers Lambeau Field's north end zone with the six retired numbers The Green Bay Packers are a professional American football team based in Green Bay, Wisconsin. Since their founding in 1919, over 1,700 players,[1] including 33 Pro Football Hall of Famers[2] have played for the team. Of those 33, 6 players have had their uniform numbers officially retired by the organization.[3] Professional sports franchises, including the Packers, re...

Swedish ice hockey left winger Not to be confused with Niclas Andersén. For the ice hockey player born in 1986, see Niklas Andersson (ice hockey, born 1986). Ice hockey player Niklas Andersson Niklas Andersson playing for Frölunda HC in Italy in August 2005Born (1971-05-20) 20 May 1971 (age 52)Kungälv, SwedenHeight 5 ft 9 in (175 cm)Weight 176 lb (80 kg; 12 st 8 lb)Position Left wingShot LeftPlayed for Frölunda HCQuebec NordiquesNew York IslandersSa...

Silvestre Alegrim Silvestre AlegrimRetrato do ator Alegrim (Álbum teatral, 3.º volume, 1917) Nascimento Silvestre Augusto Alegrim10 de março de 1881Setúbal Morte 16 de outubro de 1946Lisboa Sepultamento Cemitério dos Prazeres Cidadania Portugal, Reino de Portugal Alma mater Conservatório Nacional de Lisboa Ocupação ator, comediante [edite no Wikidata] Silvestre Augusto Alegrim (Setúbal, 10 de março de 1881 — Lisboa, 16 de outubro de 1946), foi um ator português, que se distin...

1922 Wyoming gubernatorial election ← 1918 November 7, 1922 (1922-11-07) 1924 →   Nominee William B. Ross John W. Hay Party Democratic Republican Popular vote 31,110 30,387 Percentage 50.59% 49.41% County resultsRoss:      50–60%      60–70% Hay:      50–60%      60–70%      70–80% Governor before election Robert ...

Флавій Цецина Децій Максим Василь Юніорлат. Flavius Caecina Decius Maximus Basilius Iunior Народився невідомоПомер 500РимКраїна Стародавній РимДіяльність політикТитул консулПосада давньоримський сенатор[d]Термін 480 рікПопередник Цезар Зенон АвгустНаступник Руфій Ахілій Мецій ПлацидКон...

Show Luo Información personalApodo 小豬 Otros nombres Xiao ZhuNacimiento 30 de julio de 1979 (44 años) Keelung, TaiwánFamiliaPareja Grace Chow (2011-2020) Información profesionalOcupación cantante, bailarín, actorAños activo 2000 – presenteSeudónimo Xiao ZhuGéneros Mandopop, DanceInstrumento Batería y voz Discográfica Pony Canyon (2011 - presente)Ltd. (2014 - presente)EMI EntertainmentSitio web www.gold-typhoon.com.tw [editar datos en Wikidata] Show Luo...

University in Las Anod, Somaliland Ilays National UniversityMottoHoyga Aqoonta iyo Horumarka BulshadaTypePrivate universityEstablished2012ChairmanProf. Abdisalam TungubLocationLas Anod, Sool,  SomaliaWebsiteOfficial website Ilays National University (INU), is a university in Las Anod, Somaliland. The university was established by Prof. Tungub, who at first set up the Ilays Educational Academy. INU was officially formed in 2012 with the purpose of providing higher education to the graduat...