まず、エドガー・フランク・コッド博士が1970年にリレーショナルフレームワークを一般大衆に公開した科学論文、つまり、大規模共有データバンクのデータのリレーショナルモデルを強くお勧めします。そこで、セクション1.1「はじめに」で、コッド博士自身が次のように述べています。
この論文は、フォーマットされたデータの大きなバンクへの共有アクセスを提供するシステムへの初歩的な関係理論の適用に関する。
©コンピューティング機械協会。Communications of the ACM、Volume 13、Issue 6(pp.377-387)、June 1970。
ですから、はい、関係という用語は(したがって)関係という用語は数学的な背景から来ています。学術および研究の資格を別にして、コンピューティングおよび情報処理の約20年の経験を積んだCodd博士は、データ管理の分野で関係(自然な抽象的な構造)を適用することの大きな利点を想像しました。 。
私は数学者ではありませんが、基本的には、リレーションはセット間の関連付けであり、セットは要素のコレクションです(この外部リソースは、異なる観点からそれを理解するのに役立つ数学的な関係の定義を提供します)。SQLデータベース管理システム(簡潔にするためにDBMS)を用いて作業する場合、周知の近似関係は、テーブル関連の間で行われる場合には、型のの列。明らかに、DOMAINサポートを提供するSQLプラットフォーム(FirebirdやPostgreSQLなど)では、関連付けは問題のテーブルの列に対して修正されたドメイン。重要な詳細については、以下のセクションを参照してください。
その点で、セクション1.3「データのリレーショナルビュー」で次のように主張するCodd博士を再度引用します。
ここで、関係という用語は、受け入れられた数学的意味で使用されます。S 1、S 2、⋯、S nのセット(必ずしも明確ではない)を考えると、Rは、それぞれがS 1からの最初の要素、2番目の要素を持つnタプルのセットである場合、これらのnセットの関係ですS 2などから。1我々はを意味するものとSのJとしてJ番目のドメインのR。上記で定義したように、Rは次数n。次数1の関係はしばしば呼ばれる単項、次数2 バイナリ、次数3 の三元、及び次数N N値化。
1より簡潔には、Rはデカルト積S 1 × S 2 × S 3 ⋯× S nのサブセットです。
©コンピューティング機械協会。Communications of the ACM、Volume 13、Issue 6(pp.377-387)、June 1970。
そして、データ管理に関してそれを最大限に活用するためにコッド博士が数学的関係にいくつかの適応を行ったことを指摘することは非常に重要であるという点で他の回答に同意します。彼の広範囲な参考文献を通して。
関係と関係
育て状況の価値は、これらの科目を扱うときには、原因用語の日常(非数学的、非技術)の定義に関して存在する類似性のために混乱が生じる場合がある関係との関係を -which、非など英語を母国語とする人、特に理解しやすいと思います。
エンティティ関係ビューとリレーショナルモデル
私が混乱を引き起こす可能性がある他の要因(および上記の2つの用語の技術的な意味合いと密接に関連している)は、データベースの設計を学ぶとき、通常、学生または開業医が博士によって提案された方法論に最初に導入されることです。ピーター・ピン・シャンチェンにおけるエンティティ関係を示している(1976年発行)データのビュー、2つの異なる実装(すなわち、実体との関係を描くために)概念だけ言っスキーマの定義の後、スキーマを、そして学生や開業医がリレーショナル用語や楽器を導入して安定した、(例えば、ある関係が宣言するとき)関連するデータベースの論理レイアウト。概念の参照フレーム内で、関係は日常的な言葉の感覚により近い意味合いを持っています。
それから、おそらく、その状況は関係と関係の問題にも追加されます。しかし、最初に概念スキーマを定義し、続いて対応する論理設計を宣言するシーケンスは、次のセクションで詳しく説明するように、もちろん適切です。
各サブ質問への回答
これら3つのサブ質問を含めることは、投稿のより広いコンテキストを確立するため、本当に適切であると考えます。このように、離れ用語の理由を独占的に対処するから関係との関係が使用されている(確かに非常に重要であるとされているタイトルのポストのが、それはありません全体のポスト)、subquestionsはのスコープの多くを理解するのに役立つことができました情報管理プロジェクト全体に関係する場合(これはデータベース管理に関するサイトであるため、関連性が高いため)、さまざまな抽象化レベルで作業している場合の関係と関係モデル。このようにして、これらの詳細についての私の見解を以下に共有します。
サブ質問番号 1
たとえば、なぜ人は「関係」と見なされますか?英語では、リレーションは、2つのエンティティがどのように関連付けられるかを表す名詞です。エンティティ自体を指すものではありません。リレーショナルデータベースのコンテキストでは、「関係」はエンティティ自体を指します。どうして?
概念レベル
特定のビジネス環境では、そこで働く人々(ビジネスの専門家やデータベース設計者)がどのように概念化するかに応じて、Personはエンティティタイプと見なすことができます。そして、はい、そのビジネス環境では、Personエンティティタイプ(たとえば、Name、BirthDate、Genderなど)に関して関心のあるさまざまなプロパティがある場合があります。
さらに、Personエンティティタイプは、それ自体または他のエンティティタイプとの特定の関係(または関連付けまたは接続)タイプを保持できます。たとえば、PersonはUserProfileという名前のエンティティタイプに関連付けられている場合があり、そのエンティティタイプは独自の重要なプロパティ、つまりUsernameとPasswordを持っている場合があります。
ただし、(a)エンティティタイプ、(b)対応するプロパティ、(c)エンティティタイプ間の関係タイプ、および(d)プロパティ自体の関係は、それらが属する特定のビジネス環境に「属する」概念です。重要とみなされる。これらは、設計段階でコンテキスト固有の概念スキーマを定義するために、ビジネスの専門家と密接に連携するデータベース設計者が使用するデバイスです。
したがって、概念レベルでは、基本的に、現実世界の関心のあるセグメントで発生するアイデアの構造、つまり(1)物のプロトタイプと(2)物のプロトタイプ間の関係のプロトタイプを処理します。 (3)関係 —データのリレーショナルフレームワークの意味でこの最後の用語を使用します。
論理レベル
後の人は正確に概念レベルでのエンティティタイプとして線引きし、あれば 1がの意味伝えるリレーショナルデータベースを実装したい人と、それに関連するすべての概念を、その型の実体についての事実は美徳で管理することができ論理レベルでの数学的関係の構築、およびその抽象構造で実行できる科学ベースの操作を活用します(つまり、定義、制約、および操作)。
はい、データベースの論理配置を定義するときに特定の関係にPersonという名前を付けることができますが、それはPersonの「現実の」概念を関係に変換するものではなく、情報を管理するときに得られる利点のためにそのようにアプローチしますそれについて、例えば、その上に関係代数演算を適用して、新しい関係を導き出します(したがって、「新しい」情報を導き出します)。上記の利点は、特定のタイプのエンティティがセットを構成し、特定のプロパティの値もセットを構成するという事実を考慮すると、より明白になります。
そして、はい、前の段落および他の回答でも述べたように、関係の最も重要な側面の1つは、そのドメイン間に存在する接続です。これは、通常、概念的なスキーマ—。たとえば、次の(3項の)リレーションを宣言したとしましょう。
Salary (PersonNumber, EffectiveDate, Amount)
…そして、問題のビジネス環境で、タプル -(i)特定のエンティティ、つまり、該当する概念スキーマからのエンティティ型のインスタンスを表し、(ii)対応するSQLが行 —
…意味を持ちます
- 「
x
EffectiveDateでPersonNumberによって識別される個人に支払われる給与y
は、の量に対応しz
ます」。
したがって、物事を大まかに説明するには、3つのドメイン間の接続が最も重要であり、それらはすべて関連しています(そして、はい、単項関係には1つのドメインのみが関係します)。特定のドメインのすべての値の間の接続も非常に重要です。これらは正確なタイプのセットを構成するためです。また、リレーションの各タプルの内容は、上記のアサーションの構造に適合しなければなりません。Salary
概念レベルの関係と論理レベルの関係
実証されたように、概念と論理という2つの異なる抽象化レベルでデータベース管理を扱ってきました。さらに、物理レベルと呼ばれる下位レベルがあります。SQLDBMSでは通常、たとえばインデックス、ページ、エクステント、等。-。
したがって、前に説明した概念に従って、論理レベルでは、(a)数学的な関係でのみ動作します。(b)概念的な関係または関連付けは、(c)そのような数学的な関係のタプルに含まれる値によって表されます。また、これらの値は通常、外部キー制約によって区切られているため、適切な関係を正確に表すことができます。
そして、はい、関連エンティティ、つまり多対多(M:N)カーディナリティ比を持つ関係タイプのインスタンスは、単一の数学的関係のタプルによって伝達できます。コース-。
サブ質問番号 2
リレーショナルモデルは、階層モデルとネットワークモデルの後に来たことを理解しています。しかし、これらのモデルでは、エンティティは相互にも関係しています。では、なぜこのモデルをリレーショナルモデルと呼ぶのでしょうか?より具体的なフレーズ/用語はありますか?または、3つすべてのモデルがリレーショナルモデルであるが、階層モデルとネットワークモデルは特定のタイプのリレーショナルモデルであると言う必要がありますか?
正式な理論的サポートに先行するネットワークおよび階層型DBMS
階層的アプローチおよびネットワークアプローチに関する理論的なサポートは、実際には、(1)の種類の健全性をテストおよび確立することを目的として、既存の DBMSの観点から実際に作成されたことを指摘するのが適切ですソフトウェアと(2)リンクされたデータ管理の実践-私の観点からは逆さまの現象-
リレーショナルフレームワークと比較して不完全
そうは言っても、リレーショナルモデルより前の階層型およびネットワークDBMSはありますが、コッド博士がこれらのアプローチをそれぞれ「モデル」と呼んだとしても、リレーショナルフレームワークと同じように定義されているものはありません。リレーショナルパラダイムは、(i)定義、(ii)制限、および(iii)データの操作のための科学的構成要素を提供し、階層的アプローチおよびネットワークアプローチは、前述の3種類の構成要素すべてをカバーする完全な理論的サポートを欠いています。
ネットワークおよび階層機能
また、前述のように、エンティティと関係のタイプは概念レベルのデバイスであり、階層的アプローチやネットワークアプローチに属していません。これらはそれぞれ、上記の側面を表す特定のメカニズムを提供します。
ネットワークパラダイムを伴う2つのデータ表現、すなわち、のためのデバイスノードとアーク(どおりこと(もちろんその特性は、データ操作の2種類を意味する)、リレーショナルモデルと対比ときに、情報原理のみ必要)1構築物を(関係)は、ネットワーク方式での作業に伴う不必要な複雑さを明らかにします。たとえば、2つの表現手段を使用する場合、ネットワークアプローチは、データ操作を妨げる非実用的なクエリバイアスを課します。
階層ビューでは、3つのような配置で編成されたレコード(順番にフィールドで構成されています)で構成される(物理!)ファイルを使用してデータを表すことを提案しています。つまり、ポインターを介して、おそらく多くの対応する子とチェーンされた1つの親レコードは、データ操作に関する物理的なアクセスパスを生成します。このアプローチは、概念的側面と物理的側面が絡み合うため、好ましくありません。したがって、物理ストレージの配置を変更するには、データ構造の再編成が必要になります。
示されているように、階層ビューとネットワークビューは、管理対象のデータに構造を課しますが、リレーショナルモデルは、関連するファクトのセット(その結果、n個の後続タイプのセット、設計段階などを導き出すことができます!)。
リレーショナルモデルにはサブモデルがありません
そして、非常に重要なのは、どちらも階層やネットワークビューは、リレーショナルモデルの具体的な種類があり、彼らは単に誰かが()ビルドのDBMSに従うと、(b)にデータベースを作成することが他のパラダイムですが、心の中でくださいクマ階層いますそして、ネットワークアプローチは何十年もの間、時代遅れと見なされています。
サブ質問番号 3
互いに関係のないスタンドアロンエンティティがある場合はどうなりますか。言う、人、ドア、そして木。「関係(al)」という用語はまだ適用可能ですか?
はい、(1)適応された数学的関係によってそれらのエンティティタイプに関する情報を管理し、(2)与えられたリレーショナルDBMSのサポートで管理される特定のデータベースの論理レベルで適用可能なリレーショナル操作を実行する場合、完全に適用可能です。
概念レベルで、上記のエンティティタイプが他のエンティティタイプとの関係タイプを保持していないかどうかは関係ありません(また、エンティティタイプが1対0または1対多のカーディナリティ比の関係を持つことができることは注目に値します)そのため、検討中の関係のタプルの値間の関係を伝えたり強制したりすることはありません。