skillup

技術ブログ

Database

データクレンジング

投稿日:

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

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

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

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

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

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

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

一意キーの特定

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

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

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

名寄せ

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

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

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

-Database
-

執筆者:


comment

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

関連記事

no image

MySQLの大文字、小文字問題について

MySQLでテーブルを作る際にカラムに重複を許さない制約(unique)を振ることがあると思います。 数字の場合は問題ないのですが、文字列の場合、なんと英語の大文字と小文字が区別されません。 つまりa …

no image

データベース設計のアンチパターン リトライ+バッチ分割+バッチの再利用不可

Contents1 リトライ1.1 デメリット1.2 対策2 バッチ分割2.1 デメリット2.2 対策3 バッチ再利用不可3.1 デメリット3.2 対策 リトライ ※OLTP=オンライントランザクショ …

no image

JPAでのリレーションに関して

JPAではテーブルをクラスで定義します。もちろん例外とかはいろいろあるのですが、1テーブル1クラスというつくりで、これをエンティティと呼びます。 もともとクラスを作ってからDBを作成したり、JTAの規 …

no image

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

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

no image

Firebaseでのミニアプリデプロイ

KVS的なDBを使うかもしれず、firebaseの復習をしております。以前、firebaseのサンプルなどちょこちょこ動かしましたが、firebaseに登録をしただけでデプロイまではしておりませんでし …

アーカイブ