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

Ebben a cikkben a funkcionĂĄlis fĂŒggƑsĂ©gekrƑl beszĂ©lĂŒnk az adatbĂĄzisokban — mi ez, hol alkalmazzĂĄk Ă©s milyen algoritmusok lĂ©teznek a keresĂ©sĂŒkre.

A funkcionĂĄlis fĂŒggƑsĂ©geket a relĂĄciĂłs adatbĂĄzisok kontextusĂĄban fogjuk megvizsgĂĄlni. EgĂ©szen durvĂĄn szĂłlva, az ilyen adatbĂĄzisokban az informĂĄciĂł tĂĄblĂĄzatok formĂĄjĂĄban tĂĄrolĂłdik. TovĂĄbbĂĄ közelĂ­tƑ fogalmakat hasznĂĄlunk, amelyek a szigorĂș relĂĄciĂłs elmĂ©letben nem helyettesĂ­thetƑk: magĂĄt a tĂĄblĂĄzatot relĂĄciĂłnak nevezzĂŒk, az oszlopokat attribĂștumoknak (sokasĂĄguk az relĂĄciĂłs sĂ©ma), a sorok egy adott attribĂștumhalmazĂĄnak Ă©rtĂ©khalmazĂĄt pedig tuple-nek.

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

PĂ©ldĂĄul a fenti tĂĄblĂĄzatban, (Benson, M, M szerv) az attribĂștumok szerinti tuple. (Betegek, Neme, Orvos).
FormĂĄlisan ezt a következƑ formĂĄban Ă­rjuk le: BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe[Betegek, Neme, Orvos] = (Benson, M, M szerv).
Most bevezethetjĂŒk a funkcionĂĄlis fĂŒggƑsĂ©g fogalmĂĄt (FF):

DefinĂ­ciĂł 1. A relĂĄciĂł R teljesĂ­ti az FF X → Y (ahol X, Y ⊆ R) akkor Ă©s csak akkor, ha bĂĄrmely tuple BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe, BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe ∈ R esetĂ©n 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]. Ilyen esetben azt mondjuk, hogy X (determinenĂĄns, vagy meghatĂĄrozĂł attribĂștumhalmaz) funkcionĂĄlisan meghatĂĄrozza Y-t (fĂŒggƑ halmaz).

MĂĄs szĂłval, a funkcionĂĄlis fĂŒggƑsĂ©g meglĂ©te X → Y azt jelenti, hogy ha van kĂ©t tuple-ĂŒnk a R Ă©s ezek egyeznek az attribĂștumokban X, akkor azok az attribĂștumokban is egyezni fognak. Y.
Most pedig sorban. VizsgĂĄljuk meg az attribĂștumokat Betegek Ă©s NƑi nem melyek esetĂ©ben szeretnĂ©nk tudni, hogy van-e közöttĂŒk fĂŒggƑsĂ©g vagy sem. Az ilyen attribĂștumhalmazok esetĂ©ben a következƑ fĂŒggƑsĂ©gek lĂ©tezhetnek:

  1. Betegek → Neme
  2. Neme → Betegek

A fent emlĂ­tett definĂ­ciĂł szerint ahhoz, hogy az elsƑ fĂŒggƑsĂ©g fennmaradjon, minden egyedi oszlopszĂĄmhoz csak egy oszlopszĂĄmnak kellene megfelelnie. Betegek És az pĂ©lda tĂĄblĂĄzat esetĂ©ben ez valĂłban Ă­gy van. Azonban visszafelĂ© ez nem mƱködik, tehĂĄt a mĂĄsodik fĂŒggƑsĂ©g nem teljesĂŒl, s az attribĂștum NƑi nemnem determinĂĄns a NƑi nem Betegek szĂĄmĂĄra. HasonlĂłkĂ©ppen, ha figyelembe vesszĂŒk aOrvos → Betegek fĂŒggƑsĂ©get, Ă©szrevehetjĂŒk, hogy ez megsĂ©rtƑdik, mivel az Ă©rtĂ©kRobin ezen attribĂștum esetĂ©ben több kĂŒlönbözƑ Ă©rtĂ©kkel rendelkezik — Ellis Ă©s Graham. Ellis Ă©s Graham.

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

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

