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.

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:
[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
,
â R esetĂ©n teljesĂŒl: ha
[X] =
[X], akkor
[Y] =
[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:
- Betegek â Neme
- 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.


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
= 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:

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:
[Doktor, Beteg] = (Robin, Ellis, ennek eredmĂ©nyekĂ©nt a lekĂ©rdezĂ©sek olyan formĂĄt öltenek, mint a fent emlĂtett.
[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: (
,
) és annak inverziója (
,
). HelyettesĂtjĂŒk a kĂ©pletbe, Ă©s megkapjuk:

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.

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:

Példa duplikåtumokra az adatokban:

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.

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.




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Ăł:

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:


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:
- ReflexivitĂĄs, azaz a ⩜ a.
- Antiszimmetria, azaz ha a ⩜ b Ă©s b ⩜ a, akkor a = b.
- 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.

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:

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.


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:

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):


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:


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:

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!):


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

A lema szerint a fĂŒggĆsĂ©g fennĂĄllĂĄsĂĄnak meghatĂĄrozĂĄsĂĄhoz nĂ©gy lĂ©pĂ©st kell vĂ©grehajtani:
- KiszĂĄmĂtani a partĂciĂłt a fĂŒggĆsĂ©g bal oldalĂĄhoz
- KiszĂĄmĂtani a partĂciĂłt a fĂŒggĆsĂ©g jobb oldalĂĄhoz
- KiszĂĄmĂtani az elsĆ Ă©s mĂĄsodik lĂ©pĂ©s szorzatakĂ©nt
- Ă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:




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:
- 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.
- Kruse S., Naumann F. Efficient discovery of approximate dependencies //Proceedings of the VLDB Endowment. â 2018. â Vol. 11. â No. 7. â pp. 759-772.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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: , kutatĂł a , Ă©s , kutatĂł a
ForrĂĄs: habr.com
