Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Diagram E/R w UML?

Jakub Wojt:
'Model danych' sugeruje architektowi sposób przechowywania stanu modelu;
Relacyjna baza danych to jest jedyna metoda przechowywania danych. Są inne: np. bazy obiektowe, xml itd...
Stąd moja prośba - niech analityk nie wchodzi w kompetencje architekta i nie narzuca pewnych technicznych rozwiązań.

problem w tym, że nie raz jak nie napiszę, to architekt projektuje znormalizowaną baze i ORM/Hibernate i czar pryska bo jeżeli mogę rozbudować model obiektowy to już nie koniecznie leżący po nim model relacyjny.
Kurcze, to na prawdę ciekawe, że analityk wie lepiej od 'swoich klientów' czego ci naprawdę potrzebują.

jeżeli analityk jest także projektantem to wie... to dokładnie to samo co architekt narzucający murarzom pewne szczegóły wykonania, zepsuć można na prawdę wszystko, to nie jest przypadek, ze obowiązkowo wpisuję sobie do umowy nadzór nad wykonawcą, mają tendencje do budowania marży poprzez upraszczanie projektu lub wręcz niewiedzę lub "jednie słuszne rozwiązania".

Nie raz toczyłem dyskusje z dostawcą, który wmawiał mi, że mój projekt jest zły bo "nie ma dobrej znormalizowanej bazy a tylko takie są dobre"...
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Diagram E/R w UML?

Diagram klas UML nie wyraża niczego innego jak relacje między i organizację danych w klasach...

i to jest niestety herezja...
Czy program który nie przechowuje swoich danych w 'tabelach' (nie ma diagramu E/R) jest programem 'bezsensownym' i jego projekt musi iść do kosza ?

czasami tak...
Kamil Stawiarski

Kamil Stawiarski Oracle Certified
Master | Oracle ACE

Temat: Diagram E/R w UML?

Jakub Wojt:
Witam,
Tutaj pozwolę sobie nie zgodzić się z Jakubem. Bardzo często spotykam bazy danych, w których klucz główny jest oparty na stringu, czy np. dacie - są to klucze naturalne. Klucz główny oparty na wielu kolumnach również nie jest zjawiskiem egzotycznym.

Ja też wiele rzeczy widziałem. Proszę powiedzieć jaki to ma sens ? "Dodatkowa walidacja wprowadzanych danych" ? "Zabezpieczenie przed rozspójnieniem" ? Przecież to wszystko powinno być w 'programie obiektowym'.

Ma taki sens, że wynika z zapotrzebowań biznesowych. A naturalne klucze główne są często najlepszą opcją, zwłaszcza jeżeli mówimy o hurtowniach danych. Spójność danych powinna trzymać baza na poziomie constraint'ów a nie aplikacja w swojej obiektowej formie - jest to niezwykle istotne z punktu widzenia wydajności.

Pozdrawiam,
Kamil.Kamil Stawiarski edytował(a) ten post dnia 01.11.11 o godzinie 18:57
Roman Wilk

Roman Wilk Tak właściwie, to
gram dużo w squash'a
:), ale to wciąż
z...

Temat: Diagram E/R w UML?

Kamil Stawiarski:
Spójność danych powinna trzymać baza na poziomie constraint'ów a nie aplikacja w swojej obiektowej formie - jest to niezwykle istotne z punktu widzenia wydajności.

Pozdrawiam,
Kamil.

A jak z czystej ciekawości, zapytam ...
Czy kolega zaprojektował chociaż jedną Aplkację, w której oparł logikę w dużej częsci na bazie danych i czy np. "przeżył" upgrade bazy z wersji x do y ?
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Diagram E/R w UML?

Spójność danych powinna trzymać baza na poziomie constraint'ów a nie aplikacja w swojej obiektowej formie - jest to niezwykle istotne z punktu widzenia wydajności.

A czym jest tu spójność danych? Jeżeli mam dwa integrowane systemy i każdy ma dane osobowe to jak tu rozumiemy spójność? Bo są to odrębne bazy danych... (tablice) dodam, ze integracja jest możliwa wyłącznie poprzez web serwisy lub ESB ..Jarek Żeliński edytował(a) ten post dnia 01.11.11 o godzinie 20:42
Kamil Stawiarski

