BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

Ebben a cikkben az adatbĂĄzisok funkcionĂĄlis fĂŒggƑsĂ©geirƑl fogunk beszĂ©lni - mik ezek, hol hasznĂĄljĂĄk Ƒket, Ă©s milyen algoritmusok lĂ©teznek ezek megtalĂĄlĂĄsĂĄra.

A funkcionĂĄlis fĂŒggƑsĂ©geket a relĂĄciĂłs adatbĂĄzisok kontextusĂĄban fogjuk megvizsgĂĄlni. Nagyon durvĂĄn fogalmazva, az ilyen adatbĂĄzisokban az informĂĄciĂłkat tĂĄblĂĄzatok formĂĄjĂĄban tĂĄroljĂĄk. EzutĂĄn közelĂ­tƑ fogalmakat hasznĂĄlunk, amelyek a szigorĂș relĂĄciĂłelmĂ©letben nem felcserĂ©lhetƑk: magĂĄt a tĂĄblĂĄt relĂĄciĂłnak, az oszlopokat - attribĂștumokat (halmazuk - relĂĄciĂłs sĂ©ma) Ă©s a sorĂ©rtĂ©kek halmazĂĄt az attribĂștumok egy rĂ©szhalmazĂĄn. - egy tuple.

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

PĂ©ldĂĄul a fenti tĂĄblĂĄzatban (Benson, M, M orgona) attribĂștumok sorozata (beteg, Paul, orvos).
FormĂĄlisabban ez Ă­gy van leĂ­rva: BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe[Beteg, nem, orvos] = (Benson, M, M orgona).
Most bevezethetjĂŒk a funkcionĂĄlis fĂŒggƑsĂ©g (FD) fogalmĂĄt:

1. definĂ­ciĂł. Az R relĂĄciĂł akkor Ă©s csak akkor teljesĂ­ti az X → Y szövetsĂ©gi törvĂ©nyt (ahol X, Y ⊆ R) akkor Ă©s csak akkor, ha bĂĄrmely sorra BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe, BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe ∈ R teljesĂŒl: ha BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe[X] = BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe[X] akkor BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe[Y] = BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe[Y]. Ebben az esetben azt mondjuk, hogy X (az attribĂștumok meghatĂĄrozĂł vagy meghatĂĄrozĂł halmaza) funkcionĂĄlisan meghatĂĄrozza Y-t (a fĂŒggƑ halmazt).

MĂĄs szĂłval, egy szövetsĂ©gi törvĂ©ny jelenlĂ©te X → Y azt jelenti, hogy ha kĂ©t sorunk van R Ă©s attribĂștumokban egyeznek X, akkor attribĂștumokban egybe fognak esni Y.
És most sorrendben. NĂ©zzĂŒk az attribĂștumokat beteg Đž Neme amelyekhez azt szeretnĂ©nk kiderĂ­teni, hogy vannak-e köztĂŒk fĂŒggƑsĂ©gek vagy sem. Egy ilyen attribĂștumkĂ©szlet esetĂ©n a következƑ fĂŒggƑsĂ©gek lĂ©tezhetnek:

  1. Beteg → Nem
  2. Nem → Beteg

A fent meghatĂĄrozottak szerint, hogy az elsƑ fĂŒggƑsĂ©g megmaradjon, minden egyedi oszlopĂ©rtĂ©ket beteg csak egy oszlopĂ©rtĂ©knek kell egyeznie Neme. És a pĂ©ldatĂĄblĂĄzat esetĂ©ben ez valĂłban Ă­gy van. Ez azonban nem mƱködik az ellenkezƑ irĂĄnyba, vagyis a mĂĄsodik fĂŒggƑsĂ©g nem teljesĂŒl, Ă©s az attribĂștum Neme szĂĄmĂĄra nem meghatĂĄrozĂł Beteg. HasonlĂłkĂ©ppen, ha a fĂŒggƑsĂ©get vesszĂŒk Orvos → Beteg, lĂĄthatĂł, hogy megsĂ©rtettĂ©k, hiszen az Ă©rtĂ©k vörösbegy ennek az attribĂștumnak többfĂ©le jelentĂ©se van - Ellis Ă©s Graham.

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

Így a funkcionĂĄlis fĂŒggƑsĂ©gek lehetƑvĂ© teszik a tĂĄblaattribĂștumkĂ©szletek közötti meglĂ©vƑ kapcsolatok meghatĂĄrozĂĄsĂĄt. InnentƑl kezdve a legĂ©rdekesebb összefĂŒggĂ©seket, vagy inkĂĄbb ilyeneket fogjuk figyelembe venni X → Ymik Ƒk:

  • nem triviĂĄlis, vagyis a fĂŒggƑsĂ©g jobb oldala nem a bal rĂ©szhalmaza (Y ̞⊆ X);
  • minimĂĄlis, vagyis nincs ilyen fĂŒggƑsĂ©g Z → YHogy Z ⊂ X.

