Kamil
Stawiarski
Oracle Certified
Master | Oracle ACE
Temat: Diagram E/R w UML?
ROMAN WILK:
Kamil Stawiarski:
Silniki relacyjnych baz danych są związane z więzami integralności (constraint'ami) i bez względu czy masz OLAP czy OLTP to musisz się pogodzić z faktem, że są one tam uparcie obecne bo silniki RDBMS powstały z myślą o ich wykorzystaniu. Bez więzów integralności optymalizator SQL nie jest w stanie podejmować decyzji o transformacji SQL przy użyciu złączeń ze zmaterializowanymi widokami, nie potrafi też wykonywać takich operacji jak Join Elimination ...
Jeśli już decydujemy się na jakiś silnik RDBMS to róbmy to dobrze.
To na pewno w dużej mierze dotyczy Oracle. Natomiast RDBMS to nie tylko Oracle, a ze względu na coraz większą moc obliczeniową pozostałe bazy godnią w wydajności Oracle. Zapytania SQL można optymalizować, wymuszać korzystanie z określonych indeksów itd. Poza tym, to że nie nałożono więzów na poszczególne pola w tabelach, nie oznacza że nie założono indeksów tak, aby baza dziłała jak najwydajniej. Przecież zajmujesz się zwiększeniem wydajności baz danych to pewnie o tym doskonale wiesz ?
Masz rację. Jednak to co napisałem jest charakterystyczne nie tylko dla Oracle - optymalizator kosztowy PostgreSQL bardzo mocno goni Oracle, chociaż mu jeszcze brakuje. Ale wszystkie optymalizatory kosztowe RDBMS w dużej mierze bazują na wiedzy o danych - inteligentne przetwarzanie zapytań wymaga dostarczenia odpowiednich statystyk a wśród nich informacji o więzach integralności. Oracle faktycznie przoduje w tej praktyce ale jedyny nie jest.
Ale głównie chodziło mi o to, że normalizacja jednak jest z definicji związana z więzami integralności a przy okazji stały się one również istotnym źródłem informacji dla inteligentnego budowania planów wykonania zapytań przez optymalizator.