[ Pobierz całość w formacie PDF ]
Zaawansowane Systemy Baz Danych – ZSBD
Obiektowe bazy danych
Obiektowy model danych
Wykład prowadzi:
Tomasz Koszlajda
Obiektowe bazy danych – Obiektowy model danych
Tematyka obiektowych baz danych obejmuje trzy jednostki wykładowe. Pierwszy
wykład dotyczy obiektowego modelu danych. Na drugim wykładzie zostaną
przedstawione dwa alternatywne rozwiązania: obiektowe i obiektowo-relacyjne bazy
danych. Trzeci wykład jest poświęcony implementacji obiektowych systemów baz
danych.
Niniejszy wykład będzie wprowadzeniem do tematyki obiektowych baz danych.
Obiektowe bazy danych są propozycją nowego, uniwersalnego i rozszerzalnego
modelu danych dla systemów baz danych. W momencie ich pojawienia się miały
zastąpić relacyjny model danych, jako lepiej przystosowane do nowych dziedzin
zastosowań systemów baz danych.
1
Zaawansowane Systemy Baz Danych – ZSBD
Plan wykładu
•Przesłanki dla nowej generacji systemów baz danych
• Podstawowe elementy obiektowego modelu danych
• Konstruktory złożonych typów danych
• Abstrakcyjne typy danych
• Dziedziczenie
•Zwązki między danymi
• Hierarchie kolekcji obiektów
• Polimorfizm i późne wiązanie
•Tożsamość danych
•Trwałość danych
Obiektowe bazy danych – Obiektowy model danych (2)
Celem wykładu jest poznanie własności nowego modelu danych zastosowanego w
obiektowych bazach danych. Najpierw zastaną przedstawione przesłanki pojawienia
się nowej generacji baz danych. Poznamy nowe dziedziny zastosowań systemów baz
danych wymagające silniejszego i bardziej elastycznego modelu danych niż model
relacyjnych baz danych. W trakcie wykładu przedstawione zostaną podstawowe
koncepcje obiektowego modelu danych: możliwość modelowania abstrakcyjnych
typów danych, mechanizm dziedziczenia typów danych, konstruktory złożonych typów
danych, jawne związki między danymi, hierarchiczne zależności między kolekcjami
obiektów oraz mechanizmy polimorfizmu i późnego wiązania. Na koniec zostaną
przedstawione rozwiązania służące do zapewnienia obiektom przechowywanym w
bazie danych systemowej tożsamości i trwałości.
2
Zaawansowane Systemy Baz Danych – ZSBD
Nowe dziedziny zastosowań
baz danych
• Systemy wspomagania projektowania
• Systemy informacji przestrzennej
• Multimedialne bazy danych
Charakterystyka nowych dziedzin zastosowań
•Złożone struktury danych
• Behawioralne własności danych
• Nowe modele przetwarzania
Nowe technologie budowy aplikacji
•Języki obiektowe
Obiektowe bazy danych – Obiektowy model danych (3)
W czasie powstawania relacyjnego modelu danych typowymi dziedzinami zastosowań
systemów baz danych były bankowość, ubezpieczenia, finanse, gospodarka
magazynowa, itp. Wspólna charakterystyka systemów tej klasy obejmuje proste
struktury danych i prosty model ich przetwarzania. Typowymi wartościami atrybutów
danych są teksy, liczby i daty.
Na początku lat osiemdziesiątych, rozpoczęły się próby stosowania systemów baz
danych w nowych dziedzinach, takich jak, systemy wspomagania projektowania,
systemy informacji przestrzennej lub systemy multimedialne. Charakterystyka tej klasy
zastosowań jest diametralnie odmienna. Przetwarzane i składowane dane są złożone
strukturalnie. Typowe są hierarchicznie złożone struktury danych oraz liczne i
intensywnie przetwarzane powiązania między danymi. Powiązanie te mają złożoną
semantykę: referencji, agregacji lub kompozycji. Również semantyka danych jest
bardziej złożona. Informacje, które są przetwarzane w nowych dziedzinach
zastosowań to długie dokumenty tekstowe, obrazy, animacje, dane wielowymiarowe,
itp.
Lata osiemdziesiąte to również okres, kiedy rozpowszechniły się języki obiektowe.
Chętnie i powszechnie stosowanymi narzędziami programowymi stosowanymi do
budowy aplikacji stały się języki, takie jak: C++, Delphi i Java. Integracja aplikacji baz
danych pisanych za pomocą języków obiektowych z relacyjnymi bazami danych była
trudna i nienaturalna ponieważ system typów bazy danych i system typów aplikacji są
całkowicie odmienne.
3
Zaawansowane Systemy Baz Danych – ZSBD
Przykład złożonej rzeczywistości
Obraz
{persistence}
#utworzony : Date
#elementy[1..*] : Figura
+dodaj(Figura)
+utwórzKopię() :Obraz
jest_pierwowzorem
[0..1]
Figura
{abstract}
Odcinek
#Wierzchołki[2] : Punkt
+Długość() : Float
+Przesuń(Float, Float)
+typ : String
+Powierzchnia() : Float
+Przesuń(Float, Float)
[1..*]
[0..*]
utworzyła
[1..*]
Wielokąt
#Krawędzie[3..*] : Odcinek
+Powierzchnia() : Float
+Przesuń(Float, Float)
Koło
#środek : Punkt
#promień : Float
+Powierzchnia() : Float
+Przesuń(Float, Float)
Osoba
{persistence}
+imię : String
+nazwisko : String
+adres : Adres
Adres
Punkt
+X : Float
+Y : Float
+przesuń(Float,Float)
+miasto : String
+ulica : String
+NrDomu : Integer
Obiektowe bazy danych – Obiektowy model danych (4)
Na rysunku przedstawiono model fragmentu świata rzeczywistego o charakterystyce
reprezentatywnej dla wymienionych nowych dziedzin zastosowań. Przykład został
zamodelowany za pomocą diagramu klas języka UML.
Pierwszą charakterystyczną cechą zamodelowanej rzeczywistości są złożone
struktury danych. Przykładem jest klasa „
Obraz”
, która jest nieograniczoną kolekcją
elementów składowych, którymi są „
Figury”
. Poszczególne typy figur również mają
złożoną konstrukcję. Na przykład „
Wielokąty”
są kolekcjami krawędzi, które z kolei są
parami „
Wierzchołków”
. Na koniec typami danych „
Wierzchołków”
jest klasa „
Punkt”
.
Kolejną cechą przykładu jest zdefiniowana przez użytkownika semantyka operacji
dostępnych dla zdefiniowanych klas, wykraczająca poza operacje predefiniowanych
typów danych. Przykładem są operacje dostępne dla klasy „
Figura”
: wyznaczanie
powierzchni i przesuwanie figur na płaszczyźnie.
Demonstrowany przykład obejmuje również hierarchię klas, której korzeniem jest
abstrakcyjna klas „
Figura”
, a liśćmi klasy reprezentujące różne typy figur: „
Odcinki”
,
„
Koła”
i „
Wielokąty”
. Dzięki temu atrybut „
Elementy”
klasy „
Figura”
na charakter
polimorficzny. Wartościami kolekcji „
Elementy"
są obiekty o różnej strukturze i
semantyce operacji.
Ostatnią specyficzną własnością ilustrowaną przez przykład są jawne związki między
klasami. Są to: binarny związek między klasą „
Obraz”
i klasą „
Osoba”
reprezentujący
autorstwo poszczególnych „
Obrazów”
oraz unarny związek między „
Obrazami”
reprezentujący zapożyczenia między „
Obrazami”
.
4
Zaawansowane Systemy Baz Danych – ZSBD
Ograniczenia relacyjnego modelu danych
•Płaskie jednowymiarowe struktury danych
• Potrzeba sztucznych kluczy podstawowych
• Semantyka niestandardowych operacji musi być
implementowana poza bazą danych
• Brak pojęcia związków
• Brak hierarchii typów
Figury
(id_f PK, typ, powierzchnia)
Odcinki
(id_odc PK FK(Figury), typ, x1, y1, x2, y2)
Wielokąty
(id_w PK FK(Figury), typ)
Krawędzie
(id_k PK, x1, y1, x2, y2, id_w FK(Wielokąty))
Koła
(id_k PK FK(Figury), typ, x, y, promień)
Obrazy
(id_ob PK, utworzony)
Osoby
(id_os PK, imię, nazwisko, miasto, ulica, numer_domu)
Autorstwo
(id_ob FK(Obrazy), id_os FK(Osoby))
Modyfikacje
(wzorzec FK(Obrazy), modyfikacja FK(Obrazy))
Obiektowe bazy danych – Obiektowy model danych (5)
Reprezentacja przedstawionego fragmentu rzeczywistości za pomocą relacyjnego
modelu danych nie jest ani prosta, ani naturalna.
W przykładzie występują złożone struktury danych, a jedyną strukturą dostępną w
relacyjnym modelu danych jest krotka, czyli płaska lista prostych wartości. Relacyjny
model danych nie umożliwia zagnieżdżania konstruktorów typów danych. W związku z
tym, relacyjna reprezentacja przykładu będzie rozproszonym zbiorem niepowiązanych
i jednowymiarowych struktur danych. Przedstawiony na slajdzie schemat relacyjnej
bazy danych nie potrafi odzwierciedlić hierarchicznych zależności między danymi.
Metodyki poprawnego projektowania schematów relacyjnych baz danych wykluczają
również składowanie w bazie danych złożonych wartości atrybutów w sposób
transparentny dla modelu danych. Ograniczenie to jest zdefiniowane jako tak zwana
pierwsza postać normalna.
Potrzeba jednoznacznej identyfikacji pojedynczych danych przechowywanych w bazie
danych wymaga rozszerzania schematów relacji o sztuczne klucze podstawowe.
Dotyczy to przypadków, gdy zdefiniowane atrybuty nie gwarantują unikalności wartości
poszczególnych danych. Ponieważ klasy Figura, Koło, Wielokąt, Odcinek nie
posiadają atrybutów jednoznacznie identyfikujących ich wystąpienia transformacja
tych klas do schematu relacyjnej bazy danych wymaga dodania sztucznych kluczy
podstawowych do reprezentujących je relacji.
Relacyjny model danych pozwala na korzystanie jedynie z ograniczonego zbioru
prostych predefiniowanych typów danych. Niestandardowa semantyka przetwarzania
danych w rozwiązaniach relacyjnych musi być w całości zaimplementowana poza
systemem bazy danych, w aplikacjach bazy danych.
Relacyjny model danych nie obejmuje pojęcia związków między danymi. Związki
między danymi nie mogą, więc być składowane w bazie danych. Zależności klucz
obcy – klucz podstawowy służą jedynie do weryfikacji poprawności danych i nie mogą
być wykorzystane do nawigacji między danymi. Związki między danymi są kreowane
dynamicznie przez operacje połączenia. Systemy relacyjne realizując operacje
połączenia dopiero „w locie” ustalają powiązania między danymi.
5
[ Pobierz całość w formacie PDF ]