16
K.Subieta. Bazy danych i inżynieria oprogramowania, Wykład 7, Folia 1 Bazy danych i inżynieria oprogramowania Kazimierz Subieta Instytut Podstaw Informatyki PAN, Warszawa Polsko-Japońska Wyższa Szkoła Technik Komputerowych, Warszawa Wykład 7: Wprowadzenie do standardu ODMG, część 1: Motywacje, Model obiektowy

Bazy danych i inżynieria oprogramowania

Embed Size (px)

DESCRIPTION

Bazy danych i inżynieria oprogramowania. Wykład 7: Wprowadzenie do standardu ODMG, część 1: Motywacje, Model obiektowy. Kazimierz Subieta Instytut Podstaw Informatyki PAN, Warszawa Polsko-Japońska Wyższa Szkoła Technik Komputerowych, Warszawa. Plan wykładu (część 1). - PowerPoint PPT Presentation

Citation preview

K.Subieta. Bazy danych i inżynieria oprogramowania, Wykład 7, Folia 1

Bazy danych i inżynieria oprogramowania

Kazimierz Subieta

Instytut Podstaw Informatyki PAN, Warszawa

Polsko-Japońska Wyższa SzkołaTechnik Komputerowych, Warszawa

Wykład 7:

Wprowadzenie do standardu ODMG, część 1: Motywacje, Model obiektowy

K.Subieta. Bazy danych i inżynieria oprogramowania, Wykład 7, Folia 2

Co to jest ODMG?

Krytyczne cechy obiektowych baz danych; kryteria wyboru

Cele i uwarunkowania standardu

Zawartość standardu ODMG 2.0; ramowa architektura

Model obiektowy ODMG

• Typy i klasy; interfejsy i implementacje• Podtypy i dziedziczenie

Plan wykładu (część 1)

K.Subieta. Bazy danych i inżynieria oprogramowania, Wykład 7, Folia 3

Object Database Management Group

Jest to konsorcjum powstałe w wyniku porozumienia kilkunastu firm oferujacych swoje produkty określane jako “obiektowe systemy zarządzania bazami danych”: Objectivity, ObjectDesign, Ontos, O2, Poet, Servio, Versant,, ...

Object Database Management Group

Jest to konsorcjum powstałe w wyniku porozumienia kilkunastu firm oferujacych swoje produkty określane jako “obiektowe systemy zarządzania bazami danych”: Objectivity, ObjectDesign, Ontos, O2, Poet, Servio, Versant,, ...

Pomysł, forma działania, początkowy impuls oraz obiektowy model danych pochodzi od konsorcjum OMG, która opracowała i rozwija standard CORBA. ODMG nie ma związku z oficjalnymi instytucjami normalizacyjnymi takimi jak ANSI lub ISO. Zdaniem twórców ODMG, instytucje te działają wolno, nieefektywnie i są obciążone własnymi preferencjami.

Standard ODMG budzi kontrowersje, zaś jego ogólny poziom techniczny jest przedmiotem krytyki. Wady są systematycznie usuwane w kolejnych wersjach standardu, ale nadal jest ich sporo (bedą omówione).

• ODMG-93 wersja 1.1 (grudzień 1993)• ODMG-93 wersja 1.2 (styczeń 1996)• ODMG wersja 2.0 (sierpień 1997)

Wersje:

(Morgan Kaufman Publishers)

Co to jest ODMG?

K.Subieta. Bazy danych i inżynieria oprogramowania, Wykład 7, Folia 4

System

ODB-II (Jasmine)GemStoneOdapter (Java/Depot)ITASCA (Orion)Illustra/InformixMATISSEO2ObjectStoreObjectivity/DBOmniscienceONTOS DBPersistenceIDB Object DatabasePOETUniSQLOSMOSODBMSVERSANT

Wersja

2.05.0B.05.xx2.3.53.03.05.04.0.24.13.03.23.2102.54.03.5R10.03.14.2

Firma

Fujitsu Software Corporation + Computer AssociatesGemstone Systems, Inc.Hewlett-Packard CompanyIBEX Corporation S.A.Illustra Information Technologies, Inc.MATISSE Software, Inc.O2 TechnologyObject Design, Inc.Objectivity, IncOmniscience Object Technology, Inc.ONTOS, Inc.Persistence Software, Inc.Persistent Data Systems, Inc.POET Software, Inc.UniSQL, Inc.Unisys CorporationVC Software, Inc.Versant Object Technology

Źródło: Barry & Associates, Inc., styczeń 1997, http://www.odbmsfacts.com

Kluczowi zawodnicy obiektowych BD

