Excelでデータを正規化して、Accessにインポートするときにデータセットが第3正規形に準拠するようにすることは可能ですか?


1

少し背景を説明するために、私は大学生でデータサイエンスの課題を担当しています。世界中のサッカー/サッカー選手に基づいたExcelのデータセットがあります。現在、各プレーヤーにはIDがあり、各レコードにはID、名前、クラブ、写真、年齢などが含まれています。

私が抱えている問題は、Accessでテーブルを設計するときに、Excelからデータをインポートできず、データが繰り返されるために正規化できないことです。

各プレーヤーにIDを割り当て、それを分割して(クラブ、プレーヤー、Player_Attributes、リーグ)のテーブルを作成しますが、17,000を超えるプレーヤーデータとそのクラブがあるため、手動で割り当てる必要があります。各一意のクラブはAccessのIDを使用し、Excelスプレッドシートからすべての繰り返しクラブを削除して、クラブの1つのインスタンスのみが「Club」テーブルに表示され、「Player」テーブルの「clubID」列がクラブテーブルにリンクするようにします。Excelで何かの繰り返しインスタンスをすべて自動的に削除し、その繰り返しを数字で置き換えてもいいですか?

申し訳ありませんが、私が質問を上手く伝えなかった場合、私を支援するためにさらなる説明が必要な場合はお知らせください

前もって感謝します

編集:(https://imgur.com/a/VJQmA)-Excel内にあるトップ4レコードのスクリーンショットへのリンク。ただし、スプレッドシートには17,000を超えるレコードが含まれています。


入力テーブルのサンプルデータ、特定した推移的な依存関係、および出力テーブル(Accessにエクスポートする)の外観を表示することができます。サンプルの入力テーブルと出力テーブルを使用すると、可能な解決策を提供するのが簡単になる場合があります。
patkim

推移的な依存関係-基本的に{player}-> {club}ですが、推移的な依存関係をすべて削除し、外部キーを使用して関係を維持します。あなたが私のイメージを見れば、あなたが私がプレーヤーのために持っている統計量のいくつかに気づくでしょう。問題は「クラブ」セクション、および「リーグ」と「クラブロゴ」にあります。複数のプレーヤーが1つのクラブでプレーでき、同じリーグ、クラブ、クラブ写真を共有しますが、彼らは別々のプレーヤーです。
MC123

[表1:クラブ]-> ClubID、ClubName、ClubLogo、LeagueID)、[表2:リーグ]-> LeagueID、LeagueName、[表3:プレーヤー]-> PlayerID、PlayerName、...、...、.. 。、...、..、...、...、.. ClubID] [表4:PlayerAttributes]->(PlayerAttID、PlayerID、...、...、...、...、 ...、...、..、..)(関連のない列を除外しました。ここに含めるには多すぎます)
-MC123

回答:


0

手順で実行します。

正規化されていないデータを表す「生データ」テーブルにインポートします-基本的にはExcelスプレッドシートデータをそのまま(このテーブルを作成する必要はありません。インポートウィザードが自動的に行います)。

生のテーブルから個別のデータを選択する追加クエリを実行して、リーグ、クラブを適切な正規化テーブルに抽出します。例えば:

INSERT INTO Leagues SELECT DISTINCT LeagueName FROM RawData

適切な正規化されたプレーヤーテーブルにプレーヤーを抽出します。これを行うには、RawDataテーブルを正規化されたリーグテーブルとクラブテーブルに結合する追加クエリを使用し、名前を結合フィールドとして使用します(生データにIDがないため)。このクエリでSELECTは、プレーヤーはフィールド(名前、年齢など)を正規化し、クラブIDとリーグIDを正規化しました。例えば:

INSERT INTO Players
SELECT PlayerName, Age, LeagueID, ClubID
FROM RawData 
INNER JOIN Clubs ON RawData.ClubName = Clubs.ClubName
INNER JOIN Leagues ON RawData.LeagueName = Leagues.LeagueName
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.