Kamil Stawiarski Oracle Certified
Master | Oracle ACE

Temat: Diagram E/R w UML?

ROMAN WILK:
Kamil Stawiarski:
Spójność danych powinna trzymać baza na poziomie constraint'ów a nie aplikacja w swojej obiektowej formie - jest to niezwykle istotne z punktu widzenia wydajności.

Pozdrawiam,
Kamil.

A jak z czystej ciekawości, zapytam ...
Czy kolega zaprojektował chociaż jedną Aplkację, w której oparł logikę w dużej częsci na bazie danych i czy np. "przeżył" upgrade bazy z wersji x do y ?

Nie pisałem o implementacji logiki na poziomie bazy danych ale o więzach integralności - są to dwa odrębne pojęcia.

Ale jak już jesteśmy przy tym - jeśli walczymy o wydajność systemu to umieszczenie logiki po stronie bazy danych jest jedyną słuszną opcją - i odpowiadając na zadane pytanie: tak, zarabiam na życie wykonując m.in. upgrade takich aplikacji i żaden pacjent nie umarł mi na stole. Nie należy jednak mylić implementacji logiki aplikacji z więzami integralności!

Przede wszystkim trzeba się zdecydować czy aplikacja ma "pociągnąć" na różnych silniach RDBMS czy jest to rozwiązanie dedykowane np. dla Oracle, jak chociażby EBS.

Jarek Żeliński:
>
A czym jest tu spójność danych? Jeżeli mam dwa integrowane systemy i każdy ma dane osobowe to jak tu
rozumiemy spójność? Bo są to odrębne bazy danych... (tablice) dodam, ze integracja jest możliwa wyłącznie
poprzez web serwisy lub ESB ..

Myślę, że ten temat został wyczerpany przez normalizację relacyjnych baz danych - dokładniej fragment o zależnościach klucz główny - klucz obcy, oraz constraint'ach typu CHECK. Integracja systemów jest tu zupełnie osobnym problemem, ponieważ każdy z nich zapewnia takie więzy w swojej bazie niezależnie od drugiego.

Wydaje mi się Panowie, że mówimy i myślimy o zupełnie innych pojęciach.
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Diagram E/R w UML?

Jarek Żeliński:
>
A czym jest tu spójność danych? Jeżeli mam dwa integrowane systemy i każdy ma dane osobowe to jak tu
rozumiemy spójność? Bo są to odrębne bazy danych... (tablice) dodam, ze integracja jest możliwa wyłącznie
poprzez web serwisy lub ESB ..

Myślę, że ten temat został wyczerpany przez normalizację relacyjnych baz danych - dokładniej fragment o zależnościach klucz główny - klucz obcy, oraz constraint'ach typu CHECK.

Jak sobie kolega wyobraża taki klucz w bazie w opisanym przeze mnie przypadku skoro nie jest to jedna baza?
Integracja systemów jest tu zupełnie osobnym problemem, ponieważ każdy z nich zapewnia takie więzy w swojej bazie niezależnie od drugiego.

Nie, integracja systemów jest tym problemem bo w ramach jednej firmy miewamy coraz częściej odrębne integrowane systemy i posiadanie jednej relacyjnej bazy dla całej firmy staje powoli nierealna mrzonką ...
Wydaje mi się Panowie, że mówimy i myślimy o zupełnie innych pojęciach.

obawiam się, ze mówimy o tym samym: system IT w jednej firmie i w jej otoczeniu...
Łukasz Kurowski

Łukasz Kurowski Usque Ad Finem

Temat: Diagram E/R w UML?

Jarek Żeliński:
obawiam się, ze mówimy o tym samym: system IT w jednej firmie i w jej otoczeniu...

KS pisze o zachowaniu spójności danych w ramach jednego systemu IT, a właściwie jednej bazy danych tego systemu (bo przecież może korzystać z wielu). To może w pełni zostać obsłużone przez mechanizmy bazy danych. Dbanie o spójność pomiędzy systemami to o wiele bardziej złożone zagadnienie i z przykrością stwierdzam, że zaniedbywane w wielu miejscach, o czym przekonał się chyba każdy, kto miał do czynienia z projektami hurtowni danych.Łukasz Kurowski edytował(a) ten post dnia 02.11.11 o godzinie 10:11
Kamil Stawiarski

Kamil Stawiarski Oracle Certified
Master | Oracle ACE

Temat: Diagram E/R w UML?

Łukasz Kurowski:
Jarek Żeliński:
obawiam się, ze mówimy o tym samym: system IT w jednej firmie i w jej otoczeniu...

KS pisze o zachowaniu spójności danych w ramach jednego systemu IT, a właściwie jednej bazy danych tego systemu (bo przecież może korzystać z wielu). To może w pełni zostać obsłużone przez mechanizmy bazy danych. Dbanie o spójność pomiędzy systemami to o wiele bardziej złożone zagadnienie i z przykrością stwierdzam, że zaniedbywane w wielu miejscach, o czym przekonał się chyba każdy, kto miał do czynienia z projektami hurtowni danych.

Dokładnie tak.
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Diagram E/R w UML?

Łukasz Kurowski:
Jarek Żeliński:
obawiam się, ze mówimy o tym samym: system IT w jednej firmie i w jej otoczeniu...

KS pisze o zachowaniu spójności danych w ramach jednego systemu IT, a właściwie jednej bazy danych tego systemu (bo przecież może korzystać z wielu). To może w pełni zostać obsłużone przez mechanizmy bazy danych. Dbanie o spójność pomiędzy systemami to o wiele bardziej złożone zagadnienie i z przykrością stwierdzam, że zaniedbywane w wielu miejscach, o czym przekonał się chyba każdy, kto miał do czynienia z projektami hurtowni danych.

oczywiście, każde uproszczenie lub niestandardowe "implementacje" (uproszczone modele danych, normalizacja - będąca procesem stratnym) powodują problem. rzecz w tym, że model relacyjny to "jedna baza" a model obiektowy nie ma takiego ograniczenia dlatego do modelowania danych dla baz relacyjnych stosuje się modele ERD i ich specyfikę a do modelowania systemów obiektowych notacje UML. Utrwalanie danych (w bazie relacyjnej ale nie koniecznie) to implementacja repozytorium a tych jest dużo, nie tylko bazy relacyjne.

konto usunięte

Temat: Diagram E/R w UML?

Diagram klas UML nie wyraża niczego innego jak relacje między i organizację danych w klasach...

i to jest niestety herezja...

Źle to napisałem.
Poprawiona wersja: ... relacje między klasami i organizację danych w klasach.

Teraz mogę być heretykiem ;)
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Diagram E/R w UML?

Jakub Wojt:
Diagram klas UML nie wyraża niczego innego jak relacje między i organizację danych w klasach...

i to jest niestety herezja...

Źle to napisałem.
Poprawiona wersja: ... relacje między klasami i organizację danych w klasach.

Teraz mogę być heretykiem ;)

nie, proszę :)

klasy (obiekty) rweprezentują pewne zachowania, jeżeli jakis obiekt ma być utrwalony (na czas wyałczenia pradu :)) jest aktualny stan zapisujemy "na dysku" w repozytorium, a czym ono jest to zupęłnie inna kwestia... wzajemne relacje między obiektami moga sie nijak nie mieć do relacji danych o ile w ogóle między danymi mamy tu jakiekowliek relacje ....

konto usunięte

Temat: Diagram E/R w UML?

'Model danych' sugeruje architektowi sposób przechowywania stanu modelu;
Relacyjna baza danych to jest jedyna metoda przechowywania danych. Są inne: np. bazy obiektowe, xml itd...
Stąd moja prośba - niech analityk nie wchodzi w kompetencje architekta i nie narzuca pewnych technicznych rozwiązań.

problem w tym, że nie raz jak nie napiszę, to architekt projektuje znormalizowaną baze i ORM/Hibernate i czar pryska bo jeżeli mogę rozbudować model obiektowy to już nie koniecznie leżący po nim model relacyjny.

Proszę o przykład takiej rozbudowy / zmiany modelu obiektowego który potencjalnie może jest nieprzekładalny na zamianę 'relacyjną'.

Oczywiście zdarzają się sytuacje, kiedy architekt chce 'zoptymalizować / ulepszyć' schemat i w związku z tym zmiany w modelu obiektowym stają się 'niewprowadzalne' w schemacie, ale to świadczy jedynie o braku profesjonalizmu architekta a nie konieczności rozszerzania dokumentacji.

Nie można mieszać znaczenia systemu (model domeny, semantyka) z jego realizacją (architektura, syntax) bo to dwie różne rzeczy.
Kurcze, to na prawdę ciekawe, że analityk wie lepiej od 'swoich klientów' czego ci naprawdę potrzebują.

jeżeli analityk jest także projektantem to wie... to dokładnie to samo co architekt narzucający murarzom pewne szczegóły wykonania,

a murarze też mogą coś narzucić architektowi ?
przecież każdy ma jakiś gust ... ;)
zepsuć można na prawdę wszystko, to nie jest
przypadek, ze obowiązkowo wpisuję sobie do umowy nadzór nad
wykonawcą, mają tendencje do budowania marży poprzez
upraszczanie projektu lub wręcz niewiedzę lub "jednie słuszne
rozwiązania".

Ale przecież problem klienta i wykonawcy :)
Nie raz toczyłem dyskusje z dostawcą, który wmawiał mi, że mój projekt jest zły bo "nie ma dobrej znormalizowanej bazy a tylko takie są dobre"...

Wydaje mi się, że to jest związane z tym, że nie ma skutecznej metodyki wytwarzania oprogramowania 'biznesowego'.

Dlatego, zamiast stosować jakiś sprawdzony proces (czyli podział pracy na etapy, role, efekty pracy na poszczególnych etapach) ludzie je sobie wymyślają przy czym ostatnim kryterium oceny jaki stosują do swoich pomysłów jest krytyczne myślenie.

W 'przemyśle' IT panuje totalny chaos ...
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Diagram E/R w UML?

Jakub Wojt:
Proszę o przykład takiej rozbudowy / zmiany modelu obiektowego który potencjalnie może jest nieprzekładalny na zamianę 'relacyjną'.

mam np. system FK z magazynami, pod nim piękna znormalizowana baza(czyli standard), teraz FK wywalam, wstawiam nowe a zostawiam a magazyny wraz z logistyką. Oczekuję mimo to dostępu do starych faktur.

ogólnie problem w tym, ze typowej bazie relacyjnej każdy dokument (obiekt biznesowy) to faktycznie raport z tej bazy, takie cudo jest niepodzielne.
a murarze też mogą coś narzucić architektowi ?
przecież każdy ma jakiś gust ... ;)

murarze nie, mogą coś zasugerować bez gwarancji, ze przyjmę ale samowole tępię, klient ma prawo na etapie analizy i projektowania, potem może oczywiście zgłaszać nowe potrzebne funkcje...
Ale przecież problem klienta i wykonawcy :)

nie każdy go ma...
Nie raz toczyłem dyskusje z dostawcą, który wmawiał mi, że mój projekt jest zły bo "nie ma dobrej znormalizowanej bazy a tylko takie są dobre"...

Wydaje mi się, że to jest związane z tym, że nie ma skutecznej metodyki wytwarzania oprogramowania 'biznesowego'.

pewnie nie, ale są skuteczniejsze metody projektowania niż jedna wielka znormalizowana baza...
W 'przemyśle' IT panuje totalny chaos ...

w przemyśle nie, w wielu projektach tak...
Roman Wilk

Roman Wilk Tak właściwie, to
gram dużo w squash'a
:), ale to wciąż
z...

Temat: Diagram E/R w UML?

Kamil Stawiarski:
Ale jak już jesteśmy przy tym - jeśli walczymy o wydajność systemu to umieszczenie logiki po stronie bazy danych jest jedyną słuszną opcją ...