Az eddig figyelembe vett fĂŒggƑsĂ©gek szigorĂșak voltak, vagyis nem Ă­rtak elƑ semmilyen szabĂĄlysĂ©rtĂ©st az asztalon, de rajtuk kĂ­vĂŒl vannak olyanok is, amelyek nĂ©mi inkonzisztenciĂĄt engednek meg a sorok Ă©rtĂ©kei között. Az ilyen fĂŒggƑsĂ©gek egy kĂŒlön osztĂĄlyba kerĂŒlnek, amelyet hozzĂĄvetƑlegesnek neveznek, Ă©s bizonyos szĂĄmĂș sor esetĂ©n megsĂ©rthetƑk. Ezt az összeget az emax maximĂĄlis hibajelzƑ szabĂĄlyozza. PĂ©ldĂĄul a hibaarĂĄnyt BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe = 0.01 azt jelentheti, hogy a fĂŒggƑsĂ©get a rendelkezĂ©sre ĂĄllĂł sorok 1%-a megsĂ©rtheti az adott attribĂștumkĂ©szleten. Vagyis 1000 rekordnĂĄl legfeljebb 10 sor sĂ©rtheti a szövetsĂ©gi törvĂ©nyt. Egy kissĂ© eltĂ©rƑ mĂ©rƑszĂĄmot fogunk figyelembe venni, az összehasonlĂ­tott sorok pĂĄronkĂ©nt eltĂ©rƑ Ă©rtĂ©kei alapjĂĄn. A fĂŒggƑsĂ©g miatt X → Y a hozzĂĄĂĄllĂĄsrĂłl r Ă­gy tekintendƑ:

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

SzĂĄmĂ­tsuk ki a hibĂĄt Orvos → Beteg a fenti pĂ©ldĂĄbĂłl. KĂ©t sorunk van, amelyek Ă©rtĂ©ke eltĂ©r az attribĂștumban beteg, de egybeesik Orvos: BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe[Orvos, beteg] = (Robin, Ellis) És BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe[Orvos, beteg] = (Robin, Graham). A hiba definĂ­ciĂłjĂĄt követƑen minden ĂŒtközƑ pĂĄrt figyelembe kell vennĂŒnk, ami azt jelenti, hogy kettƑ lesz: (BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe, BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe) Ă©s inverze (BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe, BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe). HelyettesĂ­tsĂŒk be a kĂ©pletbe, Ă©s kapjuk:

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

Most prĂłbĂĄljunk meg vĂĄlaszolni a kĂ©rdĂ©sre: „MiĂ©rt van mindez?” ValĂłjĂĄban a szövetsĂ©gi törvĂ©nyek mĂĄsok. Az elsƑ tĂ­pus azok a fĂŒggƑsĂ©gek, amelyeket az adminisztrĂĄtor hatĂĄroz meg az adatbĂĄzis tervezĂ©si szakaszĂĄban. ÁltalĂĄban kevĂ©s, szigorĂșak, Ă©s fƑ alkalmazĂĄsuk az adatnormalizĂĄlĂĄs Ă©s a relĂĄciĂłs sĂ©matervezĂ©s.

A mĂĄsodik tĂ­pus a fĂŒggƑsĂ©gek, amelyek „rejtett” adatokat Ă©s az attribĂștumok közötti korĂĄbban ismeretlen kapcsolatokat kĂ©pviselik. Vagyis ilyen fĂŒggƑsĂ©gekre a tervezĂ©skor nem gondoltak, Ă©s a meglĂ©vƑ adathalmazra megtalĂĄljĂĄk azokat, Ă­gy kĂ©sƑbb a sok azonosĂ­tott szövetsĂ©gi törvĂ©ny alapjĂĄn bĂĄrmilyen következtetĂ©st le lehet vonni a tĂĄrolt informĂĄciĂłkrĂłl. Pontosan ezekkel a fĂŒggƑsĂ©gekkel dolgozunk. Az adatbĂĄnyĂĄszat egĂ©sz terĂŒlete foglalkozik velĂŒk, kĂŒlönfĂ©le keresĂ©si technikĂĄkkal Ă©s ezekre Ă©pĂŒlƑ algoritmusokkal. NĂ©zzĂŒk meg, hogyan lehetnek hasznosak a talĂĄlt funkcionĂĄlis fĂŒggƑsĂ©gek (pontos vagy közelĂ­tƑ) bĂĄrmely adatban.

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

