2016-09-27 8 views
0

this tableを正規化する際に問題が発生しており、本当に迷惑です。私はテーブルが最初の通常の形であることがわかりますが、そこから私は立ち往生しています。私の通常の方法は、主キーを参照して各行の整合性をチェックすることによって部分的な依存関係を見つけることです。このテーブルの問題は、両方ともです:リレーショナルデータベースの正規化

  1. 最初の列には一意のデータしか含まれていないため、テーブル全体の主キーとして使用できるようです。私はコンポジット・プライマリ・キーを使用してテーブルを正規化したことがありますが、最初のカラムがプライマリ・キーとして機能するのでここでは無意味です。

  2. 行に一貫性はありません。画面には、異なる価格/日付などの異なる映画があります。顧客IDとカスタム名のみが一貫しています。

それは適切な手法だが、私は異常削除を参照し、セッションが削除された場合、ブランチの情報が保存されるようにテーブルを整理することにより、正規化について考えた場合、私は知りません。これを使用して、私は3番目の正規形に似たものになることができますが、それは正しいとは思わない。

Session | Branch | Screen | Movie | Session | Session | Customer | Customer 
ID  | ID  | ID  | ID | Date  | Price | ID  | Name 
SS01 | B1  | S1  | M1 | 3-May-16 | 12.50 | C1  | Chris Hemsworth 
SS02 | B2  | S1  | M2 | 4-Jun-16 | 19.45 | C2  | Chris Evans 
SS03 | B1  | S2  | M2 | 3-May-16 | 12.67 | C2  | Chris Evans 
SS04 | B4  | S2  | M4 | 13-may-16 | 14.56 | C3  |Tom Hiddleston 
SS05 | B3  | S2  | M5 | 23-may-16 | 14.56 | C2  | Chris Evans 
SS06 | B3  | S1  | M5 | 3-Jun-16 | 16.32 | C1  | Chris Hemsworth 
SS07 | B4  | S2  | M3 | 14-May-16 | 21.78 | C2  | Chris Evans 
SS08 | B1  | S2  | M2 | 6-Jun-16 | 16.82 | C2  | Chris Evans 
SS09 | B2  | S3  | M4 | 13-May-16 | 17.90 | C1  | Chris Hemsworth 
SS10 | B4  | S1  | M3 | 6-Jun-16 | 16.37 | C3  | Tom Hiddleston 
+0

plsは質問に画像を挿入します。 – Nebi

+0

テキストエディタで表を効果的にフォーマットする方法がわかりません。 –

+0

テーブルへのリンクを開くことができません。私は私が唯一ではないと確信しています。テーブルを見る能力がなければ、あなたの質問は不可解なものに接しています –

答えて

1

この表はかなり良い形になっているように見えます(「セッション」を記述する表であると仮定)。私が見る唯一の冗長な列は "顧客名"ですが、他のすべては必要であるようです。 'セッション価格'は、(他の列に基づいて)計算列であってもなくてもよい。

ビジネスロジックを知らなくても、「ブランチ」(またはその他のもの)がそこに存在する必要があるかどうかを確認することはできません。

編集: 仮に、「セッションID」列をpkとして削除し、代わりに複合キーを追加することができます(例:branch + screen + movie + session date + customer id)。それは良い。代わりに、これらの列の一意性制約が優先される場合があります。

+0

それは私の宿題の質問として与えられたテーブルなので、ビジネスルールやロジックに関する情報は与えられません。私はそれがすでに最適化されていたと感じましたが、私が行った他の例のようには見えませんので、わかりませんでした。 –

+0

@Haydennull、クラスの例が学習のやり方にならないようにしてください。現実世界での時間の100%あなたはビジネスルールを理解する必要があります。 – HLGEM

+0

宿題の場合は、「顧客名」を吹き飛ばすようお勧めします。それはおそらく彼らが探しているものです。 – Sturgus