skillup

技術ブログ

Database

データクレンジング

投稿日:

リレーショナルデータベースでデータを管理する前に、しなくてはいけないことはデータをデータベースに登録できる形に整形することです。

このことをデータクレンジングといいます。

これを行わずに何も考えずにデータベースに登録する場合、フォーマットが非効率であったりなど、データが「汚れていること」が多々あります。

特に厄介ないのが、今までデータベースでデータを管理していないのに、データベースでこれから登録しようとしたり、リレーショナルデータベース以外の管理方法でデータが利用されていたようなケースです。

その場合下記のような流れでデータを登録していくことが多いです。

  1. オリジナルのデータ
  2. データフォーマットの調査
  3. データクレンジング
  4. オリジナルのデータ
  5. データベース設計
  6. データベース登録

代表的なデータクレンジングの内容

一意キーの特定

これは紙などでデータを管理していた場合に起こりがちですが、レコードを特定するキーがないことです。

例えば注文書の記録を集めた場合、顧客情報をそのままかいており、顧客名には複数の表記が見られたり(渡邊と渡辺)、そもそも特定ができないもの(同姓同名の注文者)もあります。

この場合、新たにキーを作成することから始める必要があります。

名寄せ

名寄せとは名前の似通った名前を寄せ集めて統合することです。

人名や企業名の表記ゆれを解消して名称を統一します。例 (株)武田産業 武田産業株式会社

名寄せが必要になるのは情報を記録する際にフリーハンド(フォーマットがない・ゆるい)の入力を許していることが原因です。このようなことが起こると以前のエントリーで話したようなダブルマスタといったバッドノウハウを生み出すことにもなります。

-Database
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

O/Rマッパー iciqlについて

以前、このブログでも紹介したO/Rマッパーのiciqlについて、使い方や問題点がある程度わかったので書いておきます。 Contents1 インストール2 自動生成3 注意点3.1 Date型のインポー …

no image

論理設計のアンチパターン

今回からは論理設計のアンチパターンについて。 やってはいけない設計のパターンですね。これはまわりがやっていると気づかずにやっている可能性があるのでしっかりメモしておきたいです。 Contents1 非 …

no image

MySQLのメモリ設定

実務で結構サーバーをヘビーに使われるお客さんがいて、SQLが遅くなったりとしています。 なんとか対策しないといけないので、いろいろと調査をいます。 それで今回はMySQLのメモリ問題など。 MySQL …

no image

CASE式のすすめ その3

本日もCASE式です。 下記のようなテーブル(studentclub)があるとします。 std_id | club_id | club_name | main_club_flg —&#82 …

no image

SQL 集計関数の利用

先日同様、ある程度複雑な問題のSQLに関して。出典はSQL実践入門。 問題 下記のようなテーブル(テーブル名)で より古い年のデータが存在しない場合 NULL 直近の年のデータより売り上げが伸びた場合 …