Ma a fĂŒggƑsĂ©gek egyik fƑ alkalmazĂĄsa az adattisztĂ­tĂĄs. Ez magĂĄban foglalja a „piszkos adatok” azonosĂ­tĂĄsĂĄra, majd azok kijavĂ­tĂĄsĂĄra szolgĂĄlĂł eljĂĄrĂĄsok kidolgozĂĄsĂĄt. A „piszkos adatok” szembetƱnƑ pĂ©ldĂĄi az ismĂ©tlƑdĂ©sek, adat- vagy elĂ­rĂĄsi hibĂĄk, hiĂĄnyzĂł Ă©rtĂ©kek, elavult adatok, extra szĂłközök Ă©s hasonlĂłk.

Példa adathibåra:

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

PĂ©lda ismĂ©tlƑdĂ©sekre az adatokban:

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

PĂ©ldĂĄul van egy tĂĄblĂĄzatunk Ă©s egy sor szövetsĂ©gi törvĂ©nyĂŒnk, amelyeket vĂ©gre kell hajtani. Az adattisztĂ­tĂĄs ebben az esetben magĂĄban foglalja az adatok mĂłdosĂ­tĂĄsĂĄt, hogy a szövetsĂ©gi törvĂ©nyek helyesek legyenek. Ebben az esetben a mĂłdosĂ­tĂĄsok szĂĄmĂĄnak minimĂĄlisnak kell lennie (ennek az eljĂĄrĂĄsnak megvannak a maga algoritmusai, amelyekre ebben a cikkben nem foglalkozunk). Az alĂĄbbiakban egy pĂ©lda lĂĄthatĂł egy ilyen adatĂĄtalakĂ­tĂĄsra. A bal oldalon az eredeti kapcsolat lĂĄthatĂł, amelyben nyilvĂĄnvalĂłan nem teljesĂŒlnek a szĂŒksĂ©ges FL-ek (az egyik FL megsĂ©rtĂ©sĂ©nek pĂ©ldĂĄja pirossal van kiemelve). A jobb oldalon a frissĂ­tett kapcsolat lĂĄthatĂł, a zöld cellĂĄk a megvĂĄltozott Ă©rtĂ©keket mutatjĂĄk. Ezt az eljĂĄrĂĄst követƑen megkezdƑdött a szĂŒksĂ©ges fĂŒggƑsĂ©gek fenntartĂĄsa.

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

Egy mĂĄsik nĂ©pszerƱ alkalmazĂĄs az adatbĂĄzistervezĂ©s. Itt Ă©rdemes felidĂ©zni a normĂĄlformĂĄkat Ă©s a normalizĂĄlĂĄst. A normalizĂĄlĂĄs az a folyamat, amikor egy relĂĄciĂłt összhangba hoznak egy bizonyos követelmĂ©nyrendszerrel, amelyek mindegyikĂ©t a normĂĄlforma hatĂĄrozza meg a maga mĂłdjĂĄn. Nem Ă­rjuk le a kĂŒlönfĂ©le normĂĄlformĂĄk követelmĂ©nyeit (ezt minden kezdƑknek szĂłlĂł adatbĂĄzis-tanfolyam könyve megteszi), de csak annyit jegyezĂŒnk meg, hogy mindegyik a funkcionĂĄlis fĂŒggƑsĂ©gek fogalmĂĄt a maga mĂłdjĂĄn hasznĂĄlja. VĂ©gtĂ©re is, az FL-k eredendƑen integritĂĄsi megszorĂ­tĂĄsok, amelyeket figyelembe vesznek az adatbĂĄzis tervezĂ©sekor (ennek a feladatnak az összefĂŒggĂ©sĂ©ben az FL-ket nĂ©ha szuperkulcsoknak nevezik).

TekintsĂŒk az alĂĄbbi kĂ©pen lĂĄthatĂł nĂ©gy normĂĄlforma alkalmazĂĄsĂĄt. EmlĂ©kezzĂŒnk vissza, hogy a Boyce-Codd normĂĄl forma szigorĂșbb, mint a harmadik forma, de kevĂ©sbĂ© szigorĂș, mint a negyedik. Ez utĂłbbival egyelƑre nem foglalkozunk, mivel annak megfogalmazĂĄsa megköveteli a többĂ©rtĂ©kƱ fĂŒggƑsĂ©gek megĂ©rtĂ©sĂ©t, amelyek ebben a cikkben nem Ă©rdekesek szĂĄmunkra.

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe
BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe
BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe
BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

