Fuzzy teoria a jazyk SQL Jazyk SQL používa Booleovu algebru, čo prináša jeden veľký problém. V otázke typu A and B and C and... Z, je nesprávnosť z uhla pohľadu v tom, že otázke nevyhovujú údaje, ktoré nespĺňajú jednu z podmienok A až Z, a tak isto nevyhovujú údaje, ktoré nespĺňajú dva alebo viac podmienok. Nie je teda rozdiel medzi údajmi, ktoré spĺňajú rôzny počet podmienok dotazu. Bolo by vhodné, aby sa na výstup dostali i údaje, ktoré nespĺňajú všetky podmienky dotazu, pričom miera ich ohodnotenia by mala klesať s klesajúcim počtom splnených podmienok. Obdobne ako s podmienok and i s operátorom or sa dostanú na výstup údaje, ktoré nič nehovoria o tom, koľko podmienok vlastne splňujú. Bolo by teda vhodné, aby miera ohodnotenia stúpala s rastúcim počtom splnených podmienok. Fuzzy Query tm Predstavme si správkyňu školy, od ktorej sa požaduje zoznam študentov s dobrým študijným priemerom a dobrou dochádzkou. Aby mohla v databáze vyhľadať týchto dobrých študentov, je prinútená presne definovať, čo znamená dobrý študent. Rozhodne sa, že dobrý študent je práve taký, ktorý má študijný priemer (GPA) aspoň 3.5 a menej ako 10 absencií za rok. Z tohto hľadiska navrhne nasledujúci SQL príkaz : SELECT * FROM STUDENTS WHERE (GPA >= 3,5 ) AND (ABSENCES < 10 ). Lenže správkyňa dostane zoznam študentov bez nejakého rozumného poradia, preto by bolo potrebné pridať tam riadok ORDER BY GPA DESC, ABSENCES ASC. Na výstupe síce sú študenti naviac usporiadaní v poradí od najvyššieho GPA po najnižší a vo vnútri každej skupiny študentov s rovnakým GPA sú usporiadaný podľa počtu absencií. Aj keď je tento zoznam o niečo lepší, predsa len adekvátne neodráža pôvodný sémantický zámer. Správkyňa sa napríklad domnieva, že poradie študentov neodráža jej predstavy. Alebo si okrem toho správkyňa všimla, že existujú študenti, ktorí sú podľa jej názoru dobrý, ale na zoznam sa nedostali. Ukazuje sa, že pojem dobrý študent je vágnym pojmom, ktorý nie je ľahko vyjadriteľný použitím klasickej alebo striktnej logiky. Naša správkyňa školy pôvodne chcela vybrať študentov, ktorí majú dobrý priemer a dobrú dochádzku. Práve na vyjadrenie sémantiky takýchto kritérií sa veľmi dobre uplatňuje fuzzy logika. Predpokladajme, že študent A má 4.0 GPA a študent B má 3.5 GPA. Obaja majú dobrý priemer. Ale je zrejmé, že len študent A spĺňa ideál. Vo fuzzy logike by sme mohli povedať, že študent A má úplnú príslušnosť do fuzzy množiny študentov s dobrým priemerom, zatiaľ čo študent B má len čiastočnú príslušnosť do tejto množiny. Použitím fuzzy logiky by sme mohli definovať požadovanú predstavu dobrý priemer v pojmoch fuzzy množín tak, ako je to na obr1 z beta verzie aplikácie Fuzzy Query.
Pojem dobrý priemer je tu definovaný ako krivka v tvare S s rozsahom 3.0 po 4.0. Na grafe krivky môžete vidieť, že študent s 4.0 GPA má príslušnosť 1.0, ktorá je ako bolo napísané úplnou príslušnosťou do množiny študentov s dobrým priemerom. Ďalej môžete vidieť, že študent s 3.5 GPA by mal príslušnosť 0.5 alebo 50 % do tejto množiny. Teda pojem dobrý študent je modelovaný spojitou funkciou, čo je správnejšie a bližšie ľudskému uvažovaniu ako predošlý spôsob vyjadrenia v tvrdeniach typu bud-alebo. Podobne by sme vyjadrili pojem dobrá dochádzka, ktorý by sme modelovali klesajúcou S krivkou s rozsahom 0 do 13. Na obr. 2 sa nachádza výstup, ktorý by vznikol spojením oboch podmienok (GPA is are GOOD) AND (ABSENCES is are GOOD). Všimnite si sĺpec QCIX v tejto výslednej množine záznamov, ktorý je typický pre vyhodnocovanie fuzzy príkazov oproti striktným SQL príkazom. Skratka QCIX znamená Query Compatibility Index a hodnoty v tomto stĺpci sú mierou toho, ako dobre vyhovuje každý ohodnotený záznam ideálu dobrého študenta, tak ako bol definovaný fuzzy príkazom. Z usporiadania výslednej množiny podľa QCIX môžeme vidieť, že výsledok tohto fuzzy príkazu adekvátne odráža predstavu správkyne školy o dobrom študentovi.
Jednou z firiem, ktoré zareagovali na potrebu použiť fuzzy teóriu v informačných technológiách je Japonská spoločnosť Omron. Podľa Japonského štandardu patrí Omron s okolo 8.000 zamestnancami medzi mierne veľké spoločnosti. V súčasnosti má Omron viac ako 1000 fuzzy patentov aplikovaných v 40-50 produktoch od regulačných aplikácií cez aplikácie vo vyhľadávaní databázach, až po fuzzy čipy a pracovné stanice. Spolupráca s Oracle Japan začala na počiatku roku 1993 s cieľom vyvinúť softwarovo založené rozšírenie normy SQL, ktoré podporuje interpretovanie fuzzy SQL dotazov. Zatiaľ čo štandard DQL, bežiaci na obvyklých relačných databázových tabuľkách, požaduje číselne presné dotazy ako Select NAME, AGE, INCOME From EMPLOYEE Where (AGE >= 25 and AGE <= 45) and (INCOME >= $35,000) s Fuzzy SQL je možné klásť také dotazy ako Select NAME, AGE, INCOME From EMPLOYEE Where (AGE = middle) and (INCOME >= high) To znamená, že priamo v dotazoch je možné používať vágne pojmy, ktoré sa nachádzajú v reálnych dotazoch formulovaných v prirodzenom jazyku. V našom prípade dotaz zodpovedá požiadavke : Vyber zamestnancov, ktorí majú vysoký príjem a súčasne sú v strednom veku. To znamená, že relevantnosť zamestnanca rastie s rastúcim príjmom a súčasným približovaním sa k strednému veku, čomu zodpovedajú aj výsledky.
NAME AGE INCOME Score Schorta 35 $43,000 0.971 Hochuli 34 $40,000 0.862 Nacht 32 $42,000 0.751 Waldburger 37 $38,000 0.723 Schmidt 34 $35,000 0.639 Weise 36 $34,000 0.626 Kirchbaum 34 $34,000 0.626 Revai 38 $37,000 0.614 Brunner 34 $33,000 0.588 Meier 34 $32,000 0.533 Batt 29 $43,000 0.418 Saatkrähe 35 $29,000 0.369 Sattler 45 $46,000 0.288 [1.] http://www.siska.kgb.cz/#fuzzyquery [2.] http://www.rydval.cz/slavek/fuzzy.php