MySQL シリーズ データベース設計 3 つのパラダイム チュートリアルの例

MySQL シリーズ データベース設計 3 つのパラダイム チュートリアルの例

1. データベース設計の3つのパラダイムに関する知識の説明

1. デザインパラダイムとは何ですか?

テーブルを設計する際の基礎は、これら 3 つのパラダイムに従って設計されたテーブルにはデータの冗長性がないことにあります。

2. なぜ 3 つのデータベースパラダイムを学ぶ必要があるのでしょうか?

データベース設計パラダイムとは、データベース設計が満たす必要のある仕様です。これらの仕様を満たすデータベースは簡潔で、構造が明確です。同時に、挿入、削除、更新操作で例外は発生しません。それどころか、混乱が生じ、データベース プログラマーに問題を引き起こすだけでなく、見苦しくなり、不要な冗長な情報が大量に保存される可能性があります。

データ アナリストは自分でデータベースを設計する必要はありませんが、3 つのデータベース パラダイムを理解しておくと、後でテーブルを理解するのに役立ちます。

3. 3 つのパラダイムとは何ですか?

1) 第 1 正規形: どのテーブルにも主キーがあり、各フィールドはアトミックかつ分割不可能である必要があります。

ここに画像の説明を挿入

2) 第 2 正規形: 第 1 正規形に基づいており、主キー以外のすべてのフィールドが主キーに完全に依存し、部分的な依存関係が発生しないことが求められます。

ここに画像の説明を挿入

解決策: 多対多、3 つのテーブル、およびリレーションシップ テーブル内の 2 つの外部キー。

ここに画像の説明を挿入

3) 第 3 正規形: 第 2 正規形に基づいて構築され、すべての非主キー フィールドは主キーに直接依存し、推移的な依存関係を生成することはできません。

ここに画像の説明を挿入

解決策: 1 対多、2 つのテーブル、複数のテーブルに外部キーを追加します。

ここに画像の説明を挿入

注: 上記の青色の 2 つの文に注意してください。

注意: 実際の開発では、顧客のニーズを満たすことに主な焦点が置かれ、冗長性よりも実行速度が優先されることがあります。

2. データベーステーブルの古典的な設計スキーム

1対1でデザインするにはどうすればいいですか?

最初の解決策: 主キーの共有

ここに画像の説明を挿入

2番目の解決策: 外部キーの一意性

ここに画像の説明を挿入

注: 一意の外部キーの状況は、上で説明した多対多の状況に少し似ています。外部キーフィールドが
一意の制限の後は、1対1になります。

上記は、MySQL シリーズのデータ​​ベース設計の 3 つのパラダイムのチュートリアル例の詳細な内容です。MySQL データベース設計の 3 つのパラダイムの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • MySQLデータベースパラダイムの詳細な説明
  • MySQL データベース設計 3 つのパラダイム例分析
  • MySQL データベースのデータ テーブルの最適化、外部キーの分析、3 つのパラダイムの使用
  • MySQLデータベース正規化設計理論のまとめ

<<:  HTML の入力の readonly 属性と disabled 属性の違いについて簡単に説明します。

>>:  DockerコンテナにRedisをデプロイする手順の紹介

推薦する

Nginx の break と last の違いの詳細な分析

まずは違いについて話しましょう最後に、書き換えられたルールは、次の場所と一致させるために書き換えられ...

JS の精度外数値問題の解決

精度の問題に対する最もわかりやすい説明たとえば、1÷3=0.33333333...という数字は、3が...

MySQLの主キーとユニークキーの重複挿入の解決策の詳細な説明

目次解決: 1. 無視する2. 交換する3. 重複キーの更新についてデータを挿入するときに、重複した...

Linux CDの意味と使い方

Linux CD とはどういう意味ですか? Linux では、cd はディレクトリの変更を意味します...

一般的なSQL削除ステートメントの原則の違いを理解するだけです

この記事では主に、SQL 削除ステートメント DROP、TRUNCATE、および DELETE の違...

React Hooksの使用例

目次簡単なコンポーネントの例より複雑な親子コンポーネントのケースオンセレクトの書き方反応する子供Re...

mysql-connector-java.jar パッケージのダウンロード プロセスの詳細な説明

mysql-connector-java.jar パッケージのチュートリアルをダウンロードします: ...

js を使用して過去 1 週間、1 か月、3 か月の時間を取得する簡単な例

目次過去1週間の時間を取得する過去1か月の時間を取得する過去3か月分を取得新しい Date() と ...

Windows での MySQL 8.0.18 インストール チュートリアル (図解)

ダウンロードダウンロードアドレス: https://dev.mysql.com/downloads/...

MySQL で誕生日から年齢を計算する複数の方法

以前はMySQLをあまり使用していなかったため、MySQLの機能にあまり詳しくありませんでした。この...

js 正確な計算

var numA = 0.1; var numB = 0.2; アラート(numA + numB)...

MySQL ログトリガー実装コード

SQL文 ドロップトリガー もし sys_menu_edit が存在します。 各行のsys_menu...

ウェブデザインに必須のツール: Firefox Web Developer プラグイン CSS ツールセットのチュートリアル

プラグインは Firefox ブラウザにインストールされます。 Web Developer プラグイ...

大量のデータをMySQLにインポートする際に発生する問題と解決策の分析

プロジェクトでは、SQL を使用してデータ分析を実行するために、大量のデータをデータベースにインポー...

Hyper-v仮想マシンを使用してCentos7をインストールする

目次導入準備するシステムイメージをダウンロードHyper-Vを有効にする新しい仮想ネットワークスイッ...