Egy mĂĄsik terĂŒlet, ahol a fĂŒggƑsĂ©gek alkalmazĂĄsra talĂĄltak, a jellemzƑtĂ©r dimenziĂłjĂĄnak csökkentĂ©se olyan feladatokban, mint egy naiv Bayes-osztĂĄlyozĂł felĂ©pĂ­tĂ©se, jelentƑs jellemzƑk azonosĂ­tĂĄsa Ă©s egy regressziĂłs modell ĂșjraparamĂ©terezĂ©se. Az eredeti cikkekben ezt a feladatot a redundĂĄns Ă©s a jellemzƑ relevancia meghatĂĄrozĂĄsĂĄnak nevezik [5, 6], Ă©s adatbĂĄzis-koncepciĂłk aktĂ­v hasznĂĄlatĂĄval oldjĂĄk meg. Az ilyen mƱvek megjelenĂ©sĂ©vel elmondhatĂł, hogy ma mĂĄr olyan megoldĂĄsokra van igĂ©ny, amelyek lehetƑvĂ© teszik, hogy a fenti optimalizĂĄlĂĄsi problĂ©mĂĄk adatbĂĄzisĂĄt, elemzĂ©sĂ©t Ă©s megvalĂłsĂ­tĂĄsĂĄt egyetlen eszközben egyesĂ­tsĂŒk [7, 8, 9].

SzĂĄmos (modern Ă©s kevĂ©sbĂ© modern) algoritmus lĂ©tezik a szövetsĂ©gi törvĂ©nyek adathalmazban törtĂ©nƑ keresĂ©sĂ©re. Az ilyen algoritmusok hĂĄrom csoportra oszthatĂłk:

  • Algebrai rĂĄcsok bejĂĄrĂĄsĂĄt hasznĂĄlĂł algoritmusok (rĂĄcs bejĂĄrĂĄsi algoritmusok)
  • MegĂĄllapodott Ă©rtĂ©kek keresĂ©sĂ©n alapulĂł algoritmusok (KĂŒlönbsĂ©g- Ă©s egyetĂ©rtĂ©si algoritmusok)
  • PĂĄronkĂ©nti összehasonlĂ­tĂĄson alapulĂł algoritmusok (FĂŒggƑsĂ©gindukciĂłs algoritmusok)

Az egyes algoritmustípusok rövid leíråsa az alåbbi tåblåzatban talålható:
BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

ErrƑl az osztĂĄlyozĂĄsrĂłl bƑvebben olvashat [4]. Az alĂĄbbiakban pĂ©ldĂĄk talĂĄlhatĂłk az egyes tĂ­pusokhoz tartozĂł algoritmusokra:

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

Jelenleg Ășj algoritmusok jelennek meg, amelyek többfĂ©le megközelĂ­tĂ©st kombinĂĄlnak a funkcionĂĄlis fĂŒggƑsĂ©gek megtalĂĄlĂĄsĂĄra. Ilyen algoritmusok pĂ©ldĂĄul a Pyro [2] Ă©s a HyFD [3]. MunkĂĄjuk elemzĂ©se a sorozat következƑ cikkeiben vĂĄrhatĂł. Ebben a cikkben csak azokat az alapfogalmakat Ă©s lemmĂĄkat vizsgĂĄljuk meg, amelyek a fĂŒggƑsĂ©gi kimutatĂĄsi technikĂĄk megĂ©rtĂ©sĂ©hez szĂŒksĂ©gesek.

KezdjĂŒk egy egyszerƱ - kĂŒlönbsĂ©g- Ă©s egyetĂ©rthalmazzal -, amelyet a mĂĄsodik tĂ­pusĂș algoritmusok hasznĂĄlnak. A Difference-set olyan sorok halmaza, amelyek nem rendelkeznek azonos Ă©rtĂ©kkel, mĂ­g az egyetĂ©rtĂ©s-halmaz viszont olyan sorok, amelyek azonos Ă©rtĂ©kekkel rendelkeznek. Érdemes megjegyezni, hogy ebben az esetben csak a fĂŒggƑsĂ©g bal oldalĂĄt vesszĂŒk figyelembe.

Egy måsik fontos fogalom, amellyel fentebb talålkoztunk, az algebrai råcs. Mivel sok modern algoritmus mƱködik ezen a koncepción, tudnunk kell, mi is ez.

A rĂĄcs fogalmĂĄnak bevezetĂ©sĂ©hez szĂŒksĂ©ges egy rĂ©szben rendezett halmaz (vagy rĂ©szben rendezett halmaz, rövidĂ­tve poset) definiĂĄlĂĄsa.

