34
Paweł Kurzawa, Delfina Kongo

Paweł Kurzawa, Delfina Kongo - math.uni.lodz.plmath.uni.lodz.pl/~kowalcr/Bazy/Temat5.pdf · pojęciem dla obiektowości. W pracy [Subieta 1999a] obiekt jest definiowany jako abstrakcyjny

Embed Size (px)

Citation preview

Paweł Kurzawa, Delfina Kongo

Pierwsze prace nad standaryzacją Obiektowych baz danych zaczęły się w roku 1991. Stworzona została grupa do prac nad standardem, została ona nazwana Object Database Management Group ODMG. Grupa zaczęła działać formalnie jako organizacja. Pierwszy rys standardu został opublikowany w roku 1991.

• obiekt

• tożsamość obiektu

• klasa (hierarchia klas)

• atrybut

• metoda

• dziedziczenie

Obiekt (ang. object) jest podstawowym pojęciem dla obiektowości. W pracy [Subieta 1999a] obiekt jest definiowany jako abstrakcyjny byt, reprezentujący lub opisujący pewną rzecz lub pojęcie obserwowane w świecie rzeczywistym. Obiekt jest odróżnialny od innych obiektów, ma nazwę i dobrze określone granice.

Przykładami obiektów ze świata rzeczywistego są: miasto Kraków, faktura, konkretna osoba czy model samochodu. Obiektami nie są przykładowo: śnieg, woda, piasek.

(ang. object identifier) jest to unikalna wewnętrzna nazwa obiektu, nadawana automatycznie przez system i nie posiadająca znaczenia w świecie zewnętrznym. Służy on do odróżnienia obiektu od innych obiektów oraz do budowy odwołań prowadzących do obiektu.

Tożsamość obiektu (ang. identity) jest pojęciem ściśle wiążącym się ze zdefiniowanym wcześniej pojęciem identyfikatora obiektu.

Oznacza ono, iż obiekt istnieje i jest odróżnialny od innych obiektów niezależnie od jego aktualnego stanu, który może się zmieniać.

Wszystkie obiekty mające ten sam zbiór atrybutów i metod, mogą zostać zgrupowane w jednej klasie. Obiekt należy do klasy jako jej instancja (wystąpienie). Klasa stanowi wzorzec dla tworzonego obiektu. Klasa jest również bytem semantycznym, rozumianym jako miejsce przechowywania, specyfikacji i definicji takich cech grupy podobnych obiektów, które są dla nich niezmienne: atrybuty, metody, ograniczenia dostępu, dozwolone operacje na obiektach, wyjątki.

Pojęcie klasy abstrakcyjnej (ang. abstract class) jest uważane za jedno z podstawowych dla obiektowości, wzmacniające zarówno mechanizmy abstrakcji pojęciowej, jak i możliwości ponownego użycia. Klasa abstrakcyjna zawiera własności, które są dziedziczone przez jej podklasy, ale jednocześnie nie posiada bezpośrednich wystąpień obiektów. Stanowi ona wyższy poziom abstrakcji podczas rozpatrywania pewnego zestawu obiektów.

W odróżnieniu od klasy abstrakcyjnej, klasa konkretna (ang. concrete class) może posiadać bezpośrednie wystąpienia obiektów.

Atrybuty (ang. attributes), będące częścią definicji klasy, poprzez przypisywane im wartości tworzą stan obiektu. Atrybuty obiektu są analogiczne do atrybutów (kolumn) krotki relacji w relacyjnych bazach danych. Dziedziną atrybutu może być jakakolwiek klasa, wliczając w to klasy wartości pierwotnych (np. integer, string itp.).

atrybut prosty (ang. simple attribute, atomic attribute) – przechowuje dokładnie jedną wartość, będącą z punktu widzenia użytkownika wartością niepodzielną (atomową).

atrybut wskaźnikowy (ang. pointer attribute) – atrybut, którego wartością jest wskaźnik prowadzący zwykle do pewnego obiektu.

