データとデータベースの正規化の基本:データを正規化する方法

Platform Chrissy Kidd

今日ではあらゆる企業が何らかの形でデータを収集しています。大企業はすでにデータの収集、保存、分析に関するプロセスを確立しており、中小企業やスタートアップでも整備が進んでいます。これは、データの収集と分析が以下の点で極めて大きなメリットをもたらすためです。

ビッグデータの活用とデータの民主化が進む中で、AIが普及し始めた現在では、データに基づくインサイトをかつてないほどたくさん利用できるようになりました。

ほとんどの企業がすでに、データベース、CRMプラットフォーム、自動化システムなどを使ってデータを収集および管理していますが、データの形式やエントリのタイプが異なるために情報の不整合や重複が生じることがあります。データ収集を効率化するには、データ管理のプロセスを合理化する必要があります。そこで重要になるのがデータの正規化です。

データの正規化とは、簡単に言えば、データエントリを体系化し、すべてのフィールドとレコードの形式を揃えて、情報の検索、グループ化、分析を容易にするためのプロセスです。データを正規化する技法と規則にはさまざまなものがあります。

この記事では、データの体系化と管理を効率化するための基本とヒントをご紹介します。

データの正規化の定義

データの正規化は、データに適用できる多くの処理の中の1つです。データを整理して「大掃除」することで、ユーザーがデータを検索、活用し、出力を分析しやすくします。

データセットを正規化するときは、非構造化データや冗長なデータをすべて排除して、より優れた論理的な方法でデータを格納できるように整理します。

データを正規化する主な目的は、システム全体でデータの形式を標準化することです。これにより、データを検索および分析しやすくなり、ビジネス上の意思決定により効果的に利用できるようになります。

データの正規化

データベースでのデータ正規化の重要性

データの正規化をデータパイプラインに組み込めば、データの全体的な可視性を向上させることができます。この考え方をデータオブザーバビリティと呼びます。

データを正規化すれば、最終的にはデータを最適化して、その価値を最大限に引き出すことができます。

しかし残念ながら、多くの組織がデータを最適化できていません。組織が収集したデータの量は膨大で、そのほとんどがそのままの状態であり、活用されず価値が見出されていません。一方で、世界は今、AIの時代に突入しています。そこで1つ確かなのは、AIの時代に成功を掴むために、「すべてのデータ」を活用する必要があるということです。

(もちろん、AIに必要なのはデータ だけ ではありません。ガバナンス、倫理、フレームワークは基本中の基本ですが、今日私たちが知り得る限りのリスクを避けながらAIの価値を引き出すには、多くの検討事項があります)

後で説明するように、データの正規化には他にも多くのメリットがあります。しかし、最初にデータを正規化する主な技法をいくつか知っておくことが重要です。

(関連記事:データプラットフォーム)

データを正規化する方法

データの正規化の基本は、組織のデータベース内のすべてのデータに適用するデフォルトの(標準化された)形式を定義することです。データの種類によって正規化の方法は異なります。以下にデータの正規化の例を示します。

問題は、データを 一括して 正規化する方法を確立することです。通常は、データを保護し、データの異常を取り除くための一連の手法を取り入れながらデータテーブルを作成し、すべてのテーブルを関連付けます。こうした正規化の技法や手法ではさまざまな形式が使用されます。次に、これらの形式について見ていきましょう。

データの正規形の種類

データの正規化は特定の規則に従って行います。この規則を「正規形」と言います。データの正規形は階層化されており、各規則が下層の規則の上に成り立ちます。つまり、データが第1層の規則に合致している場合にのみ、第2層の規則が適用可能になるといった具合です。

データの正規形にはさまざまな種類がありますが、最も一般的で広く使われ、ほとんどのデータセットに適用できる正規形には、以下の4つがあります。

1. 第1正規形(1NF)

