データベースシステムのパラダイムシフトの問題の概要

リレーショナルスキーマコードを解決する方法

候補コードを求める単純な方法は:
(1)属性が集中しない関数従属である場合には、候補コードに含まれなければならない;及び
(2)属性がある場合は、それが本含まれている必要がありますされた機能依存の権利の機能依存性濃度ではありません候補コード;および
プロパティは、関数従属性の左側セットに表示された場合(3)、属性が候補コードに含まれている必要があります。
属性または一意タプルがグループを識別する(4)場合は、候補コードです。

上述の方法の11個の組み合わせの後と決意キーの組み合わせをカリング添加、すなわち選出されており、キー属性の残りの部分の残りの部分とを決定することができます

例:

(1)R <U、F >、Uは、=(A、B、C、D、E、G)、F = {AB - > C、CD - > E、E - > AA - > G }、候補コードを求めていますか?
  Gのみによる右側に表示され、彼らは、候補コードGに属していなければなりません。

  Bは、D特定の候補コードに属するように、Bは、Dは、唯一の左側に表示されます。

  BD BDまたは閉鎖は、BD組成物について、Gに加えて、BDは、A、C、Eと組み合わせることができます

  パッケージ自体はABD ABD ABD、およびABを見ているので - > C、CD - > E、A - > Gは、閉鎖のでABD ABDCEG = Uであります 

  BDCのCDを見て - > E、E - > A、A - > G、BDCパッケージ自体、BDC BDCEAG = Uの閉鎖から

  最後BDE Eを見て - > A、A - > G、AB - > C、パッケージからBDE自体、BDE BDEAGC = Uの閉鎖

  したがって、候補コードブックは、三つの問題を有しているABCDEGさクロージャの(ABD)、(BCD)、(BDE)のでABC、BCD及びBDEであります

第二、2NFを変換する方法

一般的な図面は限りうまく新たな関係のためのキーに依存部分で部分的に分離された非主要属性として、解決することができます。

第三に、3NFを変換する方法は、(ここで書かれた直接依存保持及び可逆変換方法は、分解)

 

1.タイトルの上に直接、(各依存性、依存関係のセット全体への影響を除去するかどうか依存決意のために個々に除去される)の依存関係の最小セットを解きます

 実施例1:関係モデルR <U、F>、U- = {C、T、Hは、R、S、G}、
F.は= {CS→G、C→T、TH→R&LT、HR→C、HS→ R}、それが機能的依存性に分解及び3NFを維持しています。
溶液:解決アルゴリズムに従って、     
(a)のFに依存する最小セット関数算出
      分解ルールの①使用し、すべての機能が単一の属性依存に右に依存する関数です。すべての機能以来Fは、それを分解することなく、単一の属性の右側に依存しています。
      ②過剰機能依存F削除
      A.を CS→G冗長関数従属性を提供し、次に得るために、CS→Gを削除:
      FL = {C→T、TH→R&LT、HR→C、HS→R&LT}
      計算(CS)F1 +:
      集合X(0)= CSは、
      X(1)を計算する:F1の走査それぞれの機能の依存関係を、関数従属性の左側部分は、C→T依存性関数を見つけるために、CSまたはCSサブセットを見つけます。したがって、X(1)= X(0 )= CST∪T。
      各機能従属関係をスキャンでF1、又は任意の機能の依存関係を見つけることができませんでした、CST CSTサブセット関数従属性の左側部分を見つける:X(2)を計算します。したがって、X(2)= X(1 )。アルゴリズムは終了します。
      (CS)F1 + = CSTは、Gを含まない、それは関数依存CS→Gの冗長性ではない、F1から除去することができません。
      B. C→T冗長機能の依存関係を設定し、次に与えるためにC→Tを削除:
      =のF2 {CS→G、TH→R&LT、HRー→C、HS→R&LT}が
      算出される(C)F2 +:
      集合X(0)= C
      X(1)を計算する:F2は、各機能依存性はC-依存の左部分の関数として検出されないスキャン。したがって、X(1)= X(0 )。アルゴリズムは終了します。C→Tが冗長機能依存性ではない、それはF2から除去することができません。
      C. :TH→Rは、冗長関数従属提供され、次に与えるために、TH→Rを除去
      F3 = {CS→G、C→T、HR→C、HS→R&LT}
      計算(TH)F3 +:
      集合X(0)= TH
      演算X(1):各機能依存性F3走査は左部分依存性またはTH THサブセットの関数として検出されません。したがって、X(1)= X(0 )。アルゴリズムは終了します。TH→Rは、冗長な機能依存性ではないので、それはF3から除去することができません。
      D. 与えるために、HR→Cを除去し、次いで、HR→C冗長機能依存性を提供:
      F4 = {CS→G、C→T、TH→R&LT、HS→R&LTは}
      計算(HR)F4 +:
      集合X(0)= HR
      計算X(1):各機能依存性F4スキャン、関数HRまたはHR依存サブセットの左側部分が見つかりません。したがって、X(1)= X(0 )。アルゴリズムは終了します。したがって、機能的依存性HR→Cは冗長ではなく、F4から除去することができません。
      E. 提供HS→Rは、あまりにも、その後除去HS→R冗長関数従属である:
      F5 = {CS→G、C→T、TH→R&LT、HRー→C}が
      算出される(HS)F5 +:
      集合X(0)= HS
      Xを算出する(1):各走査機能F5依存性は、機能またはHS HSサブセット依存性の左部分は見つかりませんでした。したがって、X(1)= X(0 )。アルゴリズムは終了します。HS→Rは、冗長な機能依存性ではないので、それはF5から除去することができません。すなわち:F5 = {CS→G、 C→T、TH→R、HR→C、HS→R}
      ③F5過剰左側に各機能の依存属性を削除し、余分な左機能的依存性(チェック機能の唯一の左の部分は、個々の属性に依存しておりません)。
