Top Banner
Paweł Kurzawa, Delfina Kongo
34

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

Mar 01, 2019

Download

Documents

truongnhu
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 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

Paweł Kurzawa, Delfina Kongo

Page 2: 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

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.

Page 3: 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

• obiekt

• tożsamość obiektu

• klasa (hierarchia klas)

• atrybut

• metoda

• dziedziczenie

Page 4: 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

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.

Page 5: 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

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.

Page 6: 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

(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.

Page 7: 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

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ć.

Page 8: 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

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.

Page 9: 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

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.

Page 10: 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

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

Page 11: 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

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.).

Page 12: 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

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.

Page 13: 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

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ść.

Page 14: 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

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.

Page 15: 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

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.

Page 16: 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

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.

Page 17: 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
Page 18: 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
Page 19: 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

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

Page 20: 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
Page 21: 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
Page 22: 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
Page 23: 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
Page 24: 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
Page 25: 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
Page 26: 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

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).

Page 27: 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
Page 28: 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

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.

Page 29: 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
Page 30: 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
Page 31: 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
Page 32: 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

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)

Page 33: 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

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.

Page 34: 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