検索
ホームページデータベースmysql チュートリアル正規化プロセスはデータベースの論理構造において主に何を扱うのでしょうか?

正規化プロセスは主に、データベースの論理構造における挿入異常、削除異常、および高度な冗長性の欠陥を克服することを目的としています。データベースの正規化により、データベース設計者は組織内の現在のデータ構造をより深く理解できるようになり、最終的には一連のデータ エンティティが得られます。データベースの標準化により、データベース テーブルの設計を通じてデータベースの冗長性を効果的に削減できます。

正規化プロセスはデータベースの論理構造において主に何を扱うのでしょうか?

#データベース正規化プロセス

リレーショナル データベースの標準化は、単に標準化です。

標準化の必要性:

プロジェクトのニーズに応じて、対応するデータベース テーブルを作成してデータを完成させます。ストレージのプロジェクト。これはプロジェクトを遂行するための固定プロセスとなっていますが、実際にビジネス ニーズに対応し始めると、テーブルの設定に無理があることがわかり、データの格納の繰り返し、挿入例外、削除例外、更新例外などの問題が発生します。このとき、テーブルを再計画する必要がありますが、時間、労力、財源の無駄であり、非常に不経済ですので、標準化が非常に必要ですので、今日はテーブルを標準化する方法を教えます。

標準化されたデータベース手法を教える前に、まず知識を紹介しましょう:

重要な知識ポイント関数の依存関係

##関数の依存関係の定義:

R(U) が属性セットのサブセット、X と Y が U のサブセットであると仮定します。 R(U) 上の考えられる関係 r について、X 上の属性値が等しくても Y 上の属性値が等しくない 2 つのタプルが r 内に存在し得ない場合、X 関数は次のことを決定するといいます。 Y または Y が X に機能的に依存している場合、X->Y と表されます。

定義は少しわかりにくいかもしれません。ここで簡単に説明します: 関数の依存関係は、2 つのコレクション間のマッピング関係を表します。このマッピング関係は関数と同じです。たとえば、y = x^2、ここで x の場合、1 つの x は 1 つの y 値に対応しますが、1 つの x が複数の y 値に対応する状況は存在しないため、y 関数は x に依存すると言えます。 y については、1 つの y 値が複数の x 値に対応する状況が存在するため、x は機能的に y に依存しません。これが関数依存です。

次に、いくつかの特別な関数の依存関係を紹介します。

完全な関数の依存関係

定義:

If X-> ;Y,そして、X の適切なサブセット X' が存在しない場合、X'->Y の場合、X->Y の関数依存は完全な関数依存に属すると言います。

簡単な説明: 関数 z = x y、z の場合: z 関数は x と y に依存しますが、z は x のみにも y にものみ依存しません。つまり、z 関数は x 間のこの依存関係に依存します。そして y は完全な関数依存です。

部分的な関数の依存関係:

定義:

X->Y であるが、Y が X に完全に依存していない場合、この依存関係は次のようになります。部分的完全依存の場合に呼び出されます。つまり、関数 z = x 0y は とみなすことができます。つまり、z 関数は x と y に依存しますが、z は x のみに依存します。この場合、これは部分関数依存です。

推移関数の依存関係:

定義:

X->Y、Y ->Z で、真でない場合、Y-> ; X も真ではありません。この場合、Z 伝達関数は X に依存すると言えます。

これは比較的単純です。関数グループ z = x^2, x = 2y は、z = 4y ^2 に簡略化できます。簡単にわかります。z は x に依存する関数であり、x は x に依存します。 y で z ->x が成り立たない場合、これは伝達関数の依存関係です。

重要な知識ポイント 2-----キー

候補キー

: 属性 (フィールド) または属性グループ (複数のフィールド) は、リレーショナル スキーマ (テーブル) 内の他の属性 (フィールド) によって完全に決定できます。つまり、他の属性 (フィールド) は、この属性 (フィールド) または属性グループ (複数のフィールド) に完全に依存します。

主キー

: 候補キーが複数ある場合は、そのうちの 1 つを主キーとして選択します。リレーションシップ スキーマ (テーブル) の各タプル (行) で主キーとして選択された属性または属性グループの値は繰り返すことができず、値は null です。

主属性