第1正規形(1NF)は、データの正規化における最も基本的な形式です。この規則の必須条件は、1つのグループが繰り返しのエントリを持たないようにすることです。その結果、次の点が保証されます。

たとえば、顧客の氏名、住所、性別、注文したSplunk Tシャツのサイズを1行ずつ記録したテーブルが該当します。

2. 第2正規形(2NF)

第2正規形(2NF)は、第1正規形の規則に従っていることが前提となります。この規則でも、目標は、1つのデータセットが繰り返しのエントリを持たないようにすることです。このデータの正規化規則を適用したエントリでは次の点が保証されます。

1つのプライマリキーを定めるには、基本的に、複数行に繰り返される可能性のあるデータのサブセットを、別のテーブルを作成して移動する必要があります。その後、2つのテーブルのデータを外部キーのラベル(下の例では数字)を通じて関連付けます。

先ほどの例で「顧客番号」をプライマリキーにした場合、複数行に分ける必要のあるデータ(注文したTシャツの各サイズ)をサブセットとして新しいテーブルに移動し、対応する外部キーを設定します。

第2正規形のデータの例:

顧客番号
氏名
住所
性別
1
Joe Bloggs
37 Buttercup Avenue
男性
2
Jane Smith
64 Franciso Way
女性
3
Chris Columbus
5 Mayflower Street
男性
顧客番号
Tシャツのサイズ
1
L (大)
2
S (小)
2
M (中)
3
M (中)

3. 第3正規形(3NF)

第3正規形のデータモデルには次の規則が含まれます。

この規則を満たすには、プライマリキーが変更された場合に影響を受けるすべてのデータを新しいテーブルに移す必要があります。

この例では、ある顧客の氏名、住所、性別を登録した後、氏名を修正するときに性別の変更も必要になるかもしれません。そのため、性別に外部キーを設定して、性別のデータをすべて新しいテーブルに移動します。

第3正規形のデータの例:

顧客番号
氏名
住所
性別ID
1
Joe Bloggs
37 Buttercup Avenue
1
2
Jane Smith
64 Franciso Way
2
3
Chris Columbus
5 Mayflower Street
1
顧客番号
Tシャツのサイズ
1
L (大)
2
S (小)
2
M (中)
3
M (中)
顧客番号
Tシャツのサイズ
1
L (大)
2
S (小)
2
M (中)
3
M (中)
性別ID
性別
1
男性
2
女性
3
ノンバイナリー
4
無回答

4. ボイス・コッド正規形(3.5NF)

ボイス・コッド正規形(BCNFまたは3.5NF)は、第3正規形データモデル(3NF)の発展形で、第3正規形のテーブルから、重複する候補キーを切り出したものです。この正規形のデータモデルには次の規則が含まれます。

基本的に、X → Yの関数従属性で、Yが主キー属性の場合、Xは非主キー属性になることはありません。

データの正規化のメリット

基本的な概念を理解したところで、データの正規化がビジネスにもたらすメリットをご紹介します。データベースが体系化されて適切に構造化される以外に、ビジネス面でも多くのメリットがあります。

ストレージ領域の節約

データを正規化しない場合、データベース内の複数の場所に顧客情報などが重複して保存される可能性があります。データを整理して重複をなくせば、貴重なストレージ領域を節約して、システムの処理スピードと効率を向上させることができます。

クエリーの応答時間の短縮

正規化した後は、一般的なクエリーの実行で検索スピードが大幅に向上します。また、組織内の多くのチームが、複数の場所に散らばったデータセットを探し回ることなく、1カ所で情報を検索できます。

異常なデータの削減

データを正規化すれば、異常なデータを排除してデータストレージの整合性を保てるというメリットもあります。データベースの構造に関する問題は、データベース内で情報を追加、更新、または削除するときにエラーが発生することで判明します。

データの正規化規則を適用すれば、情報の入力または更新時に、データに重複や誤りがないこと、情報の削除時に他の関連データに影響がないことを保証できます。

(関連記事:最新のアノマリ検出)