K.Subieta. Bazy danych i inżynieria oprogramowania, Wykład 7, Folia 5

Krytyczne cechy obiektowych baz danych: (1) Jasny, naturalny, uniwersalny, powszechnie akceptowany model danych i odpowiadający temu modelowi język opisu danych (język schematu)

Języki zapytań: zapytania interakcyjne ad hoc, zagnieżdżanie zapytań (embedding)

Programowanie poprzez języki zapytań; bezszwowa integracja języka zapytań z językiem programowani; perspektywy, zapamiętane procedury, reguły

Optymalizacja zapytań (query optimization)

Obiektowe programowanie wizyjne (visual programming)

Interfejsy (wiązania) do programowania aplikacji (API) dla popularnych języków programowania

Wygodne środowisko do tworzenia i uruchamiania aplikacji

Dynamiczna autoryzacja dostępu

K.Subieta. Bazy danych i inżynieria oprogramowania, Wykład 7, Folia 6

Krytyczne cechy obiektowych baz danych (2)

Sprawne zarządzanie pamięcią zewnętrzną, indeksowanie, buforowanie, odśmiecanie Konsekwentna organizacja i dostęp do meta-informacji (katalogów, pomocy) Rozszerzalność, skalowalność, dynamiczna ewolucja schematu Wspomaganie dla więzów integralności (integrity constraints) i aktywnych reguł (active rules) Dobrze udokumentowane, uniwersalne, elastyczne i minimalne biblioteki klas oraz inne środki ponownego użycia Wspomaganie dla materializowanych i niematerializowanych obiektowych perspektyw (object views), aktualizacja perspektyw (view updating) Bezszwowa integracja multimediów (tekst, grafika, wideo, audio)

K.Subieta. Bazy danych i inżynieria oprogramowania, Wykład 7, Folia 7

Krytyczne cechy obiektowych baz danych (3) Zintegrowanie systemu z bogatym zestawem narzędzi i udogodnień (data mining, CASE, data warehouses, pakiety statytystyczne, ...)

Zarządzanie transakcjami (własności ACID, długie transakcje)

Składowanie (backup), odwracanie (rollback) i odtwarzanie (recovery)

Wersjonowanie, własności temporalne, obiekty archiwalne

Integracja z serwisami Internetu (przystosowanie do dostępu poprzez Web)

Współdziałanie systemów heterogenicznych, przystosowanie do współpracy z z oprogramowaniem komponentowym (CORBA, OpenDoc, JavaBeans, ActiveX)

Architektura klient-serwer

Zarządzanie rozproszonymi obiektami, rozproszone przetwarzanie, optymalizacja zapytań w systemach rozproszonych

Zarządzanie metodami dostępu, parametryczne dostrajanie

K.Subieta. Bazy danych i inżynieria oprogramowania, Wykład 7, Folia 8

Kryteria oceny (obiektowych) SZBD

Wydajność (performance) - jak szybki jest produkt?

Skalowalność (scalability) - jak produkt będzie działał gdy wzrośnie liczba użytkowników i objętość danych?

Funkcjonalność (functionality) - jakie możliwości i cechy produkt oferuje?

Zgodność ze standardami - czy produkt uzależnia od jednego dostawcy?

Łatwość użycia (usability) - ile wysiłku kosztuje nauczenie się produktu i jak łatwo będzie się go używać?

Niezawodność (reliability) - jak często produkt zawodzi?

Wspomaganie (support) - czy dostawca produktu zapewnia pomoc i jest odpowiedzialny?

Środowisko (environment) - na jakim sprzęcie/systemie operacyjnym pracuje produkt?

Żywotność (viability) - czy można oczekiwać, że dostawca będzie podtrzymywał produkt w przyszłości?

Cena (price) - ile kosztuje produkt, w krótkim czasie i w oczekiwanym horyzoncie czasowym?

K.Subieta. Bazy danych i inżynieria oprogramowania, Wykład 7, Folia 9

Po co standard?

Przenaszalność (portability):Aplikacja może działać na różnych obiektowych SZBD.

Współdziałanie (interoperability):Aplikacja może działać jednocześnie z wieloma obiektowymi SZBD

Wartość dodana, synergia:Wytwórcy oprogramowania mogą skupić się na wartościach dodanych,

nie na podstawowych interfejsach Narzędzia i biblioteki wspólne dla wielu systemów (nowy rynek)Uwolnienie użytkowników od niebezpieczeństwa zależności od jednego

dostawcySzybszy wzrost przemysłu, poprzez wzrost konkurencji

w zakresie wartości dodanychKomunikacja pomiędzy użytkownikami i projektantamiUjednolicone uczenie

