Radomir Tarabič, Egor Ivkin

Slides:



Advertisements
Podobné prezentace
MS ACCESS - DOTAZY DATABÁZOVÉ SYSTÉMY.
Advertisements

Zpracování informací a znalostí Booleovský model vyhledávání dokumentů a jeho rozšiřování Doc. RNDr. Jan Rauch, CSc. Katedra informačního a znalostního.
FUZZY LOGIKA ČÍM LÉPE MATEMATICKÉ ZÁKONY POPISUJÍ REALITU, TÍM JSOU MÉNĚ PŘESNÉ A ČÍM JSOU PŘESNĚJŠÍ, TÍM HŮŘE POPISUJÍ REALITU A. EINSTEIN (c) Tralvex.
VŠB – Technická univerzita Ostrava
Zpracování SQL Lubomír Andrle 5. přednáška
 Informací se data a vztahy mezi nimi stávají vhodnou interpretací pro uživatele, která odhaluje uspořádání, vztahy, tendence a trendy  Existuje celá.
Fakulta elektrotechniky a informatiky
Architektury a techniky DS Tvorba efektivních příkazů I Přednáška č. 3 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
Databázové systémy I Přednáška č. 5 RNDr. David Žák, Ph.D. Fakulta elektrotechniky a informatiky
C) Fuzzy logika Mlhavý úvod do Fuzzy logiky Fuzzy [fazi] = mlhavý, nejasný, neostrý, rozplizlý… 1965 – Lofti Asker Zadeh Iránský elektrotechnik, působící.
Temporální databáze a TSQL
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
SQL Lukáš Masopust Historie  Předchůdcem databází byly papírové kartotéky  děrný štítek  1959 konference  1960 – vytvořen jazyk COBOL.
Algebraické výrazy: lomené výrazy
MS EXCEL - filtry. Úvodní informace  Představte si, že máte dlouhý seznam v Excelu s údaji například o lidech, kde si píšete plat, zda kouří, chovají.
Mlhavý úvod do FUZZY logiky Motivace pro použití fuzzy logiky: člověk je schopen rozhodovat a řídit systémy i na základě nepřesných informací - stroj tak.
Databáze Jiří Kalousek.
Střední průmyslová škola strojnická Olomouc, tř.17. listopadu 49 Výukový materiál zpracovaný v rámci projektu „Učíme moderně“ Registrační číslo projektu:
VÍCEHODNOTOVÁ LOGIKA Petr Jelínek, Osnova (Dávejte pozor, budu se ptát !) co je to vícehodnotová logika? počátky Fuzzy logika obecné využití použití.
Teorie ICT.
D ATOVÉ MODELY Ing. Jiří Šilhán. D ATABÁZOVÉ SYSTÉMY Patří vedle textových editorů a tabulkových kalkulátorů k nejrozšířenějším představitelům programového.
DalšíPředchozíTÉMA: M. K a d l e c o v á M. K a d l e c o v á.
Fakulta životního prostředí Katedra informatiky a geoinformatiky
Číslo šablony: III/2 VY_32_INOVACE_P4_3.5 Tematická oblast: Aplikační software pro práci s informacemi II. Databáze - dotazy Typ: DUM - kombinovaný Předmět:
Externí hodnocení kvality Kontrolní materiály
Architektura databází Ing. Dagmar Vítková. Centrální architektura V této architektuře jsou data i SŘBD v centrálním počítači. Tato architektura je typická.
Databázové systémy I Cvičení č. 9 Fakulta elektrotechniky a informatiky Univerzita Pardubice 2013.
Úvod do algoritmizace Obsah: Algoritmus, algoritmizace
Fuzzy logika.
Systémy pro podporu managementu 2
Relační databáze.
Databázové systémy Architektury DBS.
KIV/ZIS cvičení 6 Tomáš Potužák. Pokračování SQL Klauzule GROUP BY a dotazy nad více tabulkami Stáhnout soubor studenti_dotazy_sql.mdb.
Informatika pro ekonomy II přednáška 10
SQL – základní pojmy Ing. Roman Danel, Ph.D.
Databázové systémy II Přednáška č. X Ing. Tomáš Váňa, Ing. Jiří Zechmeister Fakulta elektrotechniky a informatiky
VY_32_INOVACE_PSYPS10560ZAP Výukový materiál v rámci projektu OPVK 1.5 Peníze středním školám Číslo projektu:CZ.1.07/1.5.00/ Název projektu:Rozvoj.
Tomáš Moravec Seminární práce z předmětu ZTVH
Fuzzy logika, fuzzy množiny
Systémy pro podporu managementu 2 Inteligentní systémy pro podporu rozhodování 1 (DSS a znalostní systémy)
Fuzzy SQL Jaroslav Tykal, Jiří Dokulil. Proč Fuzzy Přesné vs. „nepřesné“ hodnoty Kdo má nejvyšší plat Kdo má vysoký plat Výhody přesnosti Jednoznačná.
Výukový materiál zpracován v rámci projektu EU peníze školám Registrační číslo projektu: CZ.1.07/1.5.00/ Šablona:III/2č. materiálu:VY_32_INOVACE_81.
Zpracování neurčitosti Fuzzy přístupy RNDr. Jiří Dvořák, CSc.
Dostupné z Metodického portálu ISSN: , financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.
Dynamic SQL P. Částek. Dynamic SQL Embedded SQL je překládaný preprocesorem => za běhu nelze nechat uživatele rozhodovat o vzhledu samotných SQL příkazů.
Databázové systémy Informatika pro ekonomy, př. 18.
Dostupné z Metodického portálu ISSN: , financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.
Databázové systémy SQL Výběr dat.
Mlhavost Fuzzy logika, fuzzy množiny, fuzzy čísla
Limita a spojitost v učivu na střední škole Vedoucí práce: RNDr. Jitka Laitochová, CSc.
Škola:Chomutovské soukromé gymnázium Číslo projektu:CZ.1.07/1.5.00/ Název projektu:Moderní škola Název materiálu:VY_32_INOVACE_MATEMATIKA1_ 19 Tematická.
Kvantitativní metody výzkumu v praxi
Dostupné z Metodického portálu ISSN: , financovaného z ESF a státního rozpočtu ČR. Provozováno Výzkumným ústavem pedagogickým v Praze.
Mlhavost Fuzzy logika, fuzzy množiny, fuzzy čísla
Podstata přebytku spotřebitele
Fuzzy SQL Emanuel Buzek,
1 Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Mgr. Vladimír Mikulík. Slezské gymnázium, Opava, příspěvková organizace. Vzdělávací materiál.
Informatika. Cíle výuky informatiky Studenti se mají seznámit se základními pojmy, problémy, postupy, výsledky a aplikacemi informatiky tak, aby je dokázali.
Fibonacciho posloupnost Fibonacciho posloupnost je nekonečná řada čísel, ve které je prvním číslem 0, druhým 1 a každé následující číslo je definováno.
● Databaze je soubor dat,slouží pro popis reálného světa(např.evidence čkolní knihovny..) ● Relační databaze je databáze založená na relačním modelu.
SQL – příkaz SELECT Ing. Roman Danel, Ph.D.
Fuzzy-množinová QCA Karel Kouba.
KOMPLEXNÍ ČÍSLA Autorem materiálu a všech jeho částí, není-li uvedeno jinak, je Ing. Kamila Kočová. Dostupné z Metodického portálu ISSN: 1802–4785,
Číslicová technika.
Induktivní statistika
Databázové systémy a SQL
Informatika pro ekonomy přednáška 8
Induktivní statistika
Definiční obory. Množiny řešení. Intervaly.
Algebraické výrazy: lomené výrazy
Transkript prezentace:

