1 / 63

Aproksymacyjne wyszukiwanie informacji w bazach danych

Politechnika Śląska Instytut Informatyki. Aproksymacyjne wyszukiwanie informacji w bazach danych. Wykład - Bazy danych 3 – kierunek Informatyka sem. VII. Rodzaje zapytań. precyzyjne zakresowe aproksymacyjne. Rodzaje zapytań aproksymacyjnych.

scott
Download Presentation

Aproksymacyjne wyszukiwanie informacji w bazach danych

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Politechnika Śląska Instytut Informatyki Aproksymacyjne wyszukiwanie informacji w bazach danych Wykład - Bazy danych 3 – kierunek Informatyka sem. VII Gliwice 2005

  2. Rodzaje zapytań • precyzyjne • zakresowe • aproksymacyjne Gliwice 2005

  3. Rodzaje zapytań aproksymacyjnych • Wektorowe – wyszukiwanie na podstawie podobieństwa dwóch wektorów, z których jeden reprezentuje wyszukiwany obiekt, a drugi kryteria pytania • Oparte na prawdopodobieństwie – wyszukiwanie na podstawie prawdopodobieństwa spełnienia przez obiekt warunków pytania, • Rozmyte – wyszukiwanie na podstawie stopnia zgodności obiektu z kryteriami pytania • W języku naturalnym – semantyka języka określa sposób interpretacji pytania Gliwice 2005

  4. Rys historyczny Twórca teorii zbiorów rozmytych: Lotfi Zadeh (1965r.) Praca inicjująca stosowanie zbiorów rozmytych w bazach danych: opracowanie V. Tahaniego o wyszukiwaniu informacji rozmytej (1976r.) Gliwice 2005

  5. Badania nad zastosowaniem teorii zbiorów rozmytych w bazach danych (1) • Zadawanie rozmytych pytań do bazy danych: • Translator języka naturalnego wykorzystujący teorię zbiorów rozmytych PRUF - (Zadeh - 1978) • Pierwszy rozmyty języka zapytań (Takahashi - 1991) (X jest bardzo niski) • Fuzzy Query – tworzony od połowy 1997r. Przez Sonalysts • Fquery – IBS PAN Warszawa (J. Kacprzyk, S. Zadrożny) dla MS Access • SQLf – P. Bosc, O. Pivert itd. Gliwice 2005

  6. Badania nad zastosowaniem teorii zbiorów rozmytych w bazach danych (2) • Zapamiętywanie rozmytych informacji w bazie danych: • rozmyte modele danych (B. P. Buckles, F. E. Petry) • Rozmyty relacyjny model GEFRED – Uniwersytet w Granadzie (J. Cubero, M. Vila, K. Pons, J. Medina) • Rozmyte modele obiektowych baz danych – Belgia (R. De Caluwe itd.) • Zbiory rozmyte w bazach danych systemów geograficznych (M. Cobb, A. Yazici, K. Akkaya, V. Robinson) Gliwice 2005

  7. Rodzaje pytań oraz przechowywanych danych • Precyzyjne pytania - dokładne dane w BD • Rozmyte pytania - dokładne dane w BD • Precyzyjne pytania - rozmyte dane w BD • Rozmyte pytania - rozmyte dane w BD Gliwice 2005

  8. Problemy • Jak przedstawić w składni języka SQL rozmyte sformułowania i jak ma przebiegać proces interpretacji takich zapytań? • W jaki sposób przechowywać w bazie rozmyte dane? Gliwice 2005

  9. Teoria zbiorów rozmytych -podstawowe pojęcia Zbiór rozmyty – zbiór par, w pewnej numerycznej przestrzeni rozważań X A = {(µA(x), x)}, dla każdego x  X, gdzie: µA – funkcja przynależności zbioru rozmytego A – każdemu elementowi zbioru x  X przypisuje stopień przynależności µA(x) do zbioru A, przy czym µA(x)  [0, 1] Gliwice 2005

  10. a dm b 0 l m n o D Przykładowa funkcja przynależności • Liczba rozmyta • Przedział rozmyty • Przedział dokładny • Wartość dokładna Gliwice 2005

  11. Reprezentacja liczb rozmytych • Liczba rozmyta typu LR: A1 = (m, a, b) • Przedział rozmyty typu LR: A2 = (m, n, a, b) Gliwice 2005

  12. Postać zapytania w języku SQL Select <lista atrybutów> From <lista tabel> Where <warunki> Group by <lista atrybutów> Having <warunki filtrujące> Order by <lista atrybutów> Gliwice 2005

  13. Miejsca występowania wartości rozmytych w pytaniach niezagnieżdżonych • Warunki filtrujące we frazie WHERE • Warunki filtrujące we frazie HAVING • Grupowanie wg wyrażeń zawierających wartości rozmyte – GROUP BY • Porządkowanie wg kolumn zawierających wartości rozmyte – ORDER BY • Wartości rozmyte we frazieSELECT Gliwice 2005

  14. Diagram bazy danych Gliwice 2005

  15. Interpretacja rozmytych warunków filtrujących w pytaniach SQL Przykład Wyszukaj pracowników w wieku około 50 lat. Gliwice 2005

  16. Wartość rozmyta około 50  1 ... 0 40 45 55 60 X Gliwice 2005

  17. Zapis w notacji języka SQL SELECT imie, nazwisko FROM pracownicy WHERE wiek JEST okolo 50 T(x) 1 (48) = 0.8 0 40 48 50 60 wiek Gliwice 2005

  18. Uzupełnienie tabeli o tymczasową kolumnę zawierającą stopień zgodności Gliwice 2005

  19. Warunki złożone Where W Where W1 AND W2 ... OR Wk Wi AND Wj min ((wi), (wj)) t-norma Wi OR Wj max((wi), (wj)) s-norma Gliwice 2005

  20. Wyszukaj pracowników w wieku około 50 lat, mających staż pracy około 20 lat.SELECT imie, nazwiskoFROM pracownicyWHERE wiek JEST okolo 50 AND staz_pracy JEST okolo 20Uzupełniona tabela o tymczasowe kolumny zawierające wartości stopni zgodności Gliwice 2005

  21. Podstawa wyboru wierszy • Maksymalny stopień zgodności z warunkami pytania • Przekroczenie średniego stopnia zgodności • Przekroczenie pewnej zadanej wartości progowej Gliwice 2005

  22. Wprowadzenie do zapisu pytań SQL warunku na stopień zgodności Przykład Wyszukaj pracowników, którzy mają około 50 lat, w odpowiedzi należy uwzględnić wiersze ze stopniem zgodności z kryterium pytania większym niż 0.7. Dotychczasowy zapis pytania: SELECT imie, nazwisko FROM pracownicy WHERE wiek JEST okolo 50 Gliwice 2005

  23. Trzy formy zapisu warunku na stopień zgodności • forma dołączana do warunku rozmytego WHERE wiek jest okolo 50 AND DG > 0.7; • forma funkcyjna WHERE DG(p.wiek, okolo 50) > 0.7; • forma operatorowa WHERE(wiek jest okolo 50) > 0.7; Gliwice 2005

  24. Wartości rozmyte w kolumnach tabeli tabela: zapotrzebowanie (nr_zakl, rok, zapotrzebowanie_na _papier) Przykład Wyszukać zakłady, które złożyły zapotrzebowanie na niewielką ilość papieru. SELECT nr_zakl FROM zapotrzebowanie WHERE zapotrzebowanie_na_papier jest niewielkie; T(x) 1 0 8 10 20 x Gliwice 2005

  25. Agregacja w pytaniach rozmytych (1) Funkcje agregujące na danych rozmytych (we frazie SELECT) „Wyznacz wartość średniego zapotrzebowania na tonery.” SELECT AVG(toner) FROM zapotrzebowanie WHERE rok = ‘2003’; Gliwice 2005

  26. Agregacja w pytaniach rozmytych (2) Nakładanie warunków na funkcje agregujące w pytaniach rozmytych (fraza HAVING): • Agregacja wartości ostrych – nakładany warunek rozmyty • Agregacja wartości rozmytych – nakładany warunek ostry • Agregacja wartości rozmytych – nakładany warunek rozmyty • Rozmyte kwantyfikatory operujące na grupie wierszy Gliwice 2005

  27. Agregacja w pytaniach rozmytych (3) Agregacja wartości ostrych – nakładany warunek rozmyty Wyszukać te zakłady, w których jest zatrudnionych około 10 kobiet, przy czym stopień zgodności z tym warunkiem powinien być większy od 0.65. SELECT nr_zakl FROM pracownicy WHERE plec = ‘K’ GROUP BY nr_zakl HAVING (count(nr_prac) jest okolo 10) > 0.65 Gliwice 2005

  28. Agregacja w pytaniach rozmytych (4) Przykład Wyznacz dla każdego zakładu wartość średniego zapotrzebowania na papier. Wyszukaj te zakłady, w których wartość ta przekracza 30 ryz. SELECT nr_zakl, AVG(zapotrzebowanie_na_papier) FROM zapotrzebowanie GROUP BY nr_zakl HAVING AVG(zapotrzebowanie_na_papier) > 30; Gliwice 2005

  29. Agregacja w pytaniach rozmytych (5) Agregacja wartości rozmytych Wyszukać te instytuty, których sumaryczne zapotrzebowanie na papier w danym roku wynosiło około 1000 ryz. W odpowiedzi powinny znaleźć się wiersze o stopniu zgodności co najmniej 0.7. SELECT nr_inst, rok FROM zapotrzebowanie z JOIN instytuty i ON z.nr_inst = i.nr_inst GROUP BY i.nr_inst, rok HAVING (sum(papier) jest okolo 1000) >= 0.7; Gliwice 2005

  30. Rozmyte kwantyfikatory (prawie wszystkie, prawie żaden, około połowa...) Wyszukaj te zakłady, w których prawie wszyscy pracownicy to mężczyźni. W odpowiedzi powinny znaleźć się wiersze o stopniu zgodności co najmniej 0.7. SELECT nr_zakl, prawie_wszystkie(plec = ‘M’) FROM pracownicy GROUP BY nr_zakl HAVING prawie_wszystkie(plec = ‘M’) >= 0.7;   1 1 0.5 ... ... 0 0.9 0.95 1 X 0 0.9 0.925 1 X Funkcja przynależności dla wartości lingwistycznej prawie_wszystkie Gliwice 2005 Stopień zgodności obliczonego odsetka (0.925) z wartością lingwistyczną prawie_wszystkie

  31. Grupowanie danych • grupowanie rozmyte dokładnych danych • grupowanie rozmytych danych Gliwice 2005

  32. Grupowanie rozmyte dokładnych danych • grupowanie względem wartości lingwistycznych Dane: pomiary temperatury w kolejnych dniach Wartości lingwistyczne: bardzo zimno, zimno, ciepło, bardzo ciepło itd. • grupowanie według arbitralnego podziału dziedziny atrybutu Dane: staż pracy poszczególnych pracowników Podział dziedziny: około 5 lat, około 10 lat, około 15 lat itd. • grupowanie rozmyte z zastosowaniem metody hierarchicznej Początkowo każda dana tworzy grupę Iteracyjne łączenie dwóch najbliższych grup • grupowanie rozmyte według autorskiego algorytmu Połączenie idei metody hierarchicznej z klasycznym grupowaniem bazującym na uporządkowaniu danych Gliwice 2005

  33. Metody wyznaczania odległości między grupami • najmniejsza odległość pomiędzy dowolną daną grupy A i daną grupy B: • największa odległość pomiędzy dowolną daną grupy A i daną grupy B: • średnia arytmetyczna wszystkich odległości pomiędzy wszystkimi danymi grup A i B: • odległość pomiędzy punktem centralnym (wartością średnią) grupy A i punktem centralnym (wartością średnią) grupy B: gdzie mA, mBsą wektorami: mA, mB. Gliwice 2005

  34. Grupowanie rozmytych danych • Uwzględnienie w grupowaniu wszystkich parametrów opisujących wartości rozmyte • Grupowanie według wartości modalnych • Uwzględnienie wymienionych algorytmów grupowania rozmytego Gliwice 2005

  35. Pytania zagnieżdżone Przykład pytania zagnieżdżonego: Wyszukaj zakłady, które w roku 2002 złożyły zapotrzebowanie na liczbę ryz papieru mniej więcej równąśredniemu zużyciu wewszystkich zakładach. Dostępne tabele: Zapotrzebowanie (nr_zakl, rok, zapotrzebowanie_na_papier) Zuzycie (nr_zakl, rok, zuzycie_papieru) SELECT nr_zakl FROM zapotrzebowanie WHERE rok = ‘2002’ AND zapotrzebowanie_na_papier mniej wiecej (SELECT AVG(zuzycie_papieru) FROM zuzycie WHERE rok = ‘2002’); Gliwice 2005

  36. Wartości rozmyte w pytaniach zagnieżdżonych • w podzapytaniu wewnętrznym • wpodzapytaniuzewnętrznym • w warunku wiążącym oba podzapytania • Problem zapisu warunku na wartość stopnia zgodności • forma dołączana do warunku rozmytego • forma funkcyjna • forma operatorowa Gliwice 2005

  37. Pytanie zagnieżdżone w formie operatorowej W odpowiedzi powinny znaleźć się wiersze ze stopniem zgodności co najmniej 0.7. SELECT nr_zakl FROM zapotrzebowanie WHERE rok = ‘2002’ AND (zapotrzebowanie_na_papier mniej wiecej (SELECT AVG(zuzycie_papieru) FROM zuzycie WHERE rok = ‘2002’))>= 0.7; Gliwice 2005

  38. Warunki wiążące w pytaniach zagnieżdżonych Porównanie wartości podzapytania zewnętrznego z wartością wyznaczaną w pytaniu wewnętrznym: • Dokładna - rozmyta • Rozmyta - dokładna • Rozmyta -rozmyta • Wartości rozmyte w warunku korelacji wiążącym pytania zagnieżdżone Gliwice 2005

  39. Zależne kontekstowo interpretacje wartości rozmytych Przykład: Wyszukać w bazie danych uczelni wysokich studentów. Uwzględnić wiersze ze stopniem zgodności przekraczającym 0.8. Dana tabela: Studenci (nr_stud, nr_kier, nazwisko, plec, wzrost) Tradycyjne podejście SELECT nazwisko FROM studenci WHERE (s.wzrost jest wysoki_wzrost) > 0.8 Gliwice 2005

  40. Podejście kontekstowe Dane są następujące tabele: Studenci (nr_stud, nr_kier, nazwisko, plec, wzrost), Wzrost (plec, wysoki_wzrost), SELECT nazwisko FROM Studenci s JOIN Wzrostw ON s.plec = w.plec WHERE (s.wzrost jest w.wysoki_wzrost) > 0.8 Gliwice 2005

  41. Implementacja w SZBD PostgreSQL Dlaczego SZBD PostgreSQL? • dostępny kod • możliwość tworzenia własnych typów, funkcji i operatorów Gliwice 2005

  42. a dm b 0 l m n o X Implementacja typu rozmytego Reprezentacja wewnętrzna: a, m, dm, b Reprezentacja zewnętrzna: ‘l/m~n\o’ Przy wprowadzaniu danych: okolo(l, m, n, o) Funkcje konwersji wartości rozmytych do wartości lingwistycznych 1 Gliwice 2005

  43. Zaimplementowane funkcje i operatory Gliwice 2005

  44. Testowa baza Zawodnicy • 6 tabel • 10 000 rekordów • 12 złożonych testowych zapytań Gliwice 2005

  45. Baza danych zawodnicy Struktura bazy danych zawodnicy Osoby (id_oso, imie, nazwisko, plec, data_ur, wzrost, waga,data_przyjecia, funkcja), Obecności (id_obe, id_tre, id_oso, sennosc, zmeczenie, stres, zlosc); Serie (id_ser, id_obe, nr, suma), Strzaly (id_strz, id_ser, nr, wynik), Treningi (id_tre, data, godz_od, godz_do, id_oso, id_war) Warunki (id_war, data, temperatura, wiatr, widocznosc) Id_oso – w tabeli treningi oznacza id. trenera Gliwice 2005

  46. Diagram bazy danych Zawodnicy Gliwice 2005

  47. Przykłady definicji zmiennych lingwistycznych (1) Gliwice 2005

  48. Przykłady definicji zmiennych lingwistycznych (2) Gliwice 2005

  49. Przykładowe pytania rozmyte (1)wartości rozmyte we frazie where „Wyszukaj nazwiska wysokich zawodników średniej wagi, którzy przy słabej widoczności choć raz trafili w dziesiątkę. W odpowiedzi powinny znaleźć się wszystkie wiersze spełniające ze stopniem zgodności większym niż 0 kryteria pytania.” SELECT DISTINCT os.id_oso, os.imie, os.nazwisko FROM osoby os JOIN obecnosci ob ON os.id_oso = ob.id_oso JOIN treningi t ON ob.id_tre = t.id_tre JOIN warunki w ON t.id_war = w.id_war JOIN serie s ON s.id_obe = ob.id_obe JOIN strzaly st ON s.id_ser = st.id_ser WHERE ((os.wzrost ~= wysoki_wzrost_mezczyzny()) &&& (os.waga ~= srednia_waga_mezczyzny()) &&& (w.widocznosc ~= slaba_widocznosc())) > 0.0 AND st.wynik = 10; Gliwice 2005

  50. Przykładowe pytania rozmyte (2)wartości rozmyte we frazie where „Wyszukaj daty treningów wraz z liczbą zawodników, którzy przystępując do treningu byli wyspani lub wypoczęci, zaś w czasie treningów nie denerwowali się (nie odczuwali stresu). W odpowiedzi powinny znaleźć się wszystkie wiersze spełniające ze stopniem zgodności większym niż 0,5 kryteria pytania.” Gliwice 2005

More Related