Entwodiksyon nan Depandans Fonksyonèl

Nan atik sa a nou pral pale sou depandans fonksyonèl nan baz done - kisa yo ye, ki kote yo itilize ak ki algoritm ki egziste pou jwenn yo.

Nou pral konsidere depandans fonksyonèl nan kontèks baz done relasyon yo. Pou mete li trè apeprè, nan baz done sa yo enfòmasyon yo estoke nan fòm lan nan tab. Apre sa, nou sèvi ak konsèp apwoksimatif ki pa ka ranplase nan teyori relasyon strik: nou pral rele tab la tèt li yon relasyon, kolòn yo - atribi (seri yo - yon chema relasyon), ak seri valè ranje sou yon sou-ansanm atribi. - yon tuple.

Entwodiksyon nan Depandans Fonksyonèl

Pou egzanp, nan tablo ki anwo a, (Benson, M, M ògàn) se yon tuple nan atribi (Pasyan, Pòl, Doktè).
Plis fòmèlman, sa ekri jan sa a: Entwodiksyon nan Depandans Fonksyonèl[Pasyan, Sèks, Doktè] = (Benson, M, M ògàn).
Koulye a, nou ka prezante konsèp depandans fonksyonèl (FD):

Definisyon 1. Relasyon R la satisfè lwa federal X → Y (kote X, Y ⊆ R) si epi sèlman si pou nenpòt tuple. Entwodiksyon nan Depandans Fonksyonèl, Entwodiksyon nan Depandans Fonksyonèl ∈ R kenbe: si Entwodiksyon nan Depandans Fonksyonèl[X] = Entwodiksyon nan Depandans Fonksyonèl[X], lè sa a Entwodiksyon nan Depandans Fonksyonèl[Y] = Entwodiksyon nan Depandans Fonksyonèl[Y]. Nan ka sa a, nou di ke X (detèminan an, oswa defini seri atribi) fonksyonèl detèmine Y (ansanm depandan an).

Nan lòt mo, prezans nan yon lwa federal X → Y vle di ke si nou gen de tuple nan R epi yo matche ak nan atribi yo X, Lè sa a, yo pral kowenside nan atribi Y.
Epi kounyeya, nan lòd. Ann gade nan atribi yo Yon pasyan и Sèks pou ki nou vle chèche konnen si gen depandans ant yo oswa ou pa. Pou yon seri atribi konsa, depandans sa yo ka egziste:

  1. Pasyan → Sèks
  2. Sèks → Pasyan

Jan sa defini pi wo a, nan lòd pou premye depandans la kenbe, chak valè kolòn inik Yon pasyan yon sèl valè kolòn dwe matche Sèks. Ak pou egzanp tab sa a se tout bon ka a. Sepandan, sa a pa travay nan direksyon opoze a, se sa ki, dezyèm depandans la pa satisfè, ak atribi a. Sèks se pa yon detèminan pou Pasyan. Menm jan an tou, si nou pran depandans lan Doktè → Pasyan, ou ka wè ke li se vyole, depi valè a Robin atribi sa a gen plizyè siyifikasyon diferan - Ellis ak Graham.

Entwodiksyon nan Depandans Fonksyonèl

Entwodiksyon nan Depandans Fonksyonèl

Kidonk, depandans fonksyonèl fè li posib pou detèmine relasyon ki egziste ant seri atribi tab yo. Soti isit la nou pral konsidere koneksyon ki pi enteresan, oswa pito sa yo X → Ykisa yo ye:

  • ki pa trivial, se sa ki, bò dwat la nan depandans la se pa yon sou-ensemble nan bò gòch la (Y ̸⊆ X);
  • minim, se sa ki, pa gen okenn depandans sa yo Z → YSa Z ⊂ X.

