Zaawansowane Modelowanie I Analiza Systemów Informatycznych Wprowadzenie mgr. inż. Tomasz Pieciukiewicz tomasz.pieciukiewicz@gmail.com
Agenda ZMA jako przedmiot Wprowadzenie do Object Role Modeling
ZMA JAKO PRZEDMIOT
Zakres kursu Modelowanie danych przy pomocy metody ORM Modelowanie procesów przepływu pracy Model Driven Architecture
Zaliczenie Dwa kolokwia wykład #4 wykład #8 Egzamin
WPROWADZENIE DO ORM
Modelowanie pojęciowe Techniki modelowania pojęciowego powinny zachęcać do myślenia o informacji pozwalać na jasną prezentację semantyki modelowanej informacji wspomagać konstruowanie poprawnych semantycznie modeli wspomagać transformację stworzonych modeli do modelu relacyjnego (lub innego, stosowanego w implementacji)
Czym jest informacja? Informacja = Dane + Semantyka dane przechowywane w bazie danych semantyka znaczenie tych danych
ORM 7 kroków tworzenia schematu 1. Przekształć przykłady informacji w proste fakty, dokonaj kontroli jakości 2. Zdefiniuj typy faktów, narysuj pierwszą wersję diagramu, sprawdź wyniki przez populację 3. Zidentyfikuj dane pochodne (arytmetyczne) oraz nadmiarowe typy bytów (encji) 4. Dodaj ograniczenia unikalności, sprawdź arność typów faktów
ORM 7 kroków tworzenia schematu 5. Dodaj ograniczenia ról obowiązkowych, sprawdź dane pochodne (logiczne) 6. Dodaj porównania wartości i zbiorów, ograniczenia dla podtypów 7. Dodaj inne ograniczenia, dokonaj ostatecznej kontroli
Przekształć przykłady informacji w proste fakty, dokonaj kontroli jakości KROK 1
Przykłady informacji Maria Kowalska pracuje w dziale Sprzedaży Pracownicy są identyfikowani przez numer Beethoven napisał IX Symfonię Student 1234 dostał 2 z PRI Dawid Malinowski pracuje w dziale Aplikacji Biznesowych i ma numer CS01 Pracownik 2345 jest nadzorowany przez Pracownika 3456
Przykłady informacji i elementarnych predykatów Student Wykład Wykładowca 1234 ZMA Pieciukiewicz 2345 ZMA Pieciukiewicz 2345 TIN Pieciukiewicz 2345 TPB Trzaska STUDENT identyfikowany przez NRINDEKSU# 1234 ZAPISAŁ SIĘ na WYKŁAD identyfikowany SKRÓTEM ZMA WYKŁADOWCA identyfikowany przez NAZWISKO Pieciukiewicz prowadzi WYKŁAD identyfikowany SKRÓTEM ZMA
Przykładowa populacja dla predykatu #1 (typ encji) WYKŁAD WYKŁADOWCA (identyfikator) SKRÓT NAZWISKO (rola) WYKŁADANY_PRZEZ WYKŁADA (instancja faktu) ZMA Pieciukiewicz TIN Pieciukiewicz TPB Trzaska
Kontrola jakości Czy możemy informacje przedstawić przy pomocy predykatów o innej strukturze? Jakiej? Która ze struktur predykatów jest lepsza? prostsza lepiej oddaje rzeczywistość
Kontrola jakości Struktura #1 STUDENT identyfikowany przez NRINDEKSU# 1234 ZAPISAŁ SIĘ na WYKŁAD identyfikowany SKRÓTEM ZMA WYKŁADOWCA identyfikowany przez NAZWISKO Pieciukiewicz PROWADZI WYKŁAD identyfikowany SKRÓTEM ZMA Struktura #2 STUDENT identyfikowany przez NRINDEKSU# 1234 ZAPISAŁ SIĘ na WYKŁAD identyfikowany SKRÓTEM ZMA który był PROWADZONY PRZEZ WYKŁADOWCĘ identyfikowanego przez NAZWISKO Pieciukiewicz
Kontrola jakości Struktura #1 dwa elementarne predykaty (binarne) Struktura #2 predykat 3-arny (nieelementarny) Czy informacja o wykładowcy jest zależna od informacji o zapisanych studentach? (nie) Struktura #1 -> lepsza
Elementarne predykaty Predykat elementarny nie może zostać podzielony na mniejsze jednostki informacji, dostarczające razem tej samej informacji
Populacja predykatów Dla każdego predykatu stwórz tabelę pokazującą typy encji, identyfikatory i role wypełnij każdą tabelę zbiorem znaczących instancji identyfikatorów dla predykatów binarnych wystarcza zbiór 3- elementowy warto rozważyć kontrprzykłady (oznaczane znakiem zapytania)
Przykładowa populacja dla predykatu #2 (typ encji) STUDENT WYKŁAD (identyfikator) NRINDEKSU# SKRÓT (rola) ZAPISAŁSIĘ UCZĘSZCZANYPRZEZ (instancja faktu) 1234 ZMA 2345 ZMA 2345 TIN Warto zwrócić uwagę na dobór danych: Fakt #2 wielu studentów zapisanych na wykład, ten sam student zapisany na wiele wykładów Fakt #1 jeden wykład prowadzony przez jednego wykładowcę, wykładowca prowadzi wiele wykładów
Zdefiniuj predykaty, narysuj pierwszą wersję diagramu, sprawdź wyniki przez populację KROK 2
Identyfikowany przez/identyfikuje Identyfikowany przez/identyfikuje Fragment diagramu STUDENT Zapisany na/uczęszczają WYKŁAD NRINDEKSU# SKRÓT
Identyfikowany przez/identyfikuje Identyfikowany przez/identyfikuje Fragment diagramu Prowadzi/Wykładany przez WYKŁADOWCA WYKŁAD NAZWISKO SKRÓT
Identyfikowany przez/identyfikuje Identyfikowany przez/identyfikuje Identyfikowany przez/identyfikuje Pełen diagram WYKŁADOWCA Prowadzi/Wykładany przez WYKŁAD Zapisany na/uczęszczają STUDENT NAZWISKO SKRÓT NRINDEKSU#
Identyfikowany przez/identyfikuje Identyfikowany przez/identyfikuje Identyfikowany przez/identyfikuje Diagram+populacje predykatów Prowadzi/Wykładany przez WYKŁADOWCA Pieciukiewicz ZMA Pieciukiewicz TIN Trzaska TPB WYKŁAD Zapisany na/uczęszczają ZMA 1234 ZMA 2345 TIN 2345 STUDENT NAZWISKO SKRÓT NRINDEKSU#
Uproszczenie diagramu skrót notacji dla identyfikatorów WYKŁADOWCA (NAZWISKO) Prowadzi/Wykładany przez WYKŁAD (SKRÓT) Zapisany na/uczęszczają STUDENT (NRINDEKSU#) Pieciukiewicz ZMA ZMA 1234 Pieciukiewicz TIN ZMA 2345 Trzaska TPB TIN 2345
Zidentyfikuj dane pochodne (arytmetyczne) oraz nadmiarowe typy bytów (encji) KROK 3
dla/kupiony przez Można usunąć zbędne typy encji Produkt (NrProduktu#) sprzedany/kupiony Sprzedaż Produkt (NrProduktu#) Data (DDMMRR) kiedy/kupiony w Klient (NrKlienta#) Klient (NrKlienta#) Data (DDMMRR) co komu kiedy
Połączenie typów encji Encje współdzielące rolę Encje, które można porównywać Pracownik (NrPracownika#) zarobki Pensja $ Pracownik (NrPracownika#) zarobki Kwota ($ilość) Dział (NrDziału#) przydział Budżet $ Dział (NrDziału#) przydział
Eliminacja pochodnych predykatów pensja po opodatkowaniu Pracownik (NrPracownika#) ZUS Kwota ($ilość) pensja na rękę * pensja na rękę = pensja po opodatkowaniu-zus Gwiazdką oznaczamy predykaty pochodne powinniśmy je usunąć z diagramu i dostarczyć formułę pozwalającą na ich obliczanie
Encje vs. wartości Kiedy wykorzystać encje, kiedy wartości? wartość DOMENA jakiegoś typu danych powiązana tylko z jedną encją encja powiązana z wartością DOMENA typu danych powiązana z więcej niż jedną encją Wartość może być powiązana tylko z jedną encją!
Identyfikowany przez/identyfikuje wartość Identyfikowany przez/identyfikuje Encje vs. wartości WYKŁADOWCA ma NAZWISKO ma STUDENT NIP ZNAKI NRINDEKSU#
Encje zagnieżdżone Tzw. objectified association zamiana asocjacji na obiekt Specjalna notacja
Student... uczęszczał na wykład... i uzyskał z egzaminu... Encje zagnieżdżone - przed Student (NrIndeksu#) Wykład (Skrót) Wynik (Ocena)
Encje zagnieżdżone - po Student (NrIndeksu#) Zapis Wykład (Skrót) Wynik (Ocena) 1234 ZMA 2345 ZMA 2345 TIN 2345 TPB (1234, ZMA) 5 (2345, ZMA) 4 (2345, TIN) 3 (2345, TPB) 4
Dodaj ograniczenia unikalności, sprawdź arność predykatów KROK 4
Identyfikowany przez/identyfikuje 1:1 WYKŁADOWCA NAZWISKO
1:n Prowadzi/Wykładany przez WYKŁADOWCA WYKŁAD Pieciukiewicz ZMA Pieciukiewicz TIN Trzaska TPB
n:m WYKŁAD Zapisany na/uczęszczają ZMA 1234 ZMA 2345 TIN 2345 STUDENT
Identyfikowany przez/identyfikuje Identyfikowany przez/identyfikuje Identyfikowany przez/identyfikuje Przykład diagramu Prowadzi/Wykładany przez WYKŁADOWCA Pieciukiewicz ZMA Pieciukiewicz TIN Trzaska TPB WYKŁAD Zapisany na/uczęszczają ZMA 1234 ZMA 2345 TIN 2345 STUDENT NAZWISKO SKRÓT NRINDEKSU#
Student... uczęszczał na wykład... i uzyskał z egzaminu... Poprawność arności faktów Student (NrIndeksu#) Wykład (Skrót) Wynik (Ocena) Możemy podzielić ten fakt na fakty binarne, czy też jest on faktem elementarnym?
Przykładowa populacja STUDENT WYKŁAD OCENA 1234 ZMA 5 2345 ZMA 4 2345 TIN 3 2345 TPB 4
Przykładowe rozbicie predykatu na prostsze WYNIK (OCENA) Prowadzi/Wykładany przez WYKŁAD (SKRÓT) Zapisany na/uczęszczają STUDENT (NRINDEKSU#) 5 ZMA ZMA 1234 4 ZMA ZMA 2345 3 TIN TIN 2345 4 TPB TPB 2345
Sprawdźmy wynik złączenia STUDENT WYKŁAD OCENA 1234 ZMA 5 1234 ZMA 4 2345 ZMA 5 2345 ZMA 4 2345 TIN 3 2345 TPB 4 Pojawiają się nadprogramowe linie!
UŻYTA NOTACJA
Użyta notacja NAZWA Encja NAZWA Wartość Rola Predykat binarny Unikalność tzw. Objectified association
UWAGI KOŃCOWE
Wyższość Świąt Bożego Narodzenia nad Świętami Wielkiej Nocy Pytania ER, UML, ORM... nie za dużo tego? Co jest lepsze? Odpowiedź Do jakich zastosowań? Stosujmy właściwe narzędzie do rozwiązania konkretnego problemu!
Podręczniki Terry Halpin, Information Modeling and Relational Databases, Morgan Kaufmann Publishers, 2001, Wil van der Aalst and Kees van Hee, Workflow Management Models, Methods and Systems, The MIT Press, 2004
Dodatkowe źródła http://www.orm.net/ http://www.tonymarston.net/php-mysql/workflow.html