基本情報技術者試験対策 70 データベース(正規化)

spica inc
11 Sept 201906:51

Summary

TLDRこのビデオスクリプトでは、データベースの設計における正規化の重要性について解説しています。正規化は、データの重複や矛盾を避け、整合性を保つためのプロセスであり、第1正規化、第2正規化、第3正規化という段階を経て行われます。具体的には、繰り返しのデータを別のテーブルに移動させたり、部分関数従属している列を別テーブルに分割するなどの作業を通じて、より効率的で理解しやすいデータベース構造を実現します。このプロセスは、実際の伝票や帳票などをデータベースで扱える形に変換する際に特に重要となります。

Takeaways

  • 📊 データベースの正規化は、テーブル設計時にデータの重複や矛盾を避ける工夫です。
  • 🔍 正規化には第1正規化と第2正規化、そしてさらに高度な正規化が存在します。
  • 🎯 第1正規化では、テーブル内でのデータの繰り返しを解消し、別のレコードに分割します。
  • 🔄 第2正規化では、複合キーに部分関数従属する列を別テーブルに移動します。
  • 🔢 関数従属とは、あるレコード值が決まると、他の値が一意に決まる関係を指します。
  • 📌 複合キーは、複数の項目組み合わせでレコードを一意に決定します。
  • 📈 部分関数従属では、複合キーの一部が決まれば特定の列の値が決まる関係です。
  • 🌟 第3正規化では、関数従属以外の列で他の列が決まる場合、それらを別テーブルに取り出します。
  • 📋 例として説明された売上伝票のデータベース設計では、伝票のデータをデータ化し、正規化プロセスを経て最終的に複数のテーブルに分割されます。
  • 🔎 データベースの正規化は、データの整合性と効率的な管理を向上させるために非常に重要なプロセスです。

Q & A

  • データベースの正規化とは何ですか?

    -データベースの正規化とは、テーブルを設計する際にデータに重複や矛盾が生じないよう、テーブルを設計することです。

  • 第1正規化とは何ですか?

    -第1正規化は、データの繰り返しの部分を切り離して別のレコードに分割する作業です。

  • 第二正規化の目的は何ですか?

    -第二正規化の目的是、部分関数従属している列を別テーブルに分割することです。

  • 関数従属とは何ですか?

    -関数従属とは、テーブルのレコードである値xが決まると、その他の値が一意に決まる場合、その値をxに関数従属しているといいます。

  • 複合キーとは何ですか?

    -複合キーとは、複数の項目を組み合わせてレコードを一意に決定するキーのことです。

  • 部分関数従属とは何ですか?

    -部分関数従属とは、テーブルの複合キーの一部が決まれば特定の列の値が決まる関係のことです。

  • 第3正規化はどのような作業を指しますか?

    -第3正規化は、複合キー以外の列で関数従属しているデータを別テーブルに取り出す作業です。

  • データベースの正規化の利点は何ですか?

    -データベースの正規化の利点は、データの重複や矛盾を減らし、データの統一性を高め、効率的なデータ管理を行うことです。

  • データ化された伝票データをどのように分割するのですか?

    -データ化された伝票データを、第1正規化で繰り返しのある部分を分割し、第2正規化で部分関数従属している列を別テーブルに移動します。

  • 商品コードが決まると決まらないものは何ですか?

    -商品コードが決まると決まらないものは、数量です。商品コードが決っても数量は決まらない関係ですので、別テーブルに分割されません。

  • 顧客コードと顧客名が関数従属している理由は何ですか?

    -顧客コードが決まると顧客名も一意に確定される関係があるため、顧客コードと顧客名は関数従属しているとされています。

Outlines

00:00

📊 データベースの正規化とそのプロセス

データベースの正規化は、テーブル設計時にデータの重複や矛盾を避けるためのプロセスです。このプロセスは第1正規化と第2正規化の2つのステップで行われます。第1正規化では、データの繰り返しを別レコードに移動して重複を解消し、第2正規化では、部分関数従属する列を別テーブルに分割します。このプロセスは、売上伝票からデータベースを作成する例で説明されており、伝票をテーブルに変換することで、データの整合性を高めます。

05:01

🔄 第2正規化と関数従属の詳細

第2正規化では、複合キーの一部が決まれば特定の列の値が決まる「部分関数従属」を解決するために、テーブルを分割します。このプロセスは、顧客名や商品名、単価などの情報を別テーブルに移動することで、データの正規化を進めます。また、数量は商品コードに部分関数従属していないため、分割されません。このように、第1正規化から第2正規化を終えると、元の1つのテーブルが複数のテーブルに分割され、データの整合性と効率性が向上します。

Mindmap

Keywords

💡データベースの正規化

データベースの正規化は、データの重複や矛盾を避けるためにテーブルを設計する際に適用される一連のルールです。このプロセスは、データの整合性を高め、効率的なデータ管理を実現するために重要です。ビデオスクリプトでは、正規化のプロセスとその目的について説明されており、第1正規化から第3正規化までステップバイステップで解説されています。

