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.
System informacyjny
S = < X, A, V, >
dzieli się na podsystemyS
1, S
2, ... , S
n, gdzie:S
i= < X
i, A, V,
i>
S = S
1 S
2 ... S
n,
nS = S
i,
i = 1X
i X,
X
i= X,
i
i= X
ix A V.
i= X
iZbió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= X
ix A V.
i=
Xijest zawężeniem funkcji informacji systemu głównego wynikającym ze zmniejszonych zbiorów obiektów.
Pytanie do systemu zadawane jest w postaci normalnej:
t = t
1+ t
2+ t +...+ t
m.
Odpowiedź na pytanie jest sumą odpowiedzi na pytania składowe:
(t) = (t
1) (t
2) ... (t
m).
Jeżeli term elementarny ti dotyczy wyłącznie obiektów jednego podsystemu to pytanie jest kierowane do tego podsystemu i tam znajdowana jest odpowiedź.
(t
i) = (t
i)
Si= (t
i)
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
(t
i) = (t
i)
Si= (t
i)
Xi,
i = 1gdzie 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=
e3ii=1
gdzie:
e3i — czas znajdowania odpowiedzi w i – tym podsystemie,k
— liczba podsystemów, których dotyczy pytanie. na pytanie szczegółowe
k
og4=
n+
e4ii=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.
S1 = <X1,A,V,q> S2 = <X2,A,V,q>
S3 = <X3,A,V,q>
S4 = <X4,A,V,q>
S5 = <X5,A,V,q>
S6 = <X6,A,V,q>
S = <X,A,V,q>
Zdefiniujemy teraz odpowiednio wszystkie podsystemy:
S1 = < X1, A, V, 1 >
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>
S = <X,A,V,q>
S2 = < X2, A, V, 2 >
gdzie:
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>
S = <X,A,V,q>
S
3= < X
3, A, V,
3>
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.
S
4= < X
4, 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.
S3 = <X3,A,V,q>
S4 = <X4,A,V,q>
S = <X,A,V,q>
S = <X,A,V,q>
S
5= < X
5, 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.
S
6= < X
6, 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.
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
S6 = <X6,A,V,q>
S = <X,A,V,q>
S5 = <X5,A,V,q>
S = <X,A,V,q>
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:
S
i= < X, A
i, V
i,
i>
S = S
1 S
2 ... S
nn
S = S
ii=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.
A
i A tak, że A
i= 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.
V
i V
0 < i <= n
Funkcja informacji w podsystemach:
i= X x A
i V
i
i=
X x Aijest 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ź.
(t
j) = (t
j)
Si2. 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.
(t
j) = (t
j)
S1 (t
j)
S2 ... (t
j)
Sn3. 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
(t
j) = (t
j)
S1 (t
j)
S2 ... (t
j)
Smgdzie 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+
e5ii=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+
pi=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, a2 — Nazwisko, a3 — Imię,
a4 — Data_urodzenia, a5 — Miejsce_urodzenia, a6 — Adres_zamieszkania,
a7 — Nr_telefonu, a8 — Imię_ojca, a9 — Imię_matki,
a10 — Nazwisko_panieńskie_matki, a11 — Stan_cywilny,
a12 — Rysopis,
a13 — Stosunek_do_służby_wojskowej, a14 — Miejsce_zatrudnienia,
a15 — Wykształcenie, a16 — Karalność, a17 — Dochody, 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:
S1 = < X, A1, V1, 1 >
S2 = < X, A2, V2, 2 >
S3 = < X, A3, V3, 3 >
S4 = < X, A4, V4, 4 >
S
S2 S3 S4
S1
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, a2 — Nazwisko, a3 — Imię,
a4 — Data_urodzenia, a5 — Miejsce_urodzenia, a6 — Adres_zamieszkania, a7 — Nr_telefonu,
a8 — Imię_ojca,
a9 — Imię_matki,
a10 — Nazwisko_panieńskie_matki, a11 — Stan_cywilny,
a12 — Rysopis,
a13 — Stosunek_do_służby_wojskowej, a14 — Miejsce_zatrudnienia,
a15 — Wykształcenie, a16 — Karalność,
V1 — zbiór wartości atrybutów,
1 — funkcja informacji,
S
S1 S2 S3 S4
S1= < X, A
1, V
1,
1>
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, A
2, V
2,
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} A3 — zbiór atrybutów {a1,a14, a18,} gdzie:
a1 — Nr_pesel,
a14 — Miejsce_zatrudnienia, a18 — Stan_zdrowia.
S
S1 S2 S3 S4
S3= < X, A
3, V
3,
3>
System S4 przechowuje informacje interesujące Urząd statystyczny tj. dane osobowe.
S4 = < X, A4, V4, 4 >
gdzie:
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,
Odpowiedzi na pytania otrzymujemy odpowiednio jako odpowiedź z jednego podsystemu lub jako część wspólną odpowiedzi z kilku podsystemów.
S
S1 S2 S3 S4 S4= < X, A
4, V
4,
4>
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
S1 S2
…
Warunki łączenia systemów informacyjnych:
Zakładamy, że istnieje system funkcyjny S =<X,A,V,q> i system S 0 =<X 0 ,A 0 ,V 0 ,q 0 >.
Definicja podsystemu mówi, że S 0 jest podsystemem systemu S, gdy ten zbiór X 0 ⊆ X,
A 0 ⊆ A, oraz q 0 = q |(X0× A0) , S 0 = S| (X0× A0).
Jeżeli dany system S 0 jest podsystemem systemu S oraz zbiory obiektów są identyczne X = X 0 to powiemy, że S 0 jest podsystemem systemu S z ograniczonymi atrybutami S 0
⊆ S, S 0 = S|A 0 .
Jeżeli dany system S 0 jest podsystemem systemu S oraz zbiory atrybutów są
identyczne A = A 0 to powiemy, że S 0 jest podsystemem systemu S z ograniczonymi
obiektami S 0 ⊆ S S 0 = S| X0
MSA dla systemu po dekompozycji obiektowej
S
0⊆ S S
0= S|
X0,A = A
0,Lsa = m
1* m
2* … * m
ngdzie m
i= card V
aiLsa
S= 2 * 3 * 2 * 3 = 36 Lsa
S0= 2 * 3 * 2 * 3 = 36
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.
a b c d
X1 A1 B1 C1 D1
X2 A2 B1 C2 D3
X3 A1 B2 C1 D3
X4 A1 B2 C2 D2
X5 A2 B4 C1 D1
a b c d
X1 A1 B1 C1 D1
X2 A2 B1 C2 D3
X5 A2 B4 C1 D1
S = <X,A,V,q>
S0 = <X0,A0,V0,q0>