2. definĂ­ciĂł. Egy S halmazt rĂ©szlegesen rendezettnek mondunk a ⩜ binĂĄris relĂĄciĂłval, ha minden a, b, c ∈ S esetĂ©n teljesĂŒlnek a következƑ tulajdonsĂĄgok:

  1. ReflexivitĂĄs, azaz a ⩜ a
  2. Antiszimmetria, vagyis ha a ⩜ b Ă©s b ⩜ a, akkor a = b
  3. A tranzitivitĂĄs, azaz a ⩜ b Ă©s b ⩜ c esetĂ©n az következik, hogy a ⩜ c


Az ilyen relĂĄciĂłt (laza) rĂ©szleges rendƱ relĂĄciĂłnak, magĂĄt a halmazt pedig rĂ©szlegesen rendezett halmaznak nevezzĂŒk. FormĂĄlis jelölĂ©s: ⟹S, ⩜⟩.

A rĂ©szlegesen rendezett halmaz legegyszerƱbb pĂ©ldĂĄjakĂ©nt felvehetjĂŒk az összes N termĂ©szetes szĂĄm halmazĂĄt a szokĂĄsos ⩜ sorrendi összefĂŒggĂ©ssel. Könnyen ellenƑrizhetƑ, hogy az összes szĂŒksĂ©ges axiĂłma teljesĂŒl-e.

Értelmesebb pĂ©lda. TekintsĂŒk az összes {1, 2, 3} rĂ©szhalmaz halmazĂĄt, a ⊆ befogadĂĄsi relĂĄciĂł szerint rendezve. ValĂłjĂĄban ez az összefĂŒggĂ©s minden rĂ©szleges rendezettsĂ©gi feltĂ©telt teljesĂ­t, Ă­gy ⟹P ({1, 2, 3}), ⊆⟩ egy rĂ©szlegesen rendezett halmaz. Az alĂĄbbi ĂĄbra ennek a halmaznak a felĂ©pĂ­tĂ©sĂ©t mutatja: ha egy elemet nyilakkal lehet elĂ©rni egy mĂĄsik elemhez, akkor azok sorrendi kapcsolatban ĂĄllnak.

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

MĂ©g kĂ©t egyszerƱ definĂ­ciĂłra lesz szĂŒksĂ©gĂŒnk a matematika terĂŒletĂ©rƑl - supremum Ă©s infimum.

3. definĂ­ciĂł. Legyen ⟹S, ⩜⟩ rĂ©szlegesen rendezett halmaz, A ⊆ S. A felsƑ korlĂĄtja egy u ∈ S elem, amelyre ∀x ∈ S: x ⩜ u. Legyen U az S összes felsƑ hatĂĄrĂĄnak halmaza. Ha U-ban van egy legkisebb elem, akkor azt szuprĂ©mumnak nevezzĂŒk, Ă©s sup A-val jelöljĂŒk.

HasonlĂłan vezetjĂŒk be a pontos alsĂł korlĂĄt fogalmĂĄt.

4. definĂ­ciĂł. Legyen ⟹S, ⩜⟩ rĂ©szlegesen rendezett halmaz, A ⊆ S. A infimuma olyan l ∈ S elem, hogy ∀x ∈ S: l ⩜ x. Legyen L az S összes alsĂł hatĂĄrĂĄnak halmaza. Ha L-ben van egy legnagyobb elem, akkor azt infimumnak nevezzĂŒk, Ă©s inf A-kĂ©nt jelöljĂŒk.

TekintsĂŒk pĂ©ldakĂ©nt a fenti rĂ©szben rendezett ⟹P ({1, 2, 3}), ⊆⟩ halmazt, Ă©s keressĂŒk meg benne a felsƑ Ă©s infimumot:

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

Most meg tudjuk fogalmazni az algebrai rĂĄcs definĂ­ciĂłjĂĄt.

5. definĂ­ciĂł. Legyen ⟹P,⩜⟩ egy rĂ©szlegesen rendezett halmaz Ășgy, hogy minden kĂ©telemƱ rĂ©szhalmaznak van felsƑ Ă©s alsĂł korlĂĄtja. Ekkor P-t algebrai rĂĄcsnak nevezzĂŒk. Ebben az esetben a sup{x, y} mint x √ y, az inf {x, y} pedig x ∧ y-kĂ©nt van felĂ­rva.

