210 likes | 446 Views
Generacje baz danych. • systemy plików ( ISAM i VSAM ) • systemy hierarchicznych baz danych ( ISM, System 2000 ) • systemy baz danych CODASYL ( m.in. IDS, IDMS ) • relacyjne bazy danych • obiektowe bazy danych. Wady dotychczasowych rozwiązań.
E N D
Generacje baz danych • systemy plików (ISAM i VSAM) • systemy hierarchicznych baz danych (ISM, System 2000) • systemy baz danych CODASYL (m.in. IDS, IDMS) • relacyjne bazy danych • obiektowe bazy danych
Wady dotychczasowych rozwiązań •zbyt prosty model danych (szczególnie relacyjny), • proste typy danych (integer, string), • System Zarządzania Bazą Danych nie oferuje mechanizmów do reprezentacji np. związków agregacji i zarządzania nimi, • zbyt wolne działanie systemów baz danych z programami użytkowymi wymagającymi szybkich i skomplikowanych obliczeń (programy symulacyjne), • brak narzędzi do reprezentowania i zarządzania temporalnymi aspektami baz danych (m.in.: pojęciem czasu, wersjami obiektów i schematu).
Wymagania stawiane bazom danych piątej generacji • zachowanie wszystkich użytecznych cech, charakteryzujących relacyjne bazy danych (zapytania, automatyczna optymalizacja zapytań, sterowanie współbieżnością,...), • reprezentowanie i posługiwanie się złożonymi, zagnieżdżonymi obiektami, • definiowanie dowolnych typów danych i operowanie nimi, • reprezentowanie i zarządzanie zmianami w bazie danych (wersje obiektów, wersje schematów), • reprezentowanie i operowanie pojęciami hierarchii i agregacji; • zarządzanie długotrwałymi transakcjami.
Obiektowy model danych Jest modelem danych, którego podstawą są pojęcia obiektowości, m.in.: obiekt, klasa, dziedziczenie, hermetyzacja Prace nad ustandaryzowaniem pojęć obiektowych w dziedzinie baz danych prowadzone są m.in.: przez ODMG (ang. Object Database Management Group). Standard zaproponowany przez ODMG stworzony został w oparciu o trzy istniejące standardy dotyczące: • baz danych (SQL-92), • obiektów (OMG), • obiektowych języków programowania (ANSI).
Podstawowe pojęcia obiektowego modelu danych Przykład obiektu Wypłać Wpłać KONTO Porównaj podpis Numer123-4321 Nalicz WłaścicielJan Nowak Zlikwiduj procent konto UpoważnionyEwa Nowak SaldoZł34567 Zmień Sprawdź upoważnienie .... stan Upoważnij reprezentuje sobą konkretny pojedynczy byt (książkę, osobę, samochód), charakteryzowany poprzez opis stanu (atrybuty obiektu) i zachowania tego bytu (metody obiektu) • obiekt • tożsamość obiektu • trwałość • klasa (hierarchia klas) • dziedziczenie • hermetyzacja • agregacja to taka własnośćobiektu, która pozwala odróżnić go od każdego innego obiektu miejsce przechowywania (specyfikacji i definicji) takich cech grupy podobnych obiektów, które są dla nich niezmienne: atrybutów, metod, ograniczeń dostępu, dozwolonych operacji na obiektach zdolność do istnienia obiektów poza czasem działania systemu zarządzania bazą danych miejsce przechowywania tych informacji dotyczących obiektów (tzw. inwariantami obiektów), które są dla nich niezmienne, wspólne lub dotyczą całej ich populacji
Konstrukcja kodu klasy w pseudojęzyku programowania typ rekordu (parametry obiektu) Konstruktor (tworzenie nowego obiektu) Metody (aktywność obiektu) • KlasaPracownik { • numer PESEL; • tekst(30) Nazwisko; • tekst(20) Imię; • tekst(30) Stanowisko; • Pracownik (numer p, tekst n, tekst i, tekst s) { • PESEL = p; • Nazwisko = n; • Imię = i; • Stanowisko = s; • } • dodaj() {zapisz_na_listę_pracowników();} • usuń() {usuń_z _listy_pracowników();} • }
Wywołanie konstruktora – tworzenie jednostkowego wystąpienia danej klasy (czyli obiektu) Pracownik jn = new Pracownik (11120903034, „Nowak”, „Jan”, „lekarz”); (...) Pracownik ak = new Pracownik (11120903034, „Kowalski”, „Adam”, „szef”); referencja do tworzonego obiektu konstruktor – generacja jednostkowego wystąpienia klasy – obiektu
Podstawowe pojęcia obiektowego modelu danych • obiekt • tożsamość obiektu • trwałość • klasa (hierarchia klas) • dziedziczenie • hermetyzacja • agregacja tworzenie klas na podstawie klas już istniejących
Dziedziczenie – LSP (Liskov's Substitutability Principle) – zasada zamienialności Zasada zamienialności głosi, żew każdym miejscu programu, gdzie może być użyty pewien obiekt klasy K, może być także użyty obiekt, którego klasą jest podklasa klasy K.
Ekstensja OSOBA Nazwisko RokUr Wiek() OSOBA Nazwisko Kowalska RokUr 1975 Ekstensja klasy OSOBA OSOBA Nazwisko Nowak RokUr 1951 OSOBA Nazwisko Abacki RokUr 1948 OSOBA Nazwisko Babacki RokUr 1940 PRACOWNIK Zarobek Dział ZarobekNetto() ZmieńZarobek(...) PRACOWNIK Nazwisko Abacki RokUr 1948 Zarobek 2500 Dział zabawki PRACOWNIK Nazwisko Nowak RokUr 1951 Zarobek 2000 Dział zabawki PRACOWNIK Nazwisko Babacki RokUr 1940 Zarobek 3000 Dział sprzedaż Ekstensja klasy PRACOWNIK Uwaga! Różne ekstensje mogą mieć wspólne części Nazwany zbiór obiektów aktualnie należących do danej klasy
Podstawowe pojęcia obiektowego modelu danych • obiekt • tożsamość obiektu • trwałość • klasa (hierarchia klas) • dziedziczenie • hermetyzacja • agregacja zamknięcie pewnego zestawu bytów programistycznych w "kapsułę" (obiekt, klasę moduł, etc.) o dobrze określonych granicach
Hermetyzacja ortogonalna Dowolna własność obiektu (atrybut, metoda) może być prywatna lub publiczna Zewnętrzna struktura obiektu Wewnętrzna struktura obiektu PRACOWNIK PRACOWNIK NAZWISKO Nowak ROK_UR 1951 NAZWISKO Nowak ZAROBEK 2500 DZIAŁ Zabawki DZIAŁ Zabawki ZarobekNetto() {...}; Podatek(){...}; ZarobekNetto() ZmieńZarobek(...) {...}; ZmieńZarobek(...) Wiek(){ return RokBież - ROK_UR }; Wiek()
Podstawowe pojęcia obiektowego modelu danych • obiekt • tożsamość obiektu • trwałość • klasa (hierarchia klas) • dziedziczenie • hermetyzacja • agregacja związek pomiędzy klasami obiektów, modelujący stosunek całości do jej części
Przykłady - dziedziczenie i agregacja • CKsiążka • int miISBN; • PtString msTytul; • double mdCena • CLektura • int miNrKlasy; • int miCzyObow; • CAutor *mAutor; CAutor PtString msImie PtString msNazwisko
Przykłady - hierarchia klas COsoba msPesel char[12] msImie PtString msNazwisko PtString CAbstrPrac miNrP int mJezyki cset<PtString> CPracownik mdPensja double miEtat tTypEtatu mtDataZatrudnienia PtDate mtDataZwolnienia PtDate CStazysta mdPlaca double mtDataPoczStaz PtDate mtDataKonStaz PtDate CZleceniobiorca mdStawka double
Obiektowa baza danych •Zbiór obiektów, ich stan, zachowanie się i związki występujące między nimi, określone zgodnie z obiektowym modelem danych • Zorientowany obiektowo system, który umożliwia zarządzanie bazą danych • System, który dziedziczy wszystkie zasadnicze cechy technologii obiektowej(istnienie złożonych obiektów, tożsamość obiektów, enkapsulacja danych i procedur, dziedziczenie, funkcje polimorficzne) i baz danych (trwałość danych, oddzielenie logicznego i fizycznego poziomu danych, zarządzanie wielodostępem, odtwarzanie spójnego stanu danych po awariach, zarządzanie transakcjami i in.)
Porównanie relacyjnych i obiektowych baz danych (0) • Oracle, Informix, Sybase, Ingres, DB2, Progress, Gupta, Access • GemStone, O2, Persistence, Versant, POET, Objectivity, ODI relacyjne obiektowe przykłady systemów stan na dzisiaj •Dominuje w zastosowaniach komercyjnych (ok. 95% rynku baz danych) •Mniej popularne, jednak dobrze rokują na przyszłość
Porównanie relacyjnych i obiektowych baz danych (1) •Dane zawarte w tabelach • Tabele składają się z kolumn • Typy predefiniowane •Liczbawierszyzmienna •Value-based • Nie ma wskaźników, lecz kluczezewnętrzne •Obiekt w bazie reprezentuje obiekt w świecie rzeczywistym •Typ obiektowy(klasa) – definicja złożonego typu danych (może zawierać inne typy obiektowe lub ich kolekcje) •Procedury(metody) i operatory do manipulowaniadanymi •Identity-based •Enkapsulacja •Dziedziczenie: strukturalnepotomek dziedziczy strukturę danych behawioralne: potomek dziedziczy metody i operatory relacyjne obiektowe
Porównanie relacyjnych i obiektowych baz danych (2) •niezależność od języka programowania • sprawdzone, dobrze zdefiniowana teoria • możliwość zarządzania wielka ilością danych • możliwość złożonych kryteriów wyszukiwawczych • możliwość dostępu do danych fizycznych • dobre mechanizmy kontroli dostępu do danych • mechanizmy perspektyw • dość łatwa reprezentacja świata • dokładnie reprezentuje złożone zależności miedzy obiektami • łatwość działania na złożonych obiektach • duża podatność na zmiany • możliwość definiowania własnych typów, metod • dobra integracja z językami programowania ogólnego przeznaczenia (np. C++, Smalltalk) • ujednolicony model pojęciowy - obiektowe podejście do analizy, projektowania i implementacji relacyjne obiektowe z a l e t y
Porównanie relacyjnych i obiektowych baz danych (3) • dla trudniejszych problemów bardzo dużo tabel • mało naturalna reprezentacja danych • ograniczona podatność na zmiany • brak złożonych typów danych • trudne operowanie na danych złożonych • trudne operowanie na danych rozproszonych w sieci heterogenicznej • niezgodność z modelem używanym przez języki ogólnego przeznaczenia (impedance mismatch) • powiązanie z jednym językiem programowania • słaba obsługa przeszukiwania danych • brak powszechnie zaakceptowanego języka zapytań • brak możliwości optymalizacji zapytań • trudny lub nawet niemożliwy dostęp do fizycznych danych • słaba kontrola dostępu • małe możliwości optymalizacji pracy serwera relacyjne obiektowe w a d y
Porównanie relacyjnych i obiektowych baz danych (4) • dane są proste, niezagnieżdżone, łatwe do umieszczenia w tablicy • dane mają postać bierną, a procesy korzystające z danych stale się zmieniają • często trzeba wyszukiwać dane spełniające różnorodne warunki • dane mają złożoną lub zagnieżdżoną strukturę zdefiniowaną przez użytkownika • dane tworzą hierarchie • dane są rozproszone w sieci heterogenicznej • dane dynamicznie zmieniają rozmiar relacyjne obiektowe lepsze gdy ...