1

次のようなテーブルがあります。

Person  Project1 Project2 Project3 WorkedWith1  WorkedWith2  WorkedWith3
John    A        B        Null     Ann          Mary         Null
Ann     A        B        C        Jeff         Null         Null
....

コードを書かずに 1NF に変換できるツールを探しています。

Persons具体的には、この例では、データをテーブル、ProjectsAssigned(多対多の関係でリンクPersonsするProjects)、およびWorkedWith(多対多の関係でリンクPersonsする)に再配置することをツールに伝えます。Persons. ツールに実行させたいのは、これらの指示に従ってデータを移動することだけです。

このツールが一部の DBMS の一部であるか、特定のデータベースに触れずに単純にプレーン テキスト (CSV) ファイルで動作するかはあまり気にしません。MS Access 2010 で Table Analyzer を試しましたが、何か見落としがない限り、この特定のタスクを解決することはできません。(ただし、より単純なケースでは完全に機能します。)

注: 私は正規化に精通しています。私は何も学ぼうとはしていません。時間を節約しようとしているだけです。また、データベースの正規化のための汎用ツールが存在しない理由も理解しています。私のケースが非常に単純で一般的であるため、それを処理するツールがあることを願っています。また、比較的洗練されたツールを学ぶことも気にしません。

4

1 に答える 1

2

あなたが求めているのはETLソフトウェアだと思います。
私の知る限り、宛先テーブルを事前に作成する必要がありますが、ETL は、あるデータベース (またはファイル) から別のデータベース (またはファイル) にデータを分割、再結合、およびロードできます。

あなたの目的にはやり過ぎかもしれませんが、ETL ソフトウェアを使用するための学習曲線は、VBA や、あるフォームから別のフォームにデータを転送するのに役立ついくつかのクエリを記述するよりもはるかに多くのことになるでしょうが、これが頻繁に行わなければならない場合、それでも価値があるかもしれません。

ただし、あなたの場合、ほとんどの場合、宛先テーブルを作成し、入力テーブルを複数回通過してデータを一度に抽出し、元の列とは異なるデータをPersonsおよびテーブルに入力してから、Projects別のテーブルの関係。

この種の作業を VBA で行っているとき、リレーションシップを追跡するためにディクショナリが非常に貴重であることがわかりました。

于 2012-10-28T06:54:24.720 に答える