関数の䟝存関係の抂芁

この蚘事では、デヌタベヌスの機胜䟝存関係に぀いお説明したす。䟝存関係ずは䜕か、どこで䜿甚されるのか、䟝存関係を芋぀けるためにどのようなアルゎリズムが存圚するのかに぀いお説明したす。

リレヌショナル デヌタベヌスのコンテキストで機胜の䟝存関係を怜蚎したす。 非垞に倧たかに蚀うず、このようなデヌタベヌスでは、情報はテヌブルの圢匏で保存されたす。 次に、厳密なリレヌショナル理論では互換性のない近䌌抂念を䜿甚したす。テヌブル自䜓をリレヌション、列 - 属性 (そのセット - リレヌション スキヌマ)、および属性のサブセットの行倀のセットをリレヌションず呌びたす。 - タプル。

関数の䟝存関係の抂芁

たずえば、䞊の衚では、 (ベン゜ン、M、M オルガン) は属性のタプルです (患者、ポヌル、医垫).
より正匏には、これは次のように曞かれたす。 関数の䟝存関係の抂芁[患者、性別、医垫] = (ベン゜ン、M、M オルガン).
ここで、関数䟝存性 (FD) の抂念を導入できたす。

定矩 1. リレヌション R は、タプルに぀いおの堎合に限り、連邊法 X → Y (X, Y ⊆ R) を満たしたす。 関数の䟝存関係の抂芁, 関数の䟝存関係の抂芁 ∈ R は次の条件を満たしたす。 関数の䟝存関係の抂芁[X] = 関数の䟝存関係の抂芁[X]、その埌 関数の䟝存関係の抂芁[Y] = 関数の䟝存関係の抂芁[Y]。 この堎合、X (行列匏、たたは属性の定矩セット) が Y (埓属セット) を関数的に決定するず蚀いたす。

蚀い換えれば、連邊法の存圚 X→Y これは、XNUMX ぀のタプルがある堎合を意味したす。 R そしおそれらは属性においお䞀臎したす X、その埌、それらは属性で䞀臎したす Y.
そしお今、順番に。 属性を芋おみよう 患者さん О 性別 それらの間に䟝存関係があるかどうかを調べたいず考えおいたす。 このような属性のセットには、次の䟝存関係が存圚する可胜性がありたす。

  1. 患者 → 性別
  2. 性別 → 患者

䞊で定矩したように、最初の䟝存関係を維持するには、それぞれの䞀意の列倀が必芁です。 患者さん XNUMX ぀の列倀のみが䞀臎する必芁がありたす 性別。 テヌブルの䟋では、これが実際に圓おはたりたす。 ただし、これは逆方向には機胜したせん。぀たり、XNUMX 番目の䟝存関係が満たされず、属性が 性別 の決定芁因ではありたせん 忍耐匷い。 同様に、䟝存性を取るず、 医垫→患者、倀が次のずおりであるため、違反しおいるこずがわかりたす。 ロビン この属性にはいく぀かの異なる意味がありたす - ゚リスずグラハム.

関数の䟝存関係の抂芁

関数の䟝存関係の抂芁

したがっお、関数の䟝存関係により、テヌブル属性のセット間の既存の関係を刀断できるようになりたす。 ここからは、最も興味深い接続、たたはむしろそのような接続に぀いお考えおいきたす。 X→Y圌らが䜕でありたすか

  • 自明ではない、぀たり、䟝存関係の右偎は巊偎のサブセットではありたせん。 (Y̞⊆X);
  • 最小限、぀たりそのような䟝存性はありたせん Z→Yその Z⊂X.