EzĂ©rt a funkcionĂĄlis fĂŒggƑsĂ©gek lehetƑvĂ© teszik a tĂĄblĂĄzat attribĂștumhalmazai közötti kapcsolatok meghatĂĄrozĂĄsĂĄt. EttƑl kezdve a legĂ©rdekesebb kapcsolatokkal fogunk foglalkozni, pontosabban Ășgy, X → Y, hogy azok:

  • nem triviĂĄlisak, azaz a fĂŒggƑsĂ©g jobb oldala nem az a bal oldal rĂ©szhalmaza (Y ̞⊆ X);
  • minimalistĂĄk, azaz nincs olyan fĂŒggƑsĂ©g, Z → Y, hogy Z ⊂ X.

A mostanĂĄig tĂĄrgyalt fĂŒggƑsĂ©gek szigorĂșak voltak, azaz nem engedtek meg semmilyen megsĂ©rtĂ©st a tĂĄblĂĄzatban, de vannak olyanok is, amelyek bizonyos fokĂș inkonzisztenciĂĄt engednek meg a tuple-ök Ă©rtĂ©kei között. Ezeket kĂŒlön osztĂĄlyba soroljĂĄk, megközelĂ­tƑ fĂŒggƑsĂ©geknek nevezik Ƒket, Ă©s megengedik, hogy egy meghatĂĄrozott szĂĄmĂș tuple-t megsĂ©rtsenek. Ez a szĂĄm a maximĂĄlis hibahatĂĄr emax Ă©rtĂ©kĂ©vel szabĂĄlyozhatĂł. PĂ©ldĂĄul, a hiba arĂĄnya BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe = 0.01 azt jelentheti, hogy a fĂŒggƑsĂ©g 1%-kal sĂ©rĂŒlhet a vizsgĂĄlt attribĂștumhalmazokban talĂĄlhatĂł tuple-ök között. Azaz 1000 bejegyzĂ©s esetĂ©n legfeljebb 10 tuple sĂ©rtheti meg a funkcionĂĄlis fĂŒggƑsĂ©get. Mi viszont egy kicsit eltĂ©rƑ metrikĂĄval fogunk foglalkozni, amely a összehasonlĂ­tott tuple-ök pĂĄronkĂ©nt eltĂ©rƑ Ă©rtĂ©kein alapul. A könyv X → Y akkor Ășgy szĂĄmĂ­tjĂĄk, r hogy:

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

