Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe Prelegent: Kazimierz Subieta Zespół Baz Danych i Systemów Rozproszonych IPI PAN Katedra Systemów Informacyjnych PJWSTK K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 1 Lipiec 2004 Dlaczego obiektowe bazy danych? • Modelowanie pojęciowe: – Sprzyjanie naturalnym ludzkim własnościom w zakresie percepcji i rozumienia świata. – Zmniejszenie dystansu pomiędzy modelem koncepcyjnym (biznesowym) przedsięwzięcia informatycznego a modelem implementacyjnym. • Zasada abstrakcji (enkapsulacji): – umożliwienie projektowania i zarządzania bryłami koncepcyjnymi (obiektami) bez potrzeby wnikania w ich wewnętrzną strukturę • Zasada dekompozycji – umożliwienie zdekomponowania złożonego problemu na podproblemy • Zasada ponownego użycia (otwarte-zamknięte): – umożliwienie tworzenie brył koncepcyjnych (klas) zamkniętych dla modyfikacji, ale otwartych dla rozszerzeń. K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 2 Lipiec 2004 Cechy obiektowych baz danych • • Złożone obiekty: mogą być dowolnie duże. Kolekcje: obiekty o podobnych własnościach. • • Powiązania. związki asocjacyjne między obiektami. Hermetyzacja. Rozróżnienie pomiędzy interfejsem do obiektu a implementacją obiektu; ukrywanie implementacji. • • Klasy. Cechy niezmienne dla zbiorów obiektów. Metody. Procedury wykonywane w środowisku wnętrza obiektu. Hierarchia klas i dziedziczenie: klasy szczegółowe dziedziczą niezmienniki swoich nad-klas. • • • Polimorfizm. Wywołana operacja zależy od rodzaju obiektu. Trwałość. Obiekty żyją dowolnie długo. K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 3 Lipiec 2004 Obiektowe języki zapytań • Język zapytań – interfejs dostępu i wyszukiwania w bazie danych. – Wysoki poziom abstrakcji i konceptalizacji • SQL – najbardziej popularny język zapytań do relacyjnych baz danych, uważany za główne źródło ich sukcesu – Liczne próby przeniesienia tego sukcesu na grunt obiektowych i XMLowych baz danych – dziesiątki pomysłów - ograniczonych i/lub niespójnych • Podejście stosowe (Stack-Based Approach) –podejście najbardziej konsekwentne i uniwersalne – Praca habilitacyjna (K.Subieta, 1984-89) – Bazujące na wszechstronnych praktycznych doświadczeniach – Udoskonalone i rozszerzone (w ciągu 20 lat) pod względem koncepcyjnym i dydaktycznym K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 4 Lipiec 2004 Podejście stosowe do języków zapytań • Alternatywa dla relacyjnych algebr, relacyjnych rachunków, specjalnych logik i innych pomysłów. • Założenie: języki zapytań są rodzajem języków programowania. • Uogólniony stos środowiskowy jako podstawa definicji operatorów języków zapytań. • Precyzyjna semantyka podana w formie abstrakcyjnej implementacji (semantyka operacyjna). • Duży potencjał dla optymalizacji zapytań. • Daje możliwość definiowania języków zapytań dla dowolnego modelu składu: relacyjnego, obiektowo-relacyjnego, obiektowego, XML-owego, itd. • Rozszerzenia w kierunku konstrukcji imperatywnych, procedur, funkcji, metod, perspektyw, mocnej kontroli typów. K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 5 Lipiec 2004 Język zapytań SBQL (Stack-Based Query Language) • Pełna modularność i ortogonalność • Formalna implementowalna semantyka • Abstrakcyjna składnia – posmak algebry, logiki, rachunku, itp. • Rozszerzenia w kierunku języków programowania. • Szereg implementacji: – Netul, Loqis, XML DOM, ICONS, YAOD, Objectivity/DB, BPQL, ODRA (nad rozwojem pracuje obecnie ok. 20 osób), • SBA i SBQL nauczane w PJWSTK (2 semestry, 60h wykładów + 60h laboratoriów) • Ukończona książka (ok. 530 stron) K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 6 Lipiec 2004 Przykład zapytania Firma[0..*] FZ[0..*] Nazwa Miejsce[1..*] ZF Zatrudnienie[0..*] ZP Wypłata[0..*] Ocena[1..*] PZ[0..*] Pracownik[0..*] Stan[1..*] Osoba[0..*] Nazwisko Imię[1..*] Adres[1..*] Podaj nazwiska i stanowiska pracowników pracujących w firmach zlokalizowanych w Radomiu: SBQL, model obiektowy: (Firma where ”Radom” Miejsce). FZ.Zatrudnienie.ZP.Pracownik. (Nazwisko, Stan) SQL, po odwzorowaniu powyższego schematu na model relacyjny select s.Nazwisko, w.Stan from Firma as f, Lokal as k, Zatrudnienie as z, Pracownik as p, Wyszkolenie as w, Osoba as s where k.Miejsce = “Radom” and k.NrF = f.NrF and f.NrF = z.ZF and z.ZP = p.NrP and w.NrP = p.NrP and p.NrOs = s.NrOs K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 7 Lipiec 2004 Perspektywy (views) • Określają dane wirtualne („istniejące” w wyobraźni programisty). • Są definiowane poprzez język zapytań i używane w zapytaniach. • Umożliwiają przystosowanie schematu bazy danych do wymagań użytkownika. • Ograniczają dostęp do danych. • Liczne zastosowania praktyczne dla wielu celów. • Problemy związane z perspektywami: – Uniwersalność: język perspektyw powinien dawać możliwość dowolnego odwzorowania zapamiętanych danych w dane wirtualne. – Przezroczystość dla wyszukiwania i aktualizacji. Z punktu widzenia użytkownika lub programisty nie występują jakiekolwiek różnice w operowaniu na zapamiętanych i wirtualnych danych. – Problem aktualizacji danych wirtualnych jest znany od 1974 roku, ale do czasu SBQL nie doczekał się uniwersalnego rozwiązania. – Optymalizacja: efektywna realizacja zapytań odwołujących się do perspektyw. K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 8 Lipiec 2004 Problem aktualizowalnych perspektyw • Perspektywa jest odwzorowaniem zapamiętanych danych na zasadzie „wiele do jednego”. • Stąd odwzorowanie aktualizacji danych wirtualnych na aktualizacje danych rzeczywistych zwykle nie jest jednoznaczne. – Np. jeżeli perspektywa zwraca średni zarobek pracowników, to zwiększenie średniego zarobku o 100 zł może być odwzorowane na aktualizację zapamiętanych danych na nieskończenie wiele sposobów. • Cały wysiłek teoretyków (setki prac) skupił się na ustalaniu ograniczeń, przy których perspektywę można aktualizować jednoznacznie, bez anomalii i efektów ubocznych. • Ten wysiłek jest przykładem skierowania badań na boczny, scholastyczny tor omijający rzeczywisty problem. Przez to otrzymane wyniki okazały się dla praktyki bezużuteczne. K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 9 Lipiec 2004 Rewolucyjny pomysł • Pomysł aktualizowalnych procedur polega na uzupełnieniu definicji perspektywy poprzez informacje o intencji użytkownika. – Podobnie jest w instead of trigger views systemów Oracle i SQL Server. • Pierwsza część definicji odwzorowuje zapamiętane obiekty w obiekty wirtualne (podobnie jak w SQL). Ma postać procedury funkcyjnej zwracającej byty zwane „ziarnami”. • Druga część re-definiuje generyczne operacje aktualizacyjne działające na obiektach wirtualnych. • Są to cztery procedury mające ziarno jako parametr: – – – – on_delete usuwa obiekt wirtualny, on_retrieve zwraca wartość obiektu wirtualnego, on_insert wkłada dany obiekt do wnętrza obiektu wirtualnego on_update modyfikuje obiekt wirtualny zgodnie z parametrem aktualizacji. • W ten sposób osoba definiująca perspektywę może przejąć kontrolę nad dowolną operacją wykonywaną na wirtualnym obiekcie, realizując w ten sposób w pełni zasadę przezroczystości perspektyw. – Wszystkie tzw. „kryteria aktualizowalności perspektyw” wyrzucamy do śmieci. K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 10 Lipiec 2004 Przykład aktualizowalnej perspektywy • Baza danych zawiera obiekty Prac i Dział połączone związkami PracujeW/Zatrudnia oraz Kieruje/Szef. • Obiekty wirtualne PracSzef zawierają tylko nazwisko pracownika i nazwisko szefa. • Aktualizacja nazwiska szefa ma oznaczać nie zmianę jego nazwiska, lecz przeniesienie pracownika do działu, którego szefem jest pracownik z tym nazwiskiem. create view PracSzefDef { virtual objects PracSzef { return Prac as p }; on_delete do { delete p }; create view NazwPracDef { virtual objects NazwPrac { return p.Nazwisko as n }; on_retrieve do { return n } } create view NazwSzefaDef { virtual objects NazwSzefa { return p.PracujeW.Dział.Szef.Prac.Nazwisko as s }; on_retrieve do{ return s }; on_update( NowySzef ) do { p.PracujeW := ref Dział where (Szef.Prac.Nazwisko)= NowySzef }}} Przenieś Nowaka do działu kierowanego przez Bryla: (PracSzef where NazwPrac = ”Nowak”).NazwSzefa := ”Bryl” K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 11 Lipiec 2004 Grid computing • Grid computing jest nową wersją starego marzenia o masowej równoległości przetwarzania. • Grid ma zsumować zasoby wielu (tysięcy) komputerów w jeden ogromny wirtualny komputer • Nowy termin wzbudza nowe nadzieje i nowe środki przeznaczone na realizację starego marzenia. • Wiele obecnych technologii jest mniej lub bardziej udaną realizacją tego marzenia. – – – – – CORBA, RMI, Web Services (OGSA), J2EE, .NET, ... Sieci P2P Federacyjne bazy danych (Oracle 10G) Technologie agentowe (???) ... • Nowa kultura informacyjna, w której usługa jest na pierwszym planie, zaś usługodawca na drugim (jeżeli w ogóle). K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 12 Lipiec 2004 Cztery najważniejsze problemy gridów • Przezroczystość (transparency): traktowanie rozproszonych zasobów i usług tak, jak gdyby były one wewnątrz przestrzeni adresowej jednego komputera. – przezroczystość ma wiele form: lokacji, implementacji, replikacji, fragmentacji, współbieżności, transakcji, awarii, indeksowania, ... • Bezpieczeństwo: przeciwdziałanie losowym awariom oraz możliwościom ataku z zewnętrz. • Interoperacyjność (interoperability): umożliwienie współpracy heterogenicznych platform, aplikacji, logik biznesowych i organizacji danych. • Efektywność: uzyskanie czasów przetwarzania akceptowalnych dla szerokiego kręgu użytkowników rozproszonych aplikacji. K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 13 Lipiec 2004 Od aktualizowalnych perspektyw do gridu Globalny klient 1 Globalny klient 2 Globalny klient 3 ... Schemat globalny Globalny wirtualny serwer obiektów i usług Perspektywy globalne Projektant gridu Protokół komunikacyjny Schemat integracyjny Schemat Perspektywy kontrybucyjne kontrybucyjny Schemat Perspektywy kontrybucyjne kontrybucyjny Lokalna baza danych Lokalna baza danych Lokalny serwer A obiektów i usług Lokalny serwer B obiektów i usług K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 14 ... Lipiec 2004 Podsumowanie • W tej chwili następuje konsolidacja dużej grupy badawczej wokół dobrze zdefiniowanych celów naukowych i praktycznych. • Kluczem do przebicia się na większym forum światowym jest realizacja własnego systemu o unikalnych własnościach (not „yet another”). • Mamy pomysł na taki system. Pierwsze rezultaty są osiągnięte (obiektowa baza danych, język SBQL), dalsze będą przedmiotem prac w bieżącym i przyszłym roku. • Bardzo istotne jest zabieganie o finanse. Bez nich prace implementacyjne nie nabiorą rozmachu. Szanse na granty może zwiększyć pokazanie praktycznej skuteczności. • Naszymi głównymi atutami podczas przebijania się na forum światowym są: podejście stosowe do obiektowych języków zapytań, aktualizowalne perspektywy i technologie gridowe. K.Subieta: Obiektowe bazy danych, aktualizowalne perspektywy i technologie gridowe, slajd 15 Lipiec 2004