💡テーブル

テーブルは、データベースにおいてデータを整理し、格納するための構造です。各テーブルは、関連するデータを行と列の形式で保持し、これによりデータの検索や管理が容易になります。スクリプトでは、売上伝票をテーブルに変換し、正規化プロセスを通じてデータ構造を最適化する手順が説明されています。

💡伝票

伝票は、企業や個人が取引を記録するために使用される書類です。データベースの文脈では、実際の取引を記録した伝票をデータベースのテーブルに変換し、効率的なデータ管理を行うことが重要です。スクリプトでは、売上伝票をデータベースに変換するプロセスが詳細に説明されています。

💡関数従属

関数従属は、データベース設計において、ある属性が他の属性の値によって決まる関係を指します。この概念は、データの整合性を保ち、冗長を減らすために重要な役割を果たします。スクリプトでは、商品コードが決まると商品名も決まるような関数従属の例が説明されています。

💡複合キー

複合キーは、データベースのテーブルにおいて、2つ以上のカラムを組み合わせて一意に識別するキーです。このキーは、データの一意性を保証し、重複を避けるために使用されます。スクリプトでは、伝票番号と商品コードが複合キーとなり、特定のレコードを一意に識別する例が説明されています。

💡部分関数従属

部分関数従属は、データベース設計において、複合キーの一部が決まると特定の列の値が決まるという関係を指します。この概念は、データベースの正規化プロセスにおいて、不要なデータの繰り返しを減らすために使用されます。スクリプトでは、伝票番号と商品コードが複合キーとして、日付や顧客名などの他の属性値を決定する例が説明されています。

💡第一正規化

第一正規化(1NF)は、データベースの正規化プロセスの最初の段階であり、データの繰り返しを避けることを目的としています。1NFに達成するためには、各レコードが原子値を持つ必要があります。つまり、レコード内のどのデータもさらに分割できない最小単位である必要があります。スクリプトでは、売上伝票のデータを原子値に変換し、繰り返しを別のテーブルに分割することで、第一正規化が達成されています。

💡第二正規化

第二正規化(2NF)は、第一正規化に基づいて、部分関数従属を排除することを目的としています。2NFに達成するためには、テーブル内の全ての非キー属性がキーに関数従属している必要があります。つまり、複合キーの一部だけが決まっても、他の属性の値が決まるような関係を解消し、データの正規化を進めることで、データの整合性を高めます。スクリプトでは、伝票番号と商品コードの複合キーに部分関数従属していた属性を別テーブルに移動することで、第二正規化が達成されています。

💡第三正規化

第三正規化(3NF)は、データベースの正規化プロセスの次の段階であり、関数従属を排除することを目的としています。3NFに達成するためには、テーブル内の全ての属性が直接的な関数従属関係にある必要があります。つまり、テーブル内のどの属性も他のテーブルのキーに関数従属してはいけません。スクリプトでは、顧客コードと顧客名の関数従属関係を解消し、顧客コードを別のテーブルに移動することで、第三正規化が達成されています。

💡伝票番号

伝票番号は、データベースのテーブルにおいて、各取引やレコードを一意に識別するための識別子です。この番号は、データの整合性を保ち、特定の取引を追跡するために使用されます。スクリプトでは、伝票番号が複合キーの一部として機能し、特定のレコードを特定する役割を果たしています。

💡商品コード

商品コードは、データベースのテーブルにおいて、商品を一意に識別するための識別子です。このコードは、商品の属性や取引に関する情報を整理し、効率的なデータ管理を可能にします。スクリプトでは、商品コードが複合キーの一部として機能し、商品に関する情報を特定する役割を果たしています。

Highlights

データベースの正規化は、テーブル設計時にデータの重複や矛盾を避けるためのプロセスです。

正規化には第1正規化と第2正規化、さらに第3正規化が存在します。

第1正規化では、テーブル設計において重要な作業が行われます。

伝票をテーブルに変換するイメージがデータベース設計において重要です。

関数従属とは、ある値が決まると他の値が一意に決まる関係を指します。

商品コードが決まると商品名が決まる関係は関数従属の例です。

複数の項目の組み合わせでレコードが一意に決まる場合、これは複合キーと呼ばれます。

部分関数従属は、複合キーの一部が決まれば特定の列の値が決まる関係を指します。

伝票ナンバーと商品コードが複合キーとなり、それらが決まればテーブルの特定のレコードが特定されます。

第一正規化では、データの繰り返しの部分を切り離して別のレコードに分割します。

第二正規化では、部分関数従属している列を別テーブルに分割します。

第三正規化では、関数従属以外の列で関数従属している値を別テーブルに取り出します。

データ化された伝票データからデータベースを作成する際のプロセスが説明されています。

伝票データの3つのレコードが、第一正規化により6つのレコードに分割されるプロセスが解説されています。