: 候補キーの属性は主属性と呼ばれます。候補キーが複数の属性で構成されている場合、これらの属性グループの各属性がプライマリ属性になります。

非プライマリ属性

: どのキーにも含まれていない属性は、非プライマリ属性と呼ばれます。

外部キー

: 属性または属性グループは、現在のリレーショナル スキーマ (テーブル) の主キーではありませんが、別のリレーショナル スキーマ (テーブル) の主キーとして機能します。または属性グループは外部キーと呼ばれます。プロパティ グループは外部キーです。 上記の基本的な知識ポイントを紹介した後、データベース テーブルの標準化プロセスを学び始めましょう:

テーブルを標準化したい場合は、まずテーブルが標準化されているかどうかを測定するための標準が必要です。標準化された。この標準は----

パラダイムです。

6 つのパラダイムがあります: 第 1 正規形 (1NF)、第 2 正規形 (2NF)、第 3 正規形 (3NF)、BC 正規形 (BCNF)、第 4 正規形 (4NF)、および第 5 正規形 (5NF) 。

上記の 6 つのパラダイムでは、通常の状況ではテーブルを BCNF に標準化する必要がありますが、これは完璧ですが、実際のプロジェクトでは 3NF に到達するだけで十分です。

次に、最初の 4 つのパラダイムに焦点を当てます。

最初のパラダイム: リレーショナル モデル R のすべての属性は、分離できないデータ項目です。

簡単に言えば、テーブルを作成できさえすれば、そのテーブルはすでに第一正規形を満たしています。たとえば、student テーブル (student_id、course_id、student_name、age、sex、grade、sdept、sdept_director) このテーブルでは、成績項目が Student_id、course_id によって共同で決定されることは明らかなので、これら 2 つの項目を組み合わせる必要があります。主キーとして。

第 2 正規形: 第 1 正規形を満たすことに基づいて、非主属性を満たすかどうかは R の主キーに完全に依存します。

これには、前のコンテンツを使用して、非主属性が主キーに完全に依存しているかどうかを判断する必要があります。満足しないと重くなるよ テーブルの構造を変更します。たとえば、学生テーブル (student_id、course_id、student_name、年齢、性別、成績、sdept_id、sdept_director) は、student_id と course_id の組み合わせを主キーとして使用しますが、名前、年齢、性別などの他の属性については、属性student_idに依存しているため、主キーとしてstudent_idとcourse_idに部分的に依存しています。これは第 2 正規形の定義を満たしていないため、成績を取り出して、この大きなテーブルを次の 2 つの小さなテーブルに分割する必要があります:student(student_id, name, age, sex, sdept_id, sdept_director)、student_score(student_id, course_id , Grade);

第 3 正規形: 第 2 正規形が満たされる場合、推移的な依存関係を削除します。

例: 学生テーブル (student_id、student_name、年齢、性別、sdept、sdept_director)、明らかに各専攻によって専門ディレクターが決定されるため、sdept_director の転送は Student_id に依存するため、分割する必要があります。テーブル Student (student_id、student_name、age、sex) と sdept (sdept_id、sdept_name、sdept_director) は、第 3 正規形を満たします。

BC パラダイム: 3 番目のパラダイムを満たす場合、さらに 3 つのポイントを満たす必要があります:

1. すべての主要な属性は他の属性に完全に依存しており、それ自身の属性が含まれています。候補キー;
2. すべての非プライマリ属性は各候補キーに完全に依存します;
3. 機能的に 1 つのグループに完全に依存する属性はありません。主な属性。

前の 3 つのパラダイムはすべて、非プライマリ属性にさまざまな制約を課します。BC パラダイムはそれらに基づいており、プライマリ属性間の部分的な依存関係を解決するためにプライマリ属性を制約します。主属性が非主属性に完全に依存しているのは問題ありません。 私たちの学生テーブルstudent (student_id、student_name、年齢、性別)、主キーはstudent_idなので、主な属性はstudent_idです。学生の名前が繰り返される可能性があるため、明らかに最初の2つは満たされており、student_id間に機能的な依存関係はありません。とstudent_name の関係があるため、student テーブルは BC 標準形式を満たします。

上記はデータベースの正規化プロセスです。

関連する推奨事項: 「mysql チュートリアル

