Stáhnout prezentaci
Prezentace se nahrává, počkejte prosím
1
Radomir Tarabič, Egor Ivkin
FUZZY SQL Radomir Tarabič, Egor Ivkin
2
Co je fuzzy logika ? Fuzzy logika operuje s tzv. mlhavými pojmy
fuzziness = mlhavost Fuzzy logika představuje rozšíření klasické booleovské logiky, díky němuž lze lépe pracovat s nepřesnými nebo vágními daty Tam, kde klasické logické uvažování vyžaduje pouze hodnoty ano a ne, může fuzzy logika pracovat s pojmy jako možná, skoro či velmi
3
Kdo jí vymyslel ? Vícehodnotová logika byla "objevena" Mr. J. Lukadiewiczem v roce 1920 Fuzzy logika a teorie množin jako taková byla představena Mr. Lotfi Zadehem v roce 1965. První kdo prakticky použil fuzzy logiku byl Abraham Mandani v roce 1970 (kontrolní systém pro turbíny)
4
Proč je fuzzy logika důležitá?
Striktní popis vede k popisu skutečnosti pouze pomocí dvouprvkové množiny {0,1}. Pokud problém nelze jednoznačně určit, rozkládá se na menší podproblémy, ale za cenu místa a opět lze použít jen dvouprvkovou množinu. V případech, kdy je již nemožné nebo neúnosné takto problém rozdělit, dopouštíme se jisté chyby a tím je dán odklon od reality
5
Proč je fuzzy logika důležitá? -2
Význam fuzzy logiky lze vnímat ve dvou rovinách. První rovinou je potřeba uchopit a pracovat s nepřesnými či mlhavými daty. Druhou rovinou je celkový přístup k popisu reálného světa. Při používání přesných popisů totiž dochází k idealizování skutečnosti a tedy odklonu od reality.
6
Kde se fuzzy logika používá ?
Aplikace: Řízení (robotika, spotřební elektronika) Informační systémy (DBMS, získávání informací) Rozpoznávání obrazců (strojové vidění, zpracování obrázků) DSS
7
Běžné otázky V nemocnici: “Dej mi seznam mladých pacientů kteří trpí hepatidou a byli přijati přibližně před více jak 5 týdny” Ve škole: “Dej mi seznam studentu kteří prošli matematikou s dobrými známkami a fyzikou s průměrnými“. V supermarketu: “Seznam výrobků, které se prodaly velmi dobře a u kterých jsme neutratili mnoho za jejích reklamu”
8
Příklad Tabulka “Projects” Project Budget(1000$) Duration Staff p01 55
108 29 p02 48 115 33 p03 73 102 10 p04 81 87 40 p05 78 97 16 p06 57 90 25 p07 91 125 41 p08 88 27 p09 65 117 37 p10 93 45
9
Příklad - 2 Chceme najít projekty s vysokým rozpočtem které netrvali doluho Můžeme to zjistit, například, následujícím dotazem: select Project, Budget, Duration from Projects where Budget>80 and Duration<90 Project Budget(1000$) Duration p04 81 87 p08 90 88
10
Výsledek Výsledek splnuje požadavky, ale existuji projekty které jsou velice blízko požadavkům a nejsou ve výsledku. Zkusíme podmínku rozšířit: select Project, Budget, Duration from Projects where Budget>75 and Duration<100 Project Budget(1000$) Duration p04 81 87 p05 78 97 p08 90 88 p10 93
11
Výsledek - 2 Dostali jsme větší množství dat, ale stale existují data která jsou na okraji, ale do výsledku nejsou zahrnuta. Například, projekt p03 má rozpočet a délku trvání 102 a mohl by taky odpovídat naším potřebám. Další rozšiřování nemá smysl – jak budeme vědět kde zastavit. Musíme to zkusit jinak
12
Výsledek s Fuzzy SQL Definujme fuzzy množinu “vysoký” pro sloupec Budget Definujme fuzzy množinu “krátký” pro sloupec Duration
13
Výsledek s Fuzzy SQL - 2 V každém grafu je zřejmě kolik která hodnota náleží do fuzzy množiny Zkusíme vytvořit obrazec který nám výpočte kolik náleží dvojice (Budget, Duration) do požadavku Uděláme to tak, že vypočítáme aritmetický průměr
14
Výsledek s Fuzzy SQL - 3 S použitím avg : Project Budget(1000$)
Duration CIX p08 90 88 0,964 p10 93 0,755 p04 81 87 0,606 p07 91 125 0,486 p06 57 0,439 p05 48 115 0,073 p01 55 108 0,000 p02 p09 65 117 p03 73 102
15
Běžné problémy Zadání 1: Zákazník si vybírá barvu obkladového materiálu. Chce barvu “podobnou” jiné barvě, kterou zná. Řešení: “Podobná” barva je taková barva, jejíž složky RGB se liší maximálně o 10 od složek RGB barvy definované zákazníkem. Problém: Pokud se barva liší od barvy zadané uživatelem pouze v 1 složce o 11, zákazník ji neuvidí
16
Běžné problémy - 2 Zadání2: Realitní kancelář páruje nabídku s “odpovídající” poptávkou. Nabídka i poptávka jsou charakterizované lokalitou, cenou a dalšími atributy. Řešení: Pro každý atribut zvolit jistou toleranci. Problém: Které dvojice nabídka/poptávka si ještě odpovídají a které už ne?
17
Elektronický katalog Problém prohledávání elektronických katalogů zboží: Tradiční relační databáze podporují vyhledávání na základě přesných podmínek Jsou vráceny právě výrobky přesně odpovídající zadané podmínce Zákazník se většinou zeptá „špatně“ Příliš nepřesná podmínka vracející obrovský počet záznamů Příliš detailní specifikace, která nic nevrátí Představa zákazníka Neví, jak přesně popsat, co chce Má o tom jen nejasnou představu
18
Nedostatky SQL Jazyk SQL používá Booleovu algebru, což přináší jeden velký problém: V dotazu typu A and B and C and … and Z je nesprávnost z našeho pohledu v tom, že dotazu nevyhovují údaje, které nesplňují jednu z podmínek A až Z, stejně tak jak nevyhovují údaje, které nesplňují dvě a více podmínek Není tedy rozdílu mezi údaji, které splňují různý počet podmínek dotazu
19
Zavedení fuzzy množin Každému prvku je přiřazen stupeň příslušnosti, který vyjadřuje míru členství prvku ve fuzzy množině. Stupeň příslušnosti nabývá hodnot z intervalu <0,1>. Čím vyšší (nižší) je stupeň příslušnosti, tím více (méně) platí, že prvek náleží do fuzzy množiny. Jinými slovy vyjadřuje míru relevantnosti prvku v dané množině. Hodnota 0 vyjadřuje stav, kdy prvek do množiny vůbec nepatří a hodnota 1 stav, kdy prvek do množiny zcela patří
20
Fuzzy množiny Př. (Plat): Pokud považujeme příjem zhruba nad Kč za vysoký, potom z tohoto pohledu je méně důležitý rozdíl mezi příjmem Kč a Kč než mezi platem Kč a Kč. Samozřejmě, s rostoucím platem roste i stupeň příslušnosti do fuzzy množiny vysoký příjem. Příjem (Kč) Hodnota 24 000 0,000 35 000 0,500 26 000 0,021 36 000 0,519 29 000 0,122 37 000 0,572 32 000 0,352 38 000 0,648 33000 0,428 40 000 0,812 34 000 0,481 46 000 1,000
21
Fuzzy množiny - 2 Př (věk): Podívejme se na vágní pojem střední věk. Můžeme si jej představit jakožto člověka s věkem okolo 35 let. Věk Hodnota 24 0,000 35 1,000 26 0,024 36 0,955 29 0,191 37 0,832 32 0,661 38 33 0,835 40 0,316 34 46
22
Principy Fuzzy relace Rf je podmnožina kartézského součinu domén D1,…,Dn, kde jedno Di je DU — interval <0,1> Hodnota libovolné n-tice říká, jak hodně tato n-tice náleží do fuzzy relace Rf Obvyklou relaci je možné považovat za fuzzy relaci, kde ve sloupci DU je stupeň roven vždy jedné pro každou n-tici.
23
Fuzzy modelování Fuzzy relace se získá pomocí fuzzy podmínky aplikované na obvyklou relaci. Fuzzy podmínka se reprezentuje čtyřmi typy termů: Logické (Booleans) Transformace (Transformations) Přesívání, změny (Alterations) Interakce (Interactions)
24
Transformace Transformace definuje fuzzy množinu, jejíž interpretace si můžeme představit jako převod z kartézského součinu množin E1, …, En do intervalu <0,1>. Příklad transformace: vysoký: VÝŠKA → <0,1>, h → µvysoký(h) štíhlý: VÝŠKA x VÁHA → <0,1>, (h, w) → µštíhlý (h, w) Porovnání může být i přímo mezi objekty: větší než: VÝŠKA x VÝŠKA → <0,1>, (h1, h2) → µvětší_než (h1, h2)
25
Transformace - 2 Je navrženo několik základních funkci na vyjádření hodnoty transformace. Trapezoid : α, β, γ, δ = pevné; α< β < γ < δ ; S (x, α, β, γ, δ) = , x ≤ α nebo x ≥ δ S (x, α, β, γ, δ) = (x-α)/(β-α) , α ≤ x ≤ β S (x, α, β, γ, δ) = , β ≤ x ≤ γ S (x, α, β, γ, δ) = (x-δ)/(γ-δ) , γ ≤ x ≤ δ
26
Transformace - 3 Pravděpodobnostní rozdělení
f(x) = 1 – prvek určitě patří do množiny f(x) = 0 – prvek určitě nepatří do množiny f(x) Î (0, 1) – prvek patří do množiny s pravděpodobností f(x)
27
Přesívání, změny Přesívání, změny má za úkol nějakým způsobem zpracovat slova typu mnoho, okolo, velmi mnoho, málo, víceméně a negace. Často se slovo velmi representuje následujícím způsobem: velmi fuzzycon (x) = (µfuzzycon(x)) 2 A negace: negace fuzzycon (x) = 1-µfuzzycon(x)
28
Interakce Interakce má za úkol spolupráci mezi fuzzy množinami.
Konjunkce Minimum z obou ohodnocení μA۸B(x)=min(μA(x), μB(x)) Disjunkce Maximum z obou ohodnocení μA٧B(x)=max(μA(x), μB(x))
29
Fuzzy modelování - závěr
Př.: Vyberme si člověka velmi vysokého a současně s věkem kolem 40 let. select JMENO from LIDI where (VEK=okolo-40) and (VYSKA=velmi vysoký) Fuzzy podmínka bude vypadat následovně: min ((µvysoký(výška))2, µokolo-40(věk))
30
příkaz SELECT Obvykle příkaz SQL zapisujeme:
select <attributes> from <relations> where <condition> S fuzzy, SELECT příkaz zůstává v podstatě stejný, kromě: složený fuzzy podmínky se můžu objevit na místo Boolean musíme specifikovat regulacioni parametr nová formulace: select n|t <attributes> from <relations> where <fuzzy_condition>
31
příkaz SELECT - 2 Př: Vyber zaměstnance ve středním věku mající vysoký příjem. Klasické SQL: select NAME, AGE, INCOME from EMPLOYEE where (AGE >= 25 and AGE <= 45) and (INCOME >= 35, 000) Fuzzy SQL: select NAME, AGE, INCOME from EMPLOYEE where (AGE = middle) and (INCOME >= high)
32
Míra splnění Pro každou podmínku je možné určit hodnotu při které
požadujeme podmínku za splněnou. <podmínka> THOLD g Př: Vrat mi všechny osoby s čistými vlasy (in minimum degree 0.5) které jsou možná vyšší než proměnna $Tall (in minimum degree 0.8): select * from Person where Hair FEQ $Fair thold 0.5 and Height FGT $Tall thold 0.8
33
Fuzzy komparátory Kromě typických komparátory (=, >...), FSQL zahrnuje fuzzy komparátory v následující tabulce: Komparátor pro Možnost Komparátor pro Nutnost Význam FEQ nebo F = NFEQ nebo NF = Fuzzy Rovnaky FDIF, F! nebo F = <> NFDIF, NF! NF = nebo <> Fuzzy Různé FGT nebo F> NFGT NF> Fuzzy Větší než FGEQ nebo F> = NFGEQ nebo NF> = Fuzzy Větší nebo se rovná FLT nebo F < NFLT nebo NF < Fuzzy Menší než FLEQ nebo F <= NFLEQ nebo NF <= Fuzzy Menší nebo roven MGT nebo F>> NMGT nebo NF>> Mnohem větší než MLT nebo F << NMLT nebo NF << Mnohem menší než
34
Lingvistické proměnné
Jestli je možno provést fuzzy úpravy na atributu, potom mu můžeme přiradit lingvistickou proměnu Existují dvě možnosti: Proměnné pro atributy na uspořadatelných množin: každém atributu je přirazeni pravděpodobnostní trapezoidní rozdělení - $Short, $Tall, $Very_Tall, $Very_Intelligent Proměnné pro atributy na neuspořadatelných množin: pro každou dvojici atributů je definovaná relace podobnosti, která náleži do intervalu <0,1>
35
Množinové operace Interpretace základních množinových operaci nad fuzzy množinami: Sjednocení: µAuB (x) = max (µA (x), µB (x)) Průnik: µA∩B (x) = min (µA (x), µB (x)) Rozdíl: µA-B (x) = µA∩B‘ (x) = min (µA (x),(1-µB(x)))
36
Základní Fuzzy Konstanty
FSQL definuje syntaxi pro některé fuzzy konstanty. Nekteré jsou podrobně uvedeny v následující tabulce: Fuzzy Konstanty Význam UNKNOWN Neznámá hodnota atributu, ale je použitelný UNDEFINED Atribut není použitelný ani nemá smysl NULL Naprostá neznalost: Nevíme nic o tom $ [a, b, c, d] Fuzzy lichoběžník (<= b <= c <= d) $ label Jazyková Nálepka [n, m] Interval "Mezi n a m" (= b = n a c = d = m) # n Fuzzy hodnota: "Přibližně n"
37
Podmínka IS <Fuzzy_Atribut> IS [NOT] (UNKNOWN | UNDEFINED | NULL ) Tahle podmínka (bez NOT) bude splněná, jestli se hodnota levého fuzzy atributu (Fuzzy_Atribut) rovná fuzzy konstanty která je na pravé straně. Jestli atribut není fuzzy a konstanta je rovná NULL, podmínka bude pochopena dle definice v DBMS. Jestli je použito FEQ namísto IS, stupeň kompatibility mezi atributem a konstantou je porovnaný i když se atribut nerovná konstanty.
38
Funkce CDEG() Zobrazuje sloupec s plněním stupeň stavu dotazu na konkrétní atribut, který je vyjádřen v závorkách jako argument Pr: Ukázka použití CDEG() funkce: používá trapezoidní konstantu a vyhýba se UNKNOWN hodnotami select City, CDEG(Inhabitants) from Population where Country=‘Czech Republic’ and Inhabitants FGEQ $[200,350,650,800] .75 and Inhabitants is not unknown
39
Having group by podmínka na štěpení relace do podmnožin.
Uvažujme následující relaci: employee(epnum, name, age, depnum, job, salary, commission) group by podmínka na štěpení relace do podmnožin. having podmínka se používá na výběr některých z předchozích podmnožin . Mějme dotaz:“ Oddělení u kterých součet platů zaměstnanců nadvyšuje $.“ select depnum from employee group by depnum having sum (salary) > 10000$
40
Having - 2 Tyhle možnosti jsou rozšířený tak, že supen náležení je přiděleny každé podmnožiny z daného rozdělení. select n|t <atributes 1’> from <relations> where <bool-cond> group by <atributes 1> having <fuzzy-cond-aggreg> Nový dotaz: Dej mi 10 nejlepších oddělení s ohledem na podmínku: průměrná hodnota platů úředníku je kolem 1000$. select 10 depnum from employee where job = ‘clerk’ group by depnum having around(avg(salary+comission), 1000)
41
Implementace FSQL databáze
42
Architektura a implementace
3 možnosti přístupu: Klassicka data (crisp data) + fuzzy dotazy (obsahují fuzzy operátory) Fuzzy data + klassicke dotazy . Fuzzy data + Fuzzy dotazy
43
Prototyp FRBD Tady popíšeme jeden z prototypu Fuzzy Relační DB. Tento FSQL server byl implementován pomoci existující DBMS. Toto řešení má 3 důsledky : Pomalejší než nativní implementace Snadná implementace Dostáváme všechny výhody stávající DBMS(bezpečnost, a td)
44
Prototyp FRBD Jako DBMS byla vybrána ORACLE, Kvůli flexibilitě, snadné šiřitelnosti. Procedurální jazyk PL/SQL umožňuje vytvoření , programových balíčku s funkce a procedury. Jistě může být vybrána jiná DBMS. Existuje implementace i na PostgreSQL.
45
Architektura FRBD V základě obsahuje 3 části.
Datová model: Tradiční data (standartni databáze) a FMB (Fuzzy meta-knowledge base) FSQL server. FSQL client.
46
Data Může být rozdělena do dvou kategorie.
Tradiční databáze - informace o relaci + speciální formát Pro uložení fuzzy atributy. Fuzzy atributy mají 3 různé typy. TYP 1 Normální hodnoty (crisp values) , ale mají ještě definované lingvistické lichoběžné proměně nad nimi, které umožňuji dělat dotazy víc flexibilní. Při vytvoření dotazů můžeme použít fuzzy konstanty(viz tabulka.)
47
Tabulka konstant při dotazech
48
Fuzzy atributy typ 2 TYP 2 obecně hodnoty , plus moznostni rozdělení (posibility distribution), nad setříděnou doménu (ordered underlying domain). Při dotazovaní můžeme ukládat a použít kterékoli fuzzy konstantu(viz tabulka)
49
Fuzzy atributy typ 3 TYP 3 Lingvisticke promene.
Nad nimi mužeme definovat podobnost ( pomoci FEQ), ale samozřejme nemužeme použit žadnou konstantu s tabulky. Priklad: Vaha . Marek ma vetsi vahu než Karel o koeficient 0.9=> Muzeme pouzit operator FEQ.
50
FMB Fuzzy meta-knowledge base. Obsahuje data o FRDB v relačním formátu, A meta-data o jednotlyvych fuzzy atributech( typy 1,2,3).
51
Typy funkce Oracle verze FSQL Server obsahuje 3 typy funkce
Překladové funkce (FSQL2SQL), po analýze dotazů, převádí ho do SQL dotazů nebo vypíše chybu Zobrazovací funkce - převádí fuzzy atributy s interního formátu do přehledně formy. Fuzzy poravnovaci funkce -poravnava fuzzy hodnoty, a počítá stupeň kompatibility (CDEG())
52
FSQL client Slouží jako interface mezi uživatelem a FSQL serverem. Uživatel žádá dotaz, pak program postará o tom aby uživatel dostal výsledek.
53
Architektura, Schéma
54
Architektura, Schéma 1) FSQL client posílá FSQL dotaz do serverů.
2) FSQL server provede analýzu dotazů, a pokud on je korektní, vytvoří příslušný SQL dotaz, pomoci Fuzzy Meta-knowledge base. 3) Klient přečte převedeny SQL dotaz. 4) Klient posílá dotaz do příslušné databáze. Při vykonání dotazů se používají funkce FSQL serverů (comparatory a td.) 5) Klient dostává výsledek a zobrazí ho.
55
Důsledky Tato model není ideální pro konečný produkt Krok 3 a 4 je možné pro zvýšení efektivity vynechat . Ale je dobře že tady je oddělena funkce FSQL serverů (překládací funkce a td) a Database. Hlavní výhodou ale je to že můžeme použít velkou sadu fuzzy data.
56
Jiné SQL-based fuzzy languages
SQlf Format : SELECT [N|T|N,T] <select list> FROM <table list> WHERE <fuzzy condition> Tato konstrukce vrátí jenom N řádku které splňuje podmínku víc než stupeň T.
57
Rozdíl FSQL a SQLf Jaké je vidět SQLf je mnohem víc omezena než FSQL. 1) FSQL dovoluje použití thresholds(T hodnota) v libovolně jednoduché podmínce. 2) SQLf dovoluje porovnání jenom tradičných hodnot(crisp values) spolu s Lingustickymi proměny , nebo ”přibližně ekvivalence” mezi tradiční hodnoty. (Příklad: Jestli “well-paid”; je definovány fuzzy predikáte pak můžeme napsat “WHERE saláry = well-paid”).
58
dmFSQL DmFSQL je rozšíření FSQL, zaměřena na dobývání znalosti (data mining). 1) Clustering. 2) Klasifikace. 3) hledání Globální fuzzy závislosti (Fuzzy Globál Dependencies FGD).
59
Byznys aplikace fuzzy database
Jednou z výhod Fuzzy Database je to že zachováme všechny výhody Relační Database, ale rozšiřujeme ji na novou funkcionalitu, jako možnost hledat nepřesná data pomoci lingustickych promenych, fuzzy poravnani a td.
60
Jiné příklady Možnost použití FSQL není omezena jenom na nějaké rozšíření byznes aplikace. Existuji oblasti kde Fuzzy database jsou taky velmi užitečné. Například jak jsme viděli Data Mining (Dobývání znalosti). Obecně při dobývání znalosti používáme hodně různých metod (uměla intelligence, statistika a td). Tak že přidáním FSQL přidáme další metodu klassifikace a klasterizace dát.
61
Clusterizace Dotaz: SELECT table.*, CDEG(*)
FROM table WHERE A1 FEQ #C1 THOLD τ AND A2 FEQ #C2 THOLD τ AND … AND An FEQ #Cn THOLD τ; V tomto dotazů začínáme centrem (C1..i) pro každý atribut(A1..i) Pro specifický cluster C. (centry - jsou atributy které popisujou cluster) Pak dostaneme objekty patřící C s minimálním stupněm prinadleznosti t.
62
Konkrétní příklad s převodem do SQL
Internet Obchod Počítačů : POCITAC(model_pocitacu, jmeno_vyrobce, model_processoru, model_videokarty, model_monitoru, operacni_pamet, hard_disk, nazev_OS, cena ) VYROBCE(jmeno_vyrobce,zeme) OS(nazev_os,licence) PROCESSOR (model_processoru,vyrobce,frekvence) VIDEOKARTA (model_videokarty,vyrobce,pamet,chip) MONITOR (model_monitoru,vyrobce, diagonala)
63
Pokračování, Cizí klíče
pocitac: foreign key (jmeno_vyrobce) references VYROBCE(jmeno_vyrobce) pocitac: foreign key (model_processoru) references PROCESSOR(model_processoru) pocitac: foreign key (model_videokarty) references VIDEOKARTA(model_videokarty) pocitac: foreign key (model_monitoru) references MONITOR(model_monitoru) pocitac: foreign key (nazev_os) references OS(nazev_os) processor: foreign key (vyrobce) references VYROBCE(jmeno_vyrobce) videokrata: foreign key (vyrobce) references VYROBCE(jmeno_vyrobce) monitor: foreign key (vyrobce) references VYROBCE(jmeno_vyrobce)
64
Definice Definice: 1) definujeme operátor podobnosti nad Výrobce.jméno_výrobce a Počítač.model_počítačů který reprezentují to že některé počítače jsou podobný jako počítače od jiného výrobce. 2) taky potřebujeme definovat pár fuzzy predikátu Položka tabulky, Fuzzy hodnota Výrobce.jméno_výrobce : norm_důležitý,vysoké_důležitý Monitor.diagonála: malá,střední, velká počítač.cena : levný, střední, dráhy Processor.frekvence : pomalý,střední,rychlý
65
Pokračování, Vytvoření pohledu
CREATE VIEW MODEL(model_pocitacu, jmeno_vyrobce, model_processoru, frekvence, model_monitoru, diagonala,cena) AS SELECT P.model_pocitacu, P.model_vyrobce, Pr.model_processoru, Pr.frekvence, M.model_monitoru, M.diagonala, P.cena FROM pocitac P, monitor M, Processor Pr WHERE M.model_monitoru = P.model_monitoru AND P.model_processoru = Pr.model_processoru
66
Dotaz uživatele dotaz : chci počítač od známého výrobce za střední cenu, s rychlým procesorem Intel,velkým monitorem, s charakteristiky podobnými jako u počítačů Apple. Pomoci formulářů , nastaví hodnotu delta na 0.8 .
67
Fuzzy SQL dotaz Fuzzy sql dotaz: SELECT (0.8) * FROM MODEL, VYROBCE
WHERE (MODEL.jmeno_vyrobce=VYROBCE.jmeno_vyrobce) AND (MODEL.jmeno_vyrobce |sim| `Apple`) AND (MODEL.cena=[stredni]) AND (MODEL.frekvence=[rychly]) AND (MODEL.model_processoru=`Intel`) AND (MODEL.diagonala=[velka])
68
Po převodu do SQL SELECT * FROM MODEL,VYROBCE WHERE
(MODEL.jmeno_vyrobce=VYROBCE.jmeno_vyrobce) AND (MODEL.jmeno_vyrobce IN(`Apple`,`Sony`,`Dell`)) AND (MODEL.cena BETWEEN AND ) AND (MODEL.model_processoru = `INTEL`) AND (MODEL.diagonala > 22) Pozn:(Apple, Sony, Dell, jsou vyrobci jejichz podoba Apple je vetsi nez 0.8)
69
Užitečné funkce pro fuzzy atributy
FTYPE(fuzzy_atribute) – vrátí typ hodnoty fuzzy atributů, například můžeme dozvědět kolik je hodnot je v fuzzy atributů Typu 2 (Galindo,1999) HEIGHT : SELECT COUNT(*) FROM PLAYERS WHERE FTYPE(HEIGHT)=6; TO_CHAR(fuzzy_atribute) – funkce vrátí text který reprezentují kazdu hodnotu ve fuzzy atributů. FDEGREE (atribute_list)- funkce vrátí fuzzy stupeň (fuzzy degree) příslušného atributů(z argumentů) SELECT * FROM PLAYERS WHERE QUALITY FEQ $Good AND FDEGREE(QUALITY) > .5
70
Pokračování FDEGROW (table)– tato funkce vrátí fuzzy stupeň pro celý řádek tabulky. Argument je jméno tabulky. MARGIN(fuzzy_atribute) -vrátí hraniční(margin) hodnotu pro fuzzy atribute. Tato funkce může být používaná v výrazech s dot notace: Fuzzy_atribute.MARGIN a td.
71
Užitečné funkce pro fuzzy hodnoty
Card(fuzzy_value) - funkce vrátí “mohutnost” fuzzy hodnoty. Například , jestli potřebujeme vědět řádky s menší nepřesnosti v atributů než fuzzy konstanta, můžeme do SELECTu dodat takovou podmínku: CARD(QUALITY) < CARD(3+-2) , CARD(3+-2)=2 v tomto pripade. NORM(fuzzy-value) – normalizuje fuzzy hodnotu. CONC_DILAT(fuzzy_value,p) – tato funkce vrátí “koncentrovanou verze “ fuzzy hodnoty
72
Pokračování MORE_CONTRAST(fuzzy_value,p) – zesiluje kontrast fuzzy hodnoty. Definice: FUZZIFICATION(fuzzy_value,p) – doplňková funkce k MORE_CONTRAST. Definice:
73
Pokračování UNION(fuzzy_values,s_norm) – funkce vrátí sjednocení fuzzy hodnot, spolu s s-normou definovanou ve druhém argumentů. INTERSECTION(fuzzy_values,s_norm) – funkce vrátí průnik fuzzy hodnot s t-normou definovanou ve druhém argumentů. Poznamky: Funkce CONC_DILAT,MORE_CONTRAST a FUZZIFICATION jsou užitečné při implementace linqustickych pojmu Specially, Věry, Slightly, Moře ,Less.
74
Reference Galindo, J.; Urrutia, A.; Piattini, M. - ”Fuzzy Databases: Modeling, Design and Implementation” , Idea Group Publishing Hershey, USA, 2006. Angelica Urrutia and Leopoldo Pavesi -“Extending the capabilities of database queries using fuzzy logic”, Catholic University of Maule (CHILE) Galindo, J., Medina, J. M., Pons, O., and Cubero, J. C “A Server for Fuzzy SQL Queries ”. Jay Nathan - “Fuzzy Lookups and Groupings Provide Powerful Data Cleansing Capabilities”
Podobné prezentace
© 2024 SlidePlayer.cz Inc.
All rights reserved.