Depandans yo konsidere jiska pwen sa a te strik, se sa ki, yo pa t bay okenn vyolasyon sou tab la, men anplis de yo, gen tou sa yo ki pèmèt kèk enkonsistans ant valè yo nan tuples yo. Depandans sa yo mete nan yon klas separe, yo rele apwoksimatif, epi yo gen dwa vyole pou yon sèten kantite tuple. Kantite lajan sa a reglemante pa maksimòm endikatè erè emax la. Pou egzanp, pousantaj erè a Entwodiksyon nan Depandans Fonksyonèl = 0.01 ka vle di ke depandans la ka vyole pa 1% nan tuple ki disponib sou seri a konsidere nan atribi. Sa vle di, pou 1000 dosye, yon maksimòm 10 tuples ka vyole Lwa Federal la. Nou pral konsidere yon metrik yon ti kras diferan, ki baze sou valè diferan nan tuple yo konpare. Pou dejwe X → Y sou atitid r li konsidere kòm sa a:

Entwodiksyon nan Depandans Fonksyonèl

Ann kalkile erè a pou Doktè → Pasyan soti nan egzanp ki anwo a. Nou gen de tuple ki gen valè diferan sou atribi a Yon pasyan, men kowenside sou Doktè: Entwodiksyon nan Depandans Fonksyonèl[Doktè, Pasyan] = (Robin, Ellis) ak Entwodiksyon nan Depandans Fonksyonèl[Doktè, Pasyan] = (Robin, Graham). Apre definisyon yon erè, nou dwe pran an kont tout pè konfli, ki vle di pral gen de nan yo: (Entwodiksyon nan Depandans Fonksyonèl, Entwodiksyon nan Depandans Fonksyonèl) ak envèsyon li yo (Entwodiksyon nan Depandans Fonksyonèl, Entwodiksyon nan Depandans Fonksyonèl). Ann ranplase li nan fòmil la epi jwenn:

Entwodiksyon nan Depandans Fonksyonèl

Koulye a, ann eseye reponn kesyon an: "Poukisa se pou tout bagay?" An reyalite, lwa federal yo diferan. Premye kalite a se depandans sa yo ke administratè a detèmine nan etap konsepsyon baz done a. Yo anjeneral kèk nan kantite, strik, ak aplikasyon prensipal la se nòmalizasyon done ak konsepsyon relasyon relasyon.

Dezyèm kalite a se depandans, ki reprezante done "kache" ak relasyon ki te deja pa konnen ant atribi yo. Sa vle di, depandans sa yo pa te panse sou nan moman konsepsyon an epi yo jwenn yo pou seri done ki deja egziste a, pou pita, ki baze sou anpil lwa federal yo idantifye, yo ka tire nenpòt konklizyon sou enfòmasyon ki estoke yo. Se jisteman depandans sa yo ke nou travay avèk yo. Yo fè fas ak yon jaden antye nan min done ak teknik rechèch divès kalite ak algoritm bati sou baz yo. Ann kalkile kijan depandans fonksyonèl yo jwenn (egzak oswa apwoksimatif) nan nenpòt done ka itil.

Entwodiksyon nan Depandans Fonksyonèl

Jodi a, youn nan aplikasyon prensipal yo nan depandans se netwayaj done yo. Li enplike devlope pwosesis pou idantifye "done sal" ak Lè sa a, korije li. Egzanp enpòtan nan "done sal" yo se kopi, erè done oswa typo, valè ki manke, done demode, espas siplemantè, ak tankou.

Egzanp yon erè done:

Entwodiksyon nan Depandans Fonksyonèl

Egzanp kopi nan done:

Entwodiksyon nan Depandans Fonksyonèl

Pou egzanp, nou gen yon tab ak yon seri lwa federal ki dwe egzekite. Netwayaj done nan ka sa a enplike nan chanje done yo pou ke Lwa Federal yo vin kòrèk. Nan ka sa a, kantite modifikasyon yo ta dwe minim (pwosedi sa a gen algoritm pwòp li yo, ki nou pa pral konsantre sou nan atik sa a). Anba la a se yon egzanp transfòmasyon done konsa. Sou bò gòch la se relasyon orijinal la, nan ki, evidamman, FL ki nesesè yo pa satisfè (yon egzanp yon vyolasyon youn nan FL yo make an wouj). Sou bò dwat la se relasyon ki ajou, ak selil vèt yo ki montre valè yo chanje. Apre pwosedi sa a, depandans ki nesesè yo te kòmanse kenbe.

Entwodiksyon nan Depandans Fonksyonèl

