zsbd obiektowe bazy danych n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Zsbd Obiektowe Bazy danych PowerPoint Presentation
Download Presentation
Zsbd Obiektowe Bazy danych

Loading in 2 Seconds...

play fullscreen
1 / 27

Zsbd Obiektowe Bazy danych - PowerPoint PPT Presentation


  • 136 Views
  • Uploaded on

Zsbd Obiektowe Bazy danych. Wykład 6 Prowadzący: dr Paweł Drozda. Program wykładu. Wprowadzenie Model obiektowy Standard ODMG 3.0 Język ODL Język OQL Obiektowość a cechy bazy danych. Przykład wprowadzający. …. Jak to wygląda w m. relacyjnym.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

Zsbd Obiektowe Bazy danych


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
zsbd obiektowe bazy danych

ZsbdObiektowe Bazy danych

Wykład 6

Prowadzący: dr Paweł Drozda

program wyk adu
Program wykładu
  • Wprowadzenie
  • Model obiektowy
  • Standard ODMG 3.0
  • Język ODL
  • Język OQL
  • Obiektowość a cechy bazy danych

dr P. Drozda

jak to wygl da w m relacyjnym
Jak to wygląda w m. relacyjnym
  • 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)

dr P. Drozda

zastosowanie obiektowych baz danych
Zastosowanie obiektowych baz danych
  • 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)
    • http://www.objectivity.com/pages/object-oriented-database-vs-relational-database/examples.html

dr P. Drozda

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

dr P. Drozda

obiektowa baza danych koncepcja1
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
po co obiektowe bazy
Po co obiektowe bazy
  • 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

dr P. Drozda

podej cia w tworzeniu
Podejścia w tworzeniu
  • 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

dr P. Drozda

standard odmg 3 0
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
standard odmg 3 0 opis modelu
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
elementy modelu obiektowego
Elementy modelu obiektowego
  • 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

dr P. Drozda

elementy modelu obiektowego1
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)
j zyk odl
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
j zyk odl cd
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
sk adnia deklaracji
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<Telefon> numery_telefonu;

sk adnia deklaracji cd
Składnia deklaracji cd.
  • Relacje

relationshippowiązana_klasanazwa_relacji

inversepowiązana_klasa::nazwa_relacji_w_pow_klasie

relationship Nauczyciel teacher

inverseNauczyciel::uczniowie;

relationshipset<Uczeń> uczniowie

inverseUczeń::nauczyciel;

  • Metody

typ nazwa(parametry)

raises (listaWyjątków);

voidpodajNumer(out string kierunkowy, out string numer)

raises (nieMAtakiegoNUMERU);

przyk ad podsumowuj cy
Przykład podsumowujący

interface Osoba {

attributestringimie;

attributestring nazwisko;

attribute Adres AdresDomowy;

voidPodajNumer(out stringoprefix, out stringonumer)

raises(zlyNumer);

}

class Student : Osoba{

(extent Studenci)

attributeset<otrzymaneOceny> oceny;

relationshipset<Rodzice> dziecko

inverseRodzice::rodzic;

voiddrukujOceny();

voiddrukujOceny(in stringiPrzedmiot);

voiddrukujOceny(in integeriRok);

float średnia(in set<otrzymaneOceny> oceny);

}

konwencja tworzenia obiekt w
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
slide21
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;

oql ci g dalszy
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

trwa o danych
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
integralno danych
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
integralno danych1
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
wsp bie ne przetwarzanie
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
bezpiecze stwo danych
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

Baza danych

Dziennik

Transakcji

Transakcja

  • Przywracanie spójności – poprzez wycofanie niezatwierdzonych transakcji bądź wykonanie ponownie zatwierdzonych, dodatkowa pomoc - savepointy