Transformacja zapytań rozmytych do bazy danych na zapytania w

Transkrypt

Transformacja zapytań rozmytych do bazy danych na zapytania w
TRANSFORMACJA ZAPYTA ROZMYTYCH DO BAZY DANYCH NA ZAPYTANIA
W STANDARDZIE SQL
MAGDALENA LIPI
SKA
Zakład Systemów Informatycznych Zarzdzania
Wydział Informatyki Politechniki Szczeciskiej
Streszczenie
W artykule zaprezentowane są róĪne formy zapytaĔ rozmytych do baz danych.
Szczegółowa analiza tych zapytaĔ stanowi klucz do ich zamiany na zapytania
w standardzie SQL. Metoda tej transformacji to podstawowy mechanizm rozmytego
jĊzyka zapytaĔ.
1. Wstp
O wartoci współczesnych baz danych stanowi ich gotowo informacyjna, która
weryfikowana jest przede wszystkich w trakcie formułowania zapytania i otrzymywania
odpowiedzi. Poniewa ludzie myl i opisuj rzeczywisto w kategoriach informacji rozmytych
(„obroty handlowca duo spadły”, „handlowiec mało sprzedaje” itp.), jzyk zapyta jako
podstawowy mechanizm komunikacji w nowoczesnych systemach baz danych musi uwzgldnia
zapis subiektywnych sdów, wzgldnych wypowiedzi, rejestracji danych obarczonych pewnymi
błdami pomiarowymi itp. Jedn z moliwoci podniesienia jakoci jzyków zapyta jest zatem
zastosowanie logiki rozmytej zaproponowanej przez L.A. Zadeha [2]. Wiksza uyteczno
rozmytych jzyków zapyta wynika m.in. z faktu, e informacje nieprecyzyjne s dla niektórych
systemów jedynymi dostpnymi informacjami, a wystpujce ewentualnie informacje precyzyjne
mog by obarczone pewnym błdem pomiarowym [6].
Celem artykułu jest prezentacja transformacji rónych form zapyta rozmytych do zapyta w
standardzie SQL. Metoda ta stanowi podstawowy mechanizm rozmytego jzyka zapyta.
2. Zapytania rozmyte
W przypadku rozmytych jzyków zapyta nieostro ma charakter temporalny i powstaje w
czasie formułowania zapytania. Zapytanie do bazy danych jest nieprecyzyjne (rozmyte) jeli
zawiera przynajmniej jeden z poniszych elementów:
• wartoci rozmyte;
• operatory arytmetyczne rozmyte;
• kwantyfikatory rozmyte.
Zapytanie rozmyte moemy zatem przedstawi w nastpujcej formie:
SELECT A1 ,A2 .....
FROM
T1 ,T2 ......
WHEREP1 XOK OL P2....
gdzie:
A - atrybut
POLSKIE STOWARZYSZENIE ZARZĄDZANIA WIEDZĄ
Seria: Studia i Materiały, nr 2, 2004
51
T - tabela
P - predykat prosty
OL - operator logiczny (AND, OR)
XOK - współczynnik operatora kompensacyjnego (waga, próg reakcji)
Natomiast predykat prosty moemy zdefiniowa nastpujco:
P = XK KA XO O XW W
gdzie:
XK – warto podobiestwa dla kwantyfikatora K
K- kwantyfikator twardy (istnieje, wszyscy, aden) lub rozmyty (prawie wszyscy, prawie
aden)
XO – warto podobiestwa dla operatora arytmetycznego O
O – operator arytmetyczny twardy (=, !=, <, >, =>, =<) lub rozmyty (prawie =, prawie !=,
prawie <, prawie >)
XW– warto wg rozkładu moliwoci/podobiestw dla warunku
W – konkretna warto lub zmienna lingwistyczna.
Tabela 1
Tablica ODDZIAŁ rejestrujca odziały firmy
Nr_od
Oddział
Pozostałe dane
001
Warszawa
......
002
Szczecin
......
003
Katowice
......
Tabela 2
Tablica HANDLOWCY rejestrujca dane zatrudnionych w działach handlowych
pracowników
Nr_h
Nazwisko
Imi
Płe
Pozostałe dane
Nr_od
001
Jurgiewicz
Robert
M
......
001
002
Runiewicz
Jan
M
......
003
003
Zalewski
Sławomir
M
......
001
004
Kulczycka
Joanna
K
......
003
005
Biekowski
Wojciech
M
......
002
006
Matczak
Regina
K
......
003
007
Rapcewicz
Rafał
M
......
002
008
Stanisławski
Jan
M
......
001
009
Kowalski
Piotr
M
......
001
010
Jasiski
Krzysztof
M
......
003
011
Tomczak
Edmund
M
......
002
012
Wójtowicz
Adam
M
......
002
52
Magdalena LipiĔska
Transformacja zapytaĔ rozmytych do bazy danych na zapytania w standardzie SQL
Tabela 3
Tablica OBROTY rejestrujca obroty i ich spadek w porównaniu z poprzednim okresem
Nr_h
Obroty[zł]
Spadek [%]
001
10340,00
1
002
4500,00
3
003
2870,00
12
004
5540,00
5
005
9070,00
2
006
3000,00
10
007
6600,00
7
008
2540,00
3
009
9100,00
1
010
1500,00
8
011
2250,00
9
012
3710,00
6
Dla zilustrowania problemu rozwaymy zapytania do przykładowej bazy danych pewnej firmy
handlowej, która ma trzy oddziały w Polsce i zatrudnia łcznie 12 handlowców (tab.1,2,3).
Podstawowym kryterium oceny pracowników działów handlowych jest poziom ich obrotów oraz
jego zmiany w czasie.
2.1. Nieprecyzyjne (rozmyte) wartoci
Warto stanowi podstawowy składnik predykatu i w zapytaniu rozmytym moe by zapisana
jako konkretna liczba, tekst czy data albo w postaci zmiennej lingwistycznej. Dla atrybutów
zapisanych w formacie liczbowym, jakim jest np. poziom obrotów, taka zmienna moe
przyjmowa róne wartoci w zalenoci od wysokoci obrotów, co przedstawia tab. 4.
W przykładowej bazie danych zamiast szuka handlowców o konkretnym poziomie obrotów
szukamy handlowców, których poziom obrotów był bardzo słaby. W miejscu wartoci liczbowej
pojawia si zmienna lingwistyczna „bardzo słaby”.
Jeeli w rozwaanym zapytaniu przyjmiemy warto wg rozkładu moliwoci na poziomie 0,6
(XW=0,6) to zapytanie rozmyte bdzie miało nastpujc posta :
SELECT A.IMIE, A.NAZWISKO
FROM
HANDLOWCY A, OBROTY B
WHEREA.NR_H=B.NR_H AND B.OBROTY = 0.6 „BARDZO SŁABY”
Wanym zadaniem w realizacji zapytania jest rozumienie poj, zmiennych lingwistycznych
(w tym przypadku „bardzo słaby”) w kategoriach liczbowych i zapamitywanie ich w bazie
danych. Niestety proces rejestrowania rozmytych informacji w tradycyjnej bazie danych cile
wie si z ich defuzyfikacj (wyostrzaniem) (tab.4).
Jednym z rozwiza, które pozwala na otrzymanie dobrych wyników działania jzyka zapyta,
jest okrelenie dla przyjtych wskaników funkcji przynalenoci [6] do zbioru. W tym
przykładzie naley zdefiniowa funkcj przynalenoci obrotów do rozmytego zbioru obrotów o
POLSKIE STOWARZYSZENIE ZARZĄDZANIA WIEDZĄ
Seria: Studia i Materiały, nr 2, 2004
53
bardzo słabym poziomie i obliczy wartoci dla poszczególnych poziomów obrotów. Wiemy, e
wszystkie obroty równe i mniejsze od 2000,00 zł traktujemy jako złe lub krytyczne, a równe i
wiksze od 4000,00zł s obrotami lepszymi od bardzo słabych, zatem F1 - funkcja okrelajca
stopie przynalenoci obrotów do zbioru obrotów O o "bardzo słabym" poziomie przyjmuje dla
nich warto 0 (F1 = 0 dla O < =2000 i O>=4000). W kategoriach bardzo słabego poziomu na
pewno rozpatrujemy obroty na poziomie 3000,00zł zatem dla takich obrotów funkcja przyjmie
warto 1 (F1 = 1 dla O =3000). Obroty z przedziału pomidzy 2000,00 zł a 3000,00zł wraz ze
wzrostem wartoci w coraz wikszym stopniu przynale do rozpatrywanego zbioru rozmytego,
co mona zdefiniowa nastpujco: F1 = (O-2000)/1000 dla 2000 < O <3000. Natomiast obroty z
przedziału 3000,00zł a 4000,00zł wraz ze wzrostem wartoci w coraz mniejszym stopniu
przynale do zbioru O (F1 = (4000– O)/1000 dla 3000 < O <4000) (tab.5).
Tabela 4
Rejestracja rozmytych informacji w tradycyjnej bazie danych
Zmienna linwistyczna
Obroty [zł]
Krytyczny
1000,00
Zły
2000,00
Bardzo słaby
3000,00
Słaby
4000,00
Dostateczny
5000,00
Przecitny
6000,00
Dobry
7000,00
Bardzo dobry
8000,00
Wyróniajcy
9000,00
Znakomity
10000,00
Tabela 5
Funkcja przynalenoci O [tys. zł] do zbioru rozmytego obrotów o bardzo słabym poziomie
(opracowanie własne na podst. [6])
O
F1
2,1 2,2 2,3 2,4 2,5 2,6 2,7 2,8 2,9 3,0 3,1 3,2 3,3 3,4 3,5 3,6 3,7 3,8 3,9
0,1 0,2 0,3 0,4 0,5 0,6 0,7 0,8 0,9 1,0 0,9 0,8 0,7 0,6 0,5 0,4 0,3 0,2 0,1
Korzystajc z relacji łczcej podobiestwa stanów jakociowych ze stopniami przynalenoci
i rozkładu moliwoci dokonujemy transformacji zapytania rozmytego do postaci tzw. twardej
czyli w standardzie SQL:
SELECT A.IMIE, A.NAZWISKO
FROM
HANDLOWCY A, OBROTY B
WHERE
A.NR_H=B.NR_H AND B.OBROTY <3400,00
AND B.OBROTY >2600,00
W zalenoci od rozkładu funkcji przynalenoci zwizanej z subiektywn ocen wartoci
atrybutu moemy otrzyma w wyniku działania rozmytego jzyka zapyta róne odpowiedzi. Jest
to bardzo naturalne, gdy kady z uytkowników stwierdzajc, e poziom obrotów jest bardzo
54
Magdalena LipiĔska
Transformacja zapytaĔ rozmytych do bazy danych na zapytania w standardzie SQL
słaby moe mie na uwadze inne wysokoci obrotów. Dodatkowo ten sam uytkownik moe
zmieni swoje preferencje w czasie.
2.2. Nieprecyzyjne (rozmyte) operatory arytmetyczne
Problem dotyczy zastpienia w predykacie zapytania rozmytego klasycznych operatorów
arytmetycznych odpowiednimi, tzn., nieostrymi operatorami takimi jak: prawie =, prawie !=,
prawie <, prawie >.
W powyszym przykładzie moemy szuka handlowców, których obroty spadły tak samo jak
obroty Kowalskiego albo interesuj nas tylko ci handlowcy, których obroty spadły prawie tak
samo jak obroty Kowalskiego.
W tym przypadku przy obranym współczynniku 0.8 (XO=0,8) zapytanie rozmyte miałoby
posta:
SELECT A.IMIE, A.NAZWISKO
FROM
HANDLOWCY A, OBROTY B
WHEREA.NR_H=B.NR_H AND B.SPADEK 0.8 =
(SELECT C.SPADEK
FROM
OBROTY C, HANDLOWCY D
WHERE
C.NR_H=D.NR_H AND D.NAZWISKO =
”KOWALSKI”))
W przypadku transformacji zapyta z rozmytymi operatorami arytmetycznymi jednym
z podstawowych działa jest budowa tablicy podobiestw, która okrela nam warto funkcji
przynalenoci, w tym przypadku procentowego spadku obrotów, wzgldem siebie. Relacja
podobiestwa P na dziedzinie D jest relacj rozmyt, która przypisuje kadej parze wartoci
dziedziny D warto z przedziału [0,1] czyli P:D×D-> [0,1]. W tabeli 6 wida wyranie
podstawowe własnoci tej relacji takie jak zwrotno (P(x,x)=1) czy symetryczno (P(x,y) =
P(y,x)).
Korzystajc z tabeli podobiestw okrelamy warto spadku obrotów, która przy 1% spadku
Kowalskiego i wartoci funkcji przynalenoci 0.8 wynosi 5% i mniej. Formułujemy zapytanie
twarde:
SELECT A.IMIE, A.NAZWISKO
FROM
HANDLOWCY A, OBROTY B
WHEREA.NR_H=B.NR_H AND B.SPADEK =<5
Tabela 6
Tabela podobiestw spadków obrotów (opracowanie własne)
Spadek
obrotów [%]
1
2
3
5
6
7
8
10
12
1
1.0
0.95
0.9
0.8
0.75
0.7
0.65
0.55
0.45
2
0.95
1.0
0.95
0.85
0.8
0.75
0.7
0.6
0.5
3
0.9
0.95
1.0
0.9
0.85
0.8
0.75
0.65
0.55
5
0.8
0.85
0.9
1.0
0.95
0.9
0.85
0.75
0.65
6
0.75
0.8
0.85
0.95
1.0
0.95
0.9
0.8
0.7
7
0.7
0.75
0.8
0.9
0.95
1.0
0.95
0.85
0.75
POLSKIE STOWARZYSZENIE ZARZĄDZANIA WIEDZĄ
Seria: Studia i Materiały, nr 2, 2004
55
8
0.65
0.7
0.75
0.85
0.9
0.95
1.0
0.9
0.8
10
0.55
0.6
0.65
0.75
0.8
0.85
0.9
1.0
0.9
12
0.45
0.5
0.55
0.65
0.7
0.75
0.8
0.9
1.0
Budowa tablicy podobiestw, poniewa opiera si na ustalaniu wartoci funkcji
przynalenoci, równie uzaleniona jest od indywidualnych preferencji uytkownika.
2.3. Nieprecyzyjne (rozmyte) kwantyfikatory
W zapytaniu twardym kwantyfikatorem domylnym jest kwantyfikator wszyscy
lub w przypadku zaprzeczenia kwantyfikator Īaden.
Zazwyczaj nie szukamy wszystkich handlowców, których poziom obrotów był niszy ni
1400,00zł tylko handlowców, których poziom obrotów był niszy ni 1400,00zł. Rozmyty jzyk
zapyta daje nam moliwo zapytania o prawie wszystkich handlowców, których poziom
obrotów był niszy ni 1400,00zł.
Zapytanie rozmyte moe mie posta:
SELECT A.IMIE, A.NAZWISKO
FROM
HANDLOWCY A, OBROTY B
WHEREA.NR_H=B.NR_H AND 0.8 B.OBROTY =<1400,00
W przypadku rozmytych kwantyfikatorów współczynnik moemy traktowa jako 80% krotek
spełniajcych podany warunek. W tym przypadku musimy policzy liczb wszystkich krotek
danej relacji i poda 80% z nich jako odpowied. Powyszy przykład cile koresponduje z opcj
zapytania narzucajc nam maksymalna liczb krotek. Jeeli chcemy pozna piciu handlowców
z takimi obrotami zapytamy:
SELECT 5 A.IMIE, A.NAZWISKO
FROM
HANDLOWCY A, OBROTY B
WHEREA.NR_H=B.NR_H AND B.OBROTY =<1400,00
Zastosowanie kwantyfikatora rozmytego nabiera innego znaczenia, jeeli np. interesuj nas
oddziały, w których nie pracują prawie Īadne kobiety. Zapytanie rozmyte formułujemy
nastpujco:
SELECT ODDZIAŁ
FROM
ODDZIAŁ
WHERENR_OD NOT IN
(SELECT DISTINCT A.NR_OD
FROM
ODDZIAŁ A, HANDLOWCY B
WHEREA.NR_H=B.NR_H AND 0.8 B.PŁE=’K’)
Po przyjciu współczynnika 0.8 jako 80% krotek spełniajcych podany warunek szukamy
wszystkich oddziałów, w których zatrudnionych jest 80% mczyzn.
2.4. Operatory kompensacyjne
Operatory kompensacyjne, najczciej w postaci redniej geometrycznej, maj zastosowanie w
przypadku łczenia predykatów i okrelaj ich wspólny stopie przynalenoci. Jeeli obiektem
zainteresowania uytkownika systemu s szczególnie ci handlowcy, którzy mało sprzedaj, ale nie
duo mniej ni w poprzednim okresie, to po zdefiniowaniu pojcia "nie duo mniej" jako mniej
56
Magdalena LipiĔska
Transformacja zapytaĔ rozmytych do bazy danych na zapytania w standardzie SQL
wicej 10% i bardzo słaby poziom obrotów czyli 3000,00zł moemy sformułowa nastpujce
pytanie:
SELECT A.IMIE, A.NAZWISKO
FROM
HANDLOWCY A, OBROTY B
WHERE A.NR_H=B.NR_H AND B.OBROTY =3000,00 AND B.SPADEK=<10
W praktyce jednak nie otrzymamy pełnych informacji o wydajnoci pracowników, gdy na
licie nie znajd si ci, których obroty spadły o 11% niezalenie od obecnego ich poziomu. Jest to
oczywicie wynik działania operatora logicznego "AND" w zastosowanej logice klasycznej. Po
ustaleniu progu reakcji dla operatora kompensacyjnego 0.5 zapytanie rozmyte przyjmuje tak
posta:
SELECT A.IMIE, A.NAZWISKO
FROM
HANDLOWCY A, OBROTY B
WHERE
A.NR_H=B.NR_H AND B.OBROTY=3000,00 0.5 AND
B.SPADEK=<10
Po zdefiniowaniu funkcji przynalenoci dla atrybutów „obroty” (tab. 5), aby móc otrzyma
odpowied musimy jeszcze zdefiniowa funkcj okrelajca stopie przynalenoci spadku
obrotów S do zbioru spadków obrotów „nie duo mniej”. Spadek obrotów mniejszy ni 5%
moemy traktowa jako bardzo mało zatem w tym przypadku warto szukanej funkcji wynosi 1
(F2 = l dla S < =5). Warto spadku obrotów powyej 15% moe by rozpatrywana ju w
kategoriach wikszego spadku, zatem dla takich spadków obrotów funkcja przyjmie warto 0 (F2
= 0 dla S > = 15). Spadek obrotów z przedziału pomidzy 5% a 15% wraz ze swoim wzrostem
przyjmuje coraz mniejsze wartoci funkcji: F2 = (15 – S)/10 dla 5 < S <15 (tab.7).
Tabela 7
Funkcja przynalenoci spadku obrotów do zbioru rozmytego spadków „nie duo mniej”
Spadek[%]
F2
5
1,0
6
0,9
7
0,8
8
0,7
9
0,6
10
0,5
11
0,4
12
0,3
13
0,2
14
0,1
Po zastosowaniu redniej geometrycznej (tab. 8) zauwaamy wówczas, e nawet handlowiec
(012) majcy obroty a 3710,00 zł jest dla nas "wany", jeli jego spadek obrotów jest na
poziomie tylko 6%. W wyniku takiego zapytania otrzymamy take handlowca (003), którego
obroty spadły a o 12%, ale obecny poziom jego obrotów wynosi tylko 2870,00zł.
Tabela 8
Przykład zapisu relacji danych rozmytych z funkcjami przynalenoci F1, F2
Nr_h
F1
F2
rednia
geometryczna
001
0,00
1,00
0,00
002
0,00
1,00
0,00
003
0,87
0,30
0,51
004
0,00
1,00
0,00
005
0,00
1,00
0,00
006
1,00
0,50
0,70
007
0,00
0,80
0,00
008
0,54
1,00
0,73
POLSKIE STOWARZYSZENIE ZARZĄDZANIA WIEDZĄ
Seria: Studia i Materiały, nr 2, 2004
009
0,00
1,00
0,00
010
0,00
0,70
0,00
011
0,25
0,60
0,39
012
0,29
0,90
0,51
57
3. Podsumowanie
W relacjach rozmytych spotykamy si ze zjawiskiem wystpowania czciowego tzn., e dana
krotka moe wystpowa w jakim stopniu (krotki waone). Rozwaajc poziom "wanoci"
handlowca mona zbudowa tak relacj, która wraz z poprzednio okrelon tabel podobiestw
umoliwi formułowanie bardziej rozbudowanych zapyta do bazy danych. W skrajnych
przypadkach moe ona przybiera nietypow dla logiki konwencjonalnej posta typu: "W jakim
stopniu dobry jest zły handlowiec?" lub "W jakim stopniu "wyróniajcy" jest poziom "cennoci"
handlowca okrelanego mianem "krytyczny"?".[7]
Róne preferencje uytkowników rozmytego jzyka zapyta determinuj mnogo rozwiza,
co zwiksza uyteczno i podnosi gotowo informacyjn systemu baz danych. Uniwersalne
zastosowanie takich systemów wymaga elastycznych narzdzi komunikacji i tu szczególny nacisk
naley połoy na interakcj uytkownika w trakcie formułowania zapytania. Problem dotyczy
przede wszystkim okrelenia nieprecyzyjnych wartoci atrybutów tzn. budowy tablic podobiestw
i definiowaniu osobistych funkcji przynalenoci. Wysokiej klasy rozmyty jzyk zapyta powinien
take, poza przechowywaniem informacji o preferencjach uytkownika, uwzgldnia ich zmiany
w czasie
Bibliografia
1. Kolman R., "InĪynieria jakoĞci", PWE, Warszawa, 1992.
2. Zadeh L.A., "Fuzzy Sets as a basis for a theory of possibility", "Fuzzy Sets and Systems",
1978, nr 1.
3. Zadeh L.A., "A Computational Approach to Fuzzy Quantifiers in Natural Languages",
"Computational Mathematics applications", 9, 1983, nr 1.
4. Celko J., “SQL zaawansowane techniki programowania”, Wydawnictwo
MIKOM,Warszawa 1999
5. Kacprzyk J., Ziółkowski A., „Database queries with fuzzy linguistic quantifiers” IEEE
Transactions on Systems, Man and cybernetics. SMC, 1986
6. Piegat A., „Modelowanie i sterowanie rozmyte”, Akademicka Oficyna Wydawnicza Exit,
Warszawa 1999
7. Lipiska M., „Zastosowanie logiki rozmytej w systemach baz danych”, Materiały VII
Sesji Naukowej Informatyki, Szczecin 2002
MAGDALENA LIPI
SKA
e-mail: [email protected]
Zakład Systemów Informatycznych Zarzdzania
Wydział Informatyki Politechniki Szczeciskiej
ul. ołnierska 49 71-210 Szczecin, tel. (91) 449-56-68

Podobne dokumenty