序文: データベースパラダイムについてはよく耳にしていましたが、詳細まで理解したことはありませんでした。一般的なデータベースの本やデータベースのコースでは、パラダイムに関する内容が紹介され、データベースの試験問題にもパラダイムがよく登場します。あなたはそのパラダイムを明確に理解しているでしょうか?この記事では、データベースのパラダイムについて学びましょう。 1. データベースパラダイムの紹介 冗長性が少なく合理的な構造のデータベースを確立するには、データベースを設計する際に特定のルールに従う必要があります。リレーショナル データベースでは、このルールはパラダイムと呼ばれます。パラダイムとは、特定の設計要件を満たす要約です。適切に構造化されたリレーショナル データベースを設計するには、特定のパラダイムを満たす必要があります。 このパラダイムの英語名は Normal Form であり、略して NF と呼ばれます。これは、1970 年代にイギリスの EF Codd がリレーショナル データベース モデルを提案した後にまとめられました。パラダイムはリレーショナル データベース理論の基礎であり、データベース構造を設計するプロセスで従わなければならない規則とガイドラインでもあります。 現在、リレーショナル データベースには、第 1 正規形 (1NF)、第 2 正規形 (2NF)、第 3 正規形 (3NF)、Buss-Codd 正規形 (BCNF)、第 4 正規形 (4NF)、および第 5 正規形 (5NF、完全正規形とも呼ばれる) の 6 つの一般的なパラダイムがあります。最小正規形は第 1 正規形 (1NF) です。より多くの仕様要件を満たす最初の正規形は第 2 正規形 (2NF) と呼ばれ、残りの正規形も同様です。 2. 共通パラダイムの詳細な説明 データベースを設計する際にはパラダイム要件を参照しますが、従うパラダイムのレベルが高ければ高いほど良いというわけではありません。パラダイムが高すぎるとデータ関係の制約は良くなりますが、テーブル間の関係が複雑になり、毎回操作するテーブルが増え、データベースのパフォーマンスが低下します。通常、リレーショナル データベースの設計では、最高レベルは BCNF に従うことであり、3NF が最も一般的です。つまり、一般的には、最初の 3 つのパラダイムで十分です。よく使われる最初の 3 つのパラダイムを詳しく見てみましょう。 第一正規形 (1NF) 最初のパラダイムは最も基本的なパラダイムです。データベース テーブル内のすべてのフィールド値が分解不可能な原子値である場合、データベース テーブルが第 1 正規形を満たしていることを意味します。簡単に言えば、第 1 正規形とは、各行のデータが分離不可能であり、同じ列に複数の値が存在することはできず、重複する属性が出現する場合は新しいエンティティを定義する必要があることを意味します。 例: ある会社が従業員の名前と連絡先の詳細を保存したいとします。次のようなテーブルが作成されます。 2 人の従業員 (Jon と Lester) はそれぞれ 2 つの携帯電話番号を持っているため、会社は上記の表に示すようにそれらを同じテーブルに保存します。すると、テーブルは 1NF に準拠しなくなります。これは、ルールで「テーブルの各属性にはアトミック (単一) な値が必要」とされており、Jon と Lester の従業員の emp_mobile 値がそのルールに違反しているからです。テーブルを 1NF に準拠させるには、次のテーブル データが必要です。 第2正規形 (2NF) 2 番目のパラダイムは、最初のパラダイムよりもさらに一歩進んでいます。 2 番目のパラダイムでは、データベース テーブル内のすべての列が、主キーの一部ではなく主キーに関連付けられていることを確認する必要があります (主に複合主キーの場合)。つまり、データベース テーブルでは、テーブルに保存できるデータは 1 つのタイプのみであり、同じデータベース テーブルに複数のタイプのデータを保存することはできません。 +----------+-------------+--------+ | 従業員 | 部門 | 責任者 | +----------+-------------+--------+ | ジョーンズ | 会計士 | ジョーンズ | | スミス | エンジニアリング | スミス | | ブラウン | 会計 | ジョーンズ | | グリーン | エンジニアリング | スミス | +----------+-------------+--------+ 上記の表は、従業員、作業部門、リーダーの関係を示しています。データベース内のテーブルの行を一意に表すことができるデータを、そのテーブルの主キーと呼びます。テーブルの先頭列は主キーとは関係ありません。したがって、この表は第 2 正規形に準拠していません。上記の表を第 2 正規形に準拠させるには、2 つの表に分割する必要があります。 -- 従業員は主キーです +----------+-------------+ | 従業員 | 部門 | +----------+--------------+ | ブラウン | 会計 | | グリーン | エンジニアリング | | ジョーンズ | 会計 | | スミス | エンジニアリング | +----------+--------------+ -- 部門は主キーです+-------------+-------+ | 部門 | 責任者 | +-------------+--------+ | 会計 | ジョーンズ | | エンジニアリング | スミス | +-------------+--------+ 第3正規形 (3NF) 2NF を満たすという前提の下では、主キー以外のすべてのフィールドは互いに独立している必要があります。つまり、データ テーブル内のデータの各列が主キーに直接関連し、間接的に関連していないことを確認する必要があります。 つまり、第 3 正規形 (3NF) では、リレーションに、他のリレーションにすでに含まれている非主キー情報が含まれていないことが要求されます。たとえば、部門情報テーブルがあり、各部門には部門番号 (dept_id)、部門名、部門プロファイルなどの情報が含まれています。その後、従業員情報テーブルに部門番号をリストした後は、従業員情報テーブルに部門名、部門プロファイル、その他の部門関連情報を追加できなくなります。部門情報テーブルが存在しない場合は、第 3 正規形 (3NF) に従って構築する必要があります。そうしないと、データの冗長性が多くなります。 3. アンチパラダイムについて このパラダイムの利点は明らかです。データの冗長性が大幅に削減され、ストレージ スペースが節約され、データの一貫性が維持されます。正規化されたテーブルは一般にサイズが小さく、メモリに収まりやすいため、操作が高速になります。つまり、すべてのテーブルが 3NF に標準化されている限り、データベース設計は最適になるということですか?必ずしもそうとは限りません。パラダイムが高ければ、テーブルはより細かく分割され、データベースにはより多くのテーブルが必要となり、ユーザーは元々関連のあるデータを複数のテーブルに分散させる必要があります。少し複雑なクエリでは、正規化されたデータベース上で少なくとも 1 つの結合 (場合によってはそれ以上) が必要になることがあります。これはコストがかかるだけでなく、一部のインデックス作成戦略が無効になる可能性もあります。 したがって、データベースを設計する際には、パラダイムの要件に完全に従うことはなく、場合によっては反パラダイムの設計も行います。冗長データまたは重複データを追加してデータベースの読み取りパフォーマンスを向上させ、関連するクエリ中の結合テーブルの数を減らします。 上記はMySQLデータベースパラダイムの詳細な説明です。MySQLデータベースパラダイムの詳細については、123WORDPRESS.COMの他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: Nginx における 2 つの現在の制限方法についての簡単な説明
>>: Docker Tomcat のアクセス インターフェイスが表示されないのはなぜですか?
目次レムフォルクスワーゲンサードパーティのUIフレームワークに適応する結論モバイル開発における最も一...
仮想化とコンテナ化は、クラウドベースのプロジェクトでは避けられない 2 つの問題です。仮想化は純粋な...
以前、プロジェクトを開発しました。バックエンドのインターフェースを書くために Flask フレームワ...
Tomcat の上位バージョンでは、デフォルト モードは NIO モードを使用することになります。...
色のコントラストと調和対照的な状況では、色の相互作用は単一の色によって与えられる感覚とは異なります。...
undefined JavaScript では、値が undefined かどうかを判断したい場合は...
バントリストコンポーネントをスクロールするときに、スクロールバーの位置が保持されます。これは、kee...
1. フローティングとは何ですか?フローティングは、その名の通り、浮遊することを意味します。要素がド...
新しい用途new の機能は、コンストラクターを通じてインスタンス オブジェクトを作成することです。イ...
1. 透明度を変更してテキストを徐々に点滅させると、次のような効果が得られます。 <!DOCT...
最も人気のあるタグはIE8ですブラウザベンダーはバージョンアップデートのリリースに躍起になっている一...
この記事では、ビデオタグを使用してビデオ再生を実装するVueの具体的なコードを参考までに共有します。...
目次概要例なぜそれが必要なのでしょうか?設定参照、反応的計算して見るライフサイクルVue3.0 は ...
前面に書かれたWeibo コンポーネントは、サードパーティのアクセス ユーザーが開発を必要とせずに ...
vsCode のバージョンは最近更新され、現在のバージョン番号は 1.43 です。実際、vsCode...