関数埓属性の玹介

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

リレヌショナル デヌタベヌスのコンテキストにおける機胜的䟝存性を考慮したす。倧たかに蚀えば、このようなデヌタベヌスでは情報はテヌブルの圢匏で保存されたす。以䞋では、厳密なリレヌショナル理論では互換性のない近䌌抂念を䜿甚したす。テヌブル自䜓をリレヌション、列属性そのセットはリレヌション スキヌマ、属性のサブセット䞊の行倀のセットをタプルず呌びたす。

関数埓属性の玹介

䟋えば、䞊の衚では、 ベン゜ン、M、Mオルガンは属性のタプルである 患者、ポヌル、医垫.
より正匏には次のように曞きたす。 関数埓属性の玹介[患者、ポヌル、医垫] = ベン゜ン、M、Mオルガン.
ここで、機胜䟝存性 (FD) の抂念を導入するこずができたす。

定矩 1. 関係RはFD X → YただしX, Y ⊆ Rを満たす堎合、任意の組に察しお 関数埓属性の玹介, 関数埓属性の玹介 ∈ Rが満たされる堎合 関数埓属性の玹介[X] = 関数埓属性の玹介[X]、その埌 関数埓属性の玹介[Y] = 関数埓属性の玹介[Y]。このような堎合、X (決定芁因、たたは定矩属性セット) が Y (埓属セット) を機胜的に決定するず蚀えたす。

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

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

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

関数埓属性の玹介

関数埓属性の玹介

したがっお、機胜的䟝存関係により、テヌブル属性セット間の既存の関係を刀別できたす。ここからは、最も興味深い関連性、より正確には、 X → Yそれらは次のずおりです。

  • 非自明である、぀たり䟝存関係の右偎は巊偎の郚分集合ではない Y̞⊆X;
  • 最小限、぀たりそのような䟝存関係はない Z → Yその Z⊂X.

これたで怜蚎した䟝存関係は厳密なものであり、぀たり、テヌブルに違反は芏定されおいたせんが、それに加えお、タプルの倀の間にある皋床の䞍敎合を蚱容する䟝存関係もありたす。このような䟝存関係は、近䌌ず呌ばれる別のクラスに配眮され、特定の数のタプルで違反するこずが蚱可されたす。この量は最倧゚ラヌむンゞケヌタヌ emax によっお芏制されたす。䟋えば、゚ラヌ率 関数埓属性の玹介 = 0.01 は、考慮されおいる属性セット䞊の利甚可胜なタプルの 1% によっお䟝存関係が違反される可胜性があるこずを意味する堎合がありたす。぀たり、1000 件のレコヌドのうち、最倧 10 タプルが連邊法に違反する可胜性がありたす。比范したタプルのペアごずに異なる倀に基づいた、少し異なるメトリックを怜蚎したす。䟝存症の堎合 X → Y 態床に぀いお r 蚈算は次のようになりたす。

関数埓属性の玹介

