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

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

推薦する

画像の半透明処理 画像と半透明の背景の実装のアイデアとコード

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

MySQLの文字セット設定を5分で理解しましょう

目次1. コンテンツの概要2. 文字セットと文字順序の概念と関係3. MySQL でサポートされてい...

Mysql マスタースレーブ サービスの実装例を構成する

Mysql マスタースレーブ サービスの実装例を構成する### メインデータベースmy.cnfを構成...

Windows で MySQL 5.6 を 5.7 にアップグレードする方法

前面に書かれたMySQL をアップグレードする方法には、インプレース アップグレードと論理アップグレ...

JavaScript はモーダルボックスのドラッグ効果を実現します

これはモーダル ボックスのドラッグのケースです。ここで実装する関数は次のとおりです。 1. ポップア...

JSは検証コードのランダム生成を実装します

この記事の例では、検証コードのランダム生成を実現するためのJSの具体的なコードを参考までに共有してい...

ウェブデザインにおけるキーワード設計手法の紹介

多くの場合、ホームページを作成するときに、Web ページ ヘッダー属性の設定を無視します。 Web ...

MySQL データベースのバックアップ プロセスに関する注意事項

今日は、データ バックアップに関連するいくつかの点について調べ、MySQL データ バックアップに関...

Vueカスタムツリーコントロールの使い方の詳細な説明

この記事では、Vueカスタムツリーコントロールの使い方を参考までに紹介します。具体的な内容は次のとお...

MySQL データベース 8 - データベース内の関数の適用の詳細な説明

データベースの組み込み関数の使用この記事では、主に日付関数、文字列関数、数学関数など、データベースの...

Vue実戦記録のログインページの実装

目次1. 事前準備1.1 Node.jsをインストールする1.2 webpackをインストールする1...

Linuxの一般ユーザー向けスケジュールタスクの詳細な説明

序文通常のユーザーはcrontabスケジュールタスクを定義します。たとえば、Oracleユーザーはス...

コードレイン効果を実現するJavaScriptキャンバス

この記事では、コードレイン効果を実現するためのキャンバスの具体的なコードを参考までに共有します。具体...

Docker で MySQL マスターとスレーブをデプロイする方法

画像をダウンロードMySQLイメージの選択 docker 検索 mysql MySQL 5.7 イメ...

Mysqlリモート接続構成を実装する2つの方法

Mysqlリモート接続構成を実装する2つの方法会社で働いていると、誰かのコンピュータに保存されている...