W następstwie this question zastanawiałem się, czy nie było dobre studia porównawcze mogłem skonsultować i przekazać o zaletach korzystania z RDMBS do optymalizacji łączenia vs systematycznie denormalizowanie, aby zawsze uzyskać dostęp do pojedynczego stołu na raz.Dobra literatura na temat wydajności łączenia a systematyczna denormalizacja?
Konkretnie chcę informacje o:
- wydajności lub normalizacji kontra denormalizacji.
- Skalowalność systemu znormalizowanego vs zdenormalizowanego.
- Problemy z utrzymaniem denormalizacji.
- Problemy z konsystencją modelu z denormalizacją.
Trochę historii, aby zobaczyć, dokąd zmierzam: nasz system korzysta z wewnętrznej warstwy abstrakcji bazy danych, ale jest bardzo stary i nie obsługuje więcej niż jednej tabeli. Jako takie wszystkie złożone obiekty muszą być tworzone przy użyciu wielu zapytań na każdej z powiązanych tabel. Teraz, aby upewnić się, że system zawsze korzysta z pojedynczej tabeli, w tabelach stosuje się ciężką systematyczną denormalizację, czasami spłaszczając dwa lub trzy poziomy głębokości. Jeśli chodzi o relację n-n, wydawało się, że pracowali nad tym, starannie opracowując swój model danych, aby uniknąć takich relacji i zawsze powracają na 1-n lub n-1.
Rezultatem końcowym jest zawiłe zbyt skomplikowany system, w którym klient często skarży się na wydajność. Analizując taki szyjka nigdy nie kwestionują tych podstawowych przesłanek, na których opiera się system i zawsze szukają innego rozwiązania.
Czy coś mi umknęło? Myślę, że cały pomysł jest błędny, ale w jakiś sposób brakuje mu niepodważalnych dowodów, aby udowodnić (lub obalić to), to tutaj zwracam się do twojej zbiorowej mądrości, by wskazać mi na dobrą, dobrze przyjętą literaturę, która może przekonać drugiego człowieka w moim zespole podejście jest błędne (przekonać mnie, że jestem po prostu zbyt paranoidalny i dogmatyczny co do spójnych modeli danych).
Moim kolejnym krokiem jest zbudowanie własnego stanowiska testowego i zebranie wyników, ponieważ nie znoszę odnawiać koła, chcę wiedzieć, co już jest na ten temat.
---- EDIT Uwagi: system został po raz pierwszy zbudowany z płaskich plików bez systemu baz danych ... dopiero później został przeniesiony do bazy danych, ponieważ klient nalegał na system przy użyciu Oracle. Nie doprowadziły one do refaktoryzacji, ale po prostu dodały obsługę relacyjnych baz danych do istniejącego systemu. Wsparcie dla plików płaskich zostało później wycofane, ale wciąż czekamy na refaktory, aby wykorzystać zalety bazy danych.
Zgadzam się z tobą na temat niedopasowania, wszystkie włókna mojej technicznej istoty krzyczą na mnie, jak źle to jest, ale żeby być przekonującym potrzebuję czegoś więcej niż uczuć i przeczuć. Moje doświadczenie z bazą danych jest bardziej praktyczne niż akademickie, ponieważ brakuje mi teoretycznego tła, aby złożyć wniosek. Z artykułu, o którym wspomniałeś, jest dużo materiału, przejście przez gałęzie zajmie mi trochę czasu. – Newtopian