Yon lòt aplikasyon popilè se baz done konsepsyon. Isit la li vo sonje fòm nòmal ak nòmalizasyon. Nòmalizasyon se pwosesis pou pote yon relasyon an konfòmite ak yon seri sèten kondisyon, chak nan yo defini nan fòm nòmal la nan pwòp fason pa li. Nou pa pral dekri kondisyon yo nan divès fòm nòmal (sa a se fè nan nenpòt liv sou yon kou baz done pou débutan), men nou pral sèlman sonje ke chak nan yo sèvi ak konsèp nan depandans fonksyonèl nan pwòp fason pa li. Apre yo tout, FL yo se natirèlman kontrent entegrite ke yo pran an kont lè konsepsyon yon baz done (nan kontèks travay sa a, FL yo pafwa yo rele superkeys).

Ann konsidere aplikasyon yo pou kat fòm nòmal yo nan foto ki anba a. Sonje byen, fòm nòmal Boyce-Codd pi strik pase twazyèm fòm lan, men mwens strik pase katriyèm lan. Nou pa konsidere lèt la pou kounye a, depi fòmilasyon li mande pou yon konpreyansyon sou depandans milti-valè, ki pa enteresan pou nou nan atik sa a.

Entwodiksyon nan Depandans Fonksyonèl
Entwodiksyon nan Depandans Fonksyonèl
Entwodiksyon nan Depandans Fonksyonèl
Entwodiksyon nan Depandans Fonksyonèl

Yon lòt zòn kote depandans yo te jwenn aplikasyon yo se diminye dimansyon espas karakteristik yo nan travay tankou bati yon klasifikasyon Bayes nayif, idantifye karakteristik enpòtan yo, ak repare yon modèl regresyon. Nan atik orijinal yo, yo rele travay sa a detèminasyon redondants ak enpòtans karakteristik [5, 6], epi li rezoud ak itilizasyon aktif konsèp baz done yo. Avèk avenman travay sa yo, nou ka di ke jodi a gen yon demann pou solisyon ki pèmèt nou konbine baz done a, analiz ak aplikasyon pwoblèm optimize ki anwo yo nan yon sèl zouti [7, 8, 9].

Gen anpil algoritm (tou de modèn ak pa tèlman modèn) pou chèche lwa federal nan yon seri done. Algoritm sa yo ka divize an twa gwoup:

  • Algoritm ki sèvi ak travèse nan lasi aljebrik (Algoritm traversal lasi)
  • Algoritm ki baze sou rechèch la pou valè yo dakò (diferans- ak dakò-set algoritm)
  • Algoritm ki baze sou konparezon par (Algoritm endiksyon depandans)

Yon deskripsyon tou kout sou chak kalite algorithm prezante nan tablo ki anba a:
Entwodiksyon nan Depandans Fonksyonèl

Ou ka li plis sou klasifikasyon sa a [4]. Anba a se egzanp algoritm pou chak kalite:

Entwodiksyon nan Depandans Fonksyonèl

Entwodiksyon nan Depandans Fonksyonèl

Kounye a, nouvo algoritm ap parèt ki konbine plizyè apwòch pou jwenn depandans fonksyonèl. Egzanp algoritm sa yo se Pyro [2] ak HyFD [3]. Yon analiz de travay yo espere nan atik sa yo nan seri sa a. Nan atik sa a nou pral sèlman egzamine konsèp debaz yo ak lem ki nesesè pou konprann teknik deteksyon depandans.

Ann kòmanse ak yon sèl senp - diferans- ak dakò-set, yo itilize nan dezyèm kalite algorithms. Diferans-ansanm se yon seri tuple ki pa gen menm valè, alòske agree-set, okontrè, se tuple ki gen menm valè. Li se vo anyen ke nan ka sa a nou ap konsidere sèlman bò gòch la nan depandans lan.

Yon lòt konsèp enpòtan ki te rankontre pi wo a se lasi aljebrik la. Depi anpil algoritm modèn opere sou konsèp sa a, nou bezwen gen yon lide sou sa li ye.

Yo nan lòd yo prezante konsèp nan yon lasi, li nesesè defini yon seri pasyèlman òdone (oswa seri pasyèlman òdone, abreje kòm poset).

