Temat: Diagram E/R w UML?
@Kamil i Jarek
rozmawiacie na dwa różne tematy, każdy z Was ma rację i zarazem jej niema
@Kamil
W aplikacjach biznesowych w wielu zastosowaniach relacyjne bazy danych wprowadzają istotne problemy. Ponieważ coraz więcej systemów jest obiektowych, a dane przechowujemy relacyjnie to godzimy się na pewne kompromisy. Albo kosztem normalizacji dane są przechowywane w sposób bardziej przyjazny obiektowości, albo kosztem narzutów na mapowanie dane są lepiej normalizowane.
Wynika z tego, że czasem np. FV lepiej przechowywać jako XML czy to na dysku czy w blobie.
@Jarek
Jak będziesz rozważał sens normalizacji i optymalizacji RDBMS na potrzeby aplikacji CRM posiadającej ca 1000 rekordów/transakcję to rzeczywiście jest to idiotyzm, ale w dużych systemach robi się raporty na joinowanych tabelach w których KAŻDA ma setki milionów rekordów.
Uwierz, że optymalizacja ma sens i w nosie z całą obiektowością, jeśli dzięki optymalizacji bazy raport zamiast generować się 20 minut generuje się w sekundę.
Pozostaje prosta decyzja biznesowa:
Koszt optymalizacji bazy: 1 mln EUR
Średni koszt modyfikacji danego modułu: 100 000 EUR
Narzut na modyfikację po optymalizacji - 30%, więc ok 30 000 EUR
Częstotliwość modyfikacji raz na kwartał
TCO miesięczne dla 1 roku z optymalizacją jest droższe o : 1mln EUR + 4*30 000 = 1 120 000 EUR
Koszt Rbh osoby czekającej na raport: 100 EUR
Czas generowania raportu przed optymalizacją: 20 min
Koszt raportu przed optymalizacją= 33,34 EUR
Czas generowania raportu po optymalizacji: 1 sek
Koszt raportu po optymalizacji = 0,03 EUR
oszczędność na raporcie = 33,31 EUR
granica opłacalności = 1 120 000 EUR/ 33,31 EUR = 33 623 raporty rocznie
oczywiście zakładając, że dostarczając więcej raportów przetwarzam ich więcej - ale to tylko kwestia odpowiedniej parametryzacji
UWAGA OGÓLNA
---------------------
Większość podejść inżynieryjnych ma swoje zalety i wady. Należy je analizować pod kątem konkretnej aplikacji (w sensie zastosowania, a nie oprogramowania) w biznesie z uwzględnieniem zmian KPI, TCO, ROI/NPV oraz RYZYKA.
Głupotą jest twierdzić, że bazy relacyjne są złe czy niepotrzebne.
Równie wielką głupota jest twierdzić, że normalizacja i optymalizacja baz jest zawsze potrzebna i uzasadniona.