Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

ZSBD OBIEKTOWE BAZY DANYCH Wykład 6 Prowadzący: dr Paweł Drozda.

Podobne prezentacje


Prezentacja na temat: "ZSBD OBIEKTOWE BAZY DANYCH Wykład 6 Prowadzący: dr Paweł Drozda."— Zapis prezentacji:

1 ZSBD OBIEKTOWE BAZY DANYCH Wykład 6 Prowadzący: dr Paweł Drozda

2 Program wykładu dr P. Drozda Wprowadzenie Model obiektowy Standard ODMG 3.0 Język ODL Język OQL Obiektowość a cechy bazy danych

3 Przykład wprowadzający dr P. Drozda OSOBA Nazwisko Imię Płeć telefon Klient Jest uczestnikiem (*) Wpłacił Kwota do zapłaty Wycieczka Uczestnicy(*) Data Program (*) Koszt Liczba miejsc Program dnia Dzień Początek Obiad element … Czas trwania() … Kierownik Wycieczka (*) Wynagrodzenie

4 Jak to wygląda w m. relacyjnym dr P. Drozda Osoba(Nazwisko, Imię, Płeć, Telefon) – co z kluczem? Kierownik (wynagrodzenie) – co z wycieczką, kluczem, odwołaniem do osoby Klient (Wpłacił) - … Co z metodami (czasem wystarczy DML, na ogół kodowanie poza relacyjnym modelem danych; procedury, funkcje nie należą do m. relacyjnego)

5 Zastosowanie obiektowych baz danych dr P. Drozda Charakterystyka dziedzin Złożone typy danych Złożone struktury Zależności hierarchiczne Dziedziny zastosowań Telekomunikacja (złożona infrastruktura) Informacja przestrzenna Multimedialne bazy danych (produkcja – Ford, Boening, Simens) vs-relational-database/examples.html vs-relational-database/examples.html

6 Obiektowa baza danych - koncepcja dr P. Drozda Dane wykorzystują założenia modelu obiektowego Klasy Dziedziczenie Metody Przeciążanie metod Referencje do obiektów itd.

7 Obiektowa baza danych – koncepcja Zapewnione założenia baz danych Trwałość danych Integralność danych Współbieżne wykonywanie transakcji Interakcyjne uzyskiwanie informacji z bazy Odzyskiwanie danych w wyniku awarii Kontrola dostępu uprawnionych użytkowników

8 Po co obiektowe bazy dr P. Drozda Brak podziału aplikacja – baza Bogatszy model danych – więcej można określić w samym modelu Możliwość rozszerzania modelu danych (definiowanie typów przez użytkownika) Łatwiejsze modelowanie hierarchii

9 Podejścia w tworzeniu dr P. Drozda Tworzenie od podstaw – obiektowe bazy tworzone od początku – nie wykorzystują wcześniej stworzonych relacyjnych baz Standard modelu ODMG 3.0 (Object Database Management Group) Dodatkowa warstwa zawierająca funkcjonalność obiektową – na dowolnym modelu danych – standard JDO (Java Database Objects) Modyfikacja, rozszerzenie relacyjnej bazy na potrzeby danej dziedziny do własności modelu obiektowego SQL3

10 Standard ODMG 3.0 Cztery składniki: Opis modelu Definicja danych – ODL Język zapytań – OQL Rozszerzenia Javy, Smalltalka, C++ do przetwarzania trwałych obiektów bazy danych – OML

11 Standard ODMG 3.0 – opis modelu Struktura danych Obiekty, literały Typy obiektów – atomowe, kolekcje (krotka, zbiór, wielozbiór, lista, tablica, słownik) Możliwe związki binarne1:1, 1:n, m:n poprzez referencje Wielodostęp, transakcje Transakcja jako jednostka programowa przeprowadzająca z bazę ze stanu spójnego w inny stan spójny Wielodostęp realizowany przez blokady (odczyt, zapis) Integralność danych Unikalności obiektów – Poprzez OID Referencyjna – poprzez referencje w obiektach

12 Elementy modelu obiektowego dr P. Drozda Klasa – zawiera elementy opisujące zbiór obiektów świata rzeczywistego (cechy i zachowanie) Cechy obiektów OID – systemowy identyfikator obiektu Atrybuty – definiowane przez typy danych Związki – odwołania do innych obiektów Metody – opisują działania, jakie mogą wykonać obiekty danej klasy

13 Elementy modelu obiektowego Enkapsulacja – Oddzielenie specyfikacji od ciała – z zewnątrz widoczne tylko deklaracje atrybutów i metod – implementacja w ciele Dziedziczenie – relacja pod/nadklasa – podklasa dziedziczy metody i atrybuty Przeciążanie, polimorfizm – zdefiniowanie metody o tej samej nazwie w podklasach, wywołanie funkcji dla różnych podklas (późne wiązanie)

14 Przykład Figura Typ Pole() Trójkąt Wierzchołki[3] Pole() koło Promień środek Pole() Elipsa P1 P2 środek Pole() Równoboczny Pole() Prostokątny Pole() Punkt XYXY

15 Język ODL Służy do definicji danych Definiuje klasy Funkcjonalność klasy definiowana poprzez atrybuty związki i metody Atrybuty – nazwa + typ Typy: Proste – liczbowe, tekstowe, daty Złożone: krotki – struct, zbioru – set, wielozbioru – multiset, listy – list, tablicy – array, słownika – dictionary, odwołujące się do innej klasy

16 Język ODL cd. Związki – zawiera nazwę, typ i odwołanie do związku zwrotnego Metody – zawierają typ zwracanej wartości, nazwę oraz listę parametrów przekazywanych do metody, dodatkowo może wystąpić lista wyjątków Rodzaje i typy parametrów In, out, inout Typy dowolne – tak jak typy danych

17 Składnia deklaracji Klasa class nazwa_klasy [extends nadklasa][:interfejs] [(extent ekstensja)]{ … }; class Pracownik extends Osoba { …}; Atrybuty attribute dziedzina nazwa_atrybutu; attribute string Imie; attribute Address adres; attribute set numery_telefonu;

18 Składnia deklaracji cd. Relacje relationship powiązana_klasa nazwa_relacji inverse powiązana_klasa::nazwa_relacji_w_pow_klasie relationship Nauczyciel teacher inverse Nauczyciel::uczniowie; relationship set uczniowie inverse Uczeń::nauczyciel; Metody typ nazwa(parametry) raises (listaWyjątków); void podajNumer(out string kierunkowy, out string numer) raises (nieMAtakiegoNUMERU);

19 Przykład podsumowujący interface Osoba { attribute string imie; attribute string nazwisko; attribute Adres AdresDomowy; void PodajNumer(out string oprefix, out string onumer) raises(zlyNumer); } class Student : Osoba{ (extent Studenci) attribute set oceny; relationship set dziecko inverse Rodzice::rodzic; void drukujOceny(); void drukujOceny(in string iPrzedmiot); void drukujOceny(in integer iRok); float średnia(in set oceny); }

20 Konwencja tworzenia obiektów atrybuty i metody definiowane na najwyższym możliwym poziomie przeciążanie metod w miejscach ułatwiających życie definicja możliwych wyjątków nazwy parametrów poprzedzane i dla parametrów wejściowych i o dla wyjściowych

21 OQL Wzorowany na SQL Obejmuje tylko zapytania Ogólna składnia – SELECT FROM WHERE – bardziej rozbudowane atrybuty Przykład SELECT struct(ilosc: count(*)) FROM s IN studenci WHERE s.średnia(oceny) >3.8; SELECT struct(imie: o.imie,nazwisko: o.nazwisko, oceny: (SELECT struct(r: oc.rok,p: oc.przedmiot, o: oc.ocena) FROM oc FROM otrzymaneOceny)) FROM o in Osoba;

22 OQL – ciąg dalszy Wyrażenia ścieżkowe – możliwość odwołania się do obiektów poprzez relację pomiędzy obiektami SELECT egzaminator: student.oceny.przedmiot.prow.nazwisko FROM student IN Studenci; Operacje łączenia poprzez związki między obiektami SELECT struct(d: d.nazwa, z: z.nazwisko) FROM z IN zawodnicy, d IN z.graW ustalane przez użytkownika SELECT struct(zaw1: z1.nazwisko, zaw2: z2.nazwisko) FROM z1 IN zawodnicy, z2 IN zawodnicy WHERE z1.miasto = z2.miasto Polimorfizm i dynamiczne wiązanie SELECT f.powierzchnia() FROM f IN figury

23 Trwałość danych Koniczność składowania danych przez dłuższy czas (nie tylko podczas działania aplikacji) Rozróżnienie pomiędzy danymi trwałymi a działającymi lokalnie w programie (nietrwałe) Trwałość przypisana do obiektów a nie do całej klasy Obiekty mogą być zmieniane z trwałych na nietrwałe i na odwrót Przetwarzanie obiektów trwałych i nietrwałych nie różni się Dwa typy obiektów trwałych Utrwalone Odwołujące się do obiektów trwałych

24 Integralność danych Unikatowość zapewniona przed OID Referencyjna zapewniona przez związki pomiędzy obiektami Integralność użytkownika dotycząca danych jednostkowych, np. nazwisko niepuste właściwe zależności w danej klasie, np. data urodzenia nie większa niż data zgonu przy modyfikacji danych – uwzględnienie znikających obiektów

25 Integralność danych Specyficzna dla modelu obiektowego możliwość przechodzenia z jednej klasy do innej możliwość przynależności do wielu klas, klasy rozłączne ograniczenia dotyczące podklas redefinicja metod, atrybutów – można zabronić możliwość dodania nowych metod względnie atrybutów

26 Współbieżne przetwarzanie Dwie strategie wykorzystywane z relacyjnych baz danych blokowania dwufazowe – ma sens gdy działamy na niewielkiej liczbie obiektów (transakcje albo ustawione w kolejce, albo wycofywane) strategia optymistyczna – najpierw robimy na danych tymczasowych, potem dopiero zatwierdzamy Dodatkowe strategie (oparte na podziale transakcji) Potwierdzenie szeregowalności – transakcje dają się uszeregować – ale nie odpowiadają ciągowi transakcji wejściowych np. jedna podzielona na odczyt i aktualizację Transakcje zagnieżdżone – transakcja główna generuje podtransakcje – niezależne od transakcji głównej

27 Bezpieczeństwo danych Kopie bezpieczeństwa – na ogół duże bazy – wysoki koszt tworzenia kopii bezpieczeństwa Dzienniki transakcji – zawierają wszystkie transakcje od ostatniej kopii bezpieczeństwa Transakcja Dziennik Transakcji Baza danych Przywracanie spójności – poprzez wycofanie niezatwierdzonych transakcji bądź wykonanie ponownie zatwierdzonych, dodatkowa pomoc - savepointy


Pobierz ppt "ZSBD OBIEKTOWE BAZY DANYCH Wykład 6 Prowadzący: dr Paweł Drozda."

Podobne prezentacje


Reklamy Google