4. Modelowanie wartości pochodnych Kurs WebML 4. Modelowanie wartości pochodnych Copyright © Politecnico di Milano March 2003 Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Modelowanie wartości pochodnych Plan 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 http://www.webratio.com
Użycie wartości pochodnych MODEL 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 http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska MODEL 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 http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska Encje 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 http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska MODEL 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 http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska TOOLS Atrybuty importowane Import zewnętrznej informacji do encji female male husband lastname maritalName Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska Atrybuty 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 http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska MODEL 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 http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska TOOLS Relacje pochodne Uszczegółowienie istniejącej relacji Album Artist Artist2Album Artist2RecentAlbum Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska TOOLS Relacje pochodne Konkatenacja istniejących relacji Album Artist CompilationArtist SongAlbum Song SongArtist Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska TOOLS 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 http://www.webratio.com
Modelowanie wartości pochodnych Wartości pochodne: podstawowe użycie Wartości pochodne: definicja formalna Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska Atrybuty 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 http://www.webratio.com
Atrybuty pochodne: importowanie informacji MODEL 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 http://www.webratio.com
Atrybuty pochodne: obliczanie wartości MODEL 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 http://www.webratio.com
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 http://www.webratio.com
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 http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska Encje pochodne MODEL Populacja podencji w hierarchii ISA może być określona przez wyrażenia języka OQL Np. <ENTITY id="Italian" superEntity=“Person" value=“Person as P where P.birthPlace like ‘*Italy*’ "> </ENTITY> Np. <ENTITY id=“TopSell" superEntity=“Book" value=“Book as B where B.Copies > 500,000 "> Italian Person ISA TopSell Book ISA Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska MODEL 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 http://www.webratio.com
Relacje pochodne: uszczegółowienie/konkatenacja MODEL Relacje pochodne: uszczegółowienie/konkatenacja Uszczegółowienie istniejącej relacji Np. <RELATIONSHIP id="Artist2TopSeller" to="Album" inverse="TopSeller2Artist" value="Self.Artist2Album as A where A ISA TopSeller" /> Konkatenacja istniejących relacji Np. <RELATIONSHIP id="CoParticipation" to="Artist" inverse="CoParticipation" value="Self.Artist2Compilation.Compilation2Artist"/> Album Artist Artist2Album Artist2TopSeller Artist Compilation Compilation2Artist CoParticipation Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com
Relacje pochodne: łączenie par obiektów MODEL <RELATIONSHIP id="User2Favorite" to="Article" 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 http://www.webratio.com
Translation: Kamil Żyła, Politechnika Lubelska Wartości pochodne THE END Translation: Kamil Żyła, Politechnika Lubelska http://www.webratio.com