13

Obecnie próbuję utworzyć bazę danych, w której bardzo duży procent danych jest czasowy. Po zapoznaniu się z wieloma technikami do tego celu (większość z udziałem normalizacji 6nf) natknąłem się na Anchor Modeling.Jakie są plusy i minusy modelowania kotwicy?

Schemat, który rozwijałem, bardzo przypominał model modelowania kotwicznego, szczególnie, że przypadek użycia (dane tymczasowe + nieznane nieznane) jest tak podobny, że mam ochotę go w pełni wykorzystać.

Dwa największe problemy, które mam, to to, że nie mogę znaleźć żadnych szczegółów na temat negatywów tego podejścia, i nie mogę znaleźć żadnych odniesień do organizacji, które wykorzystały to w produkcji do opowiadań wojennych i gróźb, które muszę znać z.

Zastanawiam się, czy ktoś tu jest wystarczająco znany, aby krótko objaśnić niektóre z negatywów (ponieważ pozytywy są bardzo dobrze reklamowane w materiałach badawczych i ich witrynie) oraz wszelkie doświadczenia związane z używaniem go w środowisku produkcyjnym.

Odpowiedz

12

W nawiązaniu do anchormodeling.com

Oto kilka punktów Jestem świadomy

  1. liczby DB-obiektów jest po prostu zbyt duża, aby utrzymać ręcznie, więc upewnij się, że używasz projektanta cały czas rozwijać schemat.

  2. Obecnie projektant obsługuje w pełni MS SQL Server, więc jeśli musisz cały czas kodować, możesz poczekać, aż docelowy DB będzie w pełni obsługiwany. Wiem, że ma Oracle w rozwijanym pudełku, ale ...

  3. Nie oczekuj (ani nie żądaj) od deweloperów, aby to zrozumieli, muszą uzyskać dostęp do modelu poprzez widoki 5NF - co jest dobre. Chodzi o to, że tabele są ładowane za pomocą (zamiast) wyzwalaczy na widokach, co może (lub nie musi) być problemem z wydajnością.

  4. Należy oczekiwać, że konieczne będzie napisanie dodatkowych procedur konserwacyjnych (dla każdego atrybutu temporalnego), które nie są generowane automatycznie (jeszcze).Na przykład często potrzebuję procedury suszenia dla atrybutów tymczasowych - do usuwania rekordów o tej samej wartości dla tego samego identyfikatora w dwóch następujących po sobie zdarzeniach czasowych.

  5. Wygenerowane poglądy i zapytania - przeglądy ładnie się rozwiązują, a więc prawdopodobnie wszystko, co napiszesz w przyszłości. Jednak "inni ludzie" będą pisać zapytania dotyczące widoków z widokiem ponad widokami - co nie zawsze jest przyjemne. Spodziewaj się więc, że będziesz musiał częściej pytać o policję niż zwykle.

Mając to wszystko zasmucony, ostatnio zastosowałem podejście do refaktoryzacji części mojego magazynu i zadziałało to jak czar. Trzeba przyznać, że w magazynie nie ma większości opisanych tutaj problemów.

Sugerowałbym, że konieczne jest stworzenie systemu demonstracyjnego i testowanie, testowanie, testowanie ..., szczególnie punktu nr 3 - ładowanie za pomocą wyzwalaczy.

5

Nie czytałem żadnych dokumentów na ten temat, ale ponieważ jest oparty na 6NF, spodziewałbym się, że cierpią z powodu jakichkolwiek problemów po 6NF.

6NF wymaga, aby każda tabela składała się z klucza kandydującego i nie więcej niż jednej kolumny bez klucza. Tak więc, w najgorszym przypadku, będziesz potrzebował dziewięciu sprzężeń, aby uzyskać 10-kolumnowy zestaw wyników. Ale możesz także zaprojektować bazę danych, która używa, powiedzmy, 200 tabel, które są w 5NF, 30, które są w BCNF, i tylko 5, które są w 6NF. (Myślę, że nie będzie już Kotwica Modelowanie per se, która wydaje się umieścić wszystkie tabele w 6NF, ale mogę się mylić o tym.)

Mityczny Man-Month jest nadal aktualna tutaj.

Pytanie dotyczące zarządzania nie dotyczy tego, czy zbudować system pilotażowy, czy go wyrzucić. Zrobisz to. Pozostaje tylko pytanie, czy zaplanować z wyprzedzeniem budowę odrzutów, czy też obiecać dostarczenie produktów do klientów.

Fred Brooks, Jr., w Mityczny Man-Month, str 116.

Jak tanio można zbudować prototyp do testowania planowanej najgorszy przypadek?

+0

Kot, nie, że nie zgadzam się z tym, co tu mówisz, ale istnieje różnica między modelem przyjętym per se (i aktem rysowania takiego modelu), a implementacją tego modelu (aktem definiowania struktura bazy danych do wdrożenia tego modelu). Czy istnieje prawo, które mówi, że model koncepcyjny/nieformalny, który "wygląda" 6NF musi koniecznie również doprowadzić do logicznej struktury bazy danych, która _IS_ 6NF? Osobiście, moja odpowiedź byłaby bardziej zgodna z tym, że gdy używasz modelowania kotwicy jako techniki rysowania _IN_formalnych modeli, pojedynczy atrybut w "jednostce" (ciąg dalszy ...) –

+0

... zajmuje więcej cali kwadratowych niż kiedy używasz ER jako techniki rysowania. Z nieuniknioną konsekwencją, że przy ustalonym rozmiarze papieru, modelowanie zakotwiczenia nie może przekazać tak dużej ilości informacji (_IN_formalnych) jak E/R. Co dokładnie powstrzymuje Cię od wdrożenia modelu narysowanego za pomocą zakotwiczenia w 5NF zamiast 6NF? Co powstrzymuje cię od implementacji modelu narysowanego w E/R crowfoot w pełnym 6NF? –

+0

@ErwinSmout: Nie istnieje żadne prawo relacyjne, które mówi, że model koncepcyjny w 6NF musi dawać bazę danych o wartości 6NF. Wcześniej zaimplementowałem modele konceptualne 5NF w Lotus Notes - jest to tak daleko od fizycznego modelu 5NF *, jaki można uzyskać. Ale rozumiem, że w Anchor Modeling, * co * tabela, która implementuje kotwicę, atrybut lub węzeł * musi * być w 6NF. Tabele w 6NF wydają się być wymagane do wspierania zwinnych metod modelowania kotwicy; Nie sądzę, żebyś mógł spaść do 5NF bez robienia czegoś, co nie jest już "modelowaniem kotwicy". (Nie ma w tym nic złego.) –

7

W odniesieniu do punktu 4 powyżej. Kontrola przetwarzania jest prawie zakończona, dzięki czemu będziesz w stanie zapobiec dwóm kolejnym identycznym wartościom w czasie.

I ogólny komentarz, dołączenia niekoniecznie są złe. Przeczytaj: Why joins are a good thing.

Jedną z największych zalet modelu 6NF w modelowaniu kotwic jest nieniszcząca ewolucja schematu. Innymi słowy, każda poprzednia wersja modelu bazy danych jest dostępna jako podzbiór w bieżącym modelu. Ponadto, ponieważ zmiany są reprezentowane przez rozszerzenia w schemacie (nowe tabele), aktualizacja bazy danych jest niemal natychmiastowa i można ją bezpiecznie przeprowadzić online (nawet w środowisku produkcyjnym). Ta korzyść zostanie utracona w 5NF.

Powiązane problemy