skillup

技術ブログ

Database

データクレンジング

投稿日:

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

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

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

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

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

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

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

一意キーの特定

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

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

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

名寄せ

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

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

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

-Database
-

執筆者:


comment

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

関連記事

no image

アンチパターン 参照渡しと値渡し+キー情報の設定+同一値を複数テーブルに配置+正規化が不十分+集計表+不適切なステータス値

本日は自分がデータベースの設計をしていて気を付かないといけないなーと思った点などを。 注意点としては設計のミスは実装で取り返しにくいことが多いので極力気を付けましょう。あといろいろなテーブルのパターン …

no image

外部結合について 行列変換

今回から外部結合について学習します。 これはCASE式でもやった集合の考え方が大事になってきます。 例えば下記のようなテーブルCoursesとがあるとします。 name | course &#8212 …

no image

MySQLのロックに関して+サブクエリ内のupdate

MySQLのロックに関して。 データベースではデータの整合性を保つために読み書きを一時的に制限する仕組みがあります。(データベースだけではないですが・・・) 大きく分けると共有ロック(書き込みは当然だ …

no image

Postgres リモートホストからの接続他

今まで使ってきたデータベースはMySQLがほとんどなのですが、最近少し、Postgresを触っています。 今回はパスワードの設定とリモートからの接続など。 Contents1 postgresへのログ …

no image

SQL基礎 条件式はunionよりもcaseで

複雑な条件式があったときにcase式を使うことでパフォーマンスを向上させることができます。 ※一般にunionを使うよりも高速なことが多い。 例1 ある条件により別の列を使いたいとき、 [crayon …

アーカイブ