W tej chwili jest dość trudno ocenić, czy standard spełni te oczekiwania. Jak uczy doświadczenie standardów SQL i C++, prawdopodobnie nie spełni. Jest to jednak nieodzowny początek drogi.

K.Subieta. Bazy danych i inżynieria oprogramowania, Wykład 7, Folia 10

Co podlega standardyzacji?

InterfejsyInterfejsy Ale nie wnętrze OSZBD lub jego architekturę

Kandydaci do standardyzacji:Kandydaci do standardyzacji:

• Model obiektowy (pojęcia, ograniczenia, terminologia)• Język definicji obiektów• Format wymiany informacji (przekazywania obiektów)• Obiektowy język zapytań• Abstrakcje wspomagające język zapytań (perspektywy, zapamiętane procedury, aktywne reguły,...)• Wiązania do języków programowania: C++, Smalltalk, Java,...• Zintegrowany język programowania aplikacji oparty o język zapytań (do pisania metod)• Pomosty (gateways) do innych systemów (np. relacyjnych)• Administrację systemem, katalogi BD, dostęp do katalogów• Prawa dostępu, bezpieczeństwo• Narzędzia i usługi (klasy systemowe, biblioteki klas)• Protokóły wymiany informacji w sieci (np. IIOP)

+++/-+/--

+-

-----

Jest jeszcze wiele do zrobienia...

K.Subieta. Bazy danych i inżynieria oprogramowania, Wykład 7, Folia 11

ODMG 2.0: zawartość

• Ramowa architektura OSZBD• Model obiektowy• Języki specyfikacji obiektów - Język definicji obiektówODL (nadzbiór OMG IDL) - Format wymiany obiektów• Obiektowy język zapytań OQL (składnia wzorowana na SQL)• Wiązanie do C++• Wiązanie do Smalltalk’a• Wiązanie do Java• Dodatki - Porównanie z modelem obiektowym OMG - Obiektowe bazy danych w środowisku OMG CORBA

“Standard leży na przecięciu trzech istniejących dziedzin technologicznych: baz danych (SQL), technologii obiektowych (OMG) oraz obiektowych języków programowania (C++, Smalltalk, Java).”

K.Subieta. Bazy danych i inżynieria oprogramowania, Wykład 7, Folia 12

ODMG 2.0: podejście umiarkowanie rewolucyjne

Podejście rewolucyjne: Jednorodny model obiektowy, jednorodna architektura i język programowania baz danych, język zapytań zintegrowany z językiem programowania. Całkowite odrzucenie półśrodków takich jak C++, Java, SQL. Mocny polimorficzny system kontroli typów, ortogonalna trwałość, ortogonalność języków zapytań i trwałości.

Podejście ewolucyjne: Rozbudowa relacyjnych SZBD (DB2, Oracle, Sybase, Informix, Ingres) o nowe własności, w tym obiektowe np. BLOBy, abstrakcyjne typy danych, zapamiętane procedury. Niweczą standard SQL-92 poprzez niekompatybilne rozszerzenia

Podejście eklektyczne, odmiana podejścia ewolucyjnego: Budowa systemów obiektowo-relacyjnych, umożliwiających przechowywanie tradycyjnych tablic i obiektów. Brak kompatybilności, koncepcyjna redundancja, przypadkowość, niesystematyczność rozwiązań. SQL3 jest tu nadzieją, ale dość iluzoryczną.

Podejście “wolna amerykanka”: Spontaniczna rozbudowa “od dołu do góry” niektórych narzędzi wspomagających “małą informatykę”: arkuszy kalkulacyjnych, systemów przetwarzania dokumentów (LotusNotes, MS Repository). Standardyzacja - wątpliwa.

Podejście umiarkowanie rewolucyjne: Jednorodny model obiektowy, ale z licznymi odniesieniami do istniejących technologii. Takie właśnie podejście reprezentuje ODMG 2.0.

K.Subieta. Bazy danych i inżynieria oprogramowania, Wykład 7, Folia 13

ODMG 2.0: Ramowa architektura

Deklaracje w ODLlub jęz.progr./ODL

Deklaracje w ODLlub jęz.progr./ODL

Źródłowe aplikacjew rozszerzonym jęz.progr.

Źródłowe aplikacjew rozszerzonym jęz.progr.

Kompilator jęz. progr.

Konsolidator (linker)

Baza danych

OSZBD,procedury czasu

wykonania (runtime)

Aplikacje w kodziedo konsolidacji

Działający program

Preprocesor deklaracji

Dostęp do danych

metadane

K.Subieta. Bazy danych i inżynieria oprogramowania, Wykład 7, Folia 14

Model obiektowy ODMGUstala konstrukcje, które muszą być wspomagane przez OSZBDUstala konstrukcje, które muszą być wspomagane przez OSZBD

Podstawowymi prymitywami modelu są obiekty i literale. Każdy obiekt posiada unikalny identyfikator. Literal nie posiada identyfikatora, jest to stała.

Obiekty i literale są charakteryzowane poprzez typy. Każdy element danego typu posiada wspólną dziedzinę stanów (ten sam zestaw własności) oraz wspólne zachowanie (ten sam zestaw operacji). Obiekt jest niekiedy określany jako wystąpienie typu.

Stan obiektu jest zdefiniowany jako wartości przechowywane dla własności. Własnościami mogą być atrybuty obiektu oraz związki obiektu z innymi obiektami. Zwykle własności obiektu mogą zmieniać się w czasie.

Zachowanie się obiektu jest zdefiniowane poprzez zbiór operacji, które mogą być wykonane na obiekcie lub przez obiekt. Operacje mogą mieć parametry wejściowe i wyjściowe, każdy z wyspecyfikowanym typem. Operacja może zwrócić rezultat określonego typu.

Baza danych przechowuje obiekty, umożliwiając jednoczesny dostęp do nich przez wielu użytkowników. Opiera się na schemacie zdefiniowanym w ODL i zawiera wystąpienia typów zdefiniowane w jej schemacie.

K.Subieta. Bazy danych i inżynieria oprogramowania, Wykład 7, Folia 15

Typy i klasy; interfejsy i implementacjeTyp posiada dwa aspekty:

- specyfikację interfejsu (jedną)- jedną lub więcej specyfikacji implementacji

Interfejs (interface): zewnętrzna charakterystyka obiektów danego typu widoczna dla użytkowników obiektu. Interfejs włącza operacje, które można wykonać na obiekcie oraz zmienne stanu (atrybuty), których wartości są dostępne z zewnątrz.

Implementacja: określa wewnętrzne aspekty obiektu danego typu. Składa się z reprezentacji oraz zbioru metod. Metody są ciałami procedur. Dla każdej operacji zdefiniowanej w interfejsie istnieje odpowiednia metoda, która ustala czynności niezbędne dla wykonania tej operacji. Implementacja może zawieraćstruktury danych i metody wewnętrzne, niewidoczne dla użytkowników obiektu i nie wyspecyfikowane w interfejsie.Typ może mieć wiele implementacji, np. jedną w C++, inną w Smalltalk’u; tylko jedna z nich występuje w danej aplikacji.

Oddzielenie interfejsu (specyfikacji klasy) od implementacji jest bardzo istotne i określa sposób, w jaki ODMG podchodzi do problemu hermetyzacji (encapsulation).

Oddzielenie interfejsu (specyfikacji klasy) od implementacji jest bardzo istotne i określa sposób, w jaki ODMG podchodzi do problemu hermetyzacji (encapsulation).

Interfejs = typImplementacja = klasa

Mniej formalnie:

K.Subieta. Bazy danych i inżynieria oprogramowania, Wykład 7, Folia 16

Podtypy i dziedziczenie

Związek typ-podtyp (typ-nadtyp), określany także jako związek is-a.Związek typ-podtyp (typ-nadtyp), określany także jako związek is-a.

interface Pracownik{...};interface Profesor : Pracownik{...};interface ProfesorNadzw : Profesor{...};

Dowolne wystąpienie podtypu jest jednocześnie wystąpieniem nadtypu, np. obiekt typu ProfesorNadzw jest jednocześnie obiektem typu Pracownik. Relacje “być podtypem”, “być nadtypem” są przechodnie.

Dowolne wystąpienie podtypu jest jednocześnie wystąpieniem nadtypu, np. obiekt typu ProfesorNadzw jest jednocześnie obiektem typu Pracownik. Relacje “być podtypem”, “być nadtypem” są przechodnie.

Stąd wynika, że wszędzie tam, gdzie może być użyty obiekt o danym typie T, może być także użyty obiekt typu T1, gdzie T1 jest podtypem T. Np. Wszędzie tam gdzie mozę być użyty obiekt Pracownik może być także użyty obiekt Profesor lub typu ProfesorNadzw. Jest to zasada zamienialności (substitutability).

Obiekt typu Profesor posiada cały interfejs Pracownik plus swój własny.Obiekt typu ProfesorNadzw posiada cały interfejs Profesor plus swój własny(czyli cały interfejs Pracownik, plus to, co dodał Profesor, plus własny).

subtypes, inheritance