Pobieranie prezentacji. Proszę czekać

Pobieranie prezentacji. Proszę czekać

Wykład 8 Wojciech Pieprzyca

Podobne prezentacje


Prezentacja na temat: "Wykład 8 Wojciech Pieprzyca"— Zapis prezentacji:

1 Wykład 8 Wojciech Pieprzyca
Systemy Baz Danych Wykład 8 Wojciech Pieprzyca

2 Model relacyjny Dane umieszczone są w tabelach w postaci wierszy, które składają się z się z określonej ilości pól. Można korzystać tylko z typów predefiniowanych – wbudowanych w dany SZBD. Zalety: Model ten jest dokładnie zbadany i opiera się na rozbudowanych podstawach teoretycznych, Wykorzystanie języka SQL pozwala na budowę złożonych zapytań z grupowaniem i agregowaniem danych włącznie, Model ten jest niezależny od jakiegokolwiek języka programowania

3 Model relacyjny Wady: Modelowanie bardziej złożonych elementów rzeczywistości wymaga zaprojektowania i używania dużej liczby tabel, Brak możliwości definiowania własnych typów danych, Nienaturalna współpraca z językami programowania wysokiego poziomu, które obecnie w większości opierają się na obiektowym paradygmacie programowania. Trudności w modelowaniu związków wiele do wielu (N:M). Konieczność ich rozłożenia na związki jeden do wielu 1:N.

4 Model obiektowy Obiektowe bazy danych łączą własności obiektowości i obiektowych języków programowania z możliwościami systemów bazodanowych. Model danych wykorzystujący takie elementy jak klasy, atrybuty, metody. Zakłada hermetyzacje danych oraz metod, a także możliwość dziedziczenia. Język obiektowy jest językiem służącym zarówno do programowania jak i operowania na bazie danych, zapewniając możliwość powiązania danych z obiektami w projektowanej aplikacji.

5 Model obiektowy Obiekt w bazie reprezentuje obiekt w świecie rzeczywistym. W modelu tym istnieje możliwość definiowania własnych, złożonych typów danych oraz pisania procedury (metod) i operatorów do manipulowania tymi danymi w sposób obiektowy.

6 Model obiektowy Zalety:
generalnie wszystkie zalety modelu obiektowego, bezpośrednie odzwierciedlenie obiektów modelowanej rzeczywistości, możliwość definiowania własnych typów danych, łatwość działania na złożonych obiektach, reprezentacja złożonych zależności pomiędzy obiektami, ujednolicone podejście do analizy, projektowania i implementacji systemów bazodanowych i aplikacji.

7 Model obiektowy Wady: brak jednego, akceptowanego języka zapytań,
problemy z optymalizacją zapytań, brak szerokiego wykorzystania dla celów komercyjnych, niepewność co do skali zastosowań w przyszłości.

8 Model OMDG Model OMDG (Object Database Management Group) został
przedstawiony jako standard definiowania i operowania na obiektowych bazach danych. Standard ten składa się z 4 części: Opis modelu obiektowego – słowny opis właściwości i pojęć modelu obiektowej bazy danych, ODL (Object Definition Language) – język definicji schematu obiektowej bazy danych, służy do definiowania klas (atrybutów, relacji, metod) i interfejsów obiektowej bazy danych, OQL (Object Query Language) – język zapytań do obiektowej bazy danych, OML (Object Manipulation Language) – zawiera instrukcje modyfikacji danych, znajdujących się w postaci obiektowej

