2020-02-03今回はデータベースの正規化について解説をします。データベースの正規化はデータベースを扱う中で、重要な基礎になりますのでぜひご利用してください。第3正規形まとめ初心者は"マンガでわかるデータベース"でわかりやすく!脱初心者は"SQLゼロからはじめるデータベース操作"で基本をしっかりデータベースの正規化とは今回はデータベースの正規化について解説します。正規化とは簡単にいうと「効率よくデータを扱うために整理すること」です。データを管理する方法はいくつかありますが、世の中で使用されているものは、行(ダブル、レコード)、列(カラム、属性)で主に関係を表現します。こちらは関係データベース(リレーショナルデータベース)といわれています。冗長なデータがあると、ディスク領域が浪費され保守上の問題点が生じます。複数の場所に存在するデータの変更が必要な場合、すべての場所でそれらのデータが同一になるように変更するよう必要があります。データベースの正規化にはいくつかの規則があります。それぞれの規則は"正規型"と呼ばれます。最初の規則に従っているデータベースは"第1正規型"です。最初の3つの規則に従っているデータベースは"第3正規型"です。ほとんどのアプリケーションでは、第3正規型が最も高いレベルとみなされています。非正規系とは繰り返し項目を含むテーブルのことです。OracleなどのRDBで繰り返し項目を含むテーブルを作ることは不可能なので、テーブルは基本的に第1正規系化された状態から始まると思ってください。正規化の最大の目的はDB上で扱うデータの重複を排除し、「矛盾」の発生を防ぎます。「矛盾」とは、例えば組織に所属する社員を管理するテーブルがあるとします。塩見ここで異動が発生して、営業部の部長が「菊山」に代わります。代わった段階で営業部の部長名を全て「菊山」に更新しないと「矛盾」が生じます。塩見この場合営業部の部長は更新ミスにより、異なる人物となっており矛盾が生じています。データベースにおいてこのような矛盾は起こりやすいです。これがデータの重複です。正規化を行うことでこのようなデータの重複を排除し、矛盾が生じないテーブル設計を行うことができます。非正規形まったく正規化されてない状態であり、繰り返し項目が存在する状態を非正規形と呼びます。これから以下の例を用いて第3正規形までの正規化のプロセスを説明します。第1正規形の条件はテーブルで表現できる形になっていることです。1つのカラムに1つの値のみ設定されている状態のことです。テーブルという形で表現できていれば、第1正規系の条件は満たしているという理解で大丈夫です。コンピューターの関係データベースにおける関係の2つの属性集合間で、一方の属性集合の値がもう一方の属性集合の値を関数的に決定するという制約です。第2正規形の条件は、テーブルの全ての候補キーにおいて部分関数従属性が存在しないことです。以下の表では部分関数従属性をなくすため、「発注」と「商品」を別のテーブルに切り出しています。キーの一部に関数従属している状態を部分関数従属といいます。第3正規形の条件は、テーブル内の非キー→非キー属性の関数従属、つまり推移関数従属性が存在しないことです。消しゴムまとめ今回はデータベースの正規化について解説しました。これからデータベースについて本格的に勉強を始めたい方は参考書などで勉強してみるのをおすすめします。初心者は"マンガでわかるデータベース"でわかりやすく!リンク脱初心者は"SQLゼロからはじめるデータベース操作"で基本をしっかりリンクdatabaseスポンサーリンクプログラミングスクールランキングSkillHacksSkillHacks(スキルハックス)は、Webアプリケーション開発を学べるオンラインプログラミングスクールです。オンラインで完結するため、場所や時間にとらわれずに学ぶことができます。詳細ページ公式ページTechAcademy最短4週間で未経験からプロを育てるオンライン完結のスクールです。どこかに通う必要なく、自宅でもプログラミングやアプリ開発を学ぶことができます。詳細ページ公式ページCodeCampGateオンライン・マンツーマン指導のプログラミングスクールとしてNo.1*の実績を持つCodeCampが運営する未経験から最前線で活躍するエンジニアを目指す為のサービスです。基礎学習を2ヶ月、実践開発を2ヶ月で即戦力を目指す計4ヶ月のコースです。詳細ページ公式ページ人気記事1HPのパソコンに不要なソフトやアプリをまとめてみました2[写真販売]スマホで気軽に撮影した写真を売る方法3[初心者向け]プログラマーがオススメのプログラミング学習サイトを紹介4エポスカードはマルイ以外でも特典満載!?年会費も無料の最高級カード5人生疲れた。現在は内定先のIT企業でプログラミングしながら週末に農業してます。学校はたまに行ってます。記事を書くことが僕の癒しです。