第二正規化により、1つのテーブルが合計3つのテーブルに分割されるプロセスが説明されています。

第三正規化により、顧客コードと顧客名を別テーブルに取り出すプロセスが解説されています。

データベースの正規化プロセスが、元の1つのテーブルを最終的に4つのテーブルに分割することを示しています。

Transcripts

play00:00

[音楽]

play00:01

aname

play00:03

データベースの正規化とはテーブルを設計する際にデータに重複や矛盾が生じないよう

play00:09

にテーブルを設計することです

play00:14

正規化には第1世紀か第二須恵器科大産正規化があり

play00:21

第1世紀日より順番に行います

play00:25

テーブルを設計する際にはとても大切な作業となります

play00:32

テキストでは伝票をテーブルに変換するイメージがあります

play00:38

このようにデータベースでは実際にある伝票や帳票などのデータや実在するデータを

play00:45

テーブルに変換をしてデータベースの処理を行います

play00:50

関数従属とはテーブルのレコードである値 x が決まるとその他の値はいがー

play00:58

一意に決まる場合 by は x に関数従属しているといいます

play01:05

テキストの例では商品コードが決まると商品名も決まる関係です

play01:12

また右側の例はクラスと出席番号が決まれば指名が決まるような関係です

play01:21

このように複数の項目の組み合わせでそのレコードが一意に決まる場合もあります

play01:30

この場合の複数のから部を含む大きいと呼びます

play01:35

この例でバークラスと出席番号が複合キーとなります

play01:46

部分関数従属とはテーブルの複合キーの一部が決まれば特定の列の値が決まる関係です

play01:56

テキストの例では伝票ナンバーと商品コードが複合キーとなります

play02:03

伝票ナンバーと商品コードが決まればテーブルの1位のレコードが特定されます

play02:11

ここで注意するのば顧客コードは含む大きいではないことです

play02:17

この複合キーである伝票ナンバーか商品コードの一部が決まれば他の項目の日付

play02:24

顧客名商品名などが決まる関係が

play02:28

部分関数従属です

play02:31

例えば伝票ナンバーの1060が決まれば日付が7月15日で顧客コードが

play02:40

1080子曲名が株式会社マルマルだと決まります

play02:47

同様に商品コードが1542と決まればその商品名は鉛筆

play02:54

単価は120円と決まります

play03:02

ではデータベースの正規化について見ていきます

play03:07

テキストの例のように3枚の売上伝票があります

play03:13

このような形式の伝票からデータベースを作成するケースで見ていきます

play03:19

まず伝票のデータをそのままデータ化するとテキストのように3つのレコードとなり

play03:26

ます

play03:28

このレコードがーそれぞれのデータの長さが違っています

play03:34

また各レコードでは商品コード商品名数量単価が一つのセットとなってレコードの中で

play03:44

繰り返されています

play03:47

第1世紀かレバーこの繰り返しの部分をなくして別のレコードに移してやります

play03:59

リストのように第一正規化を行うと繰り返しの部分を別のレコードに移すので

play04:06

1レコード目の伝票ナンバー10号鉢のレコードは3つのレコードに分割されます

play04:14

こうして第1正規化を行うと全部で3レコードだったテーブルが6レコードのテーブル

play04:21

になります

play04:24

このように第一正規化はデータの繰り返しの部分を切り離して別のレコードに分割する

play04:30

作業です

play04:37

第二正規化は部分中属している列を別テーブルに分割する作業です

play04:45

テキストの例でバー伝票ナンバーと商品コードが複合キーとなっています

play04:53

この服もうキーの部分関数従属している部分を別テーブルに分割します

play05:00

まず日付顧客コート

play05:03

顧客名バー複合キーの伝票ナンバーに部分従属しているので別テーブルに分割します

play05:12

同様に商品コードに部分関数従属されている商品名単価も別テーブルに分割します

play05:21

ここで注意するのば数量は商品コードには

play05:25

部分関数従属していないので別テーブルには分割されません

play05:32

すなわち商品コードが決まっても数量は決まらない関係だからです

play05:39

数量わー伝票ナンバーと商品コードの複合キーによって初めて確定されます

play05:47

第二正規化をすることで1つのテーブルが合計で3つのテーブルに分割されました

play05:59

第3世紀カバー資金や複合機以外の列で関数従属している熱を別テーブルに取り出す

play06:07

作業です

play06:10

例では顧客コードと顧客名は関数従属しているので顧客コードと500名を別テーブル

play06:18

に取り出します

play06:21

これは顧客コードが決まれば顧客名も1位に確定される関係だからです

play06:33

このように第1世紀日から第2世紀か

play06:37

大賛成期間を終えると元の一つのテーブルはテキストのように四つのテーブルに分割さ

play06:44

れました

Rate This

5.0 / 5 (0 votes)

Related Tags
データベース正規化伝票データ繰り返し複合キー部分関数従属第一正規化第二正規化第三正規化データ構造
Do you need a summary in English?