MySQL 学習: 初心者のための 3 つのパラダイム

MySQL 学習: 初心者のための 3 つのパラダイム

1. パラダイム基盤

1.1 パラダイムの概念

データベースを設計する際に従う必要がある仕様がいくつかあります。現在、リレーショナル データベースには、第 1 パラダイム (1NF)、第 2 パラダイム (2NF)、第 3 パラダイム (3NF)、Buss-Codd 形式 (BCNF)、第 4 パラダイム (4NF)、第 5 パラダイム (5NF、完全パラダイムとも呼ばれる) の 6 つのパラダイムがあります。

もちろん、通常の状況では、最初の 3 つのパラダイムを満たしていれば、より標準化されたデータベースを設計できます。

後者のパラダイムに従うには、まず前のパラダイムの要件に従う必要があります。たとえば、2 番目のパラダイムはまず最初のパラダイムに従う必要があり、3 番目のパラダイムはまず 2 番目のパラダイムに従う必要があります。

2. 3つの主要なパラダイム

2.1 3つの主要なパラダイム概念

第 1 正規形 (1NF): 各列はこれ以上分割できません。
第 2 正規形 (2NF): 第 1 正規形に基づいて、非主キー列は主キーに完全に依存し、主キーの一部になることはできません。
第 3 正規形 (3NF): 第 2 正規形に基づき、非主キー列は主キーにのみ依存し、他の非主キーには依存しません。

2.2 3つのパラダイムの例

たとえば、テーブルがあるとします。次の例では、このテーブルを 3 つのパラダイムに変換してから、標準テーブルに変換します。

ここに画像の説明を挿入

1. 最初のパラダイムを変革する

第一正規形(1NF):各列はこれ以上分割できません

テーブルには分割できる列、つまりシリーズがあることがわかります。これを第 1 正規形に変換すると次のようになります。

ここに画像の説明を挿入

2. 第2パラダイムの変革

第 2 正規形 (2NF): 第 1 正規形に基づいて、非主キー列は主キーに完全に依存し、主キーの一部になることはできません。

この 2 番目のパラダイムは理解するのが簡単ではないので、まずいくつかの概念を理解しましょう。

1. 関数の依存関係:一意の B 属性の値が A 属性 (または属性グループ) から決定できる場合、B は A に依存します。たとえば、上の写真の名前は学生番号に完全に依存しています。
2. 完全な機能的依存関係: A が属性グループである場合、B の属性値の決定は、A の属性グループ内のすべての属性値に依存する必要があります。属性グループは複数のフィールドを参照します。たとえば、スコアを知りたい場合は、学生番号とコース名の属性を使用してスコアを決定する必要があります。他の属性ではスコアを決定できません。
3. いくつかの機能的依存関係: A が属性グループの場合、B の属性値の決定は属性グループ A のいくつかのフィールドに依存する必要があります。たとえば、学生 ID とコース名が属性グループの場合、学生名は学生 ID によってのみ決定できます。
4. 伝達関数の依存性:属性 A (属性グループ) が属性 B の一意の値を決定できる場合、属性 C の値は属性 B の値によって一意に決定できます。たとえば、学生 ID によって学部名が決定され、学部名は学部長に対応します。
5. 主キー:テーブル内で、属性または属性グループが他のすべての属性に完全に依存している場合、この属性はコードのテーブルと呼ばれます。たとえば、上の図の学生番号とコース名で構成される属性グループなどです。

実際、2番目のパラダイムは次のようにも理解できる。

最初のパラダイムに基づいて、非主キーの主キーへの部分的な依存を排除​​する

上図の主キーは、学生番号とコース名で構成される属性グループです。上図では、スコアを除いて、他のすべての属性が主キーに部分的に依存していることがわかります。これを次のように修正できます。

ここに画像の説明を挿入

ここに画像の説明を挿入

