テーブルデータの例
名前があるとしemployee
:9つの性質を有する従業員テーブル、id
(従業員番号)、 name
(従業員名)、 mobile
(電話)、 zip
(郵便番号)、 province
(州)、 city
(都市)、 district
(郡)は、deptNo
(部門番号を)、(deptName
部署名)、総データテーブルは次のよう:
ID | 名前 | モバイル | ジップ | 州 | 市 | 地区 | DEPTNO | DEPTNAME |
---|---|---|---|---|---|---|---|---|
101 | ジョー・スミス | 13910000001 <br /> 13910000002 | 100001 | 北京 | 北京 | 海淀区 | D1 | セクター1 |
101 | ジョー・スミス | 13910000001 <br /> 13910000002 | 100001 | 北京 | 北京 | 海淀区 | D2 | セクター2 |
102 | ジョン・ドウ | 13910000003 | 200001 | 上海 | 上海 | 静安区 | D3 | セクター3 |
103 | 王呉 | 13910000004 | 510001 | 広東省 | 広東 | 白雲区 | D4 | セクター4 |
103 | 王呉 | 13910000004 | 510001 | 広東省 | 広東 | 白雲区 | D5 | セクター5 |
従業員テーブルは非標準であるため、我々は次のような問題に直面するだろう。
異常な変更のテーブルを、彼は2つの部門に属しているため、ジョー・スミス上の2つのレコードを持っています:私たちは、アドレスの座席を変更したい場合は、強制的な2つの行を変更します。部門は、新しいアドレスジョンのを持って、更新、およびその他の部門は、この時間は、ジョー・スミスは、一貫性のないデータが得られ、表に2つの異なるアドレスを持っているでしょうしていない場合
新しい例外:新しい従業員が会社の場合、彼は誘導期にある場合は、正式にあれば、部門に割り当てられていない
deptNo
フィールドが空ことはできません、私たちがすることができなくなりemployee
、従業員テーブルにデータを追加します。例外を削除するには、次の会社はD3部門を撤回することを前提とし、その後、削除
deptNo
D3を行し、情報がジョン・ドウも削除されます。D3は、彼がこの部門に属しているため。
最初のパラダイム(1NF)
値の原子のみを含むテーブルの列(もはや分)。
1NFのルールに違反して、モバイル列に格納されている2つの電話番号のテーブル席。次のようにテーブル1NFを満たすために、データが変更されるべきです。
ID | 名前 | モバイル | ジップ | 州 | 市 | 地区 | DEPTNO | DEPTNAME |
---|---|---|---|---|---|---|---|---|
101 | ジョー・スミス | 13910000001 | 100001 | 北京 | 北京 | 海淀区 | D1 | セクター1 |
101 | ジョー・スミス | 13910000002 | 100001 | 北京 | 北京 | 海淀区 | D1 | セクター1 |
101 | ジョー・スミス | 13910000001 | 100001 | 北京 | 北京 | 海淀区 | D2 | セクター2 |
101 | ジョー・スミス | 13910000002 | 100001 | 北京 | 北京 | 海淀区 | D2 | セクター2 |
102 | ジョン・ドウ | 13910000003 | 200001 | 上海 | 上海 | 静安区 | D3 | セクター3 |
103 | 王呉 | 13910000004 | 510001 | 広東省 | 広東 | 白雲区 | D4 | セクター4 |
103 | 王呉 | 13910000004 | 510001 | 広東省 | 広東 | 白雲区 | D5 | セクター5 |
第二のパラダイム(2NF)
以下の条件を満足するために第2パラダイム
第1正規形。
いかなる部分も依存するん
例えば、候補キー従業員テーブルは{ID、モバイル、DEPTNO}であり、DEPTNAMEのDEPTNOに依存して、名前のIDに等しく依存し、従って2NFはありません。第二のパラダイムの条件を満たすために、テーブルには4つのテーブルemployee_mobile、従業員、DEPT、employee_deptに分割する必要があります。次のとおりです。
従業員テーブルの従業員
ID | 名前 | ジップ | 州 | 市 | 地区 |
---|---|---|---|---|---|
101 | ジョー・スミス | 100001 | 北京 | 北京 | 海淀区 |
102 | ジョン・ドウ | 200001 | 上海 | 上海 | 静安区 |
103 | 王呉 | 510001 | 広東省 | 広東 | 白雲区 |
部門表dept
DEPTNO | DEPTNAME |
---|---|
D1 | セクター1 |
D2 | セクター2 |
D3 | セクター3 |
D4 | セクター4 |
D5 | セクター5 |
従業員関係部門テーブルemployee_dept
ID | DEPTNO |
---|---|
101 | D1 |
101 | D2 |
102 | D3 |
103 | D4 |
104 | D5 |
従業員の電話リストemployee_mobile
ID | モバイル |
---|---|
101 | 13910000001 |
101 | 13910000002 |
102 | 13910000003 |
103 | 13910000004 |
第3正規形(3NF)
以下の条件の両方のための第三のパラダイム
- 第2正規形
- いいえ推移依存関係ありません
たとえば、州の従業員表、市、区がジップに依存し、ジッパーがIDに依存し、言い換えれば、省、市、区転送がIDに依存し、3NFは、ルールに違反しています。次のように第三のパラダイムの条件を満足するために、このテーブルは、二つのジップと従業員のテーブルに分割することができます
社員
ID | 名前 | ジップ |
---|---|---|
101 | ジョー・スミス | 100001 |
102 | ジョン・ドウ | 200001 |
103 | 王呉 | 510001 |
エリア表エリア
ジップ | 州 | 市 | 地区 |
---|---|---|---|
100001 | 北京 | 北京 | 海淀区 |
200001 | 上海 | 上海 | 静安区 |
51000 | 広東省 | 広東 | 白雲区 |
一般的なリレーショナルデータベースモデルの設計では、我々は第三のパラダイムの要件を満たす必要があります。良い主テーブルの外部キー設計した場合、それは3NFテーブルを満たさなければなりません。標準化のメリットをもたらすことは、データの整合性を確保しながら、データの冗長性を削減することによって、更新データの効率を改善することです。しかし、我々は実用的なアプリケーションでは、過剰な標準化の問題を防止する必要があります。標準化度の高い、より多くの分割テーブルには、より多くの可能性が高いテーブルを使用してクエリデータは操作に参加します。そして、あまりにも多くのテーブルには、接続されている場合、クエリのパフォーマンスに影響を与えます。重要な問題は、慎重にデータクエリを計量、ビジネスニーズに基づいており、標準化の最も適切な度合いを指定して、リレーショナル・データを更新することです。標準の厳格なルールに従うと、ビジネスニーズを変更しません。