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

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

推薦する

Reactにおけるコンポーネント通信の詳細な説明

目次親コンポーネントは子コンポーネントと通信します子コンポーネントは親コンポーネントと通信しますコン...

vue router-view のネストされた表示実装

目次1. ルーティング構成2. Vueページのネスト3. ネストされた関係1. ルーティング構成 定...

Vue再帰コンポーネントの簡単な使用例

序文多くの学生は既に再帰に精通していると思います。アルゴリズムの問​​題を解決するために再帰がよく使...

Jenkins を通じて None のイメージを定期的にクリーンアップする方法

序文継続的なコード配信のプロセスで、Jenkins を利用して Docker イメージを作成すると、...

mysql-canal-rabbitmq のインストールと展開の非常に詳細なチュートリアル

目次1.1. MySQL binlog を有効にする1.2. RabbitMQ の交換とキューを構成...

Nodejs でタイムドクローラーを実装する完全な例

目次事件の原因Node Scheduleを使用してスケジュールされたタスクを実装する1. node-...

MySQL の Like の概念と使用法の説明

Like は中国語で「好き」を意味しますが、MySQL データベースに適用される場合、Like は、...

ウェブページの画像最適化ツールと使用方法のヒントの共有

ウェブページの基本要素として、画像はページの読み込み速度に影響を与える重要な要素の 1 つです。画像...

純粋な CSS 流星群の背景サンプルコード

GitHubアドレス、気に入ったらスターを付けてくださいプラグインのプレビューチュートリアルコード表...

SQLインジェクションの詳しい解説 - セキュリティ編(第2部)

この記事に誤りがあったり、ご提案がありましたら、お気軽にご連絡ください。よろしくお願いいたします。は...

MySQL 8.0.12 winx64 詳細なインストールチュートリアル

この記事では、MySQL 8.0.12のインストールチュートリアルを参考までに紹介します。具体的な内...

チェックボックスの選択またはキャンセルを実装するJavaScript

この記事では、すべてのチェックボックスを選択または解除するためのJavaScriptの具体的なコード...

Zabbix カスタム監視 nginx ステータス実装プロセス

目次Zabbix カスタム監視 nginx ステータス1. ステータスインターフェースを開く2. 監...

MySQL Community Server 圧縮パッケージのインストールと設定方法

今日は、MySQL をインストールしたかったので、公式 Web サイトにアクセスして、MySQL の...