誀差を蚈算しおみたしょう 医垫 → 患者 䞊蚘の䟋から。属性の倀が異なる2぀のタプルがありたす 患者さん、しかしそれらは䞀臎する 医者: 関数埓属性の玹介[医垫、患者] = (ロビン、゚リスそしお、 関数埓属性の玹介[医垫、患者] = (ロビン、グラハム。゚ラヌの定矩に埓うず、すべおの矛盟するペアを考慮する必芁があり、次の 2 ぀が考えられたす。(関数埓属性の玹介, 関数埓属性の玹介ずその反転関数埓属性の玹介, 関数埓属性の玹介。これを匏に代入するず次のようになりたす。

関数埓属性の玹介

さお、「なぜこんなこずが起こるのか」ずいう疑問に答えおみたしょう。実際、連邊法にはさたざたな皮類がありたす。最初のタむプは、デヌタベヌス蚭蚈段階で管理者によっお定矩される䟝存関係です。これらは通垞、数が少なく、厳密であり、䞻な甚途はデヌタの正芏化ずリレヌショナル スキヌマの蚭蚈です。

2 番目のタむプは䟝存関係で、「非衚瀺」のデヌタず、属性間のこれたで䞍明だった関係を衚したす。぀たり、このような䟝存関係は蚭蚈時には考慮されおおらず、既存のデヌタ セットで芋぀かったため、埌で識別された FD のセットに基づいお、保存された情報に぀いお䜕らかの結論を導き出すこずができたす。私たちはたさにそのような䟝存関係のもずで働いおいたす。これらは、さたざたな怜玢技術ずそれを基盀ずしたアルゎリズムを備えたデヌタマむニングの分野党䜓で凊理されたす。発芋された機胜的䟝存関係 (正確たたは近䌌) がどのようなデヌタでもどのように圹立぀かを理解したしょう。

関数埓属性の玹介

珟圚、䟝存関係の䞻な適甚領域の 1 ぀はデヌタのクリヌニングです。これには、「ダヌティデヌタ」を識別しお修正するためのプロセスの開発が含たれたす。 「ダヌティデヌタ」の䞀般的な䟋ずしおは、重耇、デヌタ゚ラヌやタむプミス、欠萜倀、叀いデヌタ、䜙分なスペヌスなどが挙げられたす。

デヌタ゚ラヌの䟋:

関数埓属性の玹介

デヌタ内の重耇の䟋:

関数埓属性の玹介

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

関数埓属性の玹介

もう䞀぀の人気の応甚分野はデヌタベヌス蚭蚈です。ここで、正芏圢ず正芏化を思い出す䟡倀がありたす。正芏化ずは、関係を特定の芁件セットに準拠させるプロセスであり、各芁件は独自の方法で正芏圢によっお定矩されたす。さたざたな正芏圢の芁件に぀いおは説明したせん (これは初心者向けの DB コヌスのどの本でも行われおいたす)。ただし、それぞれの正芏圢が機胜的䟝存性の抂念を独自の方法で䜿甚しおいるこずに泚意したす。結局のずころ、FC は本質的に、デヌタベヌスを蚭蚈するずきに考慮される敎合性制玄です (このタスクのコンテキストでは、FC はスヌパヌキヌず呌ばれるこずもありたす)。

䞋の図で、4 ぀の正芏圢ぞの適甚を芋おみたしょう。ボむス・コッド正芏圢は 3 番目の圢匏よりも厳密ですが、4 番目の圢匏ほど厳密ではないこずに泚意しおください。埌者に぀いおは、その定匏化には倚倀䟝存関係の理解が必芁ですが、この蚘事では関心がないため、ここでは考慮したせん。

関数埓属性の玹介
関数埓属性の玹介
関数埓属性の玹介
関数埓属性の玹介

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

デヌタセット内で連邊法を怜玢するためのアルゎリズムは数倚くありたす (最新のものもそれほど最新ではないものも)。このようなアルゎリズムは、次の 3 ぀のグルヌプに分けられたす。

  • 栌子走査アルゎリズムを甚いたアルゎリズム
  • 差異集合アルゎリズムず䞀臎集合アルゎリズム
  • 䟝存性誘導アルゎリズム

各タむプのアルゎリズムの簡単な説明を次の衚に瀺したす。
関数埓属性の玹介

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

関数埓属性の玹介

関数埓属性の玹介

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

たず、2 番目のタむプのアルゎリズムで䜿甚される、単玔な差異集合ず䞀臎集合から始めたしょう。盞違セットは倀が䞀臎しないタプルのセットですが、䞀臎セットは倀が䞀臎するタプルのセットです。この堎合、䟝存関係の巊偎のみを考慮しおいるこずに泚意しおください。

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

栌子の抂念を導入するには、半順序集合 (たたは略しお poset) の定矩が必芁です。

定矩 2. 集合Sは、任意のa、b、c∈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 ぀の芁玠から別の芁玠に到達できる堎合、それらの芁玠は順序関係にありたす。

関数埓属性の玹介

数孊の分野からのさらに 2 ぀の簡単な定矩、䞊限ず䞋限が必芁になりたす。

定矩 3. ⟹S, ⩜⟩ を半順序集合 A ⊆ S ずする。A の䞊限は u ∈ S の芁玠で、 ∀x ∈ S: x ⩜ u ずなるものである。 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, ⩜⟩ を、すべおの2芁玠郚分集合が最小の䞊限ず最小の䞋限を持぀ような半順序集合ずする。このずき、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} を組み合わせるこずによっお埗られたす。

FD を怜出するためのアルゎリズムでは、怜玢空間は倚くの堎合、栌子の圢匏で衚珟されたす。栌子では、1 ぀の芁玠のセット (䟝存関係の巊偎が 1 ぀の属性で構成される怜玢栌子の最初のレベルを参照) が元の関係の各属性を衚したす。
最初に、∅ → 型の䟝存関係が考慮される。 単䞀属性。 この手順では、どの属性が䞻キヌであるかを刀別できたす (このような属性には決定芁因がないため、巊偎は空になりたす)。そしお、そのようなアルゎリズムはグリッドの䞊に移動したす。グリッド党䜓をトラバヌスするこずはできないこずに泚意しおください。぀たり、巊偎郚分の必芁な最倧サむズが入力に枡された堎合、アルゎリズムはこのサむズのレベルを超えるこずはありたせん。

䞋の図は、FD を芋぀ける問題で代数栌子がどのように䜿甚されるかを瀺しおいたす。ここで各゚ッゞ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) ず呌ばれたす。長さ 1 のクラスタヌは、垞に簡単に刀別できる䞀意の倀を持぀レコヌド番号のみを含むクラスタヌであるため、PLI 圧瞮の目的で陀倖されたす。

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

関数埓属性の玹介

関数埓属性の玹介

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

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

簡単に蚀えば、䟋えば列によるパヌティションを取埗するには ABC、パヌティションを取るこずができたす AC О B (たたはその他の互いに玠な郚分集合の集合) を亀差させたす。 2 ぀のパヌティションの亀差挔算では、䞡方のパヌティションに共通する最長の長さのクラスタヌが遞択されたす。

䟋を芋おみたしょう:

関数埓属性の玹介

関数埓属性の玹介

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

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

関数埓属性の玹介

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

関数埓属性の玹介

関数埓属性の玹介

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

補題1。䟝存関係A, B → Cが成立するのは、

関数埓属性の玹介

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

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

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

関数埓属性の玹介
関数埓属性の玹介
関数埓属性の玹介
関数埓属性の玹介

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

参考文献:

  1. Huhtala Y. 他TANE: 機胜的䟝存関係ず近䌌䟝存関係を発芋するための効率的なアルゎリズム //The computer journal. – 1999幎. – V. 42. – No. 2. – P. 100-111.
  2. Kruse S.、Naumann F. 近䌌䟝存関係の効率的な怜出 // VLDB Endowment の議事録。 – 2018幎. – V. 11. – No. 7. – P. 759-772.
  3. Papenbrock T.、Naumann F. 機胜的䟝存性の怜出に察するハむブリッドアプロヌチ //2016 幎囜際デヌタ管理䌚議の議事録。 – ACM、2016幎。– pp.821-833。
  4. Papenbrock T. 他機胜的䟝存性の発芋: 2015 ぀のアルゎリズムの実隓的評䟡 //VLDB Endowment の議事録。 – 8幎 – 第10å·» – 第1082号 – 1093-XNUMX​​XNUMX頁。
  5. クマヌル A. 他参加するべきか、参加しないべきか?: 特城遞択の前に参加に぀いおよく考える //2016 幎囜際デヌタ管理䌚議の議事録。 – ACM、2016幎。– P.19-34。
  6. Abo Khamis M. 他スパヌステン゜ルを䜿甚したデヌタベヌス内孊習 // デヌタベヌスシステムの原理に関する第 37 回 ACM SIGMOD-SIGACT-SIGAI シンポゞりムの議事録。 – ACM、2018幎。–pp.325-340。
  7. Hellerstein JM 他MADlib 分析ラむブラリ: たたは MAD スキル、SQL //VLDB Endowment の議事録。 – 2012幎. – V. 5. – No. 12. – P. 1700-1711.
  8. Qin C.、Rusu F. テラスケヌル分散募配降䞋法最適化のための掚枬近䌌 //クラりドでのデヌタ分析に関する第 2015 回ワヌクショップの議事録。 – ACM、1幎。– P.XNUMX。
  9. Meng X. 他Mllib: Apache Spark での機械孊習 //The Journal of Machine Learning Research。 – 2016幎. – V. 17. – No. 1. – P. 1235-1241.

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

出所 habr.com

DDoS 保護機胜を備えた信頌性の高いサむト甚ホスティング、VPS VDS サヌバヌを賌入する 🔥 DDoS攻撃察策付きの信頌性の高いりェブサむトホスティング、VPS/VDSサヌバヌを賌入したしょう | ProHoster