To rozważmy przykład, masz 10000 połączeń z dość wymagającym raportem do bazy danych (dedykowanej do składowania danych), dla "grubego klienta", baza będzie bez problemu odpowiadać i działać na zapytania każdego klienta. Natomiast baza danych (z logiką po stronie bazy, tylko nie pisz, że Oracle da sobie radę) niestety "zarżnie" hardware.
Jak zwykle, wszystko zawsze zależy od tego do czego dany system został zaprojektowany, ile i jaki rodzaj danych ma być obrabiany itd. itp.

Ale to się wie, po zaprojektowaniu przynajmniej kilku systemów :)

konto usunięte

Temat: Diagram E/R w UML?

Proszę o przykład takiej rozbudowy / zmiany modelu obiektowego który potencjalnie może jest nieprzekładalny na zamianę 'relacyjną'.

mam np. system FK z magazynami, pod nim piękna znormalizowana baza(czyli standard), teraz FK wywalam, wstawiam nowe a zostawiam a magazyny wraz z logistyką. Oczekuję mimo to dostępu do starych faktur.

To jest zmiana stanu systemu a nie modelu.
Jeśli jest to zmiana modelu to na czym ona polega ? Jak się zmienia (np.) obiektowy model domeny ?

Jak analityk opisał (formalnie) daną zmianę ?
Jeśli architekt dostanie formalny opis i ma 'wierną' (tzn. nieoptymalną) implementację modelu to nie będzie miał problemu z wprowadzeniem tej zmiany.
Nie raz toczyłem dyskusje z dostawcą, który wmawiał mi, że mój projekt jest zły bo "nie ma dobrej znormalizowanej bazy a tylko takie są dobre"...

Wydaje mi się, że to jest związane z tym, że nie ma skutecznej metodyki wytwarzania oprogramowania 'biznesowego'.
pewnie nie, ale są skuteczniejsze metody projektowania niż jedna wielka znormalizowana baza...

... ale wciąż nieskuteczne.
W 'przemyśle' IT panuje totalny chaos ...

w przemyśle nie, w wielu projektach tak...

nie ma skutecznych metodyk ale przemysł jest skuteczny ?
Jarosław Żeliński

Jarosław Żeliński Analityk i
Projektant Systemów

Temat: Diagram E/R w UML?

Jakub Wojt:
Proszę o przykład takiej rozbudowy / zmiany modelu obiektowego który potencjalnie może jest nieprzekładalny na zamianę 'relacyjną'.

mam np. system FK z magazynami, pod nim piękna znormalizowana baza(czyli standard), teraz FK wywalam, wstawiam nowe a zostawiam a magazyny wraz z logistyką. Oczekuję mimo to dostępu do starych faktur.

To jest zmiana stanu systemu a nie modelu.

model (dobry) modeluje system :)
Jeśli jest to zmiana modelu to na czym ona polega ? Jak się zmienia (np.) obiektowy model domeny ?

nie zmienia się i w tym jego zaleta

reszty pytań nie zrozumiałem .

konto usunięte

Temat: Diagram E/R w UML?

Ja też wiele rzeczy widziałem. Proszę powiedzieć jaki to ma sens ? "Dodatkowa walidacja wprowadzanych danych" ? "Zabezpieczenie przed rozspójnieniem" ? Przecież to wszystko powinno być w 'programie obiektowym'.

Ma taki sens, że wynika z zapotrzebowań biznesowych.
A naturalne klucze główne są często najlepszą opcją, zwłaszcza
jeżeli mówimy o hurtowniach danych.

...
Spójność danych powinna trzymać baza na poziomie constraint'ów a nie aplikacja w swojej obiektowej formie

kto tak twierdzi ?
- jest to niezwykle istotne z punktu widzenia wydajności.

czego ? systemu, zespołu produkcyjnego, czy zespołu rozwijającego system ?
Kamil Stawiarski

Kamil Stawiarski Oracle Certified
Master | Oracle ACE

Temat: Diagram E/R w UML?

