Jak zwykle Aaron Bertrand i Kin udzielili doskonałych odpowiedzi. Jednak obie odpowiedzi zawierają wspólny wątek. Jeśli przeanalizujesz którąkolwiek z odpowiedzi, zobaczysz, że powodem, dla którego XYZ nie działa tak, jak zadziałało wczoraj, nie jest spowodowane czymś, co Ty / oni / osoba X zrobili. Powodem, dla którego wszystko się zmieniło, jest to, że baza danych postanowiła robić to inaczej z powodów XYZ.
Baza danych to żywa, oddychająca istota . Bazy danych podejmą decyzje i zmienią zdanie z powodu kombinacji założeń, statystyk i innych narzędzi heurystycznych. Jest to diametralnie różne od większości programowania warstw aplikacji (wyjątek stanowi uczenie maszynowe).
Użyję odniesień wojskowych, ponieważ nie mogę teraz wymyślić czegoś lepszego. Doceniona zostanie bardziej ogólna metafora (nie jest zamierzona gra słów).
W większości aplikacji programista działa jako instruktor ćwiczeń. Mówią komputerowi dokładnie, co robić, w jakiej kolejności, a czasem i na jak długo. Programowanie bazy danych przypomina bardziej funkcjonowanie dowódcy. Mówisz mu, co chcesz robić na wysokim poziomie, aw razie potrzeby udzielasz wskazówek. Baza danych ma za zadanie znaleźć najlepszy sposób realizacji planu w oparciu o bieżące dane wywiadowcze, takie jak młodsi oficerowie i podoficerowie.
Wyrażając to rozróżnienie w umysłach innych programistów, miejmy nadzieję, że zaczną widzieć, że nie masz mocy dyktatorskich, jakie mają w swoim otoczeniu. Prowadzisz bazę danych do rozwiązania i czasami baza danych znika z dobrych lub złych powodów. Przypomnij im, że ostatecznie nie ma znaczenia, dlaczego * baza danych poszła nie tak, ale co możemy zrobić, aby ją przywrócić.
* Rozumiem, „dlaczego” jest bardzo cenny dla przyszłej profilaktyki, uczenia się itp., Ale wydaje się, że PO stoi w obliczu oporu ze strony ludzi, którzy nie próbują się dowiedzieć ani pomóc w rozwiązaniu problemu.