Definisyon 2. Yo di yon seri S yo òdone pasyèlman pa relasyon binè ⩽ si pou tout a, b, c ∈ S pwopriyete sa yo satisfè:

  1. Refleksivite, sa vle di, a ⩽ a
  2. Antisimetri, sa vle di, si a ⩽ b ak b ⩽ a, lè sa a a = b
  3. Tranzitivite, sa vle di, pou a ⩽ b ak b ⩽ c li swiv ke a ⩽ c


Yo rele yon relasyon konsa yon relasyon pasyèl lòd (ki lach), epi yo rele ansanm nan tèt li yon seri pasyèlman. Notasyon fòmèl: ⟨S, ⩽⟩.

Kòm egzanp ki pi senp nan yon seri pasyèlman òdone, nou ka pran seri a nan tout nonb natirèl N ki gen relasyon lòd nòmal ⩽. Li fasil pou verifye ke tout aksyòm ki nesesè yo satisfè.

Yon egzanp ki gen plis sans. Konsidere ansanm tout sou-ansanm {1, 2, 3}, òdone dapre relasyon enklizyon ⊆. Vreman vre, relasyon sa a satisfè tout kondisyon lòd pasyèl, kidonk ⟨P ({1, 2, 3}), ⊆⟩ se yon seri pasyèlman. Figi ki anba a montre estrikti seri sa a: si flèch yo ka rive jwenn yon eleman nan yon lòt eleman, lè sa a yo nan yon relasyon lòd.

Entwodiksyon nan Depandans Fonksyonèl

Nou pral bezwen de lòt definisyon senp nan domèn matematik - supremum ak infimum.

Definisyon 3. Se pou ⟨S, ⩽⟩ yon seri pasyèlman òdone, A ⊆ S. Fwontyè siperyè A se yon eleman u ∈ S tankou ∀x ∈ S: x ⩽ u. Se pou U ansanm tout limit siperyè S. Si gen yon eleman ki pi piti nan U, lè sa a yo rele li sipèm epi li deziye sup A.

Konsèp yon limit pi ba egzak prezante menm jan an.

Definisyon 4. Se pou ⟨S, ⩽⟩ yon seri pasyèlman òdone, A ⊆ S. Enfim A se yon eleman l ∈ S tankou ∀x ∈ S: l ⩽ x. Se pou L ansanm tout limit pi ba yo nan S. Si gen yon pi gwo eleman nan L, Lè sa a, yo rele li yon enfim epi yo endike kòm inf A.

Konsidere kòm yon egzanp pi wo a ansanm pasyèlman òdone ⟨P ({1, 2, 3}), ⊆⟩ epi jwenn sipèm nan ak enfim nan li:

Entwodiksyon nan Depandans Fonksyonèl

Koulye a, nou ka fòmile definisyon an nan yon lasi aljebrik.

Definisyon 5. Se pou ⟨P,⩽⟩ yon seri pasyèlman òdone konsa ke chak sou-ansanm de eleman gen yon limit siperyè ak pi ba. Lè sa a, yo rele P yon lasi aljebrik. Nan ka sa a, sup{x, y} ekri kòm x ∨ y, ak enf {x, y} kòm x ∧ y.

Ann tcheke egzanp k ap travay nou an ⟨P ({1, 2, 3}), ⊆⟩ se yon lasi. Vreman vre, pou nenpòt a, b ∈ P ({1, 2, 3}), a∨b = a∪b, ak a∧b = a∩b. Pa egzanp, konsidere ansanm {1, 2} ak {1, 3} epi jwenn enfim ak supremum yo. Si nou kwaze yo, nou pral jwenn seri {1}, ki pral enfim la. Nou jwenn supremum nan konbine yo - {1, 2, 3}.

Nan algoritm pou idantifye pwoblèm fizik, espas rechèch la souvan reprezante nan fòm yon lasi, kote ansanm yon sèl eleman (li premye nivo lasi rechèch la, kote bò gòch depandans yo konsiste de yon atribi) reprezante chak atribi. nan relasyon orijinal la.
Premyèman, nou konsidere depandans fòm ∅ → Single atribi. Etap sa a pèmèt ou detèmine ki atribi yo se kle prensipal (pou atribi sa yo pa gen okenn detèminan, ak Se poutèt sa bò gòch la vid). Pli lwen, algoritm sa yo deplase anlè sou lasi a. Li se vo anyen ke pa ka travèse lasi a tout antye, se sa ki, si gwosè a vle maksimòm bò gòch la pase nan opinyon an, Lè sa a, algorithm la pa pral ale pi lwen pase yon nivo ak gwosè sa a.