EllenƑrizzĂŒk, hogy a ⟹P ({1, 2, 3}), ⊆⟩ munkapĂ©ldĂĄnk egy rĂĄcs. ValĂłjĂĄban bĂĄrmely a, b ∈ P ({1, 2, 3}) esetĂ©n a√b = aâˆȘb, Ă©s a∧b = a∩b. VegyĂŒk pĂ©ldĂĄul az {1, 2} Ă©s {1, 3} halmazokat, Ă©s keressĂŒk meg az infimumjukat Ă©s a felsƑbb Ă©rtĂ©kĂŒket. Ha metszi Ƒket, akkor a {1} halmazt kapjuk, ami az infimum lesz. A szuprĂ©mumot Ășgy kapjuk meg, hogy összevonjuk Ƒket - {1, 2, 3}.

A fizikai problĂ©mĂĄk azonosĂ­tĂĄsĂĄra szolgĂĄlĂł algoritmusokban a keresĂ©si teret gyakran rĂĄcs formĂĄjĂĄban ĂĄbrĂĄzoljĂĄk, ahol egy elem halmazai (a keresĂ©si rĂĄcs elsƑ szintje, ahol a fĂŒggƑsĂ©gek bal oldala egy attribĂștumbĂłl ĂĄll) kĂ©pviselik az egyes attribĂștumokat. az eredeti viszonyrĂłl.
ElƑször is megvizsgĂĄljuk a ∅ → alakĂș fĂŒggƑsĂ©geket Egyetlen attribĂștum. Ez a lĂ©pĂ©s lehetƑvĂ© teszi annak meghatĂĄrozĂĄsĂĄt, hogy mely attribĂștumok az elsƑdleges kulcsok (az ilyen attribĂștumokhoz nincsenek meghatĂĄrozĂłk, ezĂ©rt a bal oldal ĂŒres). TovĂĄbbĂĄ az ilyen algoritmusok felfelĂ© mozognak a rĂĄcs mentĂ©n. Érdemes megjegyezni, hogy nem lehet a teljes rĂĄcsot bejĂĄrni, vagyis ha a bal oldal kĂ­vĂĄnt maximĂĄlis mĂ©retĂ©t ĂĄtadjuk a bemenetnek, akkor az algoritmus ezzel a mĂ©rettel nem megy tovĂĄbb egy szintnĂ©l.

Az alĂĄbbi ĂĄbra bemutatja, hogyan hasznĂĄlhatĂł egy algebrai rĂĄcs az FZ megtalĂĄlĂĄsĂĄnak problĂ©mĂĄjĂĄban. Itt minden Ă©l (X, XY) fĂŒggƑsĂ©get jelent X → Y. PĂ©ldĂĄul tĂșljutottunk az elsƑ szinten, Ă©s tudjuk, hogy a fĂŒggƑsĂ©g megmarad A → B (ezt zöld kapcsolatkĂ©nt fogjuk megjelenĂ­teni a csĂșcsok között A Đž B). Ez azt jelenti, hogy ha tovĂĄbb haladunk a rĂĄcs mentĂ©n, nem biztos, hogy ellenƑrizzĂŒk a fĂŒggƑsĂ©get A, C → B, mert mĂĄr nem lesz minimĂĄlis. HasonlĂłkĂ©ppen nem ellenƑriznĂ©nk, ha a fĂŒggƑsĂ©g fennĂĄllna C → B.

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe
BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

EzenkĂ­vĂŒl a szövetsĂ©gi törvĂ©nyek keresĂ©sĂ©re szolgĂĄlĂł összes modern algoritmus ĂĄltalĂĄban olyan adatstruktĂșrĂĄt hasznĂĄl, mint pĂ©ldĂĄul egy partĂ­ciĂł (az eredeti forrĂĄsban - lecsupaszĂ­tott partĂ­ciĂł [1]). A partĂ­ciĂł formĂĄlis meghatĂĄrozĂĄsa a következƑ:

6. definĂ­ciĂł. Legyen X ⊆ R attribĂștumok halmaza r relĂĄciĂłhoz. A klaszter az r-beli sorok indexeinek halmaza, amelyek X-hez azonos Ă©rtĂ©kƱek, azaz c(t) = {i|ti[X] = t[X]}. A partĂ­ciĂł fĂŒrtök halmaza, kivĂ©ve az egysĂ©gnyi hosszĂșsĂĄgĂș klasztereket:

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

EgyszerƱ szavakkal, partĂ­ciĂł egy attribĂștum szĂĄmĂĄra X egy listĂĄk halmaza, ahol minden lista sorszĂĄmokat tartalmaz, amelyek azonos Ă©rtĂ©kekkel rendelkeznek X. A modern irodalomban a partĂ­ciĂłkat reprezentĂĄlĂł struktĂșrĂĄt pozĂ­ciĂłlista indexnek (PLI) nevezik. Az egysĂ©ghosszĂșsĂĄgĂș fĂŒrtök nem hasznĂĄlhatĂłk PLI-tömörĂ­tĂ©si cĂ©lokra, mivel ezek olyan fĂŒrtök, amelyek csak egy rekordszĂĄmot tartalmaznak egyedi Ă©rtĂ©kkel, amely mindig könnyen azonosĂ­thatĂł.