以上が正規化プロセスはデータベースの論理構造において主に何を扱うのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
MySQL:初心者が習得するための必須スキルMySQL:初心者が習得するための必須スキルApr 18, 2025 am 12:24 AM

MySQLは、初心者がデータベーススキルを学ぶのに適しています。 1.MySQLサーバーとクライアントツールをインストールします。 2。selectなどの基本的なSQLクエリを理解します。 3。マスターデータ操作:テーブルを作成し、データを挿入、更新、削除します。 4.高度なスキルを学ぶ:サブクエリとウィンドウの関数。 5。デバッグと最適化:構文を確認し、インデックスを使用し、選択*を避け、制限を使用します。

MySQL:構造化データとリレーショナルデータベースMySQL:構造化データとリレーショナルデータベースApr 18, 2025 am 12:22 AM

MySQLは、テーブル構造とSQLクエリを介して構造化されたデータを効率的に管理し、外部キーを介してテーブル間関係を実装します。 1.テーブルを作成するときにデータ形式と入力を定義します。 2。外部キーを使用して、テーブル間の関係を確立します。 3。インデックス作成とクエリの最適化により、パフォーマンスを改善します。 4.データベースを定期的にバックアップおよび監視して、データのセキュリティとパフォーマンスの最適化を確保します。

MySQL:説明されている主要な機能と機能MySQL:説明されている主要な機能と機能Apr 18, 2025 am 12:17 AM

MySQLは、Web開発で広く使用されているオープンソースリレーショナルデータベース管理システムです。その重要な機能には、次のものが含まれます。1。さまざまなシナリオに適したInnodbやMyisamなどの複数のストレージエンジンをサポートします。 2。ロードバランスとデータバックアップを容易にするために、マスタースレーブレプリケーション機能を提供します。 3.クエリの最適化とインデックスの使用により、クエリ効率を改善します。

SQLの目的:MySQLデータベースとの対話SQLの目的:MySQLデータベースとの対話Apr 18, 2025 am 12:12 AM

SQLは、MySQLデータベースと対話して、データの追加、削除、変更、検査、データベース設計を実現するために使用されます。 1)SQLは、ステートメントの選択、挿入、更新、削除を介してデータ操作を実行します。 2)データベースの設計と管理に作成、変更、ドロップステートメントを使用します。 3)複雑なクエリとデータ分析は、ビジネス上の意思決定効率を改善するためにSQLを通じて実装されます。

初心者向けのMySQL:データベース管理を開始します初心者向けのMySQL:データベース管理を開始しますApr 18, 2025 am 12:10 AM

MySQLの基本操作には、データベース、テーブルの作成、およびSQLを使用してデータのCRUD操作を実行することが含まれます。 1.データベースの作成:createdatabasemy_first_db; 2。テーブルの作成:createTableBooks(idintauto_incrementprimarykey、titlevarchary(100)notnull、authorvarchar(100)notnull、published_yearint); 3.データの挿入:InsertIntoBooks(タイトル、著者、公開_year)VA

MySQLの役割:WebアプリケーションのデータベースMySQLの役割:WebアプリケーションのデータベースApr 17, 2025 am 12:23 AM

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

MySQL:最初のデータベースを構築しますMySQL:最初のデータベースを構築しますApr 17, 2025 am 12:22 AM

MySQLデータベースを構築する手順には次のものがあります。1。データベースとテーブルの作成、2。データの挿入、および3。クエリを実行します。まず、createdAtabaseおよびcreateTableステートメントを使用してデータベースとテーブルを作成し、InsertINTOステートメントを使用してデータを挿入し、最後にSelectステートメントを使用してデータを照会します。

MySQL:データストレージに対する初心者向けのアプローチMySQL:データストレージに対する初心者向けのアプローチApr 17, 2025 am 12:21 AM

MySQLは、使いやすく強力であるため、初心者に適しています。 1.MYSQLはリレーショナルデータベースであり、CRUD操作にSQLを使用します。 2。インストールは簡単で、ルートユーザーのパスワードを構成する必要があります。 3.挿入、更新、削除、および選択してデータ操作を実行します。 4. Orderby、Where and Joinは複雑なクエリに使用できます。 5.デバッグでは、構文をチェックし、説明を使用してクエリを分析する必要があります。 6.最適化の提案には、インデックスの使用、適切なデータ型の選択、優れたプログラミング習慣が含まれます。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)