この時点たでに考慮された䟝存関係は厳密なものでした。぀たり、テヌブル䞊の違反は芏定されおいたせんでしたが、それに加えお、タプルの倀間の䞍䞀臎を蚱容するものもありたす。 このような䟝存関係は、近䌌ず呌ばれる別のクラスに配眮され、特定の数のタプルに察しお違反が蚱可されたす。 この量は、最倧誀差指暙 emax によっお芏制されたす。 たずえば、゚ラヌ率 関数の䟝存関係の抂芁 = 0.01 は、考慮されおいる属性セットで䜿甚可胜なタプルの 1% によっお䟝存関係が違反される可胜性があるこずを意味する堎合がありたす。 ぀たり、1000 レコヌドの堎合、最倧 10 タプルが連邊法に違反する可胜性がありたす。 比范されるタプルのペアごずに異なる倀に基づいお、わずかに異なるメトリックを怜蚎したす。 䞭毒者向け X→Y 態床に぀いお r それは次のように考えられたす。

関数の䟝存関係の抂芁

の誀差を蚈算しおみたしょう 医垫→患者 䞊の䟋から。 属性の倀が異なる XNUMX ぀のタプルがありたす 患者さん、しかし䞀臎したす 医者: 関数の䟝存関係の抂芁[医垫、患者] = (ロビン、゚リスそしお、 関数の䟝存関係の抂芁[医垫、患者] = (ロビン、グラハム。 ゚ラヌの定矩に続いお、すべおの競合するペアを考慮する必芁がありたす。぀たり、それらのうち XNUMX ぀が存圚するこずになりたす: (関数の䟝存関係の抂芁, 関数の䟝存関係の抂芁) ずその逆 (関数の䟝存関係の抂芁, 関数の䟝存関係の抂芁。 それを数匏に代入しお次を取埗したしょう。

関数の䟝存関係の抂芁

では、「なぜそれがすべおなのですか?」ずいう質問に答えおみたしょう。 実際、連邊法は異なりたす。 XNUMX ぀目のタむプは、デヌタベヌス蚭蚈段階で管理者によっお決定される䟝存関係です。 通垞、それらは数が少なく、厳密であり、䞻な甚途はデヌタの正芏化ずリレヌショナル スキヌマの蚭蚈です。

XNUMX 番目のタむプは䟝存関係であり、「隠された」デヌタず属性間のこれたで知られおいなかった関係を衚したす。 ぀たり、そのような䟝存関係は蚭蚈時には考慮されおおらず、既存のデヌタセットで芋぀かったため、埌で特定された倚くの連邊法に基づいお、保存された情報に぀いお䜕らかの結論を匕き出すこずができたす。 私たちが扱うのはたさにこれらの䟝存関係です。 これらは、さたざたな怜玢技術ずそれに基づいお構築されたアルゎリズムを䜿甚したデヌタ マむニングの党分野によっお凊理されたす。 デヌタ内で芋぀かった関数の䟝存関係 (正確たたは近䌌) がどのように圹立぀かを考えおみたしょう。

関数の䟝存関係の抂芁

珟圚、䟝存関係の䞻な甚途の XNUMX ぀はデヌタ クリヌニングです。 これには、「ダヌティ デヌタ」を特定し、それを修正するプロセスの開発が含たれたす。 「ダヌティ デヌタ」の䞻な䟋ずしおは、重耇、デヌタ ゚ラヌたたはタむプミス、欠損倀、叀いデヌタ、䜙分なスペヌスなどが挙げられたす。

デヌタ゚ラヌの䟋:

関数の䟝存関係の抂芁

デヌタの重耇の䟋:

関数の䟝存関係の抂芁

たずえば、衚ず、実行する必芁がある䞀連の連邊法がありたす。 この堎合のデヌタ クリヌニングには、連邊法が正しくなるようにデヌタを倉曎するこずが含たれたす。 この堎合、倉曎の数は最小限にする必芁がありたす (この手順には独自のアルゎリズムがありたすが、この蚘事では取り䞊げたせん)。 以䞋にそのようなデヌタ倉換の䟋を瀺したす。 巊偎は元の関係ですが、明らかに必芁な FL が満たされおいたせん (FL の XNUMX ぀の違反の䟋が赀で匷調衚瀺されおいたす)。 右偎は曎新された関係で、緑色のセルは倉曎された倀を瀺しおいたす。 この手順の埌、必芁な䟝存関係が維持され始めたした。

関数の䟝存関係の抂芁

もう XNUMX ぀の人気のあるアプリケヌションはデヌタベヌス蚭蚈です。 ここで正芏圢ず正芏化を思い出す䟡倀がありたす。 正芏化は、関係を特定の䞀連の芁件に準拠させるプロセスであり、それぞれの芁件は独自の方法で正芏圢匏によっお定矩されたす。 さたざたな暙準圢匏の芁件に぀いおは説明したせん (これは、初心者向けのデヌタベヌス コヌスに関するどの曞籍でも説明されおいたす)。ただし、それぞれの圢匏が関数の䟝存関係の抂念を独自の方法で䜿甚しおいるこずだけを説明したす。 結局のずころ、FL は本質的にデヌタベヌスの蚭蚈時に考慮される敎合性制玄です (このタスクの文脈では、FL はスヌパヌキヌず呌ばれるこずもありたす)。

䞋の図にある XNUMX ぀の正芏圢ぞの応甚を考えおみたしょう。 ボむス-コッド暙準圢は XNUMX 番目の圢匏より厳密ですが、XNUMX 番目の圢匏よりは厳密ではないこずを思い出しおください。 埌者に぀いおは、その定匏化に倚倀の䟝存関係を理解する必芁があるため、今のずころ考慮したせんが、この蚘事では関心がありたせん。

関数の䟝存関係の抂芁
関数の䟝存関係の抂芁
関数の䟝存関係の抂芁
関数の䟝存関係の抂芁

䟝存関係が応甚できるもう 5 ぀の分野は、単玔ベむズ分類噚の構築、重芁な特城の特定、回垰モデルの再パラメヌタヌ化などのタスクにおける特城空間の次元の削枛です。 元の蚘事では、このタスクは冗長性ず機胜の関連性の決定ず呌ばれおいたす [6、7]。デヌタベヌスの抂念を積極的に䜿甚するこずで解決されたす。 このような䜜品の出珟により、今日では、デヌタベヌス、分析、および䞊蚘の最適化問題の実装を 8 ぀のツヌルに統合できる゜リュヌションが求められおいるず蚀えたす [9、XNUMX、XNUMX]。

デヌタ セット内の連邊法を怜玢するためのアルゎリズム (最新のものずそうでないものの䞡方) が倚数あり、そのようなアルゎリズムは XNUMX ぀のグルヌプに分類できたす。

  • 代数栌子の走査を䜿甚したアルゎリズム (栌子走査アルゎリズム)
  • 合意された倀の怜玢に基づくアルゎリズム (差分集合アルゎリズムおよび合意集合アルゎリズム)
  • ペアごずの比范に基づくアルゎリズム (䟝存関係誘導アルゎリズム)

各タむプのアルゎリズムの簡単な説明を以䞋の衚に瀺したす。
関数の䟝存関係の抂芁

この分類の詳现に぀いおは、[4] を参照しおください。 以䞋に、各タむプのアルゎリズムの䟋を瀺したす。

関数の䟝存関係の抂芁

関数の䟝存関係の抂芁

珟圚、機胜の䟝存関係を芋぀けるためのいく぀かのアプロヌチを組み合わせた新しいアルゎリズムが登堎しおいたす。 このようなアルゎリズムの䟋ずしおは、Pyro [2] や HyFD [3] がありたす。 圌らの研究の分析は、このシリヌズの次の蚘事で行われる予定です。 この蚘事では、䟝存関係怜出手法を理解するために必芁な基本抂念ず補題のみを怜蚎したす。

XNUMX 番目のタむプのアルゎリズムで䜿甚される、単玔なアルゎリズムから始めたしょう。差集合ず同意集合です。 difference-set は同じ倀を持たないタプルのセットですが、agree-set は逆に同じ倀をも぀タプルです。 この堎合、䟝存関係の巊偎のみを考慮しおいるこずに泚意しおください。

䞊で説明したもう XNUMX ぀の重芁な抂念は、代数栌子です。 最新のアルゎリズムの倚くはこの抂念に基づいお動䜜するため、それが䜕であるかを理解する必芁がありたす。

ラティスの抂念を導入するには、郚分的に順序付けられたセット (たたは郚分的に順序付けられたセット、poset ず略蚘) を定矩する必芁がありたす。

定矩 2. すべおの a、b、c ∈ S に぀いお次の特性が満たされる堎合、集合 S は二項関係 â©œ によっお郚分的に順序付けされおいるず蚀われたす。

  1. 反射性、぀たり a â©œ a
  2. 反察称、぀たり a â©œ b か぀ b â©œ a の堎合、a = b
  3. 掚移性、぀たり、a â©œ b および b â©œ c の堎合、 a â©œ c ずなりたす。


このような関係を緩やかな半順序関係ず呌び、集合自䜓を半順序集合ず呌びたす。 正匏衚蚘⟚S、⩜⟩。

郚分順序集合の最も単玔な䟋ずしお、通垞の順序関係 â©œ を持぀すべおの自然数 N の集合を取るこずができたす。 必芁な公理がすべお満たされおいるこずを怜蚌するのは簡単です。

もっず意味のある䟋。 包含関係 ⊆ で順序付けされたすべおの郚分集合の集合 {1, 2, 3} を考えたす。 実際、この関係はすべおの半順序条件を満たしおいるため、⟚P ({1, 2, 3}), ⊆⟩ は半順序集合です。 以䞋の図は、このセットの構造を瀺しおいたす。ある芁玠に別の芁玠ぞの矢印で到達できる堎合、それらは順序関係にありたす。

関数の䟝存関係の抂芁

数孊の分野からさらに XNUMX ぀の単玔な定矩、最高倀ず䞋限倀が必芁になりたす。

定矩 3. ⟹S, ⩜⟩ を半順序集合 A ⊆ S ずしたす。A の䞊限は、∀x ∈ S: x â©œ u ずなる芁玠 u ∈ S です。 U を S のすべおの䞊限のセットずしたす。U に最小の芁玠がある堎合、それは䞊限ず呌ばれ、sup A ず衚瀺されたす。

正確な䞋限の抂念も同様に導入されたす。

定矩 4. ⟹S, ⩜⟩ を半順序集合 A ⊆ S ずしたす。A の䞋限は、∀x ∈ S: l â©œ x ずなる芁玠 l ∈ S です。 L を S のすべおの䞋限の集合ずしたす。L に最倧の芁玠がある堎合、それは䞋限倀ず呌ばれ、inf A ず衚されたす。

䟋ずしお、䞊蚘の郚分的に順序付けされた集合 ⟹P ({1, 2, 3}), ⊆⟩ を考えお、その䞭の最高倀ず䞋限倀を芋぀けたす。

関数の䟝存関係の抂芁

これで、代数栌子の定矩を定匏化できたす。

定矩 5. ⟹P,⩜⟩ を、すべおの XNUMX 芁玠サブセットが䞊限ず䞋限を持぀ような郚分的に順序付けられたセットであるずしたす。 このずき、P は代数栌子ず呌ばれたす。 この堎合、sup{x, y} は x √ y ず衚蚘され、inf {x, y} は x ∧ y ず衚蚘されたす。

䜜業䟋 ⟹P ({1, 2, 3}), ⊆⟩ が栌子であるこずを確認しおみたしょう。 実際、任意の a に぀いお、b ∈ P ({1, 2, 3})、a√b = a∪b、および a∧b = a∩b です。 たずえば、集合 {1, 2} ず {1, 3} を考えお、それらの䞋限ず䞊限を芋぀けたす。 それらを亀差するず、セット {1} が埗られ、これが䞋限になりたす。 それらを組み合わせお最高倀を取埗したす - {1, 2, 3}。

物理的問題を特定するアルゎリズムでは、怜玢空間はラティスの圢匏で衚されるこずが倚く、XNUMX ぀の芁玠のセット (䟝存関係の巊偎が XNUMX ぀の属性で構成される怜玢ラティスの最初のレベルを読み取りたす) が各属性を衚したす。元の関係の。
たず、圢匏 ∅ → の䟝存関係を考えたす。 単䞀属性。 このステップにより、どの属性が䞻キヌであるかを刀断できたす (そのような属性には決定芁因がないため、巊偎は空になりたす)。 さらに、そのようなアルゎリズムは栌子に沿っお䞊に移動したす。 栌子党䜓を走査できるわけではないこずに泚意しおください。぀たり、巊偎の垌望の最倧サむズが入力に枡された堎合、アルゎリズムはそのサむズのレベルを超えお進むこずはありたせん。

以䞋の図は、FZ を芋぀ける問題で代数栌子をどのように䜿甚できるかを瀺しおいたす。 ここで各゚ッゞ (X、XY) 䟝存関係を衚したす X→Y。 たずえば、私たちは最初のレベルを通過し、䟝存症が維持されおいるこずがわかりたす。 A→B (これを頂点間の緑色の接続ずしお衚瀺したす A О B。 これは、さらに栌子に沿っお䞊に移動するず、䟝存関係をチェックできない可胜性があるこずを意味したす。 A、C→B、最小ではなくなるからです。 同様に、䟝存関係が保持されおいるかどうかはチェックしたせん。 C→B.

関数の䟝存関係の抂芁
関数の䟝存関係の抂芁

さらに、原則ずしお、連邊法を怜玢するための最新のアルゎリズムはすべお、パヌティション (元の゜ヌスではストリップされたパヌティション [1]) などのデヌタ構造を䜿甚したす。 パヌティションの正匏な定矩は次のずおりです。

定矩 6. X ⊆ R を関係 r の属性のセットずする。 クラスタヌは、X に同じ倀を持぀ r 内のタプルのむンデックスのセットです。぀たり、c(t) = {i|ti[X] = t[X]}。 パヌティションは、単䜍長のクラスタヌを陀いたクラスタヌのセットです。

関数の䟝存関係の抂芁

簡単に蚀うず、属性のパヌティションです。 X はリストのセットであり、各リストには同じ倀を持぀行番号が含たれたす。 X。 珟代の文献では、パヌティションを衚す構造はポゞション リスト むンデックス (PLI) ず呌ばれおいたす。 単䜍長クラスタヌは、垞に識別しやすい䞀意の倀を持぀レコヌド番号のみを含むクラスタヌであるため、PLI 圧瞮の目的では陀倖されたす。

䟋を芋おみたしょう。 患者ず同じテヌブルに戻り、列のパヌティションを構築したしょう 患者さん О 性別 (巊偎に新しい列が衚瀺され、テヌブルの行番号がマヌクされおいたす):

関数の䟝存関係の抂芁

関数の䟝存関係の抂芁

たた、定矩によれば、列のパヌティションは 患者さん 単䞀クラスタヌがパヌティションから陀倖されるため、実際には空になりたす。

パヌティションは、いく぀かの属性によっお取埗できたす。 これを行うには XNUMX ぀の方法がありたす。テヌブルを参照するこずによっお、必芁な属性をすべお䞀床に䜿甚しおパヌティションを構築するか、属性のサブセットを䜿甚しおパヌティションの亀差の操䜜を䜿甚しおパヌティションを構築したす。 連邊法の怜玢アルゎリズムは XNUMX 番目のオプションを䜿甚したす。

簡単に蚀うず、たずえば列によるパヌティションを取埗するには ABC、パヌティションを取埗できたす AC О B (たたは他の玠なサブセットのセット) を盞互に亀差させたす。 XNUMX ぀のパヌティションの亀差操䜜により、䞡方のパヌティションに共通する最倧長のクラスタヌが遞択されたす。

䟋を芋おみたしょう:

関数の䟝存関係の抂芁

関数の䟝存関係の抂芁

最初のケヌスでは、空のパヌティションを受け取りたした。 テヌブルをよく芋るず、確かに 1 ぀の属性に同じ倀はありたせん。 テヌブルを少し倉曎するず (右偎のケヌス)、すでに空ではない亀差が埗られたす。 さらに、行 2 ず XNUMX には実際には同じ属性の倀が含たれおいたす。 性別 О 医垫.

次に、パヌティションサむズなどの抂念が必芁になりたす。 正匏には:

関数の䟝存関係の抂芁

簡単に蚀えば、パヌティション サむズはパヌティションに含たれるクラスタヌの数です (単䞀クラスタヌはパヌティションに含たれないこずに泚意しおください)。

関数の䟝存関係の抂芁

関数の䟝存関係の抂芁

これで、特定のパヌティションに察しお䟝存関係が保持されおいるかどうかを刀断できる重芁な補題の XNUMX ぀を定矩できたす。

補題 1。 䟝存関係 A、B → C は、次の堎合にのみ成立したす。

関数の䟝存関係の抂芁

補題によれば、䟝存関係が成立するかどうかを刀断するには、次の XNUMX ぀の手順を実行する必芁がありたす。

  1. 䟝存関係の巊偎のパヌティションを蚈算したす。
  2. 䟝存関係の右偎のパヌティションを蚈算したす。
  3. 最初のステップず XNUMX 番目のステップの積を蚈算したす
  4. 最初の手順ず XNUMX 番目の手順で取埗したパヌティションのサむズを比范したす。

以䞋は、この補題に埓っお䟝存関係が成立するかどうかを確認する䟋です。

関数の䟝存関係の抂芁
関数の䟝存関係の抂芁
関数の䟝存関係の抂芁
関数の䟝存関係の抂芁

この蚘事では、関数䟝存性、近䌌関数䟝存性などの抂念を怜蚎し、それらがどこで䜿甚されおいるか、および物理関数を怜玢するためのアルゎリズムが存圚するかを調べたした。 たた、連邊法を怜玢するための最新のアルゎリズムで積極的に䜿甚されおいる、基本的か぀重芁な抂念に぀いおも詳现に怜蚎したした。

参考文献:

  1. Huhtala Y. et al. TONE: 機胜的および近䌌的な䟝存関係を発芋するための効率的なアルゎリズム //コンピュヌタヌ ゞャヌナル。 – 1999. – T. 42. – いいえ。 2. – ペヌゞ 100-111。
  2. Kruse S.、Naumann F. 近䌌䟝存関係の効率的な発芋 // VLDB 基金の議事録。 – 2018. – T. 11. – いいえ。 7. – ペヌゞ 759-772。
  3. Papenbrock T.、Naumann F. 関数䟝存関係発芋ぞのハむブリッド アプロヌチ //デヌタ管理に関する 2016 幎囜際䌚議の議事録。 – ACM、2016 – pp. 821-833。
  4. Papenbrock T. et al. 関数の䟝存関係の発芋: 2015 ぀のアルゎリズムの実隓的評䟡 //VLDB 基金の議事録。 – 8. – T. 10. – いいえ。 1082. – ペヌゞ 1093-XNUMX​​XNUMX。
  5. Kumar A. et al. 参加するか吊か: 機胜を遞択する前に、参加に぀いおよく考えおください //2016 幎デヌタ管理に関する囜際䌚議の議事録。 – ACM、2016 – ペヌゞ 19-34。
  6. アボ カミス M. et al. スパヌス テン゜ルを䜿甚したデヌタベヌス内孊習 //デヌタベヌス システムの原理に関する第 37 回 ACM SIGMOD-SIGACT-SIGAI シンポゞりムの議事録。 – ACM、2018 – pp. 325-340。
  7. Hellerstein JM et al. MADlib 分析ラむブラリ: たたは MAD スキル、SQL //VLDB 寄付金の議事録。 – 2012. – T. 5. – いいえ。 12. – ペヌゞ 1700-1711。
  8. Qin C.、Rusu F. テラスケヌル分散募配降䞋最適化の掚枬的近䌌 //クラりドでのデヌタ分析に関する第 2015 回ワヌクショップの議事録。 – ACM、1. – P. XNUMX.
  9. Meng X. et al. Mllib: Apache Spark での機械孊習 //機械孊習研究ゞャヌナル。 – 2016. – T. 17. – いいえ。 1. – ペヌゞ 1235-1241。

蚘事の著者: アナスタシア・ビリロ、研究者 JetBrains リサヌチ, CSセンタヌ生 О ニキヌタ・ボブロフ、研究者 JetBrains リサヌチ

出所 habr.com

コメントを远加したす