ホームページ > データベース > mysql チュートリアル > データベース設計の 3 つのパラダイムを理解する

データベース設計の 3 つのパラダイムを理解する

迷茫
リリース: 2017-03-26 13:34:00
オリジナル
2092 人が閲覧しました

データベース設計パラダイム

パラダイムとは: つまり、データベース設計は、データのストレージ パフォーマンスや開発者によるデータの操作と大きな関係があります。したがって、科学的で標準化されたデータベースを確立するには、データ保存方法を最適化するためのいくつかの

仕様を満たす必要があります。リレーショナル データベースでは、これらの仕様はパラダイムと呼ばれます。

3 つの主要な正規形とは:

第一正規形: リレーショナル スキーマ R のすべての属性をより基本的なデータ単位に分解できない場合、R は第一正規形 (1NF と略される) を満たすと言われます。 。第一正規形を満たすことは、リレーショナル モデルの標準化の最低要件です。そうでない場合、多くの基本的な操作がそのようなリレーショナル モデルに実装されません。

第 2 正規形: 関係パターン R が第 1 正規形を満たし、R のすべての非主属性が R の各候補キー属性に完全に依存する場合、R は第 2 正規形を満たすと言われます。 2NF。

第 3 正規形: R が第 1 正規形の条件を満たす関係パターンであり、X が R の任意の属性セットであるとします。X が R の任意の候補キーワードに非推移的に依存する場合、R は次のようになります。 3NF と略されます。

注:

リレーションシップは基本的に 2 次元のテーブルであり、各行はタプルであり、各列は属性です 3 つの主要なパラダイム

第一正規形

1. 各列の属性は細分化できない属性値であり、各列の原子性が保証されます 2. 2 つの列の属性は近い、または重複するデータが生成されないように、同じ属性を持つ列をマージしてください。

どの州と市を知り、それらを分類する必要がある場合、明らかに最初の表は需要を満たすのが簡単ではなく、最初のパラダイムに準拠していません。

明らかに、最初のテーブル構造では十分な項目の要件を満たすことができないだけでなく、項目が少ない場合に冗長性が生じます。これは最初のパラダイムとも矛盾します。

第 2 正規形

データの各行は、いずれかの列にのみ関連付けることができます。つまり、1 つのデータ行は 1 つのことしか実行できません。データ列でデータの重複が発生した場合は、必ずテーブルを分割する必要があります。

一人の方が同時に複数の部屋を予約すると、1つの注文番号に対して複数のデータが表示され、データの重複が発生します。 。彼を解体すべきだ。このようにして、複雑な関係ロジックを使用せずに、1 つのデータで 1 つのことを実行できます。同時に、テーブルデータの更新と保守が容易になります。

第 3 正規形

データは推移的な関係を持つことはできません。つまり、すべての属性は主キーと間接的な関係ではなく直接的な関係を持つことになります。 a-->b-->c のような属性間の関係は、第 3 正規形に準拠しません。 例えば、Studentテーブル(生徒番号、名前、年齢、性別、学校、学校住所、学校電話番号)

このようなテーブル構造は上記のような関係になります。 学生ID --> 学校 --> (学校の住所、学校の電話番号)

このようなテーブル構造は次のように分解する必要があります。 (学籍番号、名前、年齢、性別、学校)--(学校、学校の住所、学校の電話番号)

最後に:

3 つの主要なパラダイムは、一般的なデータベース設計の基本概念にすぎず、冗長性が低く、合理的な構造のデータベースを構築できます。特別な状況がある場合は、当然、特別に処理する必要があります。データベース設計で最も重要なことは、要求とパフォーマンスです。要求 > パフォーマンス > テーブル構造です。したがって、データベースを構築するためのパラダイムを盲目的に追求することはできません。

以上がデータベース設計の 3 つのパラダイムを理解するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート