うさぎでもわかるデータベースの正規化・正規系判定(基本情報・応用情報) | 工業大学生ももやまのうさぎ塾
セール中 2021年5月27日(木)まで! 【初級編⑧】テーブル正規化の概要とその手順 | SQL Server 虎の巻. 対象コースがお得に¥1, 270から購入できます。 もっとデータベース設計を知りたい! この記事では、データベースの用語を極力使わずに正規化の内容を説明しました。もう少しデータ設計方法をしっかり学びたい方には、この講座をおすすめします。 テーブル設計を設計者間で共有するためのER図の書き方も学べますので、より実践的な内容になります。 公式サイトで確認する ミック(著)達人に学ぶSQL徹底指南書 第2版 初級者で終わりたくないあなたへ SQLの書き方を学ぶ! データベース言語(SQL)の解説書と言ったら、この本で間違いないです。(初版から10年経ってからの第2版のようです。) この書籍は、入門としては少し難しいですが、実務で通用するSQLの書き方を教えてくれますので、じっくり読んで初心者から脱却しましょう。 辞書として手元に置いておくことをおすすめします。
- うさぎでもわかるデータベースの正規化・正規系判定(基本情報・応用情報) | 工業大学生ももやまのうさぎ塾
- 【初級編⑧】テーブル正規化の概要とその手順 | SQL Server 虎の巻
- データベースの正規化の手順をわかりやすく解説
うさぎでもわかるデータベースの正規化・正規系判定(基本情報・応用情報) | 工業大学生ももやまのうさぎ塾
原則、正規化をすべし。ただ、場合によりあえて正規化しない選択肢もある、という認識でいれば良いと思います。 この記事と関連性の高い記事 【初級編⑨】テーブルに設定するキーの種類や様々な制約(CONSTRAINT) 【初級編⑩】SQL Serverのテーブル結合(JOIN)の基礎 【初級編⑪】SQLのGROUP BYでレコードのグループ化と集計を行う 投稿ナビゲーション 市販のテキストで全く理解出来ていなかったのですが、こちらでスッキリと理解することができました。ありがとうございました。
補足ですが、 実際は第二正規形までしかできないデータ構造も多くあります。 その場合、第二正規形と第三正規形はおなじものとなります。 さいごに 改めて各用語の説明は以下の通り そして、正規化の流れは以下のようになります。 正規化の流れ 列の繰り返しをなくす(第一正規形) 主キーの一部に依存するデータを探し、別テーブルに切り出す(第二正規形) 主キーじゃない列に依存するデータを探し、あれば別テーブルに切り出す(第三正規形) このように正規化をする際には どの列がどの列に依存しているか ということを意識することが大切です。 基本情報の問題とかにも出てくるので、ぜひマスターしておきましょう。 なんで正規化するの?正規化するメリットってなーに?みたいな話はまた別の機会に。 この記事を面白いまたは役に立ったと思ってくれた方は是非私のTwitter( @kojimanotech)を フォローしてくれたらうれしいです! システムエンジニアのつらい部分のあるあるなんかをエンタメにしたチャンネルを作りました。 チャンネルはこちら つらい部分も楽しくなればと思っているのでよかったらチャンネル登録や高評価してくれたらうれしいです。 以上、コジマでした。
【初級編⑧】テーブル正規化の概要とその手順 | Sql Server 虎の巻
注文書の項目一覧を表に書き出す 項目名とデータをすべて書き出します。 Excelでは次のようなデータを書く人が多いと思います。 2. 列の項目の繰り返しを探し、変換する 列に注目して、繰り返しがなくなるようにします。 もし下のように項目を書き出した人の場合、 黄色の項目が繰り返してます。 上の図のように、商品データを縦に持つように変換してください。 メモ RDB(関係データベース)は項目の追加と削除は不得意です。 表の項目を一度決めたら列の追加はめったに行いません。 商品を一度に100個買う人が出た場合、100 x 3の300項目追加しないといけなくなります。 このような事が起きないように列の繰り返しをなくします。 3.
主キーを探す 重複しない値の主キーを探します。 「注文書ヘッダ」表で、業者名は主キーなるでしょうか? 同じ業者に何回も発注したら、業者名は複数でてきます。 一行に特定できないので業者名は主キーとは違います。 このように考えると主キーは ・注文書ヘッダ表:「注文番号」 ・注文書明細表 :「注文番号」「商品名」 となります。上の図の青色の項目です。 メモ 「注文書明細表」は「注文番号」「商品名」の2つセットで主キーとなります。 このことを複合キーといいます。 2. 複合キーに注目し、主キーの中から関係関数従属の候補を探す 関係関数従属とはAが決まるとBの値が決まることをいいます。 チェックするのは複合キーのテーブルだけで大丈夫です。 その理由は主キーが1つの項目というのは、すでに分割済みのためです。 「注文書ヘッダ」表は注文番号が決まると業者名が特定できるということからです。 「注文書明細」表の主キー「注文番号」と「商品名」に着目します。 この2つの項目の全部の組合せを書き出します。 項目の組合せ 検討対象 説明 注文番号、商品名 対象外 すでに「注文書明細表」表としては分割済みのため対象外 注文番号 対象外 「注文書ヘッダ」表としてすでに分割済みのため対象外 商品名 検討対象 商品名が決まると確定する項目がないか確認が必要 3. うさぎでもわかるデータベースの正規化・正規系判定(基本情報・応用情報) | 工業大学生ももやまのうさぎ塾. 関係関数従属する項目を主キー以外から探す このように整理したことで、商品名を確認すればいいことがわかります。 次に候補キーの「商品名」と他の項目の一覧を書き出します。 商品名のノートを考えたときに、 ・数量が1つに決まるか? ・単価が1つに決まるか?
データベースの正規化の手順をわかりやすく解説
「正規化って何のために行うの?」 と疑問をいだいている方も多いと思います。 熟練の開発者がデータベースを作成すると、データ構造はほとんど同じ形になります。 それは ルールに基づいて設計している からです。 そのルールが正規化です。 正規化を勉強することで データに関するトラブルが少なくなる 新しいシステムのデータベースを見たときに、データ構造をすぐに理解できる というメリットがあります。 正規化は一度覚えれば長年開発で役に立ちます。 コスパ最強の知識の一つなのでぜひ勉強してください。 BI技術者必見!!
と商品コードの2つが主キーであると言えますが、 商品コードが分かれば明らかになるような商品名や単価 があります。これを分離するのが第2正規化です。 補足)非キーとは何か? 正規化の中では「主キー」とともに、 「非キー」 という言葉もでてきます。 これは先ほどの表2-2の数量のようなもので、数量の値が分かっても、受注No. や商品コードを割り出すことはできません。 このように、この項目が決まったとしても、他の部分が明らかにならないような項目を非キーと呼びます。 難しく考えず、主キー以外の項目と置き換えてしまっても、試験に取り組む程度であれば問題ありません。 第3正規化 第2正規形でデータの冗長性を取り除くことができました。しかし、まだ改良の余地はあります。 例えば、顧客の会社名が変わった際に、表2-1のように顧客No. と顧客名をすべての注文に記入していた場合は、いちいちすべての会社名を変えていかなければなりません。 これは面倒である上に、ヒューマンエラーで修正漏れなどがでてしまうかもしれません。 この顧客名は主キーである受注No. がわからずとも、顧客コードさえ分かっていれば特定できる情報です。そのため、表2-1から顧客名を以下のように分離させていきます。 ・表4-1 受注No. データベース 正規化 わかりやすく. 受注日 顧客No. 10 2020/11/11 D001 11 2020/11/20 D002 12 2020/11/25 D003 ・表4-2 顧客No. 顧客名 D001 A社 D002 B社 D003 C社 このような場合も管理しやすいように、主キー以外の項目同士の依存関係も切り分けていきます。 最終的なテーブルの姿 ここまでで第3正規化までが完了いたしました。 最終的に表1のテーブルは以下のようなテーブルに整理されました。 受注No. 10 2020/11/11 D001 11 2020/11/20 D002 12 2020/11/25 D003 受注No. 商品コード 数量 10 A100 12 10 B100 10 11 B100 10 11 B100 10 12 A100 20 12 A100 10 商品コード 商品名 単価 A100 ペン 100 B100 消しゴム 80 顧客No.