seminar fuzzy sql trstenjak finish

Upload: cakovec

Post on 08-Apr-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    1/32

    SEMI NARSKI RADPredmet: Metode i primjene vjetake inteligencije

    NAZIV RADA

    Fuzzy SQL i inteligentni upiti(Fuzzy SQL and Intelligent Queries)

    UNIVERZITET U SARAJEVUELEKTROTEHNIKI FAKULTET SARAJEVO

    Ime i prezime:Mentor:

    Bruno Trstenjak Prof. dr Zikrija Avdagi ,dipl.ing.el.

    Br. Indexa: 538/09-RI

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    2/32

    Metode i primjene vjetake inteligencije

    2

    Fuzzy SQL i inteligentni upiti

    Fuzzy SQL and Intelligent Queries

    Bruno Trstenjak

    Meimursko veleuiliteu akovec Bana Josipa J elaia22a , 40000 akovec

    Saetak: Ovaj seminar dat e pregled o osnovnim pojmovima vezanih uz fuzzy logiku, pretraivanje podataka i ostvarivanja fuzzy SQL upita. Na poetku , seminaru je objanjena dananja potreba za prikupljanjem podataka i stvaranjem novog znanja. Osnova dananjih podataka ine baze podataka iskladita podataka. Pojam rudarenje vezan je uz pronalaenje podataka u velikim spremitima. Fuzzy SQLupiti omogu uju pretraivanje podataka kada uvjeti nisu vrsto odreeni i kada elimo dobiti nove spoznajeo povezanosti podataka, te predvidjeti mogua dogaanja na dananjem tritu kapitala. Za te potrebe

    postoji niz naprednih alata koji imaju u sebi ugraenu teor iju fuzzy logike. Naini donoenja pravilnihodluka temelji se na upotrebi fuzzy baze znanja i fuzzy funkcija pripadnosti. Upotrebom fuzzy SQL upitaodreuje se pripadnost odreenog podatka postavljenom uvjetu. Stupanj pripadanja i tonost dobivenog rezult ata izraava se indeksom kompatibilnosti QCIX. U dananje vrijeme izraeni su i koriste se razni fuzzyalati koji omoguuju pretraivanje i analizu dobivenih podataka. Jedan od takvih alata opisan je u ovomseminaru.

    Kljune rijei : fuzzy logika, data mining, SQL upit, indeks kompatibilnosti, fQCL.

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    3/32

    Metode i primjene vjetake inteligencije

    3

    1. Uvod

    Dananje informatiko doba stavilo je u prvi plan potrebu za suradnjom izmeusuvremenog menadmenta i informatikog znanja. Svjedoci smo dinaminosti svjetskeekonomije, tisue poduzea ele usp jeno poslovati, biti konkurentne na tritu, fleksibilne na

    uestale promjene, osigurati dinamiku u ponudi i potranji. Pojavom interneta, razvojemraunala, dogodilo se to da danas imamo velike koliine podataka, velik broj informacija kojetreba obraditi, potrebu za ekspertima koji e razumjeti i povezati dobivene informacije, testvoriti nova znanja. Javila se potreba za inteligentnim sustavima koji e omoguiti planiranjenadolazeih trendova na tritu. Ve due vrijeme uvode se ekspertni susta vi, sustavi kojiimaju ugraene inteligentne mehanizme za donoenje procjena i odluka za potrebeupravljanja. elja nam je da ti sustavi budu to blii naem nainu razmiljanja. Zbog toga seu sustave ugrauju elementi koji simuliraju neuronske mree, te elementi koji odgovaraju na

    pitanja koja ne daju jasne odgovore. Danas se javila potreba za izgradnjom adaptivnog modelasustava koji se prilagoava brzim promjenama i zna upravljati s ogromnom koliinompodataka. U izgradnji takvih sustava danas esto susreemo u upotrebi tri tehnologije: fuzzylogika (engl. Fuzzy logic) , metoda rudarenja znanja (engl. Data Mining) i genetski algoritmi.

    2. Rudarenje i spremita podataka (engl. Data Mining and Warehouse )

    Rudarenje podacima (engl. Data mining) nastao je kao rezultat razvoja baza podataka itehnologije koja ih okruuje. Sustavi baza podataka osim kolekcije podataka, posjeduju i

    sustave za upravljanje podacima (engl. Data managment) koji podrazumijevaju smjetajpodataka, preuzimanje podataka, ala te za analiziranje podataka. Poveanjem koliinepodataka, te velikog broja baza podataka dovelo je do toga da su ljudske sposobnostinadmaene. Javila se potreba za obradom podataka, nastala je situacija da "uz bogate podatkeimamo siromane informacije". Postalo je jasno da moramo razviti alate i metode koji e"iskopati" znaajne informacije u velikim koliinama podataka. irenjem provalije izmeupodataka i informacija sustavno se poe lo razvijati rudarenje podataka ili data mining.Rudarenje je vaenj e (engl. Extracting) ili rudarenje (engl. Mining) znanja (engl. Knowledge) iz

    ogromne koliine podataka. Moemo taj pojam nazvati i "knowledge discovery" , jer kaorezultat dobivamo informacije koje moemo pretvoriti u znanje koje omoguuje , na primjer,poduzeima da se na pravilan nain prilagode zahtjevima trita. Rudarenje predstavlja koraku procesu otkrivanja znanja. U tom procesu koristei inteligentne metode izvlai se uzorakpodataka (engl. Data pattern) , koji kasnije koristimo za donoenje zakljua ka. Slika 1.prikazuje postupak rudarenja i dobivanje znanja koja pokreu odreene aktivnosti.

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    4/32

    Metode i primjene vjetake inteligencije

    4

    Slika 1. Proces rudarenja i dobivanja znanja

    Proces rudarenja uvijek je u interakciji s korisnikom i bazom podataka, a uzorci podataka koji

    se u tom procesu pronau omoguuju korisniku donoenje novih zakljuaka i stvaranje novogznanja. Tipina arhitektura sustava rudarenja prikazana je na Slici 2.

    Slika 2. Arhitektura sustava rudarenja

    Na slici su prikazani osnovni elementi:

    Baza podataka, skladite podataka (engl. Data warehouse), Posluitelj (engl. Server) baze podataka ili skladita podataka koji je odgovoran za

    dobivanje podataka na osnovi poslanog zahtjeva i upita korisnika, Baze znanja (engl. Knowledge base) koriste se za upravljanje pretragama baze. Ona

    sadri pravila kojima se odluuje i selektira pod atkovni uzorak, Data mining maina (engl Data Mining Engine) koja predstavlja osnovu sustava

    rudarenja podataka, Korisniko grafiko suelje (engl. Graphics User Interface) koje omoguuje

    komunikaciju izmeu korisnika i sustava rudarenja.

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    5/32

    Metode i primjene vjetake inteligencije

    5

    U ranijem tekstu spomenuto je i skladite podataka (engl. Data Warehouse) . Taj sustav inerazliite baze podataka i alata koji omoguuju kasnije efikasno pronalaenje podataka. Uskladita podataka su arhivirani podaci iz baza za koje se smatra da su vani za kasnijuanalizu. Skladite podataka se uobiajeno modelira u viedimenzionalne podatkovne strukture

    sline kocki (engl. Data Cubes) , pri emu svaka struktura odgovara atributu ili skupini atributa.Cilj takvih skladita nije operativno poslovanje, nego stvaranje to bogatijeg izvora informacijaza razliite dugorone i kratkorone analize i predvianja. Slika 3. prikazuje takvu organizacijuskladita podataka.

    Slika 3. Podatkovna struktura (engl. Data Cubes)

    Na slici je prikazana organizacija podataka u tri dimenzije. Svaka dimenzija predstavlja jednuvarijablu kasnijeg pretraivanja. O ovom konkretnom pri mjeru strukturu ine atributi: d ani,oznake produkta i popis podruja (engl. Region). Iz slike je vidljivo da podatkovna kocka nemora biti pravilnih dimenzija, to jest da dimenzije kocke mogu biti razliite veliine. Na samomprimjeru imamo argument dani (engl. Day) veliine 4, dok je dimenzija argumenta podrujeveliine 5 elemenata. Sama skladita podataka najee su organizirana u dvije ili tri razine. Kada govorimo oskladitima podataka moramo spomenuti i njene manje cjeline koje nazivamo engl. Data

    Marts . Tim manjim cjelinama korisnici mogu pristupati odvojeno od ostalog dijela skladita. Nataj nain optereuju cijeli sustav, a nema i potrebe jer korisnika uvijek zanimaju samoodreeni podaci za potrebu analize. Slika 4. prikazuje jednu takvu troslojnu organizacijuskladita podataka.

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    6/32

    Metode i primjene vjetake inteligencije

    6

    Slika 4. Organizacija skladita podataka

    3. Osnove Fuzzy logike (engl. Fizzy logic)

    Postavit emo si pitanje to je to fuzzy logika ? Ve u antikoj Grkoj spominje sepojam logike. Pojam je predstavljao nain zakljuivanja zasnovana na jasnim i preciznoutvrenim pravilima koja su poivala na teoriji skupova. Pripada li neki element skupu ili n e, ati skupovi su imali jasno odreene granice. Takve skupove i logiku za rad s njima nazivamoengl. crisp , to oznaava jasan, bistar. Suprotno klasinoj logici, gdje je vrlo jasno da li nekielement pripada odreenom skupu, pojavljuje se situacija kad te granice nisu jasnopostavljene. Rije Fuzzy je engleska rije koja oznaava neto to nije jasno, neto mutno imaglovito.U Fuzzy logici nije precizno definirana pripadnost nekog elementa odreenom skupu, nego senjegova pripadnost izraava u postocima. Mjera pripadnosti skalirana je izmeu vrijednosti od0 do 1. Da bude jasnije uzmimo na primjer da imamo dva skupa: skup radnih i skup neradnihdana. U c r i sp logici zna se koji su radni dani u tjednu, od ponedjeljka do petka. Ostali dani utjednu pripadaju skupu neradnih dana. U toj klasinoj logici imamo logiku nulu i logiku

    jedinicu, nula oznaava da neki element ne pripada, a jedinica da pripada skupu. Na tomprincipu rade dananji digitalni sklopovi, raunala. Kod fuzzy logike ta granica nije jasna. Moe

    se postaviti pitanje, koje sve dane ljudi rade. Petak je dan koji je na granici oba skupa. Taj dan je djelomino radni, a djelomino predstavlja poetak vikenda, omjer bi bio 0.75 naspram0.25. Nekim ljudima neradni vikend zapoinje ranije, a nekim a kasnije. Slina situacija je i zanedjelju. Dakle, ovdje ne govorimo o izrazitoj pripadnosti nekog elementa odre enom skupu ,nego govorimo o odreenom stupnju pripadnosti. Stupanj pripadnosti definiran je intervalom

    [0, 1]. Na primjer, kada element ne pripada skupu vrijedi = 0, za = 0.1 moemorei da malo pripada skupu , dok za = 0.9 moemo rei da jako pripada skupu i za = 1da u potpunosti pripada skupu.

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    7/32

    Metode i primjene vjetake inteligencije

    7

    Jedna od osobina fuzzy logike je ta da je ona bazirana na prirodnom jeziku, na osnovi ljudskogsporazumijevanja, oslanja se na kvalitativni opis koji koristimo u svakodnevnici. Fuzzy logikabarata s opisnim, lingvistikim varijablama kao to su, na primjer, pojmovi: topla voda, velikazarada, srednji rast i slino. Transformacijom ovakvih lingvistikih izraza u matematiki oblik i

    vrijednost, bavi se teorija fuzzy skupova.Postavlja se pitanje, na primjer: koja je vrijednost varijable "vrua voda" . Za tu potrebumoramo definirati podruje u kom se oekuje da e temperatura varirati . to pod pojmom"vrua voda" mislimo, odnosno koliko je to stupnjeva kada je voda vrua ?

    3.1 Funkcija pripadnosti (engl. Membership function)

    Moemo postaviti pitanje: koje vrijednosti imaju lingvistike varijable ? Da bi na to mogliodgovoriti potrebno je uvesti pojam funkcije pripadnosti (engl. membership function) . Funkcija

    pripadnosti odreuje stupanj pripadnosti nekog objekta, lingvistike varijable nekom fuzzyskupu. Na primjer, ako uzmemo pojam ("tko je visok", a tko nije) . U klasinoj crisp logicipostavljena je jasna i otra granica. Slika 5 . grafiki prikazuje takvu situaciju.

    Slika 5. Funkcija pripadnosti prema crisp logici

    Ovakva situacija odreena je jednom funkcijom pripadnosti. Matematiki zapis pripadnosti :

    =

    A x0

    Ax1)( x A

    Na osnovi matematikog zapisa vidljivo je da je granica izmeu visokog i niskog ovjeka otroodreena. U drugom sluaju , kada se radi u fuzzy logici, granica nije jasno odreena temoemo odrediti samo postotak prema kojem e neka osoba pripadati skupini visokih osoba. Ufuzzy logici imamo beskonaan skup funkcija pr ipadnosti, a one se mogu mijenjati u odnosu narazne ulazne parametre. Moemo rei da je neko dijete visoko za svoj uzrast, a ono ima visinu

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    8/32

    Metode i primjene vjetake inteligencije

    8

    od svega 120 cm, dok z a odraslog ovjeka ne moemo re i da je visok ako ima istu visinu.Slika 6. prikazuje fuzzy f unkciju pripadnosti koja postotak pripadnosti odreenom skupu.

    Slika 6. Fuzzy funkcija pripadnosti

    Funkcija pripadnosti mora biti skalirana i mora zauzimati vrijednosti od 0 do 1. Funkcijepripadnosti mogu imati razliite oblike. Kakva e funkcija pripadnosti biti ovisi o sustavu ivanjskim uvjetima. Na slici 5 prikazani su neki od oblika funkcija pripadnosti. Matematikizapis pripadnosti:

    ( ) }{ U xi xi A xi A |)(,

    Funkciju pripadnosti oznaavamo s ( x), je fuzzy skup. Vrijednost funkcije pripadnosti je:

    : X [0, 1]

    Ukoliko vrijednost funkcije pripadnosti iznosi 0, tada govorimo o potpunoj nepripadnosti skupu.U sluaju da funkcija ima vrijednost 1 , kaemo da element potpuno pripada skupu. Ukoliko jex diskretan i konaan skup, fuzzy skup A se moe zapisati kao:

    =+++=Xxi xi

    (xi)x

    ...x

    x

    AA

    n

    n

    2

    2

    1

    1

    Znak sume i izrazu oznaava uniju. Sljedei primjer prikazuje funkciju pripadnosti za skup omladim osobama.

    (X) = 30)(20,

    30)(,010

    20)(1

    20)(,1

    xstarost

    xstarost

    xstarost

    xstarost

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    9/32

    Metode i primjene vjetake inteligencije

    9

    Na Slici 7. prikazana je funkcija pripadnosti koja je odreena prijanjim matematikimizrazom.

    Slika 7. Fuzzy funkcija pripadnosti

    U ovom jednostavnom primjeru vidljivo je da funkcija pripadnosti odreuje vrijednost lingvistikoj varijabli "mlada osoba". Prema postavljenoj funkciji sve osobe koje su mlae od20 godina smatraju se mladima. Stare osobe prema ovoj funkciji su one koje imaju vie od 30godina. Vrijednosti varijabli izmeu tih graninih vrijednosti odree ne su funkcijom. Uprijanjem primjeru za vrijednost starosti osobe od 24 godine, funkcija vraa vrijednostpripadnosti 0,6.

    Osnovni elementi funkcije pripadnosti su: podloga (engl. support) , jezgra (engl. core) ,visina granice (engl. boundary) . Jezgru predstavljaju svi elementi x koji imaju pripadnosti 1.Granice su intervalni skup x koji imaju ne nulte vrijednosti pripadnosti, ali su manje od 1; tozapisujemo izrazom 0 < (x)< 1. Podlogu funkcije ine svi elementi fuzzy skupa s ne nultompripadnou . Slika 8. prikazuje spomenute elemente funkcije pripadnosti.

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    10/32

    Metode i primjene vjetake inteligencije

    10

    Slika 8. Elementi funkcije pripadnosti

    Jo jedno svojstvo fuzzy skupa je i pojam "normalan". Kaemo da je fuzzy skup normalanukoliko postoji barem jedna vrijednost x A za koje funkcija pripadnosti ima vrijednost 1. Vrloesto u realnom svijetu teko odreujemo vrijednost neke varijable. Zbog toga se uvodi pojam"oko vrijednosti x", tada govorimo o fuzzy broju . Fuzzy broj je specijalan fuzzy skup kodkojeg je funkcija pripadnosti normalizirana, postoji sam jedna toka u jezgri, te funkcijapripadnosti lijevo od jezgre monotono raste, a desno od jezgre opada. Slika 9. prikazuje jednutakvu funkciju.

    Slika 9. Normalizirana funkcija pripadnosti

    U praksi se koriste razni oblici funkcija pripadnosti. Na Slici 10 moemo vidjeti nekoliko takvihfunkcija.

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    11/32

    Metode i primjene vjetake inteligencije

    11

    Slika 10. Razliite funkcije pripadnosti

    3.2 Operacije na fuzzy skupovima

    Nad fuzzy skupovima mogue je provoditi sve operacije koje su poznate u teoriji skupova.Osnovne operacije na fuzzy skupovima su: presjek , unija i komplement ili negacija .Pretpostavimo da imamo dva fuzzy skupa A i B u nekom univerzalnom skupu U.

    Presjek fuzzy skupova A i B, oznaava se A B , i odreena je izrazom:

    Slika 11. Prikaz presjeka fuzzy skupova

    Unija fuzzy skupova A i B, oznaava se A U B, i odreena je izrazom:

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    12/32

    Metode i primjene vjetake inteligencije

    12

    Slika 12. Prikaz unija fuzzy skupova

    Komplement skupa A oznaava se i definira se izrazom:

    Slika 13. Prikaz komplementa fuzzy skupa

    3.3 Osnovni koncept fuzzy sustava upravljanja

    Kao to je ve objanjeno, fuzzy upravljanje i pretraivanje podataka ne zahtijevapoznavanje matematikog modela procesa upravljanja. Sam postupak upravljanja odvija seu nekoliko koraka. Na Slici 14 prikazan je blok dijagram sustava upravljanja pomou fuzzylogike.

    Slika 14. Model Fuzzy sustava upravljanja

    Kod fuzzy sustava upravljanja moemo izdv ojiti etiri osnovna elementa: fazifikator (engl.fuzzifier) , baza fuzzy pravila (engl. fuzzy rule base) , mehanizam za odluivanje (engl.inference engine) i defazifikator (engl. defuzzifikator) . Element gdje se nalaze fuzzy pravilasastoji se od baze pravila i mehanizma odluivanja (Slika 15 ).

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    13/32

    Metode i primjene vjetake inteligencije

    13

    Slika 15. Model Fuzzy sustava upravljanja

    Za ispravan rad fuzzy sustava upravljanja potrebno je pravilno odrediti to su to ulazneveliine koje utjeu na rad sustava. Jesu li to odreene pogre ke, nekakve mjerljiveveliine ili upiti prema bazi podataka. Takoer , potrebno je unaprijed definirati izlazne fuzzy

    veliine. Sve te veliine odreuju njihovu pripadnost skupu i opisuju se atributima. Na Slici16 prikazan je primjer odreivanja temperature. Na tom primjeru vidimo da istu veliinumoemo definirati razliitim funkcijama.

    Slika 16. Funkcije za odreivanje temperature

    U prvom primjeru temperatura je definirana atributima: mala, normalna i velika, dok udrugom primjeru ta podjela je detaljnija, a atributi su: veoma mala, mala, normalna, velikai veoma velika.Fazifikator je zaduen da ulazni podatak opisuje na nain pogodan za potrebe fuzzy

    logike. Fazifikacija je proces stvaranja fuzzy varijable iz ulaznih vrijednosti, to se postieupotrebom fuzzy skupova. Vri se procjena ulaznog podatka, te se pomou funkcijepripadnosti odreuje stupanj pripadnosti fuzzy skupu. Slika 17 prikazuje nain odreivanjastupnja pripadnosti.

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    14/32

    Metode i primjene vjetake inteligencije

    14

    Slika 17. Izraunavanje stupnja pripadnosti

    Defazifikator ima suprotnu ulogu. Defazifikacija je proces koji fuzzy vrijednost pretvara u

    izlaznu istu vrijednost. Tako dobivena vrijednost alje se u sustav upravljanja. Slika 18prikazuje proces defazifikacije.

    Slika 18. Postupak defazifikacije

    Mehanizam odluivanj odreuje izlazne fuzzy veliine koje se alju u defazifikator.Baza pravila sastavni je dio baze znanja. Fuzzy pravila baze znanja najee su zapisana uobliku

    IF (uvjet) THEN (akcija)

    Do tih pravila dolazi se na osnovi iskustava i savjeta eksperata. Najei oblici pravila su:

    1) IF (x is Ai) and (y is Bi) THAN (z=Ci)

    2) IF (x is Ai) and (y is Bi) THAN (z=fi(x,y))

    Ova pravila predstavljaju kolekciju varijabli koje su povezani s kolekcijom fuzzy skupa. U

    pravilu se koriste i uvjetna pravila oblika IF-THEN-WHERE . Sva fuzzy pravila zapisana su ubazi znanja. U bazi znanja osim pravila nalaze se definirane varijable, te fuzzy skupovi. Sva trielementa ine bazu znanja , koja je u stvari kontejner koji osigurava enkapsulaciju i

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    15/32

    Metode i primjene vjetake inteligencije

    15

    zatieni pristup elementima. Sl ika 19 prikazuje blok dijagram grae baze zn anja i njenupovezanost ostalim elementima fuzzy sustava upravljanja.

    Slika 19. Pojednostavljena arhitektura fuzzy sustava upravljanja

    4. Fuzzy SQL i inteligentni upiti (engl. Fuzzy SQL and Intelligent Queries)

    4.1 Osnovni relacijskih baza i SQL upita

    Relacijske baze predstavljaju skupinu podataka organiziranih u dvodimenzionalnetablice, povezane relacijama kada dijele odreene podatke. Podaci u tablicama organizirani supo principu redova i kolona. Svaki red sadri barem jednu kolonu. Kolone su u biti entiteti,varijable odreene tipom p odatka koji se u njih zapisuju. U relacijskim bazama tablicamadodjeljuju se primarni kljuevi (engl. Primary key) . Primarni klju se sastoji od jedne ili viekolona i mora sadravati jedinstvene podatke . Sam klju m oe biti jednostavan i definiransamo s jednom kolonom ili moe biti sloen, te sastavljen od vie kolona odreene tablice.Pored primarnog kljua koji indeksira odreenu tablicu, moemo imati i tako zvani strani

    klju (engl. Foreign key) . On predstavlja relaciju na neku drugu tablicu, na njen zapis. Na tajnain, SQL upitom moemo istovremeno doi do podataka neke tablice prema postavljenimuvjetima i prema odreeno m kljuu prema kojem su organizirani podaci unutar tablice koju uSQL upitu pretraujemo. U sljedeim tablicama prikazana je organizacija tablica s primarnim istranim kljuevima .

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    16/32

    Metode i primjene vjetake inteligencije

    16

    Projekt ID Status Budet eura

    Trajanje Odjel Proje.menader

    P1 Aktivan 200.000 12 mjeseci IT 107P2 Aktivan 130.000 24 mjeseca IT 163P3 Zavren 250.000 6 mjeseci Managment 580

    Primarykey

    Foreign Key Foreign Key

    Tablica 1. Podaci o projektima

    Odjel Proje. menader Poloaj u zgradi IT 893 1. kat

    Managment 773 3. kat Nabava 307 2. kat

    Primary key Foreign KeyTablica 2. Podaci o odjelima

    Id osobe Prezime i ime Zarada107 Marko F. 15.000 Eura163 Vanja Z. 3.200 Eura160 Ivana K. 1.500 Eura893 Nikola K. 5.000 Eura

    Primary keyTablica 3. Podaci o osobama

    U ovom jednostavnom primjeru u svakoj tablici definiran je primarni klju. Podaci u koloni gdje

    se nalazi primarni klju moraju biti jedinstveni. U prvoj tablici nalaze se i dva strana kljua.Prvi pokazuje na zapis u tablici gdje su zapisani odjeli u kojima se odvija projekt. Drugi kljupokazuje na podatke o osobi koja je odre ena kao voditelj projekta. Podaci u stranimkljuevima ne m oraju biti jedinstveni. U ovom se primjeru u prvom stranom kljuu pojavljujedva puta podatak "IT".

    Osim kljueva, u radu s relacijskim tablicama susreemo se s pojmom indeks iindeksiranje podataka. Indeksiranje podataka ubrzava pretraivanje i pristup podacima.Indeksirana tablica ima organizirane podatke kolona u obliku stabla (engl. Tree) . U relacijskim

    bazama strani klju je automatski i indeksiran. Kada se kreira neka relacijska baza i tablicekoje e biti u njoj, tada se susreemo s pojmom normalizacije tablica. Pod pojmomnormalizacije smatramo proces koji e organizirati podatke u bazi tako da nema ponavljanjaistih podataka u razliitim tablicama, to jest da se sprijei redundanc ija podataka. Kada elimoprikupiti odreene podatke iz tablice, potrebno je koristiti dodatne uvjete (engl. predicate) u"where" dijelu SQL upita; na taj nain vrimo filtriranje redova podataka. Kod sloenijih upitakoriste se i sloeni uvjeti koji se pov ezuju s logikim operatorima AND i OR. Prilikom izvravanja Fuzzy SQL upita, dobiveni redovi podataka odreeni su s takozvanim

    indeksom kompatibilnosti upita (engl. Query Compatibility IndeX - QCI X ) . Svaki dobivenired koji dobijemo fuzzy upitom ima svoju vrijednost indeksa. Fuzzy SQL menader kojiupravlja ovom vrstom upita, automatski rangira dobivene redove podataka. Redovi su

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    17/32

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    18/32

    Metode i primjene vjetake inteligencije

    18

    Select osobe.id_osobe, osobe.prezime_ime, osobe.zaradaFrom osobe, projektiWhere (projekti.ProjektID=P1) AND (projekti.manager=osoba.idOsobe)

    Najee se za poveanje tonosti i preciznosti upotrebljavaju logiki operatori unutar wheredijela SQL upita.

    4.3 Osnovne fuzzy upita (engl. Fuzzy Query)

    Fuzzy upiti predstavljaju novi nain prikupljanja informacija iz relacijskih baza. Ovavrsta upita upotrebljava se kada su uvjeti pod kojima pretraujemo podatke nejasni. Prijanjiupit moemo rediti da dobijemo procjenu rizinosti poduzea. Pojam rizian u ovom upitu nije

    jasno definiran. t o znai da je projekt rizian? Za postavljeni zahtjev upit bi imao sljedeioblik:

    select *from projektiwhere projekti.budet je VISOKI

    AND projekti.trajanje je KRATKI

    Koristei fuzzy SQL upit, izraz "VISOKI" potrebno je zamijeniti s konvencionalnim

    vrijednostima. U ovom primjer izraz / varijablu "VISOKI" budet moemo nadomjestiti s:

    projekti.budet >= 100.000 AND projekti.budet =< 150.000

    Osnovna ideja fuzzy upita je ta da se daje informacija raunalu to za nas predstavlja odree nipojam. U tim SQL upitima odreeni su fuzzy izrazi, elementi iz pojedinih fuzzy skupova, tesemantika upita, a manje sam mehanizam izvravanja upita. Fuzzy skupovima se o moguujemapiranje vrijednosti u podatak koji izraava stupanj pripadnosti elementa nekog skupu. Fuzzyskup ne predstavlja podatak, to je jednostavno metoda koja enkodira i odreuje granicepripadnosti nekom skupu. U sljedeem jednostavnom primjeru prikazat u nain rada fuzzySQL upita. elimo odrediti pojam "VISOKI" (engl. Tall) . Na Slici 20 prikazana je fuzzy funkcijapripadnosti.U dijagramu vidimo da za vrijednost visine od 5 stopa (engl. feed) prema funkciji pripadnostimoemo zakljuiti da je stupanj pripadnosti od 0,43, to bi mogli i pretvoriti u 43%. U tolikompostotku za tu osobu moemo kazati da je visoka.

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    19/32

    Metode i primjene vjetake inteligencije

    19

    Slika 20. Fuzzy funkcija pripadnostiPostavi t e se sljedei fuzzy SQL upit:

    select namefrom customerswhere customers.height is Tall ;

    Izvravanjem fuzzy SQL upita postavlja se pitanje koliko su dobiveni rezultati vjerodostojni ikoliko odstupaju od traenog rezultata. Vjerodostojnost rezultata nazivamo indeksomkompatibilnosti QCIX upitu (engl. Query Compatibility Index QCIX) . Tablica 4. prikazujestupanj kompatibilnosti pojedinih vrijednosti podataka prema postavljenom fuzzy SQL upitu.

    Tablica 4. Prikaz rezultata indeksa kompatibilnosti

    Rezultati u tablici sortirani su prema rastuoj vrijednosti kompatibilnog indeksa, u ovomsluaju, lanstvo u fuzzy skupu Tall. Definicija fuzzy skupa Tall pokriva cijel u domenu moguihvrijednosti, u naem sluaju pripadnost je definirana relativnom otrom i linearnom linijom.Ukoliko elimo dobiti finiju gradaciju lanstva, potrebno je promijeniti fun kciju pripadnosti sfunkcijom koja nije toliko linearna. Na Slici 21 prikazan je primjer jedne od moguih promjena.

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    20/32

    Metode i primjene vjetake inteligencije

    20

    Slika 21. Korigirana fuzzy funkcije pripadnosti

    Upotrebom nove funkcije pripadnosti, S-krivulje, u Tablici 5 dobivamo neto izmijenjenerezultate.

    Tablica 5. Prikaz rezultata indeksa kompatibilnosti

    Kada dizajniramo fuzzy skup i dodjeljujemo mu funkciju pripadnosti, potrebno je odrediti kojipodaci u tablicama su povezani sa semantikom kod fuzzy upita.Stvarani potencijal i snaga fuzzy upita vidljiva je kada imamo sloene uvjete pretraivanja ikada upotrebljavamo dva ili vie fuzzy skupa . U sljedeem primjeru elimo pro nai osobe kojesu istovremeno visoke i imaju veu teinu. U tom sluaju fuzzy SQL upit izgledao bi ovako:

    select namefrom customerswhere customers.height is Tall

    an d customers.weight is Heavy ;

    U ovom upitu imamo dva fuzzy skupa, prvi je skup koji definira pojam "VISOKI" (engl. Tall) , adrugi fuzzy skup i njegova funkcija definira pojam "TEAK" (engl. Heavy) . Na Slici 22prikazana je funkcija pripadnosti fuzzy skupu Heavy.

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    21/32

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    22/32

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    23/32

    Metode i primjene vjetake inteligencije

    23

    =

    ==n

    1ii

    n

    1ii

    qcix

    w

    x w))(p(

    X

    i

    Xqcix - indeks kompatibilosti prema fuzzy SQL upitun - broj varijabli koje koristimo u upitui( ) - vrijednost stupanja pripadnosti varijable fuzzy skupupi - i-ta varijabla u upituwi - teinska vrijednost i-te varijable

    U Tablici 8 prikazan je nain upotrebe ove metode za odreivanje QCIX indeksa. Metodabalansira funkcijama pripadnosti za svaku varijablu u where dijelu upita. U ovom primjeru zasvaku kolonu dana je teinska vrijednost w i vrijednost 1.

    Tablica 8. Primjena metode Weighted-Average-of-Membership Compatibility

    5.3. Metoda odreivanja kompatibilnosti prema produktu teinskih vrijednosti pripadnostiskupu

    Metoda odreivanja kompatibilnosti prema produktu teinskih vrijednosti pripadnostiskupu (engl. Weighted-Product-of-Membership Compatibility) svakoj koloni odreuje se iznosteinske vrijednosti w i prema vanosti. Vrijednost w i je na intervalu od 1 do n, kao u prijanjojmetodi. Metoda izraunava kompatibilnost prema matematikom modelu:

    ==n

    1iiiqcix x w(pi))(minX

    Xqcix - indeks kompatibilosti prema fuzzy SQL upitun - broj varijabli koje koristimo u upitui( ) - vrijednost stupanja pripadnosti varijable fuzzy skupupi - i-ta varijabla u upituwi - teinska vrijednost i-te varijable

    Tablica 9 prikazuje primjenu ove metode na istim podacima kao u prijanjim metodama.

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    24/32

    Metode i primjene vjetake inteligencije

    24

    Tablica 9 Primjena metode Weighted-Product-of-Membership Compatibility

    Ova metoda odreivanja kompatibilnosti jednako je osjetljiva kao i metoda minimuma. Nasljedeem primjeru vidjet emo nain odreivanja kompatibilnost i za jo sloeniji sluaj fuzzySQL upita. Prijanji fuzzy SQL upit proirit emo za jo jednu lingvistiku varijablu"Sredovjean" (engl. Middle-aged) . Pojam sredovjenosti povezan je s brojem godina, moemo

    odrediti pravilo da je sredovjean ovjek izmeu 35 i 45 godina starosti. Funkcija pripadnostiza tu varijablu prikazana je na Slici 23, slina je Gaussovo-j krivulji.

    Slika 23. Funkcija pripadnosti za varijablu "Sredovjean"

    Proireni fuzzy SQL upit u ovom primjeru izgledao bi ovako:

    select namefrom customerwhere customer.height is Tall

    and customer.weight is Heavy and customer.age is MiddleAged ;

    U ovom sluaju izraunavamo stupanj pripadnosti i( ) za sve tri varijable: visina (engl. Tall) ,teina (engl. Heavy) i sredovjenost (engl.MiddleAged).

    Sljedee Tablice 10. prikazuju izraunate vrijednosti, te odreivanje kompatibilnosti QCIX naosnovi minimuma i prosjene vrijednosti.

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    25/32

    Metode i primjene vjetake inteligencije

    25

    Tablica 10. Tablica pripadnosti varijabli

    Tablica 11. Tablica s izraunatim indeksom kompatibilnosti QCIX

    Za razliku od klasinog SQL upita, na ovaj nain pronali smo tri osobe koje zadovoljavaju svatri postavljena uvjeta. Obj e metode nam daju mogunost da analiziramo dobivene rezultate ida se odluimo koji zapis e najvie zadovoljiti nae potrebe.Prilikom odreivanja indeksa kompatibilnosti QCIX moemo postaviti prag prihvatljivostipronaenih rezultata. Na taj nain moemo limitirati broj zapisa iz tablica koje bi dobili kao

    rezultat izvoenja fuzzy u pita. Na primjer, moemo postaviti da je minimalna vrijednosti QCIX[0,3]. Na taj nain prilikom analize dobivenih rezultata moemo odrediti slabe i jae stupnjevekompatibilnosti izmeu dobivenih podataka baze i postavljenog fuzzy SQL upita. Ukolikopostavimo jako nizak prag QCIX-a dobivamo slabo primjenjivu kompatibilnost, a u suprotnomdobivamo snaan stupanj kompatibilnosti.

    6. Nain izvravanja fuzzy SQL upita (engl. Fuzzy SQL Process Flow)

    U svakom fuzzy SQL upitu sve lingvistike varijable nalaze se u while dijelu SQL upita.Za izvoenje fuzzy upita upotrebljava se Fuzzy Data Explorer koji na jednostavan nainprikuplja podatke. Cijeli fuzzy SQL proces izvodi se slino kao do ... while petlja. Iz baze itablica se ita svaki zapis, a vrijednosti varijable koje smo specificirali u where dijelu upita seizdvajaju (x 1 , x 2 , x 3 , ... , x n ) . Ti izdvojeni podaci dodjeljuju se fuzzy skupu i na osnovifunkcije pripadnosti odreuje se njihov stupanj i( ) . Sve se to zapisuje u vektor pripadnosti,Vm . Matematiki zapis formiranog vektora:

    Vm = ( 1( x1), 2( x2), . . . , n( xn))

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    26/32

    Metode i primjene vjetake inteligencije

    26

    U isto vrijeme QCIX procesor kreira teinski vektor Vw koji e se koristiti u metodi za izraunkompatibilnosti. Veliina vektora jednaka je broju proitanih zapisa iz baze. Matematiki zapisteinskog vektora:

    Vw = (w 1( x1), w 2( x2), . . . , w n( xn))

    Indeks kompatibilnosti odreuje se mnoenjem vektora pripadnosti Vm i teinskog vektora V w.Mnoenjem dvaju vektora dobivamo vektor kompatibilnosti V c.

    Vc = Vm x Vw

    Ukoliko se koristi metoda minimuma, tada je teinski vektor ispunjen s vrijednostima 1. Slika24. prikazuje nain odvijanja procesa izvoenja fuzzy SQL upita.

    Slika 24. Dijagram odvijanja fuzzy SQL upita

    Izraun QCIX indeksa kompatibilnosti izraunava se prema matematikom modelu:

    =

    ==n

    1i

    wi

    n

    1i

    ci

    V

    V

    QCIX

    Samo vrijednost zapisa iz tablice s jednakim ili veim od izraunatog QCIX bit e prikazana kao

    rezultat SQL upita. Svi selektirani zapisi kasnije odlaze u modul koji ih sortira premapostavljenom kriteriju. Nakon toga, sustav tako obraene podatke prikazuje, te ih koristi napredvien nain.

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    27/32

    Metode i primjene vjetake inteligencije

    27

    Prilikom izvravanja fuzzy SQL upita esto koristimo gotove alate kojima moemo odreditiizvor podataka koji pretraujemo, te mijenjati fuzzy SQL uvjete i funkcije pripadnosti.

    7. Alati za izvravanje fuzzy SQL upita

    Za rudarenje podataka, njihovu analizu moemo upotrijebiti razne alate. U ovom dijeluseminarskog rada zadrat u se na fuz zy SQL alatima i nainu njihove upotrebe. Fuzzy SQLalate moemo grupirati na dvije osnovne skupine, one koji pristupaju relacijskim bazama i onikoji koriste fuzzy baze podataka. U sljedeem primjeru vidjet emo nain upotrebe fuzzy SQLalata (engl. Fuzzy Data Explorer) koji koristi relacijske baze. Izvoenje fuzzy SQL upita iprikupljanje podataka odvija se u nekoliko koraka. Najprije moramo povezati alat s bazom izkoje elimo uzimati podatke, te odrediti tablice i kolone koje nas interesiraju. U alatu obinopostoji opcija za izradu upita (engl. Query Builder) koja nam pomou grafikog suelja

    omoguuje odabir tablic a i kolona. Slika 25 prikazuje jedan postupak definiranja fuzzy SQLupita.

    Slika 25. Fuzzy Query BuilderNa Slici 25, u dijelu odabira kolona (engl. Column Names) vri se odabir kolona, na taj nainformira se where dio upita i definira se fuzzy skup varijabli. Nakon toga potrebno je definiratifuzzy skupove i funkcije pripadnosti za pojedine varijable. Slika 26 prikazuje definiranjesvojstava varijabli, definiranje fuzzy skupova i funkcije pripadnosti.

    Slika 26. Odreivanje fuzzy funkcija pripadnosti

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    28/32

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    29/32

    Metode i primjene vjetake inteligencije

    29

    8. Fuzzy klasifikacija query jezika (engl. fuzzy Classification Query Language - fCQL)

    Ovaj fuzzy SQL alat veoma me se dojmio. Alat je razvijen na Univerzitetu Fribourg izvicarske (org. University Of Fribourg Switzerland) , Odjel za informatiku (engl. InformationSystem Research Group - Department of Informatics) . Osnova alata ini razvojni okvir (engl.Framework) i fuzzy klasifikacijski jezik (engl. fCQL fuzzy Classification Query Language) . Alatomoguuje analizu podataka ili rudarenje baze podataka. Sam a lat je razvijen u Java programskom okruenju, te podrava rad s relacijskim bazama (MySQL i PostgreSQL). Alatomoguuje istovremeno izvoenje klasinog SQL upita i fuzzy SQL upita. Slika 30. prikazujenjegovu arhitekturu.

    Slika 30. Struktura fCQL-a

    fCQL predstavlja proirenje standardnog SQL jezika, on omoguuje formuliranje slobodnijegoblika SQL upita. Tablica 12. prikazuje usporedbu SQL i fCQL upita. Sintaksa jezika:

    SQL fCQLSelect Attributefrom Relationwhere Condition of Selection

    classify Objectfrom Relationwith ClassificationCondition

    Tablica 12. Usporedbe SQL upita

    Prednost fCQL jezika je u tome da korisnik ne mora modificirati funkcionalnost relacijske baze.Na taj na in shema povezanosti tablica u bazi podataka ostaje nepromijenjena, a omoguujese upotreba dobrih svojstava fuzzy pristupa pretraivanja podataka.Sam fCQL Framew ork , budui da je izraen u Jav a programskom jeziku, moe se pokretati ubilo kojem operativnom sustavu. Srce cijelog sustava fuzzy fCQL jezika ini fCQL interpreter .Slika 31. prikazuje grau cijelog sustava.

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    30/32

    Metode i primjene vjetake inteligencije

    30

    Slika 31. Struktura fCQL interpretera

    fCQL interpreter (iFCQL) analizira fuzzy SQL upit i transformira ga u standardni SQL upit.Interpreter je takoer povezan s GUI sueljem koje moemo koristiti za interaktivno formiranjefuzzy SQL upita. Sam alat takoer daje korisniku mogunost definiranja fuzzy funkcijapripadnosti. Slika 32. detaljnije prikazuje grau fuzzy fCQL interpretera.

    Slika 32. Detaljniji prikaz arhitekture fCQL interpretera

    Kao to smo prije spomenuli Framework omoguuje izvoenje obje vrste SQL upita. KlasiniSQL upiti, direktno se izvravaju i povezuju s bazom podataka. Fuzzy upiti se prvo aljuinterpreteru koji mora prevesti fuzzy upit u klasian SQL upit. Prvi element u interpreterunaziva se Lexer i zaduen je za analizu ulaznog upita i odvajanje i odreivanje pojedinanih

    varijabli koje se trae. Takoer pri tome otklanja sva prazna mjesta i razmake koji su upisani uSQL upitu. Taj element u Javi se naziva tokeniser . Nakon odvajanja, podaci se prosljeuju uparser koji individualnu naredbu i njene parametre zapisuje u privremenu strukturu prije

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    31/32

    Metode i primjene vjetake inteligencije

    31

    poziva odreene funkcije u evaluatoru . Evaluator i SQL generator kreiraju SQL kod kojiodgovara iFCQL naredbi. Konektor baze podataka pristupa konfiguracijskoj datoteci, preuzimapodatke o bazi i uspostavlja vezu s bazom poda taka. U ovom sluaju JDBC suelje (engl. JavaData Base Connectivity) izvri spajanje na bazu

    Sve to zajedno ukomponirano je u grafiko suelje koje korisniku omoguuje interakciju sbazom podataka, dinamike promjene fuzzy SQL upita. Slika 33 prikazuje G UI fCQL suelje.

    Slika 33. Izgled GUI fCQL suelja

    9. Zakljuak

    Teorija fuzzy skupova ujedinjena s SQL nainom pristupa ini snano oruje zadobivanje znanja i informacija. U ovom seminarskom radu pokuao sam na jednostavan nainprikazati principe fuzzy teorije, rudarenje i njihove fuzije. Objanjeni su samo osnovni nainiodreivanja indeksa kompatibilnosti. U teoriji fuzzy skupova i u alatima koje sam prouavaoupotrebljavaju se daleko sloeniji mehanizmi odreivanja stupnja pripadnosti. Teorij a fuzzy

    SQL upita ima budunost; to je vidljivo iz podataka da su velike kompanije kao to su Oracle,Microsoft, IBM ukljuile fuzzy teoriju u svoje razvojne alate i baze podataka. Sama fuzzyteorija dosta je nepoznata i kod nas se relativno malo koristi, najvie zbog neznanja. Samomupotrebom fuzzy SQL upita i pravilnom analizom dobivenih rezultata sigurno doprinosiuinkovitosti u poslovanju.

    Literatura:

    1. Earl Cox: Fuzzy Modeling and Genetic Algorithms for Data Mining andExploration,2005., Morgan Kaufmann Publishers

    2. Daniel Fasel: Erweiterung des fuzzy Klassifizierung Toolkits fCQL, 2009.3. Philippe Mayer: Implementation of an Inductive Fuzzy Classification Interpreter,2009.

  • 8/6/2019 Seminar FUZZY SQL Trstenjak Finish

    32/32

    Metode i primjene vjetake inteligencije

    4. Andreas Meier and Nicolas Werro: A Fuzzy Classification Model for Online Customers,2007.

    5. Christian Nancoz: fCQL-based architecture, 2004.6. Earl Cox: FuzzySQL, 1999.7. http://www.yaldex.com/game-development/1592730043_ch33lev1sec2.html - (sijeanj

    2011.)

    8.

    http://scianta.com/pubs/AR-PA-008.htm - (sijeanj 2011.) 9. http://diuf.unifr.ch/main/is/fuzzy_classification - (veljaa 20 11.)

    http://www.yaldex.com/game-development/1592730043_ch33lev1sec2.htmlhttp://www.yaldex.com/game-development/1592730043_ch33lev1sec2.htmlhttp://scianta.com/pubs/AR-PA-008.htmhttp://scianta.com/pubs/AR-PA-008.htmhttp://diuf.unifr.ch/main/is/fuzzy_classificationhttp://diuf.unifr.ch/main/is/fuzzy_classificationhttp://diuf.unifr.ch/main/is/fuzzy_classificationhttp://scianta.com/pubs/AR-PA-008.htmhttp://www.yaldex.com/game-development/1592730043_ch33lev1sec2.html