したがって、最小機能依存関係として:F = {CS→G、 C→T、TH→R、HR→C、HS→R}

いかなる属性は両側に表示されない場合、依存依存して設定された最小2.これらの属性がセットに分割され、存在します

3.必要なロスレスが接続されている場合は、直接、候補コードを追加します

 

 

既知のR(ABCDE)、F = {A - > D、E-> D、D-> B、BC-> D、DC-> A}リクエストは、機能依存3NF分解のままであり、非破壊接続性を維持することと機能依存の分解3NF
最初のステップ: BG依存分解問題は、まず最低限の依存関係セットを見つけます Rの最小依存性の第1の設定値、使用可能F = {A - > D、 E-> D、D-> B、BC-> D、DC-> A}
ステップ2: 残りの従属変数のサブセット、脇部分集合に分割し、両側に表示されていない依存 まず、我々は、得られた各部分集合に{AD} {ED} {DBに依存して、両側のすぐ要素なし見つかりません } {BCD} {DCA}、 また、機能依存性分解3NFを維持することが望ましいです
第三ステップ: やる候補の別のサブセットを追加するロスレス接続に R全体としての関係を決定することができる、いわゆる候補コードの候補者を見つけるためのコード、我々は右の要素に依存していなかったと両側が見ることで得られるように見える浮上している、あなたはCEが右側に表示されません見つけることができますので、候補コード{CE}です。したがって、必要な非破壊3NF接続および分解依存{AD} {ED} {DBの保持機能 } {BCD} {DCA} {} CE

 第三に、ターンBCNF

 基本的なステップに分解リレーショナルスキーマR <U、F>はBCNFであります

出力が準拠する場合1)。得られた候補キーは、BCNFでリレーショナルスキーマRかどうかを確認します
2)の関係S RモードはBCNFを満たしていない場合は確かX-> Aを有し、候補キーワードを含むリレーショナルスキーマの各々の左側の部分かどうかを確認するF +に属し、そしてXは、候補キーS.ありません S XAがS {S1、S2}、S1 = XA、S2 =(SA)Xへの特性の全てを含んでいないため、最小の機能的依存性を計算し、{S1、S2}の代わりに最初に置換S-ステップ。
 
第四に、総合的な例
実施例2リレーショナルスキーマR <U、F>、そこU = {A、B、C、D、E、F、G}、F = {B-> G、CE-> B、C-> A、CE - > G、B-> D、C-> D}、
(1)リレーショナル・モデルは、分解および機能依存3NFままであります
(2)リレーショナル・モデルはBCNFに分解されます
 
 
リレーショナルモデルを分解し、機能的な依存関係3NF残っています:
B-> Gの冗長性を仮定し、(B)+ = BD、冗長でないなしG。
CE-> Bの冗長性、(CE)+ = CEGDA、冗長でないないBと仮定する。
C->冗長性、(C)+ = CD、それは冗長ではないと仮定する。
一つは、最小機能依存Fmは= {B-> G、CE-> B、C-> A、B-> D、C-> D}を得ることができます。
(BDG)、(CEB)、(CAD):1つのグループに同一の左側部分の結合後。
したがって、リレーショナルモデルは分解の機能的依存3NF結果ままである:(BDG)、(CEB)、(CAD)。
 
リレーショナルモデルはBCNFに分解されます。
まず、候補者は、リレーショナルモデルのキーワード(CE)を取得
因为Fmは= {B-> G、CE-> B、C-> A、B-> D、C-> D}。
モード間の関係、B-> Gの最初のものに含まれていない左部CEを探し始めます、
= {(BG)、{B-> G}} R1に分け、R2 = {(ABCDE)、{CE-> B、C-> A、B-> D、C-> D}}。Gが、R2に表示されないことに注意してください、別のモードに応じて関係はG.に関連付けられます
R1とR2の機能的依存性の最小値を求めて、上述したアルゴリズムステップに従って厳密に行われます。
R1、R2は最小の機能的依存性自体です。
その後、分解、BCNFと一致R1は、R2を分解し続けます。
B-> D、次に= {(BD)、{B-> D}} R2を分解し、コード部の自由左、R3 = {(ABCE)、{CE-> B、C-> A}}。
R2、R3最小機能の依存関係そのものです。
最終的な結果は、BCNF {(BG)、(BD)、(ABCE)を}分解されます。

おすすめ

転載: www.cnblogs.com/buaawtt/p/11069910.html