Jarosław
Żeliński
Analityk i
Projektant Systemów
Temat: Diagram E/R w UML?
Krzysztof Bokiej:
Po pierwsze, przykład był po to, żeby Ci udowodnić, że normalizacja to szybszy zapis. Bo zupełnie bezpodstawnie to kwestionowałeś. Chociaż pewnie i tak nigdy tego nie sprawdzisz w praktyce ;-)
kwestionuję tylko to, że "normalizacja jest jedynie słuszna"..
Powtórzę. Jak się zdecydowałeś na repozytorium w postaci bazy danych, to korzystaj z dobrodziejstw tej bazy danych. A nie wymyślaj koło na nowo.
po pierwsze pojęcia "baza danych" i "relacyjny system zarządzania danymi" to nie to samo.
po drugie mnie jako projektanta interesuje postawienie wymagań i wybór rozwiązania spełniającego je minimalnym kosztem a nie szukanie na siłę zastosowania dla jakiegoś relacyjnego systemu (motora) zarządzania danymi... (syndrom młotkowego) i tu tkwi różnica pomiędzy mną i wieloma tu,
jeżeli projektuję system jako kilka odrębnych i niezależnych podsystemów czy modułów to relacyjny system można sobie wsadzić w .... dane są wymieniane poprzez interfejsy i kojarzone rzeczywistymi atrybutami (takimi jak PESEL, NIP, czy np. Imię, Nazwisko i imię ojca, i inne.) każdy z tym komponentów mogę niezależnie wstawić i usunąć z systemu, zamienić z innym komponentem bez uszczerbku dla reszty.
Jeżeli jeden system zapyta drugi o numer zamówienia i nie znajdzie, to nie widzę żadnej tragedii w odpowiedzi "nie znaleziono"... natomiast próba postawienia systemu składającego się z niezależnych komponentów na jednej relacyjnej bazie danych przeczy całemu projektowi, to jest niezależności tych komponentów. I wole operować całą logiką na poziomie aplikacji i utrwalać wyłącznie proste dane (np. rzeczony wzorzec active record) bo jestem niezależny od systemu utrwalania.
Na koniec przykłady w rodzaju "a miliony rekordów na raz" to po pierwsze bardzo rzadkie przypadki po drugie jak wystąpią to implementuje się je jako hurtownie lub podobne wydzielone składy danych.... nie raz faktycznie na relacyjnych motorach danych ale to inna bajka...
ale odbiegamy od tematu: powtórzę więc: modelowanie danych w UML jest bez sensu skoro mamy ERD.