Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Systemy plików ( ISAM i VSAM ) systemy hierarchicznych baz danych ( ISM, System 2000 ) systemy baz danych CODASYL ( m.in. IDS, IDMS ) relacyjne bazy danych.

Коpie: 1
Systemy plików ( ISAM i VSAM ) systemy hierarchicznych baz danych ( ISM, System 2000 ) systemy baz danych CODASYL ( m.in. IDS, IDMS ) relacyjne bazy danych.

Podobne prezentacje


Prezentacja na temat: "Systemy plików ( ISAM i VSAM ) systemy hierarchicznych baz danych ( ISM, System 2000 ) systemy baz danych CODASYL ( m.in. IDS, IDMS ) relacyjne bazy danych."— Zapis prezentacji:

1 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 Generacje baz danych

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

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

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

5 Podstawowe pojęcia obiektowego modelu danych obiekt tożsamość obiektu trwałość klasa (hierarchia klas) dziedziczenie hermetyzacja agregacja reprezentuje sobą konkretny pojedynczy byt (książkę, osobę, samochód), charakteryzowany poprzez opis stanu (atrybuty obiektu) i zachowania tego bytu (metody obiektu)

6 Podstawowe pojęcia Obiekt Przykład obiektu Wypłać Wpłać Sprawdź stan Upoważnij Zmień upoważnienie Porównaj podpis Zlikwiduj konto Nalicz procent KONTO Numer SaldoZł Właściciel Jan Nowak Upoważniony Ewa Nowak....

7 zdolność do istnienia obiektów poza czasem działania systemu zarządzania bazą danych Podstawowe pojęcia obiektowego modelu danych 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

8 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 Podstawowe pojęcia obiektowego modelu danych obiekt tożsamość obiektu trwałość klasa (hierarchia klas) dziedziczenie hermetyzacja agregacja 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

9 Konstrukcja kodu klasy w pseudojęzyku programowania (tworzenie nowego obiektu) Konstruktor typ rekordu (parametry obiektu) Metody (aktywność obiektu) Klasa Pracownik { 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();} }

10 Wywołanie konstruktora – tworzenie jednostkowego wystąpienia danej klasy (czyli obiektu) referencja do tworzonego obiektu konstruktor – generacja jednostkowego wystąpienia klasy – obiektu Pracownik jn = new Pracownik ( , Nowak, Jan, lekarz); (...) Pracownik ak = new Pracownik ( , Kowalski, Adam, szef);

11 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

12 Dziedziczenie – LSP (Liskov's Substitutability Principle) – zasada zamienialności Zasada zamienialności głosi, że w 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.

13 Ekstensja Nazwany zbiór obiektów aktualnie należących do danej klasy

14 Ekstensja OSOBA Nazwisko Babacki RokUr 1940 OSOBA Nazwisko Abacki RokUr 1948 OSOBA Nazwisko Nowak RokUr 1951 OSOBA Nazwisko RokUr Wiek() PRACOWNIK Zarobek Dział ZarobekNetto() ZmieńZarobek(...) OSOBA Nazwisko Kowalska RokUr 1975 Ekstensja klasy OSOBA PRACOWNIK Nazwisko Nowak RokUr 1951 Zarobek 2000 Dział zabawki PRACOWNIK Nazwisko Abacki RokUr 1948 Zarobek 2500 Dział zabawki PRACOWNIK Nazwisko Babacki RokUr 1940 Zarobek 3000 Dział sprzedaż Ekstensja klasy PRACOWNIK Uwaga! Różne ekstensje mogą mieć wspólne części

15 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

16 Hermetyzacja ortogonalna PRACOWNIK NAZWISKO NowakROK_UR 1951 ZAROBEK 2500 ZmieńZarobek(...) {...}; Podatek(){...}; ZarobekNetto() {...}; Wiek() { return RokBież - ROK_UR }; DZIAŁ Zabawki Wewnętrzna struktura obiektu Zewnętrzna struktura obiektu PRACOWNIK NAZWISKO Nowak ZmieńZarobek(...) ZarobekNetto() Wiek() DZIAŁ Zabawki Dowolna własność obiektu (atrybut, metoda) może być prywatna lub publiczna

17 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

18 Przykłady - dziedziczenie i agregacja CAutor PtStringmsImie PtString msNazwisko CLektura intmiNrKlasy; intmiCzyObow; CAutor*mAutor; CKsiążka intmiISBN; PtStringmsTytul; doublemdCena

19 Przykłady - hierarchia klas COsoba msPeselchar[12] msImiePtString msNazwiskoPtString CAbstrPrac miNrP int mJezyki cset CPracownik mdPensja double miEtattTypEtatu mtDataZatrudnienia PtDate mtDataZwolnienia PtDate CStazysta mdPlaca double mtDataPoczStaz PtDate mtDataKonStaz PtDate CZleceniobiorca mdStawkadouble

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

21 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 Dominuje w zastosowaniach komercyjnych (ok. 95% rynku baz danych) Mniej popularne, jednak dobrze rokują na przyszłość stan na dzisiaj

22 Porównanie relacyjnych i obiektowych baz danych (1) Dane zawarte w tabelach Tabele składają się z kolumn Typy predefiniowane Liczba wierszy zmienna Value-based Nie ma wskaźników, lecz klucze zewnę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 manipulowania danymi Identity-based Enkapsulacja Dziedziczenie: –strukturalne potomek dziedziczy strukturę danych –behawioralne: potomek dziedziczy metody i operatory relacyjne obiektowe

23 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

24 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

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

26 wysoki poziom – dający możliwość prostego zapisu złożonych operacji deklaratywność – ukierunkowany na określanie warunków, jakie musi spełniać rezultat wyszukiwania, a nie sposobu poszukiwania efektywność i optymalizowalność uniwersalność – dla dowolnego schematu bazy danych zamkniętość i kompletność – zapewnia to możliwość wykorzystania wyników zapytania jako wejścia do innych zapytań) oraz zapewniający odpowiedniki dla każdego pojęcia rozpatrywanego modelu w zakresie przetwarzania Języki zapytań do bazy danych pożądane cechy

27 hermetyzacja przeciążanie, przesłanianie i późniejsze wiązanie – wiązanie implementacji z wywołaniem metody – odsunięcie decyzji o tym co ma zostać wykonane do czasu uruchomienia zapytania ad hoc – umożliwienie użytkownikowi komunikacji z bazą danych na wysokim poziomie abstrakcji (SQL) zarządzanie wersjami rozszerzalność na poziomie pojęciowym – możliwość definiowania nowych typów i konstruktorów (oprócz wstępnie zdefiniowanych) specyficznych dla danej aplikacji bez różnicy w obsłudze na poziomie wewnętrznym – możliwość wprowadzenia do systemu nowych struktur pamięci (np.: do przechowywania danych multimedialnych) Języki zapytań do OBD pożądane cechy

28 brak standardów – ze względu na złożoność struktur występujących w OBD oraz braku formalnego modelu OBD sprzeczność z zasadą hermetyzacji zakładającą, że wartości danych nie powinny być bezpośrednio dostępne dla użytkownika wybór punktu wyjścia przy projektowaniu obiektowego języka zapytań Języki zapytań do OBD Co stanowi problem?

29 SQL - OQL Różnice SQLOQL Typ rekorduKlasa Krotka (rekord)Obiekt TabelaKolekcja obiektów Schemat bazy danych Kolekcja klas

30 klauzula celu klauzula zakresu klauzula kwalifikacji Składnia OQL określa atrybuty wyjściowe SELECT służy do wiązania zmiennych obiektowych ze zbiorami instancji klas FROM służy do specyfikacji warunków za pomocą logicznych kombinacji predykatów WHERE

31 zdefiniowanie zmiennej, do której zostanie przypisany wynik zapytania wykonanie zapytania wyświetlenie wyników Jasmine Etapy formułowania zapytania

32 zmienna może reprezentować encję, literał atomowy, klasę, krotkę oraz kolekcje powyższych typy kolekcji: Bag – nieuporządkowana kolekcja wartości o zmiennej ilości elementów, dozwolone duplikaty Set – nieuporządkowana kolekcja wartości o zmiennej ilości elementów, niedozwolone duplikaty List – u porządkowana kolekcja wartości o zmiennej ilości elementów, dozwolone duplikaty Jasmine Możliwe typy zmiennej

33 Person p;//p – instancja klasy Person lub jej podklasy Bag pp; //pp- zbiór p String s;//s – łańcuch znaków Bag ss; //ss – zbiór s; Person class PC; //PC – klasa Person lub jej podklasa Bag PCS; //PCS- kolekcja PC [Intereger hours, Integer minutes, Real seconds] timestamp; // timestamp – krotka, składająca się z trzech elementów, TS – opcjonalna nazwa klasy krotki Jasmine Przykłady deklaracji zmiennej

34 Jasmine Przykłady zapytań Bag o; o = Osoba from Osoba; o.print(); Bag d_o; d_o = [o.imie, o.nazwisko, o.wiek()] from Osoba o; Bag d_o; d_o = [o.imie, o.nazwisko, o.wiek()] from Osoba o where o.wiek() < 40;

35 Jasmine Przykłady zapytań - cd Bag p; p = Pracownik from Pracownik; p.count().print(); p = Pracownik from Pracownik alone; p.count().print(); Bag pk; pk = [o.imie,o.nazwisko,o.kierownik.imie,o.kierownik.nazwisko] from Osoba o where o.kierownik != NIL;

36 Jasmine Przykład metody defaultCF wykCF; addProcedure Integer Osoba::instance:wiek() language: "odql" description:"Zwraca wiek osoby" { defaultCF wykCF; Date curr_date; curr_date=Date.getCurrent(); return(curr_date.part(YEAR)-self.data_ur.part(YEAR))


Pobierz ppt "Systemy plików ( ISAM i VSAM ) systemy hierarchicznych baz danych ( ISM, System 2000 ) systemy baz danych CODASYL ( m.in. IDS, IDMS ) relacyjne bazy danych."

Podobne prezentacje


Reklamy Google