SzĂĄmĂ­tsuk ki a hibĂĄt a fĂŒggƑsĂ©get, Ă©szrevehetjĂŒk, hogy ez megsĂ©rtƑdik, mivel az Ă©rtĂ©k fenti pĂ©ldĂĄbĂłl. KĂ©t tuple-t kapunk, amelyek Ă©rtĂ©kei eltĂ©rnek az Betegek, de megegyeznek a Doktor: BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe[Doktor, Beteg] = (Robin, Ellis, ennek eredmĂ©nyekĂ©nt a lekĂ©rdezĂ©sek olyan formĂĄt öltenek, mint a fent emlĂ­tett. BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe[Doktor, Beteg] = (Robin, Graham). A hiba meghatĂĄrozĂĄsa szerint figyelembe kell vennĂŒnk az összes konfliktĂĄlĂł pĂĄrt, tehĂĄt ilyenbƑl kettƑ lesz: (BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe, BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe) Ă©s annak inverziĂłja (BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe, BevezetĂ©s a funkcionĂĄlis fĂŒggƑsĂ©gekbe). HelyettesĂ­tjĂŒk a kĂ©pletbe, Ă©s megkapjuk:

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

Most pedig prĂłbĂĄljunk vĂĄlaszt adni arra a kĂ©rdĂ©sre: «De miĂ©rt van szĂŒksĂ©g minderre?». ValĂłjĂĄban a funkcionĂĄlis fĂŒggƑsĂ©gek kĂŒlönbözƑek. Az elsƑ tĂ­pus — ezek olyan fĂŒggƑsĂ©gek, amelyeket az adminisztrĂĄtor a adatbĂĄzis tervezĂ©se sorĂĄn hatĂĄroz meg. ÁltalĂĄban csak kevĂ©s van belƑlĂŒk, szigorĂșak, Ă©s fƑ alkalmazĂĄsuk az adatok normalizĂĄlĂĄsa Ă©s a relĂĄciĂłs sĂ©ma tervezĂ©se.

A mĂĄsodik tĂ­pus - a fĂŒggƑsĂ©gek, amelyek „rejtett” adatokat Ă©s korĂĄbban ismeretlen kapcsolatokat kĂ©pviselnek az attribĂștumok között. Vagyis ezekrƑl a fĂŒggƑsĂ©gekrƑl nem gondoltak a tervezĂ©s sorĂĄn, Ă©s mĂĄr egy meglĂ©vƑ adathalmazon belĂŒl talĂĄljĂĄk Ƒket, hogy aztĂĄn a sok felfedezett funkcionĂĄlis zĂĄradĂ©k alapjĂĄn bĂĄrmilyen következtetĂ©st levonjanak a tĂĄrolt informĂĄciĂłrĂłl. Pontosan ezzel a fajtĂĄjĂș fĂŒggƑsĂ©ggel foglalkozunk. Ezt egy kĂŒlön terĂŒlet, az adatmĂłrĂĄl foglalkozik kĂŒlönbözƑ keresĂ©si technikĂĄkkal Ă©s az alapjĂĄn kidolgozott algoritmusokkal. NĂ©zzĂŒk meg, mivel lehetnek hasznosak az felfedezett funkcionĂĄlis fĂŒggƑsĂ©gek (pontosan vagy megközelĂ­tƑleg) bizonyos adatokban.

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

Ma a fĂŒggƑsĂ©gek fƑ alkalmazĂĄsi terĂŒletei közĂ© tartozik az adatok tisztĂ­tĂĄsa. Ez magĂĄban foglalja a „piszkos adatok” azonosĂ­tĂĄsĂĄnak folyamatainak kidolgozĂĄsĂĄt, amelyek utĂĄn helyesbĂ­tik Ƒket. A „piszkos adatok” vilĂĄgos pĂ©ldĂĄi a duplikĂĄtumok, a hibĂĄk az adatokban vagy elgĂ©pelĂ©sek, az elmaradt Ă©rtĂ©kek, elavult adatok, felesleges szĂłközök Ă©s hasonlĂłk.

Példa hiba az adatokban:

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

Példa duplikåtumokra az adatokban:

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

PĂ©ldĂĄul van egy tĂĄblĂĄzatunk Ă©s egy sor funkcionĂĄlis zĂĄradĂ©kunk, amelyeknek teljesĂŒlniĂŒk kell. Az adatok tisztĂ­tĂĄsa ebben az esetben azt jelenti, hogy a szĂĄmadatokat Ășgy mĂłdosĂ­tjuk, hogy a funkcionĂĄlis zĂĄradĂ©kok igazak legyenek. Ezen belĂŒl a mĂłdosĂ­tĂĄsok szĂĄma a lehetƑ legkisebb legyen (ehhez a folyamathoz sajĂĄt algoritmusok lĂ©teznek, amelyekre ebben a cikkben nem fogunk összpontosĂ­tani). Az alĂĄbbiakban bemutatunk egy pĂ©ldĂĄt az adatok ilyen ĂĄtalakĂ­tĂĄsĂĄra. Bal oldalon az eredeti összefĂŒggĂ©s lĂĄthatĂł, amelyben nyilvĂĄnvalĂłan nem teljesĂŒlnek a szĂŒksĂ©ges funkcionĂĄlis zĂĄradĂ©kok (a piros szĂ­nnel kiemelt pĂ©ldĂĄja egy funkcionĂĄlis zĂĄradĂ©k megszegĂ©sĂ©nek). Jobb oldalon a frissĂ­tett összefĂŒggĂ©s talĂĄlhatĂł, ahol a zöld cellĂĄk a mĂłdosĂ­tott Ă©rtĂ©keket mutatjĂĄk. Az ilyen eljĂĄrĂĄs lefolytatĂĄsa utĂĄn a szĂŒksĂ©ges fĂŒggƑsĂ©gek kezdtek Ă©letbe lĂ©pni.

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

Egy mĂĄsik nĂ©pszerƱ alkalmazĂĄsi terĂŒlet az adatbĂĄzis-tervezĂ©s. Itt Ă©rdemes megemlĂ­teni a normĂĄlformĂĄkat Ă©s a normalizĂĄlĂĄst. A normalizĂĄlĂĄs egy olyan folyamat, amelynek sorĂĄn a relĂĄciĂłt egy meghatĂĄrozott követelmĂ©nyhalmaznak megfelelƑen alakĂ­tjĂĄk ki, ahol minden egyes követelmĂ©nyt a normĂĄlforma sajĂĄt mĂłdjĂĄn definiĂĄl. A kĂŒlönbözƑ normĂĄlformĂĄk követelmĂ©nyeit nem fogjuk rĂ©szletezni (ez bĂĄrmilyen kezdƑ adatbĂĄzis-könyvben megtalĂĄlhatĂł), csupĂĄn annyit jegyzĂŒnk meg, hogy mindegyik sajĂĄt mĂłdjĂĄn hasznĂĄlja a funkcionĂĄlis fĂŒggƑsĂ©gek fogalmĂĄt. Hiszen a funkcionĂĄlis fĂŒggƑsĂ©gek lĂ©nyegĂ©ben az integritĂĄs korlĂĄtai, amelyeket az adatbĂĄzis tervezĂ©sekor figyelembe kell venni (ebben a kontextusban a funkcionĂĄlis fĂŒggƑsĂ©geket nĂ©ha szuperkulcsoknak is nevezik).

NĂ©zzĂŒk meg alkalmazĂĄsukat a nĂ©gy normĂĄlforma szempontjĂĄbĂłl az alĂĄbbi ĂĄbrĂĄn. EmlĂ©kezzĂŒnk rĂĄ, hogy a Boyce-Codd normĂĄlforma szigorĂșbb, mint a harmadik forma, de kevĂ©sbĂ© szigorĂș, mint a negyedik. Az utĂłbbival egyelƑre nem foglalkozunk, mivel ennek a megĂ©rtĂ©sĂ©hez többĂ©rtĂ©kƱ fĂŒggƑsĂ©gek ismerete szĂŒksĂ©ges, amelyek nem Ă©rdekelnek ezen a cikkben.

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ĂĄst nyernek, a jellemzƑk tĂ©rdimenziĂłjĂĄnak csökkentĂ©se olyan feladatoknĂĄl, mint a naiv Bayes-osztĂĄlyozĂł felĂ©pĂ­tĂ©se, jelentƑs jellemzƑk kiemelĂ©se Ă©s a regressziĂłs modell Ășjra paramĂ©terezĂ©se. Az eredeti cikkekben ezt a feladatot a fölösleges jellemzƑk (feature redundancy) Ă©s a relevĂĄns jellemzƑk (feature relevancy) meghatĂĄrozĂĄsĂĄnak nevezik, Ă©s aktĂ­van hasznĂĄljĂĄk az adatbĂĄzisok koncepciĂłit. Az ilyen munkĂĄk megjelenĂ©sĂ©vel ma mĂĄr beszĂ©lhetĂŒnk olyan megoldĂĄsok irĂĄnti igĂ©nyrƑl, amelyek adatbĂĄzisokat, elemzĂ©seket Ă©s az emlĂ­tett optimalizĂĄlĂĄsi problĂ©mĂĄk megoldĂĄsĂĄt egy eszközben egyesĂ­tik.

A funkcionĂĄlis fĂŒggƑsĂ©gek keresĂ©sĂ©re szĂĄmos algoritmus lĂ©tezik (modern Ă©s kevĂ©sbĂ© modern). Ezeket az algoritmusokat hĂĄrom csoportra lehet osztani:

  • Algebrikus rĂĄcsok bejĂĄrĂĄsĂĄn alapulĂł algoritmusok (Lattice traversal algorithms)
  • Konzisztens Ă©rtĂ©kek keresĂ©sĂ©n alapulĂł algoritmusok (Difference- and agree-set algorithms)
  • PĂĄros összehasonlĂ­tĂĄsokon alapulĂł algoritmusok (Dependency induction algorithms)

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

TovĂĄbbi informĂĄciĂłkat errƑl a kategĂłriĂĄrĂłl itt olvashat [4]. Az alĂĄbbiakban pĂ©ldĂĄk talĂĄlhatĂłk minden tĂ­pusĂș algoritmusra:

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öbb megközelĂ­tĂ©st ötvöznek a funkcionĂĄlis fĂŒggƑsĂ©gek keresĂ©sĂ©ben. Ilyen algoritmusok pĂ©ldĂĄul a Pyro [2] Ă©s a HyFD [3]. MƱködĂ©sĂŒk elemzĂ©sĂ©re a cikk sorozat következƑ rĂ©szeiben kerĂŒl sor. RĂ©szletekbe most csak az alapvetƑ fogalmakat Ă©s azokat a tĂ©teleket vesszĂŒk ĂĄt, amelyek szĂŒksĂ©gesek a fĂŒggƑsĂ©gek azonosĂ­tĂĄsĂĄnak technikĂĄinak megĂ©rtĂ©sĂ©hez.

KezdjĂŒk az egyszerƱbbekkel — a diïŹ€erence- Ă©s agree-settel, amelyeket a mĂĄsodik tĂ­pusĂș algoritmusok hasznĂĄlnak. A diïŹ€erence-set olyan többszörös halmaz, ahol a tuple-ök nem egyeznek meg az Ă©rtĂ©kekben, mĂ­g az agree-set Ă©ppen ellenkezƑleg — az egyezƑ Ă©rtĂ©kƱ tuple-ök csoportja. Fontos megjegyezni, hogy ebben az esetben csak a fĂŒggƑsĂ©g bal oldalĂĄt vizsgĂĄljuk.

Egy mĂĄsik fontos fogalom, amely mĂĄr korĂĄbban is elƑkerĂŒlt, az algebrai rĂĄcs. Mivel sok modern algoritmus e fogalmat hasznĂĄlja, fontos tudnunk, hogy mi ez.

A rĂĄcs fogalmĂĄnak bevezetĂ©sĂ©hez szĂŒksĂ©g van a rĂ©szlegesen rendezett halmaz (vagy partially ordered set, rövidĂ­tve poset) definĂ­ciĂłjĂĄra.

DefinĂ­ciĂł 2. Azt mondjuk, hogy az S halmaz rĂ©szlegesen rendezett a ⩜ relĂĄciĂłval, ha minden a, b, c ∈ S elemre teljesĂŒlnek a következƑ tulajdonsĂĄgok:

  1. ReflexivitĂĄs, azaz a ⩜ a.
  2. Antiszimmetria, azaz ha a ⩜ b Ă©s b ⩜ a, akkor a = b.
  3. TranzitivitĂĄs, azaz ha a ⩜ b Ă©s b ⩜ c, akkor a ⩜ c.


Ez a relĂĄciĂł a (nem szigorĂș) rĂ©szleges sorrend relĂĄciĂłjĂĄra vonatkozik, maga a halmaz pedig rĂ©szlegesen rendezett halmaz. FormĂĄlis jelölĂ©s: ⟹S, ⩜⟩.

Mint legegyszerƱbb pĂ©lda, tekintsĂŒk az összes termĂ©szetes szĂĄm N halmazĂĄt a szokĂĄsos rendezĂ©si relĂĄciĂłval ⩜. Nem nehĂ©z ellenƑrizni, hogy minden szĂŒksĂ©ges axiĂłma teljesĂŒl.

Egy tartalmasabb pĂ©lda. TekintsĂŒk az {1, 2, 3} halmaz összes rĂ©szhalmazĂĄt, rendezve a ⊆ relĂĄciĂłval. ValĂłban, ez a relĂĄciĂł minden rĂ©szleges sorrenddel kapcsolatos feltĂ©telnek megfelel, Ă­gy ⟹P({1, 2, 3}), ⊆⟩ — rĂ©szlegesen rendezett halmaz. Az alĂĄbbi ĂĄbrĂĄn lĂĄthatĂł ennek a halmaznak a struktĂșrĂĄja: ha egy elemhez nyilakkal el lehet jutni egy mĂĄsik elemhez, akkor azok rendezĂ©si relĂĄciĂłban ĂĄllnak.

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

KĂ©t egyszerƱ matematikai fogalomra van szĂŒksĂ©gĂŒnk — a supremumra Ă©s az infimumra.

3. meghatĂĄrozĂĄs. Legyen ⟹S, ⩜⟩ — rĂ©szlegesen rendezett halmaz, A ⊆ S. Az A felsƑ hatĂĄra egy olyan elem u ∈ S, amelyre ∀x ∈ S: x ⩜ u. Legyen U a S összes felsƑ hatĂĄrĂĄnak halmaza. Ha az U-ban van legkisebb elem, akkor azt supremumnak nevezzĂŒk, Ă©s sup A-kĂ©nt jelöljĂŒk.

Hasonlóképpen hatårozzuk meg a pontos alsó hatårt.

4. meghatĂĄrozĂĄs. Legyen ⟹S, ⩜⟩ — rĂ©szlegesen rendezett halmaz, A ⊆ S. Az A alsĂł hatĂĄra egy olyan elem l ∈ S, amelyre ∀x ∈ S: l ⩜ x. Legyen L a S összes alsĂł hatĂĄrĂĄnak halmaza. Ha az L-ben van legnagyobb elem, akkor azt infimumĂĄnak nevezzĂŒk, Ă©s inf A-kĂ©nt jelöljĂŒk.

VegyĂŒk pĂ©ldĂĄnak a fenn emlĂ­tett rĂ©szlegesen rendezett halmazt ⟹P ({1, 2, 3}), ⊆⟩, Ă©s talĂĄljuk meg benne a supremumot Ă©s az infimumot:

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

Most megfogalmazhatjuk az algebrai rĂĄcs definĂ­ciĂłjĂĄt.

5. meghatĂĄrozĂĄs. Legyen ⟹P, ⩜⟩ — rĂ©szlegesen rendezett halmaz, amelyben minden kĂ©t elemƱ rĂ©szhalmaznak pontos felsƑ Ă©s alsĂł hatĂĄra van. Ekkor a P-t algebrai rĂĄcsnak nevezzĂŒk. EzenkĂ­vĂŒl sup{x, y} -t x √ y-kĂ©nt, mĂ­g inf{x, y} -t x ∧ y-kĂ©nt Ă­rjĂĄk.

EllenƑrizzĂŒk, hogy a munkapĂ©ldĂĄnk ⟹P ({1, 2, 3}), ⊆⟩ rĂĄcs-e. ValĂłban, bĂĄrmely a, b ∈ P ({1, 2, 3}) esetĂ©n a √ b = a âˆȘ b, mĂ­g a ∧ b = a ∩ b. PĂ©ldĂĄul vizsgĂĄljuk meg a {1, 2} Ă©s {1, 3} halmazokat, Ă©s talĂĄljuk meg az infimumot Ă©s supremumot. Ha a kettƑt metszjĂŒk, {1} halmazt kapunk, amely az infimum lesz. A supremum pedig az egyesĂ­tĂ©sĂŒkkel nyerhetƑ: {1, 2, 3}.

A szuperzsĂ­rtalĂĄlĂĄsi algoritmusokban a keresĂ©si tĂ©r gyakran rĂĄcskĂ©nt jelenik meg, ahol az egyelemƱ halmazok (nevezd el az elsƑ szintƱ keresĂ©si rĂĄcsot, ahol a baloldali fĂŒggƑsĂ©gek egy attribĂștumbĂłl ĂĄllnak) minden attribĂștumot kĂ©pviselnek az eredeti relĂĄciĂłban.
Kezdetben a ∅ → tĂ­pusĂș fĂŒggƑsĂ©geket vizsgĂĄljuk. Egyetlen attribĂștum. Ez a lĂ©pĂ©s lehetƑvĂ© teszi annak meghatĂĄrozĂĄsĂĄt, hogy mely attribĂștumok kĂ©pezik a primer kulcsokat (ezekhez az attribĂștumokhoz nincsenek determinĂĄnsok, ezĂ©rt a baloldal ĂŒres). Ezt követƑen az algoritmusok a rĂĄcson felfelĂ© haladnak. Meg kell jegyezni, hogy a rĂĄcsot nem feltĂ©tlenĂŒl kell teljesen bejĂĄrni, tehĂĄt ha megadunk egy kĂ­vĂĄnt maximĂĄlis mĂ©retet a bal oldalon, akkor az algoritmus nem halad tovĂĄbb egy ilyen mĂ©retƱ szinten.

Az alĂĄbbi ĂĄbrĂĄn lĂĄthatĂł, hogyan lehet felhasznĂĄlni az algebrai rĂĄcsot a FZ keresĂ©si feladatĂĄban. Itt minden Ă©l (X, XY) egy fĂŒggƑsĂ©get kĂ©pvisel X → Y. PĂ©ldĂĄul ĂĄthaladtunk az elsƑ szinten, Ă©s tudjuk, hogy a fĂŒggƑsĂ©g A → B zöld kapcsolĂłdĂĄskĂ©nt jelenik meg a csĂșcsok között A Ă©s B). EzĂ©rt, amikor a rĂĄcson felfelĂ© haladunk, nem kell ellenƑriznĂŒnk a fĂŒggƑsĂ©get A, C → B, mert az mĂĄr nem lesz minimĂĄlis. HasonlĂłkĂ©ppen nem ellenƑriznĂ©nk, ha a fĂŒggƑsĂ©g C → B.

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