NĂ©zzĂŒnk egy pĂ©ldĂĄt. TĂ©rjĂŒnk vissza ugyanahhoz a tĂĄblĂĄzathoz a betegekkel, Ă©s Ă©pĂ­tsĂŒnk partĂ­ciĂłkat az oszlopokhoz beteg Đž Neme (bal oldalon egy Ășj oszlop jelent meg, amelyben a tĂĄblĂĄzat sorszĂĄmai vannak jelölve):

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

SƑt, a definĂ­ciĂł szerint az oszlop partĂ­ciĂłja beteg valĂłjĂĄban ĂŒres lesz, mivel az egyes klaszterek ki vannak zĂĄrva a partĂ­ciĂłbĂłl.

A partĂ­ciĂłk többfĂ©le attribĂștummal szerezhetƑk be. És ennek kĂ©t mĂłdja van: a tĂĄblĂĄn vĂ©gighaladva kĂ©szĂ­tsen egy partĂ­ciĂłt az összes szĂŒksĂ©ges attribĂștum hasznĂĄlatĂĄval egyszerre, vagy Ă©pĂ­tse fel a partĂ­ciĂłk metszĂ©spontja mƱvelettel az attribĂștumok egy rĂ©szhalmazĂĄval. A szövetsĂ©gi törvĂ©ny keresĂ©si algoritmusai a mĂĄsodik lehetƑsĂ©get hasznĂĄljĂĄk.

EgyszerƱ szavakkal, pĂ©ldĂĄul oszlopok szerinti partĂ­ciĂł beszerzĂ©sĂ©hez ABC, partĂ­ciĂłkat vehet igĂ©nybe AC Đž B (vagy bĂĄrmely mĂĄs diszjunkt rĂ©szhalmazok halmazĂĄt), Ă©s metszi Ƒket egymĂĄssal. A kĂ©t partĂ­ciĂł metszĂ©spontjĂĄnak mƱvelete a legnagyobb hosszĂșsĂĄgĂș klasztereket vĂĄlasztja ki, amelyek mindkĂ©t partĂ­ciĂłban közösek.

NĂ©zzĂŒnk egy pĂ©ldĂĄt:

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

Az elsƑ esetben egy ĂŒres partĂ­ciĂłt kaptunk. Ha alaposan megnĂ©zi a tĂĄblĂĄzatot, akkor valĂłban nincs azonos Ă©rtĂ©ke a kĂ©t attribĂștumnak. Ha kissĂ© mĂłdosĂ­tjuk a tĂĄblĂĄzatot (a jobb oldali esetet), mĂĄris egy nem ĂŒres keresztezƑdĂ©st kapunk. EzenkĂ­vĂŒl az 1. Ă©s 2. sor valĂłjĂĄban ugyanazokat az attribĂștumĂ©rtĂ©keket tartalmazza Neme Đž Orvos.

EzutĂĄn szĂŒksĂ©gĂŒnk lesz egy olyan fogalomra, mint a partĂ­ciĂł mĂ©rete. FormĂĄlisan:

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

EgyszerƱen fogalmazva, a partĂ­ciĂł mĂ©rete a partĂ­ciĂłban lĂ©vƑ fĂŒrtök szĂĄma (ne feledje, hogy az egyes fĂŒrtök nem szerepelnek a partĂ­ciĂłban!):

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

Most meghatĂĄrozhatjuk az egyik kulcslemmĂĄt, amely adott partĂ­ciĂłk esetĂ©n lehetƑvĂ© teszi annak meghatĂĄrozĂĄsĂĄt, hogy fennĂĄll-e a fĂŒggƑsĂ©g vagy sem:

1. lemma. Az A, B → C fĂŒggƑsĂ©g akkor Ă©s csak akkor Ă©rvĂ©nyesĂŒl

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

A lemma szerint annak megĂĄllapĂ­tĂĄsĂĄhoz, hogy fennĂĄll-e egy fĂŒggƑsĂ©g, nĂ©gy lĂ©pĂ©st kell vĂ©grehajtani:

  1. SzĂĄmĂ­tsa ki a partĂ­ciĂłt a fĂŒggƑsĂ©g bal oldalĂĄn
  2. SzĂĄmĂ­tsa ki a partĂ­ciĂłt a fĂŒggƑsĂ©g jobb oldalĂĄhoz
  3. SzĂĄmĂ­tsa ki az elsƑ Ă©s a mĂĄsodik lĂ©pĂ©s szorzatĂĄt!
  4. HasonlĂ­tsa össze az elsƑ Ă©s harmadik lĂ©pĂ©sben kapott vĂĄlaszfalak mĂ©retĂ©t

