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 コンテナ データ ボリュームの名前付きマウントと匿名マウントの問題

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

推薦する

CSS を使用して fullpage.js のフルスクリーン スクロール効果を実装するサンプル コード

最近 CSS を勉強していたとき、 2 つの CSS プロパティだけを使用して全画面スクロール効果を...

jQueryは従業員情報の追加と削除の機能を実装します

この記事では、従業員情報の追加と削除の機能を実装するためのjQueryの具体的なコードを参考までに共...

Vue3はサイドナビゲーションテキストスケルトン効果コンポーネントをカプセル化します

Vue3プロジェクトのカプセル化サイドナビゲーションテキストスケルトン効果コンポーネント-グローバル...

MySQL で distinct メソッドを使用する詳細な例

明確な意味: distinctive は、一意のレコードの数を照会するために使用されます。つまり、d...

MySQLのビューの詳細な説明

ビュー: MySQL のビューはテーブルと多くの類似点があります。ビューも複数のフィールドと複数のレ...

MySQL 8.0.15 バージョンのインストールチュートリアル Navicat.list への接続

落とし穴1. ネット上の多くのチュートリアルでは環境変数を設定するファイル名はmy.iniと書いてあ...

JavaScript 配列の重複排除とフラット化関数の紹介

目次1. 配列の平坦化(配列の次元削減とも呼ばれる)方法1: 削減メソッドを使用する方法2: スタッ...

Windows 7 での MySQL 8.0.18 の導入とインストールのチュートリアル

1. 事前準備 (windows7+mysql-8.0.18-winx64) 1. ダウンロードアド...

データ URI スキームを使用して Web ページに画像を埋め込む方法の紹介

データ URI スキームを使用すると、HTML、CSS、Javascript などで使用できるインラ...

Ubuntu 18.04 は mysql 5.7.23 をインストールします

以前、Ubuntu 16.04 に MySQL をスムーズにインストールしました。今回、Ubuntu...

ffmpeg 中国語パラメータの説明と使用例

1. ffmpeg がビデオ ファイルをプッシュする場合、オーディオとビデオのエンコード形式は H2...

要素を中央に配置するための配置方法 (Web ページ レイアウトのヒント)

ブラウザウィンドウの中央に要素を配置する方法まず、コード ブロックを示します。すでにコードを理解して...

Linux システムの仮想ホストで Swoole Loader 拡張機能を有効にする方法

特記事項: Swoole 拡張機能のみがインストールされ、サーバーはホストにインストールされません。...

CSS3 を使用した背景ぼかし効果の 3 つの例

導入から始めず、いきなり本題に入りましょう。通常の背景ぼかし効果は次のとおりです。 プロパティを使用...

CSS の歪んだ影の実装コード

この記事では、CSS ワープ シャドウの実装コードを紹介し、皆さんと共有します。詳細は以下の通りです...