第 2 正規形変換後、テーブルは 2 つのテーブルに分割されます。第 2 正規形によって、実際には多くの冗長部分が削除されていることがわかります。たとえば、変換前は、張無極の名前、学部名、学部長がテーブルに 3 回表示されていましたが、変換後は 2 つのテーブルに 1 回しか表示されなくなりました。

3. 第3のパラダイムへの変革

第 3 正規形 (3NF): 第 2 正規形に基づき、非主キー列は主キーにのみ依存し、他の非主キーには依存しません。

2 番目のポイントで述べた概念によれば、次のようになります。

ここに画像の説明を挿入

以上が初心者向けMySQL学習の3大パラダイムの詳しい内容です。MySQLの3大パラダイムについてさらに詳しく知りたい方は、123WORDPRESS.COMの他の関連記事もぜひご覧ください!

以下もご興味があるかもしれません:
  • データベースの3つのパラダイムの最もシンプルで記憶に残る説明
  • MySQLパラダイムの使用に関する詳細な説明
  • MySQLデータベースパラダイムの詳細な説明
  • データベース設計の3つの主要なパラダイムの簡単な分析

<<:  Docker コンテナ データ ボリュームの名前付きマウントと匿名マウントの問題

>>:  画像ボタンをフォームのリセットボタンとして使用する方法

推薦する

バックエンドの権限に基づいてナビゲーション メニューを動的に生成する Vue-router のサンプル コード

目次js の1. グローバルガードを登録する2. Vuex 状態管理グローバルキャッシュルート3. ...

Linux zabbix エージェントの展開と設定方法の詳細な説明

1. web01にzabbix-agentをインストールするZabbix ウェアハウスをデプロイする...

fullpage.js フルスクリーンスクロールの具体的な使い方

1.fullpage.js ダウンロードアドレスhttps://github.com/alvarot...

Tomcatディレクトリ構造の詳細な説明

目次ディレクトリ構造binディレクトリconfディレクトリlibディレクトリwebapps ディレク...

フィボナッチ数列のJavaScript出力を実装する方法

目次トピック分析する基本的な解決策基本的な再帰再帰最適化要約するトピック私たちが答えなければならない...

一般的なMySQLコマンドの概要

mysqlrootパスワードの設定と変更初めて MySQL データベースに入ります。 !環境変数にm...

CSS 疑似要素と疑似クラスの魔法のような使い方についての簡単な説明

CSS は Web ページで非常に重要な役割を果たします。近年の CSS の発展に伴い、疑似要素/疑...

VMware15 の Deepin インストール詳細チュートリアル (画像とテキスト)

序文Deepin のユーザー インターフェイスは、使用時に非常に見栄えがします。インターフェイス効果...

CSV、Excel、SQL ファイルを MySQL にインポートするためのヒント

1. csvファイルをインポートする次のコマンドを使用します。 1.mysql> infile...

ページコンテンツ全体を中央に配置して、高さがコンテンツに合わせて自動的に拡張されるようにする方法

ページコンテンツ全体を中央に配置する方法と、コンテンツに合わせて高さを自動的に拡大縮小する方法。これ...

HTML メタビューポート属性の説明

ビューポートとはモバイル ブラウザは、Web ページを仮想の「ウィンドウ」(ビューポート) に配置し...

MySQL パフォーマンス チューニングについて知っておくべき 15 個の重要な変数 (要約)

序文: MYSQL は最も人気のある WEB バックエンド データベースです。最近、NOSQL がま...

透明な入力ボックスにアイコンを追加する HTML コード

最近、弁護士推薦のウェブサイトを作成していたのですが、検索ボックスに問題がありました。検索ボックス内...

Docker Composeのデプロイと基本的な使い方の詳しい説明

1. Docker Composeの概要Compose は、マルチコンテナ Docker アプリケー...

Windows Server 2019 のセットアップ方法 (画像とテキスト付き)

1. Windows Server 2019 のインストールVmware に Windows Se...