Temat: UML a ERD
Generalnie TAK, aczkolwiek :
- zdrowe podejście do BD w moim mniemaniu wcale nie oznacza ładowania logiki aplikacji w BD, można ewentualnie część standaryzacji/walidacji zaszyć w BD ale sama logika (trigger / procedura) nie jest obowiązkowa ... taki kompromis
- podoba mi się rozgraniczenie "bazy danych" od active record :) wtedy faktycznie wiele nieporozumień znika
- hurtownia danych to nie to samo co baza danych, hurtownia ma to do siebie ze jest bardzie READ niż write, dane są organizowane pod kątem informacji które są poszukiwane, wiele danych jest powielanych by zyskać wydajność
- mówiąc baza danych mam na myśli miejsce przechowywania wielu rodzajów danych o wielkiej ilości, które są dodawane, modyfikowane, usuwane, ponownie dodawane itd itd itd ... hurtownia nie ma tu zastosowania ... hurtownie karmi się tym co w takiej bazie zostanie "stworzone" i "zaklepane" jako poprawne, przetworzone, odfajkowane.
- problemy z modyfikowalnością dużych systemów to troszkę mit i slogan, mając DB Oracle, mogę się integrować dowolnie z czym chce jak chce (DB LINK, JMS, WEBSERVICE, etc), modelowanie istniejących tabel, rozbudowywanie jej o nowe pola to też żaden problem (no chyba ze po drodze mam magików z ORM i select *, co po dodaniu nowego pola generuje milion wyjątków)
- w polskich firmach zwłaszcza państwowych, gdzie ekipy zmieniają się jak rząd co 4 lata, również dostawca systemów zmienia się równie często i to co się zastaje u takiego molocha przyprawia o zawrót głowy, a mimo wszystko jest to ze sobą integrowane, czasem partyzancko (wy do pliku a my z pliku) a czasem mniej lub bardziej ambitnie
Kończąc, w ORM dla mnie wielką bolączką jest blokowanie danych, co prawda odchamiło się to trochę w najnowszym EE, ale systemy stawiane na hibernate w 99% zakładają ze mają bazę na wyłączność i jest ona nieśmiertelna, co kończy się tym ze wiele danych jest w cache serwera aplikacji, powodując że to co mam w BD nie mogę traktować jako ostateczne i wiarygodne i wtedy jest problem.
Wystarczy popatrzeć na SAP'a, comarchową EGERIE, bpsc'owy IMPULS, modułowe aplikacje, gdzie różne komponenty wykonane są w różnych technologiach, a stoją na jednej bazie i potrafią się nie pozabijać o dostęp, i wymieniać się w ramach modułów informacjami poprzez BD.
To jest rzecz która zawsze kuła mnie w oczy, ze niezależnie od technologi jaką sobie wymyślimy, każda z nich umożliwia łączenie się do np DB Oracle, co powoduje ze sama BD jest świetnym miejscem do wymiany danych pomiędzy systemami/modułami, a jednak ... prawie nikt tego nie praktykuje i woli sobie webservisami wymieniać dane w ramach jednej aplikacji bo może ktoś kiedyś do tego się podepnie (i odkryje ze WS nie był przygotowany do więcej niż jednego odbiorcy :P)
_________________
jeszcze odnośnie znaków równości ... kolejny moim zdaniem niesłusznie stawianym znakiem równości jest ten pomiędzy wzorcem projektowym a szablonem.
- Nie ma wzorca - nie da się zrobić
- Jest wzorzec - robimy tak jak we wzorcu
Tak jak by każda sytuacja idealnie wpisywała się w każdy z nich, wzorzec mówi wsadzić klucz, przekręcić, otworzyć drzwi, i już nikt nie sprawdza czy drzwi nie są przypadkiem otwarte.
Damian Kamiński edytował(a) ten post dnia 10.09.11 o godzinie 00:19