tartva lenne. TovĂĄbbĂĄ, ĂĄltalĂĄban minden modern FZ keresĂ©si algoritmus ilyen adatstruktĂșrĂĄt hasznĂĄl, mint a partĂ­ciĂł (az eredetiben – stripped partition [1]). A partĂ­ciĂł formĂĄlis meghatĂĄrozĂĄsa a következƑkĂ©ppen nĂ©z ki:

DefinĂ­ciĂł 6. Legyen X ⊆ R – az r relĂĄciĂł attribĂștumainak halmaza. A klaszter az r tuple-ök indexeinek halmaza, amelyeknek az X-re azonos Ă©rtĂ©kĂŒk van, azaz c(t) = {i|ti[X] = t[X]}. A partĂ­ciĂł az egysĂ©g hosszĂș klasztereket kizĂĄrĂł halmazt alkot:

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

EgyszerƱ szavakkal, a partĂ­ciĂł egy attribĂștumra X egy olyan listĂĄkbĂłl ĂĄllĂł halmazt jelent, ahol minden lista az azonos Ă©rtĂ©kƱ Xsorok szĂĄmĂĄt tartalmazza. A modern irodalomban a partĂ­ciĂłkat reprezentĂĄlĂł struktĂșrĂĄt position list indexnek (PLI) nevezik. Az egysĂ©g hosszĂș klasztereket a PLI tömörĂ­tĂ©se Ă©rdekĂ©ben zĂĄrjĂĄk ki, mert ezek olyan klaszterek, amelyek csak egy egyedi Ă©rtĂ©kƱ bejegyzĂ©s szĂĄmĂĄt tartalmazzĂĄk, amelyet mindig könnyen meghatĂĄrozhatunk.