Figi ki anba a montre kouman yo ka itilize yon lasi aljebrik nan pwoblèm pou jwenn yon FZ. Isit la chak kwen (X, XY) reprezante yon depandans X → Y. Pou egzanp, nou te pase premye nivo a epi nou konnen ke dejwe a kenbe A → B (nou pral montre sa a kòm yon koneksyon vèt ant somè yo A и B). Sa vle di ke pi lwen, lè nou deplase sou lasi a, nou ka pa tcheke depandans la A, C → B, paske li p ap minim ankò. Menm jan an tou, nou pa ta tcheke li si depandans lan te fèt C → B.

Entwodiksyon nan Depandans Fonksyonèl
Entwodiksyon nan Depandans Fonksyonèl

Anplis de sa, kòm yon règ, tout algoritm modèn pou chèche lwa federal yo itilize yon estrikti done tankou yon patisyon (nan sous orijinal la - dezabiye patisyon [1]). Definisyon fòmèl yon patisyon se jan sa a:

Definisyon 6. Se pou X ⊆ R yon seri atribi pou relasyon r. Yon gwoup se yon seri endis tuple nan r ki gen menm valè pou X, sa vle di c(t) = {i|ti[X] = t[X]}. Yon patisyon se yon seri grap, eksepte grap nan longè inite:

Entwodiksyon nan Depandans Fonksyonèl

Nan mo senp, yon patisyon pou yon atribi X se yon seri lis, kote chak lis gen nimewo liy ak menm valè yo pou X. Nan literati modèn, estrikti ki reprezante patisyon yo rele endèks lis pozisyon (PLI). Gwoup inite-longè yo eskli pou rezon konpresyon PLI paske yo se grap ki genyen sèlman yon nimewo dosye ak yon valè inik ki pral toujou fasil pou idantifye.

Ann gade yon egzanp. Ann retounen nan menm tab la ak pasyan yo epi bati patisyon pou kolòn yo Yon pasyan и Sèks (yon nouvo kolòn parèt sou bò gòch la, kote nimewo ranje tab yo make):

Entwodiksyon nan Depandans Fonksyonèl

Entwodiksyon nan Depandans Fonksyonèl

Anplis, dapre definisyon an, patisyon an pou kolòn nan Yon pasyan pral aktyèlman vid, depi grap sèl yo eskli nan patisyon an.

Patisyon yo ka jwenn pa plizyè atribi. Epi gen de fason pou w fè sa: lè w ale nan tab la, bati yon patisyon lè l sèvi avèk tout atribi ki nesesè yo nan yon fwa, oswa bati li lè l sèvi avèk operasyon an nan entèseksyon nan patisyon lè l sèvi avèk yon sou-ansanm nan atribi. Algoritm rechèch lalwa federal yo itilize dezyèm opsyon an.

Nan mo senp, pou, pou egzanp, jwenn yon patisyon pa kolòn ABC, ou ka pran patisyon pou AC и B (oswa nenpòt lòt ansanm disjoint) epi kwaze yo youn ak lòt. Operasyon entèseksyon de patisyon chwazi grap ki gen pi gwo longè ki komen nan tou de patisyon yo.

Ann gade yon egzanp:

Entwodiksyon nan Depandans Fonksyonèl

Entwodiksyon nan Depandans Fonksyonèl

Nan premye ka a, nou te resevwa yon patisyon vid. Si ou gade ak anpil atansyon sou tab la, Lè sa a, tout bon, pa gen okenn valè ki idantik pou de atribi yo. Si nou modifye yon ti kras tab la (ka a sou bò dwat la), nou pral deja jwenn yon entèseksyon ki pa vid. Anplis, liy 1 ak 2 aktyèlman genyen menm valè pou atribi yo Sèks и Doktè.

