ダウンロード サンプルファイル (3.0 MB)
会員情報を含むリレーショナルデータベース(以下、RDB)システムでは、同じ人が別々のIDでテーブルに登録されることがあります。本連載では、二重登録状態を解消する「名寄せ」機能の追加方法を紹介します。
はじめに
「ワタナベだけど同じDMが何通も届く!」会員からのクレームの電話は、それだけ言い放って切られてしまいました。発信番号も非通知で、他の情報は一切確認できません。
会員テーブルから、同姓同名のデータ一覧の抽出が必要ですが、どうしましょうか。
下図はSQL命令で抽出後、コーディングで処理する一例ですが、想像以上に難解です。
ところが実は、SQL命令だけで目的を達する、魔法のような一文が作れるのです。
「名寄せ」とは
「名寄せ」は元々金融機関の用語で、同一顧客の複数口座を一元管理することを指し、ペイオフ制度(注1)の導入に伴い、その重要性が増しています。また年金でも、一人に複数の年金番号が振られると、受給資格(25年以上の加入期間)の確認のため、名寄せが不可欠です。
金融機関破たん時、預金者一人あたり1,000万円までの払い戻しを保証すること。
本連載では、一般的なRDBシステムにおいて、テーブルに二重登録された同一人物を1つの会員IDに統合する処理を「名寄せ」と定義することとします。スタッフが「既存の会員情報を修正」せず「新規に会員登録」する、Web上で顧客が複数IDを取得する、など二重登録は日々発生するため、RDBの整合性を保つためにも名寄せ機能は常時必要になります。
対応可能なRDB
MySQL(4.1以上)、SQL Server、Access、PostgreSQL、OracleなどのRDBで可能です。
ただし、EXISTS演算子とサブクエリー(後述)が利用できないSQLiteでは不可です。
本連載の構成
各回を通して、前半がRDBのテーブルの理論編、後半がASP.NET+SQL Serverでの実践編、という形で進めます。前半は開発言語、RDBに依存しませんので、広く応用できます。
第1回はSQLによる重複値データの抽出と単純な名寄せ、第2回は複雑な名寄せとその処理、第3回は名寄せに関連したテーブルの処理、という順で紹介します。
皆様のRDBシステムに名寄せ機能を組み込む際の一助となることが目標です。
必要となる前提知識と環境
前半部分はSQL命令の解説になるので、SQLの基礎知識が前提となります。
後半部分は各回を通して、ASP.NET開発の基礎知識(SQL Serverへのアクセス方法、MultiViewコントロールの使い方を含む)、および以下の環境が前提となります。
- 開発ツール:Visual Web Developer 2010 Express SP1(以下、VWD2010)
- 開発言語など:Visual Basic(以下、VB)、コードビハインドモデルで開発
- 使用データベース:SQL Server 2008 Express Edition SP1
今回は、ビジネスオブジェクトを用いたGridViewの作成方法の知識も必要になります。
この記事は参考になりましたか?
- 既存のRDBシステムに会員情報の名寄せ機能を追加する連載記事一覧
-
- 名寄せに関連して必要になる処理 ―ASP.NETでの実装方法
- 泣き別れしたデータの統合 ―ASP.NETでの実装方法
- SQLによる条件付き重複データの抽出と単純な名寄せ
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト 遠藤 存(エンドウ アリ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア


