4. Modelowanie wartości pochodnych

1 4. Modelowanie wartości pochodnychKurs WebML 4. Modelow...
Author: Gracja Zbylut
0 downloads 2 Views

1 4. Modelowanie wartości pochodnychKurs WebML 4. Modelowanie wartości pochodnych Copyright © Politecnico di Milano March 2003 Translation: Kamil Żyła, Politechnika Lubelska

2 Modelowanie wartości pochodnychPlan T.O.C. Modelowanie wartości pochodnych Wartości pochodne: podstawowe użycie Wartości pochodne: definicja formalna Poniższy moduł zawiera przegląd zagadnień związanych z projektowaniem aplikacji, modelami WebML oraz narzędziami. Translation: Kamil Żyła, Politechnika Lubelska

3 Użycie wartości pochodnychMODEL Użycie wartości pochodnych Etap modelowania wartości pochodnych umożliwia Rozbudowanie encji o dodatkowe atrybuty pochodzące z encji powiązanych relacjami Rozbudowanie encji o dodatkowe atrybuty obliczone na podstawie wartości atrybutów już istniejących Określenie populacji encji lub relacji na podstawie wybranych właściwości powiązanych obiektów Translation: Kamil Żyła, Politechnika Lubelska

4 Translation: Kamil Żyła, Politechnika LubelskaMODEL WebML OCL Wartości pochodne są definiowane poprzez specjalne wyrażenia (derivation queries) Wyrażenia te mogą być zapisane przy użyciu języka WebML OCL Wartościami pochodnymi mogą być Encje, relacje, atrybuty Wyrażenia mogą być automatycznie przetwarzane na perspektywy SQL, których definicje są przechowywane w bazie danych Translation: Kamil Żyła, Politechnika Lubelska

5 Translation: Kamil Żyła, Politechnika LubelskaEncje pochodne MODEL Populacja podencji w hierarchii ISA może być określona na podstawie wyrażeń w języku OQL “Wolnym gniazdem (slot) jest gniazdo, które ma zero rezerwacji” WebML OQL: “SuperEntity where count(reservation)=0” freeSlot slot ISA Translation: Kamil Żyła, Politechnika Lubelska

6 Translation: Kamil Żyła, Politechnika LubelskaMODEL Atrybuty pochodne Atrybuty encji mogą być wyznaczane poprzez przypisanie do nich odpowiedniego wyrażenia Są 4 typy atrybutów pochodnych Stałe: affiliation: “Politecnico di Milano” Importowane: maritalName: Self.husband.lastname Agregowane: reservation#: count(Self.reservation) Obliczane: lastPrice: Self.price*discount Słowo kluczowe Self identyfikuje encję, w której jest definiowany atrybut Translation: Kamil Żyła, Politechnika Lubelska

7 Translation: Kamil Żyła, Politechnika LubelskaTOOLS Atrybuty importowane Import zewnętrznej informacji do encji female male husband lastname maritalName Translation: Kamil Żyła, Politechnika Lubelska

8 Translation: Kamil Żyła, Politechnika LubelskaAtrybuty obliczane MODEL Koszt zamówienia jako suma kosztów jego składowych Wyrażenia OL.TotalPrice = Self.Price * Self.Quantity Order.TotalPrice = Sum (Self.Order2OL.TotalPrice) Order.NumLines = Count (Self.Order2OL) Order OL OL2Order price, qty Translation: Kamil Żyła, Politechnika Lubelska

9 Translation: Kamil Żyła, Politechnika LubelskaMODEL Relacje pochodne WebOQL umożliwia tworzenie relacji Poprzez konkatenację (łączenie) istniejących relacji Poprzez uszczegółowianie istniejących relacji Poprzez łączenie par obiektów spełniających pewien warunek Zmienna Self wskazuje na instancję encji źródłowej relacji Translation: Kamil Żyła, Politechnika Lubelska

10 Translation: Kamil Żyła, Politechnika LubelskaTOOLS Relacje pochodne Uszczegółowienie istniejącej relacji Album Artist Artist2Album Artist2RecentAlbum Translation: Kamil Żyła, Politechnika Lubelska

11 Translation: Kamil Żyła, Politechnika LubelskaTOOLS Relacje pochodne Konkatenacja istniejących relacji Album Artist CompilationArtist SongAlbum Song SongArtist Translation: Kamil Żyła, Politechnika Lubelska

12 Translation: Kamil Żyła, Politechnika LubelskaTOOLS Relacje pochodne Łączenie par obiektów spełniających pewien warunek User2Favorites jest relacją, która łączy obiekt użytkownika ze wszystkimi artykułami w kategoriach, które znajdują się w zbiorze ulubionych kategorii użytkownika User2Favorites Category User2Preference Article User User2Article Translation: Kamil Żyła, Politechnika Lubelska

13 Modelowanie wartości pochodnychWartości pochodne: podstawowe użycie Wartości pochodne: definicja formalna Translation: Kamil Żyła, Politechnika Lubelska

14 Translation: Kamil Żyła, Politechnika LubelskaAtrybuty pochodne MODEL Atrybuty encji mogą być wyznaczane poprzez przypisanie do nich odpowiedniego wyrażenia Słowo kluczowe Self identyfikuje encję, w której jest definiowany atrybut Np. Book.Language = Self.Book2Author.Language Author Book Book2Author Translation: Kamil Żyła, Politechnika Lubelska

15 Atrybuty pochodne: importowanie informacjiMODEL Atrybuty pochodne: importowanie informacji Import zewnętrznej informacji do encji Np. Product.BrandLogo = Self.Prod2Brand.Logo Brand Product Prod2Brand Translation: Kamil Żyła, Politechnika Lubelska

16 Atrybuty pochodne: obliczanie wartościMODEL Atrybuty pochodne: obliczanie wartości Obliczanie wartości dla atrybutu Order OL OL2Order Np. OL.TotalPrice = Self.Price * Self.Quantity Order.TotalPrice = Sum (Self.Order2OL.TotalPrice) Order.NumLines = Count (Self.Order2OL) Translation: Kamil Żyła, Politechnika Lubelska

17 Atrybuty pochodne: możliwości (1)MODEL Atrybuty pochodne: możliwości (1) Wartości stałe Np. Track.Type = ‘CD track’ Wieloetapowe przechodzenie relacji Np. Track.Language= Self.Track2Album.Album2Artist.Language Filtrowanie wartości Artist.NewAlbums = count (Self.Artist2Album (as B) where B.Date > ‘01/01/98’ ) Alias Album Track T2A Artist A2A Translation: Kamil Żyła, Politechnika Lubelska

18 Atrybuty pochodne: możliwości (2)MODEL Atrybuty pochodne: możliwości (2) Hierarchia ISA Book.TopIcon=‘topImg.gif’ where Self ISA TopSeller Wymóg braku acykliczności (brak rekursji): Wartości pochodne nie mogą być zdefiniowane pośrednio lub bezpośrednio na sobie TopSell Book ISA Translation: Kamil Żyła, Politechnika Lubelska

19 Translation: Kamil Żyła, Politechnika LubelskaEncje pochodne MODEL Populacja podencji w hierarchii ISA może być określona przez wyrażenia języka OQL Np. value=“Person as P where P.birthPlace like ‘*Italy*’ "> Np. value=“Book as B where B.Copies > 500,000 "> Italian Person ISA TopSell Book ISA Translation: Kamil Żyła, Politechnika Lubelska

20 Translation: Kamil Żyła, Politechnika LubelskaMODEL Relacje pochodne Relacje mogą być definiowane przy użyciu wyrażeń WebOQL Poprzez konkatenację (łączenie) istniejących relacji Poprzez uszczegółowianie istniejących relacji Poprzez łączenie par obiektów spełniających pewien warunek Zmienna Self wskazuje na instancję encji źródłowej relacji Translation: Kamil Żyła, Politechnika Lubelska

21 Relacje pochodne: uszczegółowienie/konkatenacjaMODEL Relacje pochodne: uszczegółowienie/konkatenacja Uszczegółowienie istniejącej relacji Np. inverse="TopSeller2Artist" value="Self.Artist2Album as A where A ISA TopSeller" /> Konkatenacja istniejących relacji Np. to="Artist" inverse="CoParticipation" value="Self.Artist2Compilation.Compilation2Artist"/> Album Artist Artist2Album Artist2TopSeller Artist Compilation Compilation2Artist CoParticipation Translation: Kamil Żyła, Politechnika Lubelska

22 Relacje pochodne: łączenie par obiektówMODEL inverse=“Favorite2User" value="Self.Article as A where A.category in Self.User2Preference.name"/> User2Favorites Category User2Preference Article User User2Article User2Favorites jest relacją, która łączy obiekt użytkownika ze wszystkimi artykułami w kategoriach, które znajdują się w zbiorze ulubionych kategorii użytkownika Translation: Kamil Żyła, Politechnika Lubelska

23 Translation: Kamil Żyła, Politechnika LubelskaWartości pochodne THE END Translation: Kamil Żyła, Politechnika Lubelska