Apre sa, nou pral bezwen tankou yon konsèp kòm gwosè patisyon. Fòmèlman:

Entwodiksyon nan Depandans Fonksyonèl

Senpleman mete, gwosè patisyon an se kantite grap ki enkli nan patisyon an (sonje ke grap sèl yo pa enkli nan patisyon an!):

Entwodiksyon nan Depandans Fonksyonèl

Entwodiksyon nan Depandans Fonksyonèl

Koulye a, nou ka defini youn nan lem kle yo, ki pou patisyon yo bay yo pèmèt nou detèmine si yo kenbe yon depandans oswa ou pa:

Lem 1. Depandans A, B → C kenbe si epi sèlman si

Entwodiksyon nan Depandans Fonksyonèl

Dapre lem nan, pou detèmine si yon depandans kenbe, yo dwe fè kat etap:

  1. Kalkile patisyon an pou bò gòch depandans lan
  2. Kalkile patisyon an pou bò dwat depandans lan
  3. Kalkile pwodwi premye ak dezyèm etap la
  4. Konpare gwosè patisyon yo jwenn nan premye ak twazyèm etap yo

Anba a se yon egzanp pou tcheke si depandans la kenbe dapre lem sa a:

Entwodiksyon nan Depandans Fonksyonèl
Entwodiksyon nan Depandans Fonksyonèl
Entwodiksyon nan Depandans Fonksyonèl
Entwodiksyon nan Depandans Fonksyonèl

Nan atik sa a, nou egzamine konsèp tankou depandans fonksyonèl, apwoksimatif depandans fonksyonèl, gade kote yo itilize yo, ansanm ak ki algoritm pou chèche fonksyon fizik ki egziste. Nou te egzamine tou an detay konsèp debaz men enpòtan ke yo itilize aktivman nan algoritm modèn pou chèche lwa federal yo.

Referans:

  1. Huhtala Y. et al. TANE: Yon algorithm efikas pou dekouvri depandans fonksyonèl ak apwoksimatif //Journal òdinatè a. – 1999. – T. 42. – Non. 2. – paj 100-111.
  2. Kruse S., Naumann F. Dekouvèt efikas nan depandans apwoksimatif // Proceedings of the VLDB Endowment. – 2018. – T. 11. – Non. 7. – paj 759-772.
  3. Papenbrock T., Naumann F. Yon apwòch ibrid nan dekouvèt depandans fonksyonèl // Pwosedi Konferans Entènasyonal 2016 sou Jesyon Done. – ACM, 2016. – pp 821-833.
  4. Papenbrock T. et al. Dekouvèt depandans fonksyonèl: Yon evalyasyon eksperimantal sèt algoritm // Pwosedi Fondasyon VLDB la. – 2015. – T. 8. – Non. 10. – paj 1082-1093.
  5. Kumar A. et al. Pou rantre oswa pa rantre?: Panse de fwa sou rantre anvan seleksyon karakteristik // Pwosedi Konferans Entènasyonal 2016 sou Jesyon Done. – ACM, 2016. – pp 19-34.
  6. Abo Khamis M. et al. Aprantisaj nan baz done ak tansè ra // Pwosedi 37yèm ACM SIGMOD-SIGACT-SIGAI Symposium sou Prensip Sistèm baz done yo. – ACM, 2018. – pp 325-340.
  7. Hellerstein J. M. et al. Bibliyotèk analytics MADlib la: oswa ladrès MAD, SQL //Proceedings of the VLDB Endowment. – 2012. – T. 5. – Non. 12. – pp 1700-1711.
  8. Qin C., Rusu F. Apwoksimasyon spéculatif pou optimize desandan gradyan distribye terascale // Pwosedi Katriyèm Atelye sou Done analytics nan nwaj la. – ACM, 2015. – P. 1.
  9. Meng X. et al. Mllib: Aprantisaj machin nan Apache spark //The Journal of Machine Learning Research. – 2016. – T. 17. – Non. 1. – paj 1235-1241.

Otè atik: Anastasia Birillo, chèchè nan Rechèch JetBrains, Elèv sant CS и Nikita Bobrov, chèchè nan Rechèch JetBrains

Sous: www.habr.com

Add nouvo kòmantè