Jakub Wojt:
Spójność danych powinna trzymać baza na poziomie constraint'ów a nie aplikacja w swojej obiektowej formie

kto tak twierdzi ?

Każdy, kto ma jakiekolwiek pojęcie o enterprise'owych serwerach bazodanowych.
- jest to niezwykle istotne z punktu widzenia wydajności.

czego ? systemu, zespołu produkcyjnego, czy zespołu rozwijającego system ?

Systemu.

Przy czym zaznaczam po raz kolejny - mówię o bazie danych jako pojedynczym repozytorium systemu.
Paweł Grzegorz Kwiatkowski

Paweł Grzegorz Kwiatkowski Architekt
oprogramowania,
Ericsson

Temat: Diagram E/R w UML?

Jarek Żeliński:
Paweł Grzegorz Kwiatkowski:
...
Technicznie jest więc to wykonalne, jednak nie jest to standard. Ot, ciekawostka ;)

rozszerzenia buduje się poprzez stereotypy, pojęcie profilu to dodanie do systemu klasyfikatorów (klas) dodatkowego aparatu pojęciowego ale profil taki nie zmienia obiektowego paradygmatu całej notacji UML, po protu problem w tym, że aparat matematyczny rachunku relacji w systemie relacyjnego opisu danych i paradygmat obiektowy to dwa światy, niestety stale trafiają się chętnie na modelowanie danych w UML...

"Ciekawostkę" traktuję w kategoriach "eksperymentu myślowego", przy okazji którego można sobie różne rzeczy uświadomić, w związku z tym parę głupich pytań z mojej strony.

Czy to znaczy, że istnienie tych dwu światów przeczy możliwości rozszerzenia UML, tak by możliwe było modelowanie danych i nie doczekamy się standaryzacji tegoż np. w UML ver. X.Y ? Poza Amblerem są jeszcze inne propozycje (http://www.jeckle.de/files/RationalUML-RDB-Profile.pdf oraz nawiązanie do tego profilu: http://www.sparxsystems.com/resources/uml_datamodel.html) bazujące jednak na diagramie klas, chociaż nazwanym diagramem modelu danych i zapewne posiadające podobne wady.

Wśród RFP na stronie OMG jest wspomniany przez Amblera "Information Management Metamodel (IMM) RFP" obejmujące UML Data Profile, jednak "wisi" to od 2005.
można co najwyżej mówić o podobieństwie modelu klas do modelu konceptualnego danych ale z pewnymi jednak różnicami (ograniczeniami), podstawowe wybrane różnice to:
- relacyjny model danych ER nie dopuszcza relacji wiele-do-wiele (musi być rozwiązywane dodatkową encją "w środku", w modelu (paradygmacie) obiektowym nie istnieje takie ograniczenie
- obiekty (model obiektowy) mogą być logicznie kojarzone z pomocą odwołania do wartości atrybutów, w modelu relacyjnym skojarzenia to są trwałe asocjacje (relacje), nie zmieniane (związek dwóch klas nie musi oznaczać ich trwałego skojarzenia asocjacją obiekt jest aktywny i może sam "poszuka" skojarzonej logicznie klasy, krotki w RDBMS to martwe zapisy)

Nie wiem czy dobrze rozumiem, ale to argumenty na to, że rzeczy które da się zrobić w modelu obiektowym nie da się zrobić w relacyjnym?
Przytoczona strona Amblera, w moich oczach to kulawe atrapy rodem z EJB (POJO i binsy)... mało to ma wspólnego z UML i obiektowością, a profil ma poważne wady (stereotyp sam jest klasa, definicja profilu to także rodzaj diagramu klas rozszerzającego taksonomię notacji, tak więc profil bez spójnego metamodelu jest niereyfikowalny). Samo naklepanie stereotypów nie oznacza, że stworzyliśmy profil dla UML.

Argument o weryfikacji bardzo dobry. Rozumiem, że taki profil powinien być zdefiniowany formalnie, a to co zostało zaprezentowane przez Amblera/Rational to jedynie propozycje notacji?

Następna dyskusja:

Diagram E/R




Wyślij zaproszenie do