skillup

技術ブログ

Database

データクレンジング

投稿日:

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

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

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

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

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

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

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

一意キーの特定

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

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

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

名寄せ

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

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

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

-Database
-

執筆者:


comment

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

関連記事

no image

大規模Webサービス技術入門 DBの分散

前回に引き続き、大規模サービスを運用するときに必要になるMySQLの知識についてのまとめ Contents1 テーブル・SQL設計2 レプリケーション機能3 パーティショニング テーブル・SQL設計 …

no image

MySQLのSETとFIND_IN_SETについて

MySQLの方ですが、単純な文字列や、数字、日付の他に配列に近いSET型、また5.7以降ではJSONなどを入れることができます。 Contents1 SET型2 FIND_IN_SET SET型 いわ …

no image

JPAまとめ

JPAわけわかんねーと思い、触りはじめてから3か月ぐらいたちます。 いまだに細かい部分はよくわかっていないことは多いのですが、全体像というか何となくどういうものかはわかり始めてきたいのでまとめたいと思 …

no image

SQL基礎 結合に関して

SQL実践入門を読んで勉強しておりますが、本日は結合に関して。 Contents1 クロス結合2 内部結合3 外部結合4 結合のアルゴリズムとパフォーマンス4.1 NestedLoops4.2 Has …

no image

HAVING句について NULL時の動き

HAVING句のNULLがあった時の挙動にたいしてメモリます。 COUNTの処理 対象上の列数を数えるのにCOUNTを使うと思いますが、COUNT(*)とCOUNT(列名)では動きが若干違っており、前 …