第2章 データベースの基礎知識

次のコースは MOOC 学習から派生したものです。元のコースを参照してください:データベースの原則とアプリケーション
の大学院レビュー

序文:

抽象化とモデル

1. 異なるモデルを使用して、異なるデータ抽象レベルでオブジェクトを記述する

人物名、性別→概念モデル→DBMSがサポートするデータモデル→物理モデル

2. 概念モデリング: ユーザーの視点から情報をモデリングする

エンティティ関係モデル ER 図で記述可能

3. データモデル:

  • 論理データ モデル: データを表現および整理する方法を提供します。
  • 物理データ モデル: 最下位レベルのデータの抽象化。システム内のデータの表現と保存方法を記述します。

画像-20210115153543659

概念モデル

  1. 実在物

世界の客観的な存在を示し、互いに区別できるものは、情報世界の実体として加工され、抽象化されます。

情報世界の基本単位。具体的でも抽象的でもよく、名前を付ける必要があります。

  1. 属性: 現実世界の物の特性は、対応するエンティティに反映されます。エンティティは複数の属性を持つことができます。
  2. エンティティ タイプ: 類似したエンティティを抽象化して説明するための属性名のコレクション [学生 (学生番号、名前)]
  3. エンティティ セット: 同じ属性セットを持つ同じタイプのエンティティのコレクション

概念モデルは、現実世界における抽象化の最初の層であり、データベース技術で一般的に使用される概念モデルは (エンティティ関係モデル) です。

画像-20210115154002565

ER図のキーワード

  • 属性
  • キーワード:エンティティを一意に識別する属性の最小セット
  • 接触: 形式 [エンティティ内セットおよびセット間] アリティ [単項 1-1 バイナリ 1-n 多変量 mn]

画像-20210115154223723

補足:IS-A連絡先

エンティティ A とエンティティ B の間には IS-A 関係があり、エンティティ B は A のすべての属性と、IS-A 関係を通じて A に関連する関係を継承し、独自の固有の属性を持ちます。

画像-20210115154443021

補足: 弱いエンティティ: エンティティの存在は他のエンティティ (通常のエンティティまたは強いエンティティ) に依存します。弱いエンティティと呼ばれます。

たとえば、家族は生徒に依存しており、家族は弱い存在です(二重線の長方形と二重ひし形で表されます)。

データ・モデル

一連の概念を厳密に定義します。システムの静的プロパティ、動的プロパティ、および整合性制約を正確に説明します。

構成要素: データ構造 + データ操作 + 整合性制約

データ構造: データベース スキーマを記述します [オブジェクト タイプのコレクションを記述します]

データ操作: 操作の表記法、その正確な意味、操作規則、および実装言語を定義する必要があります。

整合性制約: データの正確性、有効性、互換性を保証するために満たさなければならない基本的な一般原則

データベースモデルの進化

進化のプロセスはデータベース技術開発の本筋です

階層モデル

順序付けされたツリーの構造に従って編成されツリー構造に基づいて、1:N の関係のみを表すことができます。

メッシュモデル

ネットワーク構造を採用しM:N を記述します。プログラミングは複雑です。DBTG システムを表します。

リレーショナルモデル [広範]

1970 年に提案された ACM チューリング賞は、集合論における「関係」の概念に基づいており、操作は集合操作です。

単一のデータ構造- 関係はエンティティを表すことも、エンティティ間の関係を記述することもできます

単一の関係構造を使用してエンティティとエンティティの間の関係を表現できる限り

半構造化データモデル

画像-20210115230832280

画像-20210115230920781

オブジェクト指向モデル

基本的な概念はオブジェクトとクラスです

現実世界のあらゆる存在はオブジェクトです

  • オブジェクトには複数のプロパティを含めることができます
  • オブジェクトには複数のメソッドを含めることができます
  • オブジェクトはカプセル化されています
  • オブジェクト間の通信はメッセージ パッシングを通じて実現されます

同じプロパティ セットとメソッド セットを共有するすべてのオブジェクトは結合されてオブジェクト クラス (クラス) を形成し、オブジェクトは特定のクラスのインスタンスになります。

  • クラスは入れ子の構造を持つことができ、祖先からすべてのプロパティとメソッドを直接的および間接的に継承します。

以上: オブジェクト リレーショナル モデル

