Excelが大好きだ!スマートフォン用の表示で見るExcelが大好きだ!Excel大好き経理マンがExcelの事を書き綴っていきます。VBA前回はExcelとは異なるデータベースの独自要素を盛り込みつつSQLiteデータベース・テーブルを作成した。考慮してデータベースを分割することにチャレンジしてみます。前回作成したテーブルの構成はこの様になっています。KEY制約がかかっています。項目と日付にはインデックスが設定されています。正規化Excelユーザーにとって耳馴染みのない正規化とはいったいなんなんでしょうか。正規化とは、データなどをある基準や形式に適合するように、一定の手順や規則に従って変形・変換すること。様々な分野で用いられる概念であり、それぞれ目的や方法などが大きく異なる。リレーショナルデータベース(RDBMS)では、データの保守性向上や処理の高速化を図るため、データベース内で同じ情報が複数の箇所に重複して記録されず、個々のテーブルは主キーから直接連想されるデータのみで構成されるよう設計するのが理想とされている。正規化)見よう見まねですが実際に正規化を進めていってみたいと思います。正規化は正規化前の非正規形と第1正規形~第5正規形のそれぞれの段階があります。一般的には非正規形を第1・第2・第3の正規形まで順に正規化していくようです。第1正規形とは、リレーショナルデータベースでデータの冗長性や不整合を排除した正規形の一つで、一つの行(レコード)の中で特定の項目が繰り返し含まれたり、複数の値を連結した値が含まれるような構造を廃したもの。そのような形式に変換することを第1正規化という。第1正規形わかりにくいですが、以下のようなことを行います。各テーブルで繰り返し現れるグループを除去します。つのテーブルを作成します。セットを主キーで識別します。データベースの正規化の基礎うきうき家計簿から出力されたCSVは以下のような構成です。この中で「繰り返し現れるグループ」この辺りでしょうか。上記の範囲を「関連するデータごとに1つのテーブル」を作成します。列を切り出してテーブルにする際に前回も行った「関連するデータセットを主キーで識別」出来るように設定します。このように分けてみました。前回作成した「仕訳」テーブルから3つのテーブルを切り出しました。(口座)切り出したテーブルにそれぞれ主キーを設定しました。各テーブルはこのような状態です。そのような形式に変換することを第2正規化という。第2正規形)これまた何のことかよくわかりませんが以下のような事を行います。つのテーブルを作成します。これらのテーブルを外部キーと関連付けます。外部キーの関連付けをしてみます。関連付けはExcelでいうとvlookupで別シートからデータを持ってくるような感じです。それぞれのマスターテーブルがvlookupでいうところの参照範囲になります。仕訳テーブルとそれぞれのテーブルはそれぞれのIDで紐付けられています。そのような形式に変換することを第3正規化という。第3正規形キーに従属しないフィールドを除去します。今回の例で言えば「科目マスター」の項目が該当すると思う。このテーブルを更に「項目マスター」と「内訳マスター」に分割してみる。この結果各テーブルの関連付けはこのようになった。まとめテーブルの分割を行ってみましたが、正直まだまだ消化不良でよく理解できていないなぁと言う感じです。この辺りはもう少し数をこなしてみないと駄目ですね。次回は今回のテーブル構成を実現するためのコードを紹介してみようと思います。Tumblr関連記事2019-06-16Excelでビッグデータを乗りこなせ(6.SQLiteデータベースの作成)前回はExcelとは異なるデータベースの独自要素を見てみた。www...2019-06-09Excelでビッグデータを乗りこなせ(5.データベースの独自要素)ADODBを利用してCSVファイルを操作する方法を検証した。(1)月別アーカイブはてなブログをはじめよう!ExcelLoverさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。