Radomir Tarabič, Egor Ivkin FUZZY SQL Radomir Tarabič, Egor Ivkin

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

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)

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

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.

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

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”

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

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

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

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 73 000 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

Výsledek s Fuzzy SQL Definujme fuzzy množinu “vysoký” pro sloupec Budget Definujme fuzzy množinu “krátký” pro sloupec Duration

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

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

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í

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?

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

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

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ří

Fuzzy množiny Př. (Plat): Pokud považujeme příjem zhruba nad 35 000 Kč za vysoký, potom z tohoto pohledu je méně důležitý rozdíl mezi příjmem 34 000 Kč a 35 000 Kč než mezi platem 32 000 Kč a 33 000 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

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

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.

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)

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)

Transformace - 2 Je navrženo několik základních funkci na vyjádření hodnoty transformace. Trapezoid : α, β, γ, δ = pevné; α< β < γ < δ ; S (x, α, β, γ, δ) = 0 , x ≤ α nebo x ≥ δ S (x, α, β, γ, δ) = (x-α)/(β-α) , α ≤ x ≤ β S (x, α, β, γ, δ) = 1 , β ≤ x ≤ γ S (x, α, β, γ, δ) = (x-δ)/(γ-δ) , γ ≤ x ≤ δ

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)

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)

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

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

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>

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 0.75 NAME, AGE, INCOME from EMPLOYEE where (AGE = middle)    and (INCOME >= high)

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

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ž

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>

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

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"

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.

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

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 10000$.“ select depnum from employee group by depnum having sum (salary) > 10000$

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)

Implementace FSQL databáze

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

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)

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.

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.

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

Tabulka konstant při dotazech

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)

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.

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

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

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.

Architektura, Schéma

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.

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.

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.

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”).

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

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.

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.

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.

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)

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)

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ý

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

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 .

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

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 25300 AND 32000 ) AND (MODEL.model_processoru = `INTEL`) AND (MODEL.diagonala > 22) Pozn:(Apple, Sony, Dell, jsou vyrobci jejichz podoba Apple je vetsi nez 0.8)

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

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.

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

Pokračování MORE_CONTRAST(fuzzy_value,p) – zesiluje kontrast fuzzy hodnoty. Definice: FUZZIFICATION(fuzzy_value,p) – doplňková funkce k MORE_CONTRAST. Definice:

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.

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. 1998. -“A Server for Fuzzy SQL Queries ”. Jay Nathan - “Fuzzy Lookups and Groupings Provide Powerful Data Cleansing Capabilities”