ZSBD-2st-1.2-lab9.tresc-1.3-Slajd3

From Studia Informatyczne

Wprowadzenie do laboratorium

Wprowadzenie do laboratorium


Jedną z ważniejszych cech modelu obiektowego jest możliwość tworzenia typów obiektowych stanowiących specjalizację innych typów. Typy stanowiące specjalizację (inaczej podtypy) dziedziczą wszystkie metody i atrybuty swoich nadtypów, ale mogą również wprowadzać nowe atrybuty i metody, oraz wprowadzać modyfikacje do implementacji odziedziczonych metod. W modelu obiektowo-relacyjnym również istnieje możliwość tworzenia specjalizacji typów obiektowych. Daje to niesłychaną elastyczność budowanych schematów tabel oraz niezwykle łatwą budowę i późniejsze rozszerzanie funkcjonalności aplikacji. Rozważmy przykładową tabelę pokazaną na slajdzie opisującą posiadane przez pracowników firmy pojazdy, którymi docierają do miejsca pracy. Posiada ona dwa atrybuty: NAZWISKO i POJAZD. Pierwszy atrybut określa nazwisko pracownika, a drugi jest typu obiektowego POJAZD i charakteryzuje pojazd pracownika. W typie obiektowym POJAZD zadeklarowano jedynie pola opisujące wszystkie pojazdy niezależnie od ich faktycznego typu (tutaj jest to maksymalna prędkość). Każdy typ pojazdu posiada jednak charakterystyczne dla siebie wartości. W sytuacji, gdyby wykorzystany był model relacyjny, to należałoby albo utworzyć dla każdego typu pojazdu osobną tabelę, albo w jednej tabeli przechowywać wszystkie dane dotyczące wszystkich typów pojazdów. Obydwa rozwiązania są kłopotliwe i prowadzą do konieczności rozwiązania różnych problemów przy konstrukcji zapytań. Dodatkowe problemy powstają w sytuacji gdy zachodzi konieczność uwzględnienia kolejnego typu pojazdu, który nie został przewidziany w momencie tworzenia aplikacji. W model obiektowo – relacyjnym, możliwe jest utworzenie podtypów typu pojazd, które przechowują dane charakterystyczne dla konkretnego typu pojazdu. Jak łatwo zauważyć, aby dodać nowy typ pojazdu, nie trzeba wprowadzać żadnych modyfikacji do istniejącego schematu tabel. Wystarczy jedynie zdefiniować nowy typ obiektowy dziedziczący z typu POJAZD. Załóżmy, że aplikacja korzystająca z tabeli przedstawionej na slajdzie oblicza dla każdego pracownika jego roczne koszty utrzymania pojazdu. W modelu obiektowo relacyjnym można zaimplementować w typie POJAZD, i jego podtypach, metodę RoczneKoszty, której implementacja jest charakterystyczna dla danego typu pojazdu i oblicza potrzebną aplikacji wartość. Dzięki temu, w sytuacji gdy dodawany będzie do aplikacji kolejny typ pojazdu, nie będzie trzeba modyfikować zapytań obliczających roczny koszt utrzymania, gdyż będą one jedynie aktywować metody charakterystyczne dla danego podtypu.


<< Poprzedni slajd | Spis treści | Następny slajd >>