MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
データベース - 正規化のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
データベース - 正規化
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == データベースの正規化とは、データを扱いやすくするために行うデータベース設計の理論である。<br> <br> 1データ1箇所の原則を実現するため、1970年にE.F.Codd氏がリレーショナルモデルの理論として提案された。<br> 正規化の理論は、データの冗長性を排除し、更新時の整合性を維持しやすくすることを目指している。<br> <br> データベースは常にレコードが追加、更新、削除されている。<br> もし、正規化を適切に行っていない場合は、データベースのレコード間で矛盾が発生して、データベースとして役割を果たさない。<br> <br> データベースの正規化の目的は、データの重複や不要な依存関係を排除することである。<br> これにより、データの整合性を維持できるようになる。<br> <br><br> == 関数従属 == ==== 関数従属とは ==== ある属性Aの値が決まると他の属性Bの値が一意に決まる時、<u>属性Bは、属性Aに関数従属である (A -> B)</u> という。<br> <br> ==== 完全従属 ==== 完全従属とは、2つの属性A、Bの間でA -> Bが成立して、Aが複数の属性の集合で成り立っている場合、属性Aのいかなる部分集合も関数従属が成立しない状態を表す。<br> <br> ==== 部分従属 ==== 部分従属とは、関数従属が成立しているが、完全従属ではない状態を表す。<br> <br> ==== 推移従属 ==== 推移従属とは、エンティティの3つの属性A、B、Cにおいて、<u>A -> B、 B ≠ A、 B -> Cである</u>時、 A -> Cが得られ、既存の関数従属から新たな関数従属が得られる状態を表す。<br> <br><br> == 正規化の手順 == 正規化は、データの一元管理を行うために、データベース設計で行うべき理論である。<br> 一般的には、第3正規化までを実施すればよいと云われているが、理論に当てはまる場合には第5正規化まで行う必要がある。<br> <br> <center>図. 正規化の手順</center><br> <br><br> == 非正規形 === ==== 非正規形とは ==== 現実の世界では、データは属性の集合として存在している。<br> <br> 例えば、注文伝票や納品伝票等の形で存在しているデータは、属性の集合ということができる。<br> <br> 一般的に、これらの属性は正規化されていないため、<u>非正規形</u>と呼ぶ。<br> <br> ==== 導出属性 ==== 導出属性は、正規化の作業を行う場合、取り除くのが原則である。<br> <br> ただし、実際の設計では、管理項目を上流工程で削除する場合、元々管理されていた属性を失い、後で復旧することは困難となる。<br> そこで、導出属性である旨を明記した上でER図に記述する。<br> <br> この非正規形のデータ集合を表の形に成形する。<br> <br> <center>図. 非正規形のデータ集合を表の形に成形</center><br> <br> 表の形に成形する場合、表の定義として以下に示す2点に注意する。<br> * 表を定義する列は、1列につき1つのみとする。 * 表の各行を特定できるキー列(一意識別子)を考える。 <br> 下図に、非正規形のデータを表の形に成形している。<br> <center>表として成形</center><br> <br><br> __FORCETOC__ [[カテゴリ:SQL_Server]][[カテゴリ:MySQL]]
データベース - 正規化
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse