Języki i Środowiska Programowania Baz Danych | |
|
Pojęcie obiektu złożonego sugeruje uogólnienie, które określimy mianem relatywizmu obiektów. Motywem przewodnim relatywizmu jest uproszczenie i formalizacja pojęcia obiektu złożonego oraz zredukowanie złożoności koncepcji, składni i semantyki języków i interfejsów operujących na obiektach. Zgodnie z zasadą relatywizmu obiektów każdy obiekt złożony jest zestawem podobiektów, które mogą być złożone lub atomowe. Każdy podobiekt może być traktowany jako samodzielny obiekt. Ogólne własności dotyczące obiektów i podobiektów (reprezentacja, typowanie, dostęp, manipulacja itd.) są identyczne.
Od tej zasady nie ma wyjątków, w szczególności atomowy atrybut obiektu (np. atrybut ZAROBEK obiektu PRACOWNIK) jest także obiektem. Przyjmując zasadę relatywizmu obiektów mimo to nadal będziemy posługiwać się terminem atrybut jako pewną szczególną rolą podobiektu w ramach obiektu. Konsekwencją relatywizmu jest istnienie obiektów, które nie posiadają atrybutów (czyli obiektów atomowych), jak również obiektów, dla których nie jest istotne definiowanie klas, ponieważ są one obsługiwane wyłącznie przez metody generyczne. Relatywizm umożliwia również przypisanie atrybutu obiektu do jego własnej klasy, posiadającej własne metody. Konsekwencją relatywizmu obiektów jest również fakt, że każdy podobiekt (atrybut) musi posiadać swój unikalny identyfikator. Takie potraktowanie atrybutu jest w pełni zgodne z istotą obiektowości. Np. obiekt PRACOWNIK ma pewien zestaw przypisanych mu metod, ale jego atrybut ZDJĘCIE jest innym obiektem posiadającym własne metody, takie jak Wyświetl lub ZmieńRozmiar. Oczywisty jest fakt, że samo istnienie wartości atrybutów, ze względu na specyfikę reprezentacji, może nie mieć sensu bez określenia metod, które na tej reprezentacji działają. Dotyczy to w zasadzie wszystkich atrybutów, chociaż niektóre atrybuty są obsługiwane wyłącznie przez metody generyczne (takie jak +, -, <, =), które są wbudowane w język programowania lub język zapytań. Dla takich atrybutów nie jest istotne definiowanie ich klas. Relatywizm obiektów znacznie upraszcza model obiektowy. Posiada również istotne konsekwencje dla języków zapytań, interfejsów programistycznych oraz języków programowania, gdyż pociąga za sobą relatywizm środków definiowania danych, określania ich typów oraz środków dostępu do danych, a co za tym idzie ich znaczne uproszczenie.
Dzięki relatywizmowi środki dostarczane do dyspozycji programistów mogą być uproszczone i zredukowane do minimum, gdyż nie zachodzi np. potrzeba różnicowania środków dostępu do obiektów i do atrybutów. Z różnych innych powodów, np. indeksowania, środki te można różnicować, ale jest to drugorzędna kwestia odnosząca się do reprezentacji obiektów, a nie do ich obrazu koncepcyjnego. Relatywizm pozwala także traktować moduły lub całe bazy danych jako pojedyncze obiekty definiowane, dostępne i manipulowalne za pomocą standardowych środków. Minimalizacja ilości cech, które muszą być rozpatrywane przy definiowaniu i manipulowaniu obiektami, ma doniosłe konsekwencje dla prostoty całości interfejsu programistycznego, szybkości jego nauczania, rozmiaru dokumentacji, rozmiaru i regularności języków, złożoności modeli formalnych oraz łatwości i ogólności metod implementacyjnych. Jak dotąd, relatywizm obiektów nie jest koncepcją popularną. Brak pełnej świadomości co do znaczenia relatywizmu obiektów można uważać za przejaw niedojrzałości wielu koncepcji w zakresie obiektowości. Przy wyjaśnianiu semantyki języków zapytań będzie on dla nas obowiązujący. |
Copyrights © 2006 PJWSTK Materiały zostały opracowane w PJWSTK w projekcie współfinansowanym ze środków EFS. |