Az alĂĄbbiakban egy pĂ©lda annak ellenƑrzĂ©sĂ©re, hogy a fĂŒggƑsĂ©g fennĂĄll-e e lemma szerint:

BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe
BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe
BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe
BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe

Ebben a cikkben olyan fogalmakat vizsgĂĄltunk meg, mint a funkcionĂĄlis fĂŒggƑsĂ©g, a hozzĂĄvetƑleges funkcionĂĄlis fĂŒggƑsĂ©g, megvizsgĂĄltuk, hol hasznĂĄljĂĄk Ƒket, valamint hogy milyen algoritmusok lĂ©teznek a fizikai fĂŒggvĂ©nyek keresĂ©sĂ©re. RĂ©szletesen megvizsgĂĄltuk azokat az alapvetƑ, de fontos fogalmakat is, amelyeket a szövetsĂ©gi törvĂ©nyek keresĂ©sĂ©re szolgĂĄlĂł modern algoritmusok aktĂ­van hasznĂĄlnak.

ReferenciĂĄk:

  1. Huhtala Y. et al. TANE: HatĂ©kony algoritmus funkcionĂĄlis Ă©s közelĂ­tƑ fĂŒggƑsĂ©gek felfedezĂ©sĂ©re //A szĂĄmĂ­tĂłgĂ©pes naplĂł. – 1999. – T. 42. – Sz. 2. – 100-111.
  2. Kruse S., Naumann F. KözelĂ­tƑ fĂŒggƑsĂ©gek hatĂ©kony felfedezĂ©se // Proceedings of the VLDB Endowment. – 2018. – T. 11. – Sz. 7. – 759-772.
  3. Papenbrock T., Naumann F. A funkcionĂĄlis fĂŒggƑsĂ©g felfedezĂ©sĂ©nek hibrid megközelĂ­tĂ©se //Proceedings of the 2016 International Conference on Management of Data. – ACM, 2016. – 821-833.
  4. Papenbrock T. et al. FunkcionĂĄlis fĂŒggƑsĂ©g felfedezĂ©se: hĂ©t algoritmus kĂ­sĂ©rleti kiĂ©rtĂ©kelĂ©se //Proceedings of the VLDB Endowment. – 2015. – T. 8. – Sz. 10. – 1082-1093.
  5. Kumar A. et al. Csatlakozni vagy nem csatlakozni?: KĂ©tszer meggondolva a csatlakozĂĄst a funkciĂłk kivĂĄlasztĂĄsa elƑtt //A 2016-os adatkezelĂ©si nemzetközi konferencia elƑadĂĄsai. – ACM, 2016. – 19-34.
  6. Abo Khamis M. et al. AdatbĂĄzison belĂŒli tanulĂĄs ritka tenzorokkal //Proceedings of the 37th ACM SIGMOD-SIGACT-SIGAI Symposium on Principles of Database Systems. – ACM, 2018. – 325-340.
  7. Hellerstein J. M. et al. A MADlib analitikai könyvtĂĄr: vagy MAD-kĂ©szsĂ©gek, az SQL //Proceedings of the VLDB Endowment. – 2012. – T. 5. – Sz. 12. – 1700-1711.
  8. Qin C., Rusu F. Speculative approximations for terascale elosztott gradiens sĂŒllyedĂ©s optimalizĂĄlĂĄs //Proceedings of the Fourth Workshop on Data analytics in the Cloud. – ACM, 2015. – 1. o.
  9. Meng X. et al. Mllib: GĂ©pi tanulĂĄs az apache sparkjĂĄban //The Journal of Machine Learning Research. – 2016. – T. 17. – Sz. 1. – 1235-1241.

A cikk szerzƑi: Anastasia Birillo, kutató a JetBrains kutatás, CS center hallgató о Nyikita Bobrov, kutató a JetBrains kutatás

ForrĂĄs: will.com

VĂĄsĂĄroljon megbĂ­zhatĂł tĂĄrhelyet DDoS vĂ©delemmel, VPS VDS szerverekkel rendelkezƑ webhelyekhez đŸ”„ VĂĄsĂĄroljon megbĂ­zhatĂł weboldal tĂĄrhelyet DDoS vĂ©delemmel, VPS VDS szerverekkel | ProHoster