atrybut opcyjny (ang. optional attribute) – atrybut, którego wartość może być pusta, lub który może być nieobecny w konkretnym wystąpieniu obiektu. Opcyjność może dotyczyć atrybutu dowolnego rodzaju.

atrybut domyślny (ang. default attribute) – atrybut ten wiąże się pojęciowo z przedstawionym wcześniej atrybutem opcyjnym. Oznacza on wartość przyjmowaną domyślnie, o ile nie została wstawiona żadna inna wartość.

Metoda (ang. method) to procedura, funkcja lub operacja przypisana do klasy obiektów i dziedziczona przez jej podklasy. Identyfikacja stanu obiektu oraz identyfikacja zmiany stanu obiektu są możliwe dzięki metodom związanym z danym obiektem.

Komunikat (ang. message) jest sygnałem skierowanym do obiektu, wywołującym określoną metodę lub operację, którą należy wykonać na obiekcie.

Nazwa użyta w komunikacie jest nazwą wywoływanej metody. Źródłem komunikatu jest działający aktualnie program, w szczególności może to być wykonywana aktualnie metoda.

Klasy w systemie tworzą hierarchię klas (ang. class hierarchy). Oznacza to, że dla pewnej klasy A może istnieć inna klasa (jedna lub więcej) B, znajdująca się na niższym poziomie, która jest uszczegółowieniem (specjalizacją) klasy B. Natomiast klasa A, będąca na wyższym poziomie w hierarchii, jest uogólnieniem (generalizacją) klasy (klas) B. Klasa B dziedziczy wszystkie atrybuty i metody klasy A, mogąc jednocześnie posiadać własne atrybuty i metody. Określone dla klasy A atrybuty i metody są rekurencyjnie dziedziczone przez wszystkie jej podklasy.

Zmniejszenie dystansu pomiędzy fazami analizy, projektowania i implementacji

Zwiększenie poziomu abstrakcji w myśleniu

programistów i użytkowników (uzyskanie jak najmniejszej luki pomiędzy

myśleniem o rzeczywistości a myśleniem o danych i procesach, które zachodzą na danych)

Uwzględnienie informacji proceduralnej (metody) Stworzenie nowego potencjału dla ponownego

użycia

Bazy danych Oracle nie sa "czystymi" bazami obiektowymi, lecz relacyjnymi z

elementami obiektowosci – obiektowo-relacyjnymi. Jest to wynik ewolucji systemów

relacyjnych w kierunku obiektowych w celu zniwelowania niedostatków technologii

relacyjnej, szczególnie w zakresie danych multimedialnych, wprowadzenia wielu cech

obiektowosci, takich jak klasy, metody, dziedziczenie, abstrakcyjne typy danych (ADT).

Podstawowe własności obiektowo-relacyjnych Oracle stanowią typy obiektowe. Typy

obiektowe definiowane przez użytkownika, spójną strukturę danych wspólnie z

funkcjami i procedurami używanymi do manipulowania na nich. Odpowiednikiem typu

obiektowego może być pojęcie klasy w językach programowania takich, jak C++, czy Java.

Podstawowym pojęciem jest obiekt, traktowany jako kontener zawierający pewien zbiór wartości. Z obiektem związuje się zbiór specyficznych operacji do obserwacji i zmiany stanu obiektu (czyli wartości w nim zawartych).

Obiekty mogą się do siebie odwoływać

obiekty elementarne: odwołują się tylko do swoich klas

obiekty złożone: odwołują się także do innych obiektów (bezpośrednio zależą od nich)

Jedno podstawowe pojęcie do modelowania świata — obiekt.

Z obiektem związany jest jego stan i zachowanie.

Tak więc obiekty można definiować rekurencyjnie.

Na rynku ok. 25 produktów, np. GemStone, ObjectStore, ENCORE.

Proste definiowanie obiektów złożonych. Nie trzeba definiować kluczy, ich rolę pełnią

OIDy.