Dekompozycja w systemach wyszukiwania informacji METODY
Transkrypt
Dekompozycja w systemach wyszukiwania informacji METODY
Dekompozycja w systemach wyszukiwania informacji METODY DEKOMPOZYCJI: ATRYBUTOWA OBIEKTOWA HIERARCHICZNA (zależna i wymuszona) Dekompozycje mają cel wtedy kiedy zachodzi któryś z poniższych warunków: Duża liczba obiektów, Kiedy rozproszenie BD jest z góry narzucone Duża liczba pytao dotyczy określonych podsystemów (może to wynikad z fizycznego rozproszenia). Przy dekompozycji mamy do czynienia ze skomplikowaniem struktury BD. Dekompozycja obiektowa System informacyjny dekomponujemy obiektowo gdy w systemie tym operujemy na bardzo dużej liczbie obiektów Obiekty opisane są tymi samymi atrybutami, przy czym liczba atrybutów jest niewielka. Założenia dekompozycji obiektowej Dla dalszych rozważań przedstawiony zostanie model dekompozycji obiektowej zgodnie z założeniami systemu funkcyjnego. Został on przyjęty, ponieważ opis obiektów oraz przyjęta metoda wyszukiwania oparte są o system funkcyjny. = < X, A, V, > dzieli się na podsystemy S1, S2, ... , Sn, gdzie: System informacyjny S Si = < Xi, A, V, i> S = S1 S2 ... Sn, n S = Si, i = 1 Xi X, Xi = X, i i = Xi x A V. i = Xi Zbiór obiektów X w systemie S jest .sumą podzbiorów obiektów Xi każdego podsystemu Si. Zbiory atrybutów w podsystemach Si są identyczne ze zbiorem atrybutów systemu głównego S. Funkcja informacji w podsystemach: i = Xi x A V. i = Xi jest zawężeniem funkcji informacji systemu głównego wynikającym ze zmniejszonych zbiorów obiektów. Pytanie do systemu zadawane jest w postaci normalnej: t = t1 + t2 + t +...+ tm. Odpowiedź na pytanie jest sumą odpowiedzi na pytania składowe: (t) = (t1) (t2) ... (tm). Jeżeli term elementarny ti dotyczy wyłącznie obiektów jednego podsystemu to pytanie jest kierowane do tego podsystemu i tam znajdowana jest odpowiedź. (ti) = (ti) Si = (ti) Xi Jeżeli term elementarny ti dotyczy obiektów z kilku podsystemów to pytanie jest kierowane do tych podsystemów, a odpowiedź otrzymujemy jako sumę odpowiedzi z podsystemów. m (ti) = (ti) Si = (ti) Xi, i = 1 gdzie m. - liczba podsystemów, których dotyczy pytanie. W każdym podsystemie znajduje się mniejsza liczba obiektów, niż w systemie centralnym. Aktualizacja przy tej dekompozycji jest prosta, natomiast redundancja nie występuje. Czas odpowiedzi: na pytanie ogólne k e4 = e3i i=1 gdzie: e3i k — czas znajdowania odpowiedzi w i – tym podsystemie, — liczba podsystemów, których dotyczy pytanie. na pytanie szczegółowe k og4 = n + e4i i=1 gdzie: k — liczba podsystemów, których dotyczy pytanie. W każdym podsystemie znajduje się mniejsza liczba obiektów, niż w systemie centralnym. Aktualizacja przy tej dekompozycji jest prosta, natomiast redundancja nie występuje Przykład: Przykładem tej dekompozycji może być system obsługujący bibliotekę oraz jej filie. W systemie takim obiekty zostaną podzielone na grupy, przy czym niektóre z obiektów mogą się powielać w kilku grupach. Zbiór atrybutów jest taki sam we wszystkich podsystemach. Obiekty rozróżnione są kluczem, którym jest nr_indeksu. Nasz przykładowy system może wyglądać następująco: biblioteka główna, biblioteka wydziału techniki, biblioteka wydziału nauk o ziemi, biblioteka wydziału filologii, biblioteka wydziału fizyki, biblioteka wydziału nauk społecznych. Zdefiniujmy nasz system jako czwórkę: S = < X, A, V, > gdzie: X — zbiór obiektów { x1, x2, ..., xn} A — zbiór atrybutów {a1, a2, ... a7} gdzie: a1 — Nr_indeksu, a2 — Nazwisko, a3 — Imię, a4 — Adres_zamieszkania, a5 — Nr_telefonu, a6 — Wydział, a7 — Kierunek studiów. V — zbiór wartości atrybutów, — funkcja informacji, Taki system dzielimy na podsystemy, gdzie każdy podsystem to odpowiednio: podsystem S1 to biblioteka główna, podsystem S2 to biblioteka wydziału techniki, podsystem S3 to biblioteka wydziału nauk o ziemi, podsystem S4 to biblioteka wydziału filologii, podsystem S5 to biblioteka wydziału fizyki, podsystem S6 to biblioteka wydziału nauk społecznych. S = <X,A,V,q> S5 = <X5,A,V,q> S1 = <X1,A,V,q> S2 = <X2,A,V,q> S6 = <X6,A,V,q> S4 = <X4,A,V,q> S3 = <X3,A,V,q> Zdefiniujemy teraz odpowiednio wszystkie podsystemy: S1 = < X1, A, V, 1 > S = <X,A,V,q> gdzie: X1 — zbiór obiektów { x1, x2, ..., xi} A — zbiór atrybutów {a1, a2, ... a7} gdzie: a1 — Nr_indeksu, a2 — Nazwisko, a3 — Imię, a4 — Adres_zamieszkania, a5 — Nr_telefonu, a6 — Wydział, a7 — Kierunek studiów. S1 = <X1,A,V,q> S2 = < X2, A, V, 2 > gdzie: S = <X,A,V,q> X2 — zbiór obiektów { xi+1, xi+2, ..., xj} A — zbiór atrybutów {a1, a2, ... a7} gdzie: a1 — Nr_indeksu, a2 — Nazwisko, a3 — Imię, a4 — Adres_zamieszkania, a5 — Nr_telefonu, a6 — Wydział, a7 — Kierunek studiów. S2 = <X2,A,V,q> S3 = < X3, A, V, 3 > S = <X,A,V,q> gdzie: X3 — zbiór obiektów { xj+1, xj+2, ..., xk} A — zbiór atrybutów {a1, a2, ... a7} gdzie: a1 — Nr_indeksu, a2 — Nazwisko, a3 — Imię, a4 — Adres_zamieszkania, a5 — Nr_telefonu, a6 — Wydział, a7 — Kierunek studiów. S3 = <X3,A,V,q> S = <X,A,V,q> S4 = < X4, A, V, 4 > gdzie: X4 — zbiór obiektów { xk+1, xk+2, ..., xp} A — zbiór atrybutów {a1, a2, ... a7} gdzie: a1 — Nr_indeksu, a2 — Nazwisko, a3 — Imię, a4 — Adres_zamieszkania, a5 — Nr_telefonu, a6 — Wydział, a7 — Kierunek studiów. S4 = <X4,A,V,q> S = <X,A,V,q> S5 = < X5, A, V, 5 > X5 — zbiór obiektów { xp+1, xp+2, ..., xq} A — zbiór atrybutów {a1, a2, ... a7} gdzie: a1 — Nr_indeksu, a2 — Nazwisko, a3 — Imię, a4 — Adres_zamieszkania, a5 — Nr_telefonu, a6 — Wydział, a7 — Kierunek studiów. S5 = <X5,A,V,q> S = <X,A,V,q> S6 = < X6, A, V, 6 > X6 — zbiór obiektów { xq+1, xq+2, ..., xn} A — zbiór atrybutów {a1, a2, ... a7} gdzie: a1 — Nr_indeksu, a2 — Nazwisko, a3 — Imię, a4 — Adres_zamieszkania, a5 — Nr_telefonu, a6 — Wydział, a7 — Kierunek studiów. S6 = <X6,A,V,q> Odpowiedzi otrzymujemy z jednego podsystemu - gdy pytanie dotyczy obiektów z jednego podsystemu, lub jako sumę odpowiedzi z kilku podsystemów jeżeli pytanie dotyczy obiektów z kilu podsystemów Dekompozycja atrybutowa W systemie można dokonać dekompozycji atrybutowej gdy np. użytkowników systemu da się podzielić ze względu na rodzaj zadawanych pytań. Pytania pojedynczego użytkownika ( lub grupy użytkowników ), dotyczą innych grup atrybutów systemu S, lecz tego samego zbioru obiektów. Założenia dekompozycji atrybutowej Dla dalszych rozważań przedstawiony zostanie model dekompozycji atrybutowej zgodnie z założeniami systemu funkcyjnego. Został on przyjęty, ponieważ opis obiektów oraz przyjęta metoda wyszukiwania oparte są o system funkcyjny. System informacyjny S = < X, A, V, > dzieli się na podsystemy S1, S2, ... , Sn, gdzie: Si = < X, Ai, Vi, i > S = S1 S2 ... Sn n S = Si i=1 Zbiór obiektów X w każdym podsystemie jest identyczny ze zbiorem obiektów w systemie S. Zbiory atrybutów podsystemów są podzbiorami zbioru atrybutów systemu głównego S, a suma tych podzbiorów (z każdego podsystemu), daje pełny zbiór atrybutów systemu S. Ai A tak, że Ai = A 0 < i <= n i Zbiory wartości atrybutów w podsystemach są podzbiorami zbioru wartości systemu S, co wynika bezpośrednio z faktu ograniczenia w podsystemach zbioru atrybutów, a nie jest absolutnie związane z obcięciami zbiorów wartości dla poszczególnych atrybutów. Vi V 0 < i <= n Funkcja informacji w podsystemach: i = X x Ai Vi i = X x Ai jest zawężeniem funkcji informacji systemu głównego wynikającym ze zmniejszonych zbiorów atrybutów i wartości atrybutów. W każdym podsystemie Si systemu S jest określony inny zbiór deskryptorów D, oraz w ramach podsystemu możliwe jest stosowanie wybranej metody wyszukiwania informacji Wyszukiwanie informacji w systemie z dekompozycją atrybutową Pytanie do systemu zadawane jest w postaci normalnej. Odpowiedź na pytanie składowe otrzymać możemy na dwa sposoby: 1. Gdy dotyczy ono wyłącznie atrybutów z jednego podsystemu jest kierowane do tego podsystemu i tam znajdowana jest odpowiedź. (tj) = (tj)Si 2. Gdy atrybuty pytania składowego należą do różnych podsystemów, wówczas pytanie kierowane jest do podsystemów przez obcinanie zbioru atrybutów w danych podsystemach. Odpowiedzią końcową na term składowy jest przecięcie zbioru obiektów stanowiących odpowiedź z podsystemów. (tj) = (tj)S1 (tj)S2 ... (tj)Sn 3. Jeżeli możliwe jest określenie, do których podsystemów należy zadać pytanie, tzn. do których podsystemów należą atrybuty pytania, to odpowiedzią na nie będzie część wspólna odpowiedzi z wybranych podsystemów (tj) = (tj)S1 (tj)S2 ... (tj)Sm gdzie m < n W każdym podsystemie znajduje się mniejsza liczba atrybutów, niż w systemie centralnym, tym samym krótsze są opisy obiektów. Aktualizacja przy tej dekompozycji jest znacznie utrudniona, natomiast redundancja w ramach podsystemów zależy od przyjętej metody wyszukiwania informacji, a w ramach całego systemu wzrasta ze względu na występowanie obiektu w każdym podsystemie. Czas odpowiedzi: na pytanie ogólne k og5 = ni + e5i i=1 gdzie: ni — czas niezbędny na ewentualną normalizację termu w podsystemie, k — liczba podsystemów, których dotyczy pytanie. na pytanie szczegółowe k e5 = e3i + p i=1 gdzie: p — czas niezbędny na znalezienie części wspólnej odpowiedzi z podsystemów. W każdym podsystemie znajduje się mniejsza liczba atrybutów, niż w systemie centralnym, tym samym krótsze są opisy obiektów. Aktualizacja przy tej dekompozycji jest znacznie utrudniona, natomiast redundancja w ramach podsystemów zależy od przyjętej metody wyszukiwania informacji, a w ramach całego systemu wzrasta ze względu na występowanie obiektu w każdym podsystemie. Przykład: Na potrzeby przykładu zdefiniujemy system zawierający kompleksową informacje o każdym obywatelu zamieszkującym dany kraj. System udziela informacji odpowiednim grupom użytkowników mających dostęp tylko do wybranych informacji np. Policja ma dostęp do danych personalnych oraz do kartoteki karnej, Urząd skarbowy ma dostęp do części danych osobowych oraz do danych o sytuacji materialnej, Służba zdrowia ma dostęp do danych medycznych, Urząd statystyczny ma dostęp do części danych personalnych Obiekty rozróżnione są kluczem, którym jest Nr_pesel. Definiujemy system jako czwórkę S = < X, A, V, > gdzie: X — zbiór obiektów { x1, x2, ..., xn} A — zbiór atrybutów {a1, a2, ... a17} gdzie: a1 — Nr_pesel, a7 — Nr_telefonu, a13 — Stosunek_do_służby_wojskowej, a2 — Nazwisko, a8 — Imię_ojca, a14 — Miejsce_zatrudnienia, a3 — Imię, a9 — Imię_matki, a15 — Wykształcenie, a4 — Data_urodzenia, a10 — Nazwisko_panieńskie_matki, a16 — Karalność, a5 — Miejsce_urodzenia, a11 — Stan_cywilny, a17 — Dochody, a6 — Adres_zamieszkania, a12 — Rysopis, a18 — Stan_zdrowia. V — zbiór wartości atrybutów, — funkcja informacji, Ponieważ mamy cztery grupy użytkowników, którzy potrzebują informacje o różnych sprawach, dlatego aby ułatwić im pracę i przyspieszyć czas wyszukiwania dzielimy system na cztery podsystemy: S S1 = < X, A1, V1, 1 > S2 = < X, A2, V2, 2 > S3 = < X, A3, V3, 3 > S4 = < X, A4, V4, 4 > S1 S2 S3 S4 System S1 przechowuje informacje interesujące Policję tj. dane personalne osoby oraz informacje o karalności osoby. S1 = < X, A1, V1, 1 > gdzie: X — zbiór obiektów { x1, x2, ..., xn} A1 — zbiór atrybutów {a1, a2, ... a16} gdzie: a1 — Nr_pesel, a9 — Imię_matki, a2 — Nazwisko, a10 — Nazwisko_panieńskie_matki, a3 — Imię, a11 — Stan_cywilny, a4 — Data_urodzenia, a12 — Rysopis, a5 — Miejsce_urodzenia, a13 — Stosunek_do_służby_wojskowej, a6 — Adres_zamieszkania, a14 — Miejsce_zatrudnienia, a7 — Nr_telefonu, a15 — Wykształcenie, a8 — Imię_ojca, a16 — Karalność, V1 — zbiór wartości atrybutów, 1 — funkcja informacji, S S1 S1= < X, A1, V1, 1 > S2 S3 S4 System S2 przechowuje informacje interesujące Urząd skarbowy tj. dane osobowe oraz informacje o dochodach danej osoby. S2 = < X, A2, V2, 2 > gdzie: X — zbiór obiektów { x1, x2, ..., xn} A2 — zbiór atrybutów {a1,a14, a15, a17} gdzie: a1 — Nr_pesel, a14 — Miejsce_zatrudnienia, a15 — Wykształcenie, a17 — Dochody V2 — zbiór wartości atrybutów, 2 — funkcja informacji, S S1 S2 S3 S4 S2= < X, A2, V2, 2 > System S3 przechowuje informacje interesujące Służbę zdrowia tj. dane osobowe oraz informacje o stanie zdrowia danej osoby. S3 = < X, A3, V3, 3 > gdzie: X — zbiór obiektów { x1, x2, ..., xn} S A3 — zbiór atrybutów {a1,a14, a18,} gdzie: a1 — Nr_pesel, a14 — Miejsce_zatrudnienia, a18 — Stan_zdrowia. S1 S2 S3 S4 S3= < X, A3, V3, 3 > System S4 przechowuje informacje interesujące Urząd statystyczny tj. dane osobowe. S4 = < X, A4, V4, 4 > gdzie: S X — zbiór obiektów { x1, x2, ..., xn} A4 — zbiór atrybutów {a1,a13, a15,} gdzie: a1 — Nr_pesel, a13 — Stosunek_do_służby_wojskowej, a15 — Wykształcenie, S1 S2 S3 S4 S4= < X, A4, V4, 4 > Odpowiedzi na pytania otrzymujemy odpowiednio jako odpowiedź z jednego podsystemu lub jako część wspólną odpowiedzi z kilku podsystemów. Wnioski Metody te stosowane tylko w określonych przypadkach pozwalają na usprawnienie pracy tych systemów oraz na zmniejszenie czasu wyszukiwania odpowiedzi na zadane pytanie do systemu. Parametry określające zajętość pamięci oraz redundancję w systemie zależą od przyjętej metody wyszukiwania na najniższym poziome zdekomponowanego systemu. Łączenie podsystemów w jeden system S S2 S1 … Warunki łączenia systemów informacyjnych: Zakładamy, że istnieje system funkcyjny S =<X,A,V,q> i system S0=<X0,A0,V0,q0>. Definicja podsystemu mówi, że S0 jest podsystemem systemu S, gdy ten zbiór X0 ⊆ X, A0 ⊆ A, oraz q0= q|(X0× A0), S0= S|(X0× A0). Jeżeli dany system S0 jest podsystemem systemu S oraz zbiory obiektów są identyczne X = X0 to powiemy, że S0 jest podsystemem systemu S z ograniczonymi atrybutami S0 ⊆ S, S0 = S|A0 . Jeżeli dany system S0 jest podsystemem systemu S oraz zbiory atrybutów są identyczne A = A0 to powiemy, że S0 jest podsystemem systemu S z ograniczonymi obiektami S0 ⊆ S S0= S|X0 MSA dla systemu po dekompozycji obiektowej S0 ⊆ S S0= S|X0, A = A0, Lsa = m1 * m2 * … * mn gdzie mi = card Vai LsaS = 2 * 3 * 2 * 3 = 36 LsaS0 = 2 * 3 * 2 * 3 = 36 S = <X,A,V,q> a b c d X1 A1 B1 C1 D1 X2 A2 B1 C2 D3 X3 A1 B2 C1 X4 A1 B2 X5 A2 B4 S0 = <X0,A0,V0,q0> a b c d X1 A1 B1 C1 D1 D3 X2 A2 B1 C2 D3 C2 D2 X5 A2 B4 C1 D1 C1 D1 Uwaga! Najczęściej gdy już dokonuje się dekompozycji obiektowej to stosuje się z góry modyfikację dodatkową z pamiętaniem tylko niepustych składowych atomowych, więc siłą rzeczy finalnie tych składowych atomowych powstałych będzie MNIEJ dla S0 niż S. MSA dla systemu po dekompozycji atrybutowej S0 ⊆ S S0= S|A0, X = X0, Lsa = m1 * m2 * … * mn gdzie mi = card Vai LsaS = 2 * 3 * 2 * 3 = 36 LsaS0 = 2 * 3= 6