Rozdział monografii: `Bazy Danych: Struktury, Algorytmy, Metody
Transkrypt
Rozdział monografii: `Bazy Danych: Struktury, Algorytmy, Metody
Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Rozdział 13 w Projektowanie sensorowych baz danych 1 Wstęp da .b w w Streszczenie. Bezprzewodowe sieci sensorowe są powszechnie używane dla przeprowadzania pomiarów, detekcji: osób, zwierząt lub rzeczy, znajdowania uszkodzonych elementów urządzeń, monitorowania mostów, hal, automatycznego zliczania towarów itp. W rozdziale tym przedstawiono zasady projektowania tzw. sensorowych baz danych, które są implementowane w tego rodzaju radiowych sieciach komputerowych. Opisano w nim model sensorowej bazy danych, podano typy stosowanych zapytań, jak również koncepcję ich optymalizacji, biorącej pod uwagę koszty transmisji danych. pl s. Bezprzewodowe sieci sensorowe (ang. wireless sensor networks) [1] są nową technologią rozwijaną w ramach radiowych sieci komputerowych, których węzłami są sensory (ang. sensors) losowo rozmieszczone w tzw. polu sensorowym (ang. sensor field). Każdy z nich zawiera czujnik, pozwalający na ciągły lub okresowy pomiar wybranej wielkości, radiowe urządzenie nadawczo-odbiorcze oraz procesor wraz z pamięcią RAM, która umożliwia przechowywanie danych. Komunikacja w tego rodzaju systemach odbywa się za pośrednictwem łączy radiowych, przy czym preferowane są połączenia jednoskokowe (ang. one hop connections). Oznacza to, że poszczególne sensory pośredniczą w przesyłaniu danych, co jest związane z dodatkowym wydatkowaniem energii każdego sensorów. Sensorowe bazy danych (ang. sensor database) [2], [3] są definiowana jako zbiór powiązanych ze sobą zasobów trwałych danych. Miejsca ich przechowywania są oddalone geograficznie od siebie i połączone poprzez specyficzną sieć radiową. Z punktu widzenia programisty rozproszone zasoby są traktowane jako scentralizowana baza danych. Podstawowym warunkiem poprawnej eksploatacji tego rodzaju baz danych jest zagwarantowanie przezroczystości (ang. transparency) rozproszenia, która jest rozumiana jako fakt, że z dowolnego miejsca pola sensorowego lub spoza niego sensorowa baza danych jest widziana jako scentralizowana baza danych. Innym wymogiem nakładanym na sensorową bazę danych jest zapewnienie małego czasu dostępu do danych, minimalizacja energii związanej z przesyłaniem danych oraz zagwarantowanie bezpieczeństwa i niezawodności w tego rodzaju bazie danych. Sensorowe bazy danych zostały po raz pierwszy zaproponowane w pracach [2], [3], a następnie wdrożone [4]. Jednym z tego rodzaju systemów jest baza danych TinyDB [5], Jerzy Martyna: Uniwersytet Jagielloński, Instytut Informatyki, ul. Nawojki 11, 30-072 Kraków, Polska email: [email protected] (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 J. Martyna w która zezwala na używanie w sieciach sensorowych zapytań SQL. W odpowiedzi na nie sensory przesyłają zwinięte (zagregowane) wartości. Odpowiednio dobrane filtry pozwalają znaleźć poszukiwane parametry. Pomimo to przedstawione w powyższej pracy rozwiązanie nie bierze pod uwagę zagadnień optymalizacji przetwarzania zapytań. W nowszych pracach, m.in. w [6], przedstawiono koncepcję sensorowej bazy danych zaimplementowanej w oparciu o specjalny mechanizm rozpowszechniania (ang. dissemination mechanism), polegający na rozsyłaniu komunikatów o odpowiednio dobranych parametrach. W innym rozwiązaniu [7] zaproponowano dla przesyłania danych specjalnie dobrane algorytmy dla propagacji wybranych atrybutów zapytań. Umożliwia to redukcję liczby przesyłanych danych, co ma duże znaczenie w sieciach sensorowych. Dużym utrudnieniem tych implementacji była potrzeba zastosowania specjalnego translatora dla używanych atrybutów danych. Celem niniejszego rozdziału jest wprowadzenie nowego schematu zapytań dla sensorowych baz danych. Umożliwia on przede wszystkim uzyskiwanie danych z tego rodzaju baz danych, jak również minimalizację kosztów transferu danych. Bierze też pod uwagę uszkodzenia połączeń itp. W kolejnych podrozdziałach przedstawiono model sensorowej bazy danych, rodzaje zapytań stosowane w tego rodzaju bazach danych oraz szacowanie kosztów przetwarzania zapytań. We wnioskach podsumowano uzyskane rezultaty oraz podano dalsze kierunki prowadzenia badań. da .b w w 2 Model sensorowych baz danych Opis modelu sensorowej baz danych wymaga scharakteryzowania tego rodzaju baz danych. Można podać następującą definicję. pl s. Definicja 1 Sensorową bazę danych nazywa się rozproszoną relacyjną bazę danych z relacjami umieszczonymi w różnych węzłach bezprzewodowej sieci sensorowej, którymi są pojedyncze sensory. Dla potrzeb sensorowych baz danych określa się relację w sposób następujący: Definicja 2 Relacją R[X] nazywa się dwuwymiarową tablicę, której każda kolumna ma jednoznaczną nazwę (atrybut) w jej ramach, natomiast wszystkie wartości w niej są tego samego typu. Każdy wiersz w relacji jest różny. Przyjmuje się, że na jednym polu relacji nie jest dozwolony zbiór wartości, czyli inaczej każde pole relacji musi zawierać wartość atomową. Zakłada się, że liczność relacji (ang. cardinality) jest liczbą krotek (wierszy) danej relacji. Bardzo istotnym w przypadku sensorowych baz danych jest położenie każdej relacji w tego rodzaju bazie danych. Przyjmuje się, że miejsce danej relacji jest jednoznacznie podane przez adres lokalizacji sensora (ang. loction-based address) sensora w sieci sensorowej. W tak określonej sensorowej bazie danych mogą być dostępne następujące operacje: projekcja, selekcja, złączenie, półzłączenie (ang. semijoin). Można je zdefiniować następująco: 128 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Projektowanie sensorowych baz danych w Definicja 3 Mianem projekcji określa się operację wybrania podanych kolumn ze wszystkich wierszy danej relacji R. Projekcja relacji R na zbiór atrybutów T jest zapisywana jako R.T, gdzie R jest relacją ze schematem X, a T jest podzbiorem X. Jako wynik projekcji otrzymuje się te kolumny, które pozostają po odrzuceniu kolumn nie należących do T, a następnie po usunięciu, o ile istnieją, wszystkich powtórzeń Operator projekcji oznacza się jako Π a1 ,a2 ,...,am ( R ) , gdzie a1 , a 2 ,..., a m to atrybuty. w w Definicja 4 Operacja selekcji polega na wybraniu z relacji R wszystkich wierszy, które spełniają pewien warunek nazywany predykatem. Ma on postać wyrażenia op, gdzie op jest jednym z operatorów porównania {<, ≤, <>, ≥, > }, a wyrażenie jest nazwą kolumny, stałą albo znakowym lub arytmetycznym wyrażeniem. Operacja złączenia może być zdefiniowana w sposób następujący: Definicja 5 Definicja 6 da .b Operacją złączenia relacji R1 z relacją R2 poprzez atrybut A jest relacją oznaczaną jako R1 A R2, gdzie R1 oraz R2 są złączonymi relacjami, natomiast atrybut A jest atrybutem złączenia. Złączenie jest uzyskiwane przez konkatenację każdego wiersza z R1 z każdym wierszem relacji R2, ilekroć wartości atrybutu A dla tych dwóch wierszy są równe. Gdy w wyniku uzyskuje się dwie identyczne kolumny, to wtedy jedna z nich ulegnie likwidacji. Dla sensorowych baz danych można zdefiniować półzłączenie, które za [8], [9] jest następujące: Półzłączenie relacji R1 z relacją R2 poprzez atrybut A jest uzyskiwane poprzez złączenie R1 oraz R2 poprzez atrybut A , a następnie projekcję wynikową relacji na schemat R1, czyli R1 A R2 = Π x ( R1 A R2 ) . pl s. Działanie operacji półzłączenia ilustruje poniższy przykład. Przykład 1 Niech będą dane dwie relacje Pomiary oraz Temperatura (tabele 1, 2). Operację półzłączenia relacji Pomiary z relacją Temperatura uzyskuje się poprzez atrybut id_sensora. Tabela 1. Przykładowa relacja Pomiary id_sensora 25 36 48 id_klastra 1 2 3 wartość_pH 6 8 7 wilgotność 60 55 75 ciśnienie 4 at. 2.5 at. 3.2 at. 129 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 J. Martyna Tabela 2. Przykładowa relacja Temperatura w Korzystając z R1 (tabela 3). A id_sensora 25 id_klastra 1 temperatura 46 3 25 C 25 4 20 C R2 = Π A ( R1 ) o 18 C o o R2 po projekcji Pomiary otrzymuje się wynik w w Tabela 3. Wynik projekcji Pomiary poprzez atrybut id_sensora id_sensora 25 36 48 Po złączeniu wyniku projekcji z relacją Pomiary uzyskuje się wynik półzłączenia (tabela 4). da .b Tabela 4. Półzłączenie otrzymane w wyniku projekcji relacji Pomiary poprzez atrybut id_sensora z relacją Temperatura id_sensora 25 id_klastra 1 temperatura 25 4 20 C 48 3 25 C o 18 C o o Może być również przeprowadzone półzłączenie relacji Temperatura i relacji Pomiary. Wówczas korzystając z R1 R2 po projekcji relacji Temperatura A R2 = Π A ( R1 ) poprzez atrybut id_sensora uzyskuje się (patrz tabela 5). pl s. Tabela 5. Wynik projekcji Temperatura poprzez atrybut id_sensora id_sensora 25 48 Po złączeniu wyniku projekcji z relacją Pomiary otrzymuje się wynik półzłączenia, czyli zredukowaną relację Pomiary (tabela 6). Tabela 6. Półzłączenie uzyskane w wyniku projekcji relacji Temperatura poprzez atrybut id_sensora z relacją Pomiary id_sensora 25 48 id_klastra 1 3 wartość_pH 6 7 wilgotność 60 75 ciśnienie 4 at. 3.2 at. 130 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Projektowanie sensorowych baz danych 3 Projektowanie zapytań w sensorowych bazach danych w Zapytania w sensorowych bazach danych mają charakter czasoprzestrzenny. Oznacza to, że są one kierowane do obszarów węzłów sensorów lub do określonych relacji. Warunkiem takiego charakteru zapytań jest ścisłe zdefiniowanie położenia sensorów, a tym samym związanych z nimi relacji. Dodatkowo niezbędnym jest przeprowadzenie synchronizacji wszystkich sensorów. Wszystkie zapytania w sensorowych bazach danych [10], [11], [12], [13] można podzielić na zapytania: proste, skupione, przybliżone i złożone. Pierwsze trzy zapytania są jednowymiarowe. Ostatnie z nich może być zapytaniem wielowymiarowym. Poniżej zostaną one pokrótce objaśnione. − Proste zapytania (ang. simple queries) polegają na sporządzaniu raportu, np. „Podaj wartość temperatury”. − Skupione zapytania (ang. aggregate queries) wymagają współdziałania pomiędzy sąsiadującymi węzłami w odniesieniu do danych. Zapytania skupione są kierowane do obszaru składającego się z wielu węzłów w geograficznie ograniczonym obszarze, np. „Podaj średnią temperaturę we wszystkich węzłach obszaru X”. − Przybliżone zapytania (ang. approximate queries) są to zapytania, które wymagają podsumowania i odpowiedzi w postaci danych przetworzonych, np. w postaci histogramu, izobar, map konturowych, tablic, wykresów itp. Na przykład takim zapytaniem jest „Sporządź raport o zanieczyszczeniach w regionie Y”. Zaletą tego rodzaju zapytań jest redukcja danych przesyłanych w sieci. Natomiast wadą jest to, że użytkownik nie może być zdolny do zanalizowania tych danych w inny sposób niż jako wyników swoich zapytań. − Złożone zapytania (ang. complex queries) są to zapytania, które w przypadku SQL składają się z wielu podzapytań. Tworzona przez nie hierarchia obliczeniowa jest dobrze reprezentowana przez drzewo zapytań (ang. query tree). Na przykład „Spośród regionów X oraz Y podaj raport o średnim ciśnieniu obszaru, który ma temperaturę da .b w w 0 pl s. powyżej 75 C”. Podzapytania w złożonym zapytaniu mogą być proste, skupione lub przybliżone. Zapytania w sensorowych bazach danych wymagają oprócz lokalnego przetwarzania także transmisji całych relacji lub ich fragmentów pomiędzy węzłami sieci sensorowej. Koszty transmisji danych (związane z utratą energii baterii sensorów) muszą brać pod uwagę wielkości przesyłanych danych potrzebnych do przeprowadzenia danej operacji. Biorąc to pod uwagę można zaprojektować stosowne algorytmy minimalizujące całkowity koszt przetwarzania zapytania. Można wyszczególnić dwa przypadki. Przypadek 1. W przypadku prostych zapytań całkowity koszt przetwarzania zapytań jest równy kosztowi transferu jednostek danych potrzebnych do odpowiedzi. Strategia przetwarzania może być przedstawiona jako graf, którego wierzchołkami są relacje, a krawędzie są półzłączeniami. Koszt strategii jest zatem sumą kosztów transmisji danych podczas wykonywania półzłączeń. Wówczas strategia przetwarzania może być przedstawiona jako R1 A R2 A ... A Rn . Oczekiwany koszt transmisji CT dla tej strategii wynosi: C T = | A | [ p1 + p1 p2 + p1 p 2 p3 + ... + p1 p 2 ⋅ pn −1 ] (1) 131 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 J. Martyna gdzie |A| jest licznością atrybutu A, pi jest selektywnością relacji R j ze względu na atrybut A. Można przyjąć, że ta strategia jest optymalna, której oczekiwany koszt jest najmniejszy spośród kosztów znalezionych dla każdego z grafów spełniających warunki podane powyżej. w Przypadek 2. Przypadek ten dotyczy wszystkich rodzajów zapytań oprócz prostego Dla zapytań skupionych, przybliżonych i złożonych można przyjąć, że mają one charakter zapytań drzewiastych. Dla znalezienia optymalnych strategii wprowadza się tutaj metodę heurystyczną, która z powodzeniem nadaje się do użycia w sensorowych bazach danych. w Algorytm 1. 1) Przeprowadza się redukcję zapytania Q do sekwencji podzapytań Q1 , Q2 ,..., Qm da .b w z co najmniej jedną wspólną zmienną pomiędzy podzapytaniami. Pojedyncze podzapytanie jest łańcuchem z dwoma węzłami lub cyklem z k węzłami. Wszystkie jego równoważne grafy zapytania mają cykle z taką samą liczbą węzłów k (k ≥ 3 ). 2) Zakłada się, że relacje mogą być dzielone na mniejsze części, które następnie mogą być przesłane do innych węzłów sieci celem przeprowadzenia operacji półzłączenia. Przyjmuje się, że koszt półzłączenia R1 A R2 jest zdefiniowany jako koszt pl s. transferu R1 . A z umiejscowienia relacji R1 do umiejscowienia relacji R2 (dla tego samego sensora ten koszt jest równy zeru). Z kolei, jeśli relacje te są o różnych rozmiarach, to bada się różnicę rozmiarów tych relacji przed i po operacji półzłączenia. Przyjmuje się tutaj, że gdy różnica ta jest większa od zera, to wtedy następuje jej akceptacja. 3) Dla wszystkich półzłączeń oblicza się sumaryczne koszty półzłączeń oraz sprawdza się, które z nich są akceptowalne. 4) Wybiera się spośród akceptowalnych półzłączeń to, które jest o najmniejszym koszcie. 5) Jeśli podzapytanie jest ostatnim w sekwencji podzapytań, to kończy się przetwarzanie. W przeciwnym razie przechodzi się do kroku 3. Działanie podanej metody ilustruje poniższy przykład. Przykład 2 Niech będzie dane zapytanie (rys. 1), które początkowo redukuje się na dwa nieredukowalne podzapytania, co zapisuje się w postaci: Q = {R2 .F | ( R1 . A = R2 . A) AND( R1 .B = R3 .B) AND( R4 .C = R3 .C ) AND ( R3 .D = R5 .D) AND( R4 .E = R5 .E )} (2) Przetwarzanie drugiego z podzapytań prowadzi do utworzenia kolejnego podzapytania, co ilustruje rys. 2. Ponieważ podzapytanie Q2 jest podzapytaniem cyklicznym, musi być podjęta decyzja, czy przetwarzać to podzapytanie w całości, czy też należy je podzielić na kolejne podzapytania. Brane są pod uwagę koszty półzłączenia. Gdyby to podzapytanie było 132 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 Projektowanie sensorowych baz danych przetwarzane kompletnie, to relacja R3 oraz R4 powinny być przesłane do sensora z relacją R5 , w którym zostanie utworzona odpowiedź na podzapytanie Q2 (rys. 3). w w Rys. 1. Dane zapytanie z przykładu 1 da .b w Rys. 2. Podzapytania Q1 , Q2 , Q3 z przykładu 1 pl s. Rys. 3. Możliwe przesłanie relacji R3 oraz R4 do sensora z relacja R5 Natomiast w przypadku podziału podzapytania Q2 na kolejne podzapytania, to wtedy należy rozpatrzyć następujące możliwości: 1) R3 → R4 → R5 2) R3 → R5 → R4 3) R4 → R5 → R3 Możliwość 1) oznacza przesłanie relacji R3 do sensora zawierającego relację R4 dla wykonania złączenia tych relacji, a następnie wykonaną relację R34 przesłać do sensora za133 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006 Rozdział monografii: 'Bazy Danych: Struktury, Algorytmy, Metody', Kozielski S., Małysiak B., Kasprowski P., Mrozek D. (red.), WKŁ 2006 J. Martyna wierającego relację R5 dla wykonania złączenia. Dla tak zdekomponowanego podzapytania musi być wyliczony koszt półzłączenia podanych relacji,. Jeśli zostanie znalezione półzłączenie, którego koszt będzie najmniejszy, to ono zostanie wykonane. 4 Wnioski w w w Projektowanie sensorowych baz danych jest przedsięwzięciem wymagającym od projektanta uwzględnienia szeregu czynników, na przykład takich jak rodzaj zapytań, możliwości ich przetwarzania związane z minimalizacją kosztów przesyłania danych. Wprowadzoną tu koncepcję projektowania sensorowych baz danych oparto o koszty półzłączenia, których minimalizacja zapewnia obniżenie zużycia energii niezbędnej do funkcjonowania tej sieci. W dalszym etapie badań zostaną wzięte pod uwagę koszty przechowywania danych w węzłach sieci sensorowej oraz wpływ uszkodzeń sensorów na działanie sensorowej bazy danych. Literatura 2. 3. 4. 5. 7. 8. 9. 10. 11. 12. 13. pl s. 6. Akyildiz I.F., Su W., Sankarasubramaniam Y., Cayirci E.: Wireless Sensor Networks: a Survey, Computer Networks, 38, 2002, s. 393 – 422. Bonnet P., Gehrke J.E., Seshadri P.: Towards Sensor Database Systems, in: Mobile Data Management, Second International Conference, Lecture Notes in Computer Science, Vol. 1987, Springer Verlag, Berlin, Heidelberg, New York, 2001, s. 3 – 14. Govindan R., Hellerstein J., Hong W., Madden S., Franklin M., Shenker S.: The Sensor Network as a Database, Technical Report 02-771, Computer Science Department, University of Southern California, September 2002. Madden S.R., Franklin M.J., Hellerstein J.M., Wei-Hong: TAG: a Tiny AGgregation Service for Ad Hoc Sensor Networks, in: Proceedings of the Fifth Symposium on Operating Systems Design and Implementation, OSDI ’02, 2002, s. 131 – 146. Gnawali O., Govindan R., Heideman J.: Implementing a Sensor Database System using a Generic Data Dissemination Mechanism, Bulletin of the IEEE Computer Society Technical Committee on Data Engineering, 2005. Buonadonna P., Gay P., Hellerstein J., Hong W., Madden S.: TASK: Sensor Network in a Box, in: Proceedings of the Second European Workshop on Wireless Sensor Networks, 2005, s. 133 – 144. Levis P., Potel N., Culler D., Shenker S.: Tricle: A Self Regulating Algorithm for Code Propagation and Maitenance in Wireless Sensor Networks, in: First Symposium on Networked Systems Design and Implementation, NSDI ’04, 2004, s. 15 – 28. Chen J.S.J., Li V.O.K.: Domain-Specific Semijoin: a New Operation for Distributed Query Processing, Information Sciences, Vol. 52, No. 2, 1990, s. 165 – 183. Perrizo W., Chen Ch.-Sh.: Composite Semijoins in Distributed Query Processing, Information Sciences, Vol. 50, No. 2, 1990, s. 197 – 218. Woo A., Madden S., Govindan R.: Networking Support for Query Processing in Sensor Networks, Communications of the ACM, June 2004, Vol. 47, No. 6, s. 47 – 52. Yao Y., Gehrke J.: The Cougar Approach to In-network Query Processing in Sensor Networks, ACM SIGMOD Record, Vol. 31, No. 3, 2002, s. 9 – 18. Deshpande A., Nath S., Gibbons Ph. B., Seshan S.: Cache-and-Query for Wide Area Sensor Databases, ACM SIGMOD Record, Vol. 32, 2003. Gehrke J., Madden S.: Query Processing in Sensor Networks, IEEE Pervasive Computing, JanMarch 2004, Vol. 3, No. 1, s. 46 – 55. da .b 1. 134 (c) Copyright by Politechnika Śląska, Instytut Informatyki, Gliwice 2006