クロスチェック機能の強化

データの正規化は、幅広いソースからインサイトを収集する場合にも役立ちます。特に、SaaSプラットフォームやWebサイト、ソーシャルメディアなどのデジタルソースからデータをストリーミング、収集、分析する場合に便利です。

セールスプロセスの効率化

データの正規化は、ビジネスの成長にも貢献します。たとえば、リードセグメンテーションなどの戦術において、データが正規化されていれば、以下に基づいて連絡先をグループ化し、包括的なカテゴリに分類できます。

こうした分類ができれば、リードに関する情報を簡単に見つけることができ、ビジネスの成長を支えるチームの負担を軽減できます。

データの正規化の課題

一方で、実際のところはどうなのでしょうか。データの正規化が組織にもたらすメリットが大きいのは確かですが、踏まえておくべき欠点もあります。

クエリーの応答時間が長くなる

データを正規化する方法が複雑になると、一部の分析クエリーの実行に時間がかかる場合があります。特に、大量のデータを取得するクエリーではこの問題が発生しがちです。データの正規化規則に従うことで複数のデータテーブルが必要になると、その分、スキャンに時間がかかります。

従来は、クエリーの実行に多少時間がかかってもストレージの使用量を減らすことを優先していましたが、今後はストレージの価格が低下していくと見込まれます。

正確な知識が必要である

データを適切に正規化するには、データの正規形と構造について詳細かつ正確な基礎知識を身に付ける必要があります。初期段階で設定を誤ると、データの整合性に関する重大な問題につながります。

チームの負担が増える

データを正規化するときは、データベースを設定するだけでなく、適切な担当者にトレーニングを行ってその内容を理解してもらう必要があります。正規形の規則に従うデータの多くは数値として保存されます。つまり、テーブルには実際の情報ではなくコードが保存されます。そのため、常にクエリーテーブルを参照する必要があります。

非正規化が有効な場合もある

開発者やデータアーキテクトが、ディスクストレージを必要としないドキュメント指向のNoSQLデータベースや非リレーショナルシステムの導入を検討するケースが増えています。今日では、データの正規化と非正規化をバランスよく取り入れることが一般的になっています。

データの正規化:結論

データの正規化には時間と労力がかかりますが、欠点をはるかに上回るメリットがあります。さまざまなソースから収集したデータを適切に正規化しなければ、その多くは組織にとって真の意味をもたらさず、役に立たないものになります。

今後、データベースやシステムの進化によってストレージの制約が軽減される可能性がありますが、それでも、データの形式を標準化してデータの重複や異常を防ぐことは、データの全体的な整合性を向上させるために重要です。データの正規化は、ビジネスの潜在能力を高め、組織の強化と成長の可能性を広げます。

その意味で、データの正規化は、今日の組織が取り入れられる強力な戦略の1つと言えます。

このブログはこちらの英語ブログの翻訳です。

関連記事

Splunkの次世代型データサーチと前処理用言語「SPL2」のご紹介
プラットフォーム
5 分程度

Splunkの次世代型データサーチと前処理用言語「SPL2」のご紹介

データサーチと前処理用の強力な言語であるSPLの次なる進化版として、サーチ処理言語バージョン2(SPL2)が、Splunk EnterpriseおよびSplunk Cloud Platformにて全世界でご利用いただけるようになりました。
データライフサイクル管理:完全ガイド
プラットフォーム
10 分程度

データライフサイクル管理:完全ガイド

データの作成から削除までのライフサイクル全体でデータを効果的に管理し、セキュリティとコンプライアンスを確保できるように、データライフサイクル管理(DLM)について理解を深めましょう。
AIがデジタルレジリエンスにもたらす作用とSplunkの理念
プラットフォーム
3 分程度

AIがデジタルレジリエンスにもたらす作用とSplunkの理念

SplunkのHao Yangが、AIに対するSplunkの考え方についてご紹介します。