リレーション、リレーショナル スキーマ、リレーショナル モデルの違い

  1. リレーションシップ: リレーションシップは通常言われるテーブルに相当します。

  2. リレーショナル スキーマ: 関係の説明

  3. リレーショナル モデル: リレーショナル モデルは、リレーショナル データ構造、リレーショナル操作セット、リレーショナル整合性制約の 3 つの部分で構成されます。

  4. リレーションシップとリレーショナル スキーマの違い

    • リレーショナル スキーマは型、リレーションは値、そしてリレーショナル スキーマはリレーションの説明です

    • 関係とは、特定の瞬間における関係スキーマの状態または内容であり、関係スキーマは静的で安定しています。

    • リレーショナル操作ではデータベース内のデータが常に更新されるため、関係は動的であり、時間の経過とともに変化します。

    • オブジェクト指向プログラミングにおける「クラス」と「オブジェクト」の違いに似ています。「関係」は「関係スキーマ」のインスタンスです。

    「リレーションシップ」はデータが入ったテーブルとして理解できますが、「リレーショナルスキーマ」はこのデータテーブルのテーブル構造です。**

  5. リレーショナル モデルとリレーションシップの違い

    • リレーショナル モデルにはリレーションが含まれており、リレーションはリレーショナル モデルのデータ構造です。
    • 現実世界のエンティティとエンティティ間のあらゆるレベルの接続は、単一タイプの構造、つまり関係によって表されます。

上記を補足する記事をインターネットで検索してください: 3 つの違い

mySQL が「リレーショナル」モデルと呼ばれる理由

関係の定義

リレーショナル データベースで採用されるデータ モデルはリレーショナル モデルです。逆の方が適切かもしれません。

つまり、リレーショナルモデルを採用したデータベースであるため、リレーショナルデータベースと呼ばれます。

では、ここで言う「関係」とは何を指すのでしょうか?深く考えてみると、この言葉は実は非常に抽象的でわかりにくく、私たちが考える「対人関係」や「人間関係の緊張」などの「関係性」と混同されやすいことがわかります。私たちの日常生活で使用します。であれば、最初から「関係」などという抽象的な言葉を使わずに「テーブル」モデルと呼んでもいいのではないだろうか?いわゆる関係性って結局のところまだ二次元の表じゃないですか?このような当然の疑問は、リレーショナル モデルの誕生以来、何度も提起されてきました。「いつも人間関係、人間関係について話すというのはどういう意味ですか?」

リレーションとテーブルの違い:

  1. 重複したタプルはリレーション内では許可されませんが、テーブル内には存在できます。つまり、リレーションシップは一般に重複要素を許可しないセットであり、テーブルは複数のセットです。

  2. リレーション内のタプルにはトップダウンの順序はありませんが、テーブル内の行にはトップダウンの順序があります。

  3. リレーションシップ内の属性には左から右の順序はありませんが、テーブル内の列には左から右の順序があります。

  4. リレーションシップ内のすべての属性の値は割り切れませんが、テーブル内の列の値は割り切れます。つまり、リレーション内の属性は第 1 正規形を満たしますが、テーブル内の列は第 1 正規形を満たしていません。

これらのいくつかの列から、リレーションシップとテーブルの間には依然として大きな違いがあることがわかります。リレーションシップと比較すると、テーブルは厳密に定義されておらず、明確でもありません。前回の記事では「タプル」や「属性」という言葉を何度も出てきましたが、「タプル≒行」「属性≒列」と考えていませんか?

画像

実際の作業においては、「列」を「属性」、「行数」を「ポテンシャル」と呼ぶことは特に有益ではありません。

関係モデルは数学の集合論に基づいているため、集合論の用語がいくつか使用されていますが、これは理解できます。ただし、理論的に厳密な本を読むと、著者が「列」の代わりに「属性」、「行」の代わりに「タプル」を使用することに慣れていることがわかるため、それらの対応関係を知っておくとよいでしょう。

関係の定義は次のような式で表すことができます。R⊆(D1×D2×D3・・・×Dn)

(関係を記号R、属性を記号Ai、属性の領域を記号Diで表す)

この式は、「関係 R は、ドメイン D1、D2、...、Dn のデカルト積の部分集合である」と解釈します。

、「行」の代わりに「タプル」を使用するため、それらの対応関係を知っておくことは依然として有益です。

関係の定義は次のような式で表すことができます。R⊆(D1×D2×D3・・・×Dn)

(関係を記号R、属性を記号Ai、属性の領域を記号Diで表す)

この式は、「関係 R は、ドメイン D1、D2、...、Dn のデカルト積の部分集合である」と解釈します。

実際、デカルト積とは、「各属性の定義域を使用して生成された組み合わせが最も多い集合」を指します。

おすすめ

転載: blog.csdn.net/qq_38758371/article/details/130093982