NĂ©zzĂŒk meg a pĂ©ldĂĄt. TĂ©rjĂŒnk vissza az ugyanarra betegadatok tĂĄblĂĄjĂĄra, Ă©s kĂ©szĂ­tsĂŒnk partĂ­ciĂłkat az oszlopok szĂĄmĂĄra Betegek Ă©s NƑi nem (balra egy Ășj oszlop jelent meg, amelyben a tĂĄblĂĄzat sorainak szĂĄmait jelöljĂŒk):

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

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

Itt az definĂ­ciĂł szerint a partĂ­ciĂł az oszlopra Betegek valĂłjĂĄban ĂŒres lesz, mivel az egysĂ©g klaszterek ki vannak zĂĄrva a partĂ­ciĂłbĂłl.

A partĂ­ciĂłkat több attribĂștum alapjĂĄn is lehet kĂ©szĂ­teni. Erre kĂ©t lehetƑsĂ©g van: vĂ©gigjĂĄrni a tĂĄblĂĄzatot Ă©s az összes szĂŒksĂ©ges attribĂștum alapjĂĄn azonnal lĂ©trehozni a partĂ­ciĂłt, vagy pedig a partĂ­ciĂłk metszĂ©sĂ©vel egy rĂ©szhalmaz alapjĂĄn lĂ©trehozni. A FZ keresĂ©si algoritmusok a mĂĄsodik lehetƑsĂ©get hasznĂĄljĂĄk.

EgyszerƱ szavakkal, pĂ©ldĂĄul ha partĂ­ciĂłt szeretnĂ©nk kĂ©szĂ­teni az oszlopokra ABC, akkor a AC Ă©s B (vagy bĂĄrmely mĂĄs, nem ĂĄtfedƑ rĂ©szhalmazok) Ă©s keresztezzĂŒk Ƒket. KĂ©t partĂ­ciĂł metszetĂ©nek mƱvelete a leghosszabb, mindkĂ©t partĂ­ciĂłra közös klasztereket jelöli ki.

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 ĂŒres partĂ­ciĂłt kaptunk. Ha megnĂ©zzĂŒk a tĂĄblĂĄzatot, valĂłban nincsenek azonos Ă©rtĂ©kek a kĂ©t attribĂștumon. Ha azonban kissĂ© mĂłdosĂ­tjuk a tĂĄblĂĄzatot (a jobb oldali eset), mĂĄr kapunk egy nem ĂŒres metszetet. EzenkĂ­vĂŒl az 1. Ă©s 2. sor valĂłban azonos Ă©rtĂ©keket tartalmaz az attribĂștumok szerint. NƑi nem Ă©s Doktor.

Most szĂŒksĂ©gĂŒnk lesz a partĂ­ciĂł mĂ©retĂ©nek fogalmĂĄra. FormĂĄlisan:

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

EgyszerƱbben fogalmazva, a partíció mérete a partícióba tartozó klaszterek szåmåt jelenti (ne feledd, hogy az egyes klaszterek nem tartoznak a partícióba!):

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 a megadott partĂ­ciĂłk esetĂ©n lehetƑvĂ© teszi a fĂŒggƑsĂ©g fennĂĄllĂĄsĂĄnak megĂĄllapĂ­tĂĄsĂĄt:

Lema 1. A fĂŒggƑsĂ©g A, B → C fennĂĄll, ha Ă©s csak ha

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

A lema szerint a fĂŒggƑsĂ©g fennĂĄllĂĄsĂĄnak meghatĂĄrozĂĄsĂĄhoz nĂ©gy lĂ©pĂ©st kell vĂ©grehajtani:

  1. KiszĂĄmĂ­tani a partĂ­ciĂłt a fĂŒggƑsĂ©g bal oldalĂĄhoz
  2. KiszĂĄmĂ­tani a partĂ­ciĂłt a fĂŒggƑsĂ©g jobb oldalĂĄhoz
  3. KiszĂĄmĂ­tani az elsƑ Ă©s mĂĄsodik lĂ©pĂ©s szorzatakĂ©nt
  4. ÖsszehasonlĂ­tani az elsƑ Ă©s harmadik lĂ©pĂ©s sorĂĄn kapott partĂ­ciĂłk mĂ©reteit

AlĂĄbb bemutatunk egy pĂ©ldĂĄt arra, hogy a lema szerint fennĂĄll-e a fĂŒggƑsĂ©g:

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

A cikkben olyan fogalmakat vizsgĂĄltunk, mint a funkcionĂĄlis fĂŒggƑsĂ©g, a közelĂ­tƑ funkcionĂĄlis fĂŒggƑsĂ©g, tĂĄrgyaltuk, hol hasznĂĄljĂĄk Ƒket, Ă©s milyen algoritmusok lĂ©teznek a fĂŒggƑsĂ©gek keresĂ©sĂ©re. Emellett rĂ©szletesen megvitatott alapvetƑ, de fontos fogalmakat, amelyek aktĂ­van hasznĂĄlatosak a modern fĂŒggƑsĂ©gkeresƑ algoritmusokban.

Irodalomjegyzék:

  1. Huhtala Y. et al. TANE: An efficient algorithm for discovering functional and approximate dependencies //The computer journal. – 1999. – Vol. 42. – No. 2. – pp. 100-111.
  2. Kruse S., Naumann F. Efficient discovery of approximate dependencies //Proceedings of the VLDB Endowment. – 2018. – Vol. 11. – No. 7. – pp. 759-772.
  3. Papenbrock T., Naumann F. A hybrid approach to functional dependency discovery //Proceedings of the 2016 International Conference on Management of Data. – ACM, 2016. – pp. 821-833.
  4. Papenbrock T. et al. Functional dependency discovery: An experimental evaluation of seven algorithms //Proceedings of the VLDB Endowment. – 2015. – Vol. 8. – No. 10. – pp. 1082-1093.
  5. Kumar A. et al. To join or not to join?: Thinking twice about joins before feature selection //Proceedings of the 2016 International Conference on Management of Data. – ACM, 2016. – pp. 19-34.
  6. Abo Khamis M. et al. A tömörĂ­tett tensorokkal vĂ©gzett adatbĂĄzison belĂŒli tanulĂĄs. // Proceedings of the 37th ACM SIGMOD-SIGACT-SIGAI Symposium on Principles of Database Systems. – ACM, 2018. – 325-340. o.
  7. Hellerstein J. M. et al. A MADlib analitikai könyvtĂĄr: avagy MAD kĂ©pessĂ©gek, a SQL // Proceedings of the VLDB Endowment. – 2012. – 5. kötet. – 12. szĂĄm. – 1700-1711. o.
  8. Qin C., Rusu F. SpekulatĂ­v közelĂ­tĂ©sek terabites elosztott gradiens csökkenĂ©s optimalizĂĄlĂĄsĂĄra // 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 Sparkban // The Journal of Machine Learning Research. – 2016. – 17. kötet. – 1. szĂĄm. – 1235-1241. o.

A cikk szerzƑi: AnasztĂĄzia Birillo, kutatĂł a JetBrains Research, a CS központ hallgatĂłja Ă©s Nyikita Bobrov, kutatĂł a JetBrains Research

ForrĂĄs: habr.com

MegbĂ­zhatĂł hosting vĂĄsĂĄrlĂĄsa weboldalak szĂĄmĂĄra, DDoS vĂ©delemmel, VPS VDS szerverek. đŸ”„ MegbĂ­zhatĂł webtĂĄrhely vĂĄsĂĄrlĂĄsa DDoS vĂ©delemmel, VPS VDS szerverek | ProHoster