9 ODL class nazwa { //definicje atrybutów //definicje relacji
//definicje metod } Definicje atrybutów – określają nazwę i typ atrybutu. Typ może być: prosty (np. liczba Integer, ciąg znaków String, itp.) attribute String nazwisko; złożony – składający się z grupy obiektów np. zbiór attribute set<Float> pensje;

10 ODL Definicje relacji - określa nazwę związku, typ związku oraz
odwołanie do związku zwrotnego (występującego w klasie do której tworzone jest połączenie). class pracownik { attribute String nazwisko; attribute String imie; attribute set<Float> pensje; attribute struct Adres{String ulica, String miasto} adres; relationship set<Firma> pracujeW inverse Firma::jestPracownikiem } Definicje metod – standardowa definicja znana z języków obiekt. void dodaj (in Firma f) { … }

11 OQL OQL jest językiem deklaratywnym opartym na standardzie SQL92 umożliwiającym zadawanie zapytań do obiektowej bazy danych. W poleceniu select określa się strukturę oczekiwanego wyniku, nazwy klas obiektów z których pobierane są wyniki oraz ewentualne warunki ograniczające po kluzuli where. select struct(imie:p.imie, nazwisko:p.nazwisko, ulica:p.adres.ulica, miasto:p.adres.miasto ) from p in Pracownicy where p.wiek()>30 Złączenia strukturalne (wynikające ze związków określonych w klasach) select struct(imie:p.imie, nazwisko:p.nazwisko, nazwa:f.nazwa, miasto:f.miasto) from p in Pracownicy, f in p.pracujeW

12 DB4O System zarządzania bazą danych DB4O dostarcza zawiera
biblioteki umożliwiające tworzenie i operowanie na obiektowych bazach danych. Możliwe jest tworzenie aplikacji dwojakiego rodzaju: jednostanowiskowych – baza danych znajduje się w pliku i jest wykorzystywana w danym czasie tylko przez jednego użytkownika, wielostanowiskowych – baza danych jest udostępniona na zasadach architektury klient-serwer, możliwy jest współbieżny dostęp wielu użytkowników jednocześnie.

13 Obiektowo-relacyjne bazy danych
Bazy obiektowo-relacyjne wywodzą się z baz czysto relacyjnych, które stopniowo były uzupełniane o elementy obiektowości takie jak: - możliwość tworzenia procedur, możliwość definiowania własnych typów danych, dziedziczenie typów danych, definiowanie złożonych struktur danych. SZBD umożliwiające wykorzystanie elementów obiektowych to np. Oracle, PostgreSQL.

14 Obiektowo-relacyjne bazy danych
Definiowanie typów danych create type Point as object //nowy typ danych (x int, y int, member procedure move(dx int, dy int)); create type body Point as //definicja procedury move member procedure move(dx int, dy int) is begin self.x := self.x + dx; self.y := self.y + dy; end move; end;

15 Obiektowo-relacyjne bazy danych
Dziedziczenie typów danych create type Figure as object (type varchar(20), not instantiable member function area return Float;) not instantiable not final; //typ abstrakcyjny, bazowy Klasa Figure będzie typem bazowym dla dalej zdefiniowanego typu pochodnego Triangle. Typ pochodny dziedziczy atrybuty oraz procedury zdefiniowane w typie bazowym oraz umożliwia zdefiniowanie nowych atrybutów i procedur/funkcji, a także definiowanie kodu odziedziczonych procedur/funkcji abstrakcyjnych.

16 Obiektowo-relacyjne bazy danych
Dziedziczenie typów danych create type Triangle under Figure ( p1 Point, p2 Point, p3 Point, overriding member function area return Float ); Typ Triangle jest typem pochodnym wobec typu bazowego Figure. W ramach typu Triangle zaimplementowano definicję funkcji area odziedziczonej po typie triangle (powyżej przedstawiono jedynie nagłówek tej funkcji).

17 Obiektowo-relacyjne bazy danych
Tabele przechowujące obiekty //utworzenie tabeli przechowującej obiekty typu Triangle create table Triangle of Triangle; //wstawienie obiektu do tabeli insert into Triangle values (new Triangle(new Point(0,0), new Point (0,10), new Point(10,10))); Powyżej wywoływany jest konstruktor typu danych Triangle, który zawiera zagnieżdżone wywołania konstruktora obiektu składowego Point.


Pobierz ppt "Wykład 8 Wojciech